問題タブ [mruby]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - MRuby で Contiki アプリケーションをコンパイルする
MRuby ライブラリを含み、簡単な Ruby コードを実行する Contiki アプリケーションをコンパイルしようとしています。問題は、MRuby ライブラリをコンパイルに含める方法がわからないことです。
プロジェクトは次のとおりです: https://github.com/matus-tomlein/contiki-mruby-example/tree/wrong
実行したいコードは にありcontiki-mruby-example.c
ます。問題はおそらく にありMakefile
ます。これは私が現在持っているものです:
を実行すると、次のエラーが表示されますmake
。
含めたい MRuby コードはmruby/include
.
これは同様の質問です:外部ライブラリを
使用して、Contiki アプリケーションと一緒にコンパイルする方法 これは、ライブラリではなく、プレーンなソース コードをコンパイルしているためだと思います。TARGET_LIBFILES
LDFLAGS
おそらく、私が見逃している簡単な答えがあるでしょう。提案をありがとう。
ruby - 一部の mruby の例がコンパイルされないのはなぜですか?
C で使用するために mruby をセットアップしようとしてきましたが、単純な "hello world" の例をコンパイルするだけで成功しました。他の例はコンパイルされません: https://github.com/mruby/mruby/blob/master/tools/mrbc/mrbc.cをコンパイルしようとすると、次のようになります:
http://matt.aimonetti.net/posts/2012/04/25/getting-started-with-mruby/から「より複雑な例」をコンパイルしようとすると、彼らが提案する方法で ( gcc -Iinclude hello.c lib/libmruby.a -lm -o hello.out
) (実際には:同様の方法. 私は両方の方法を試しました.) 私はこれを得ます:
ファイルか何かが不足しているように見えますが、何がわかりません。mruby 1.1.0 を使用しています。mrbconf.h、mruby.h、および gcc 検索パスにフォルダー mruby を含む mruby-1.1.0/include があり、LIBRARY_PATH に mruby-1.1.0/build/host/lib があります (私の例では何がうまくいかなかったのか、コンパイルしている場所と同じフォルダーに入れただけです)。
インストールの何が問題なのか、および/またはどのようにコンパイルしているのか、何か考えはありますか?
c - C++ で mruby VM を呼び出す
C で呼び出された ruby インタープリター コードの一部を mruby 形式に変換しようとしています。私は立ち往生しており、ここで助けていただければ幸いです。
私のtestruby.rbファイルの内容:
以下は、私の C++ ファイルのスニペットです。
問題 1:
上記の方法で、.rbファイルがこれを呼び出せるようにモジュールとしてmrubyインタープリターに送っています。
以下の形式が正しいかどうか教えてください。
問題 2:
以下の ruby インタープリター コードを mruby に変換するにはどうすればよいですか?
rb_require("./testruby"); // testruby は私の testruby.rb ファイルです
次に、testruby.rb ファイルから helloworld メソッドを呼び出します。mruby の (rb_funcall の) 同等のメソッドを呼び出すにはどうすればよいですか?
C++ コードで helloworld メソッドからの戻り値を読み取るにはどうすればよいですか?
よろしく、
mruby - mruby-require エラー: NoMethodError: メインの未定義メソッド 'puts'
mrubygem - mruby-require from https://github.com/mattn/mruby-requireを追加して mruby コードをコンパイルすることができました
ただし、require './' を呼び出そうとすると、エラーが発生します。以下は私のコードです:
inc.rb
test1.rb
test1.rb を実行すると、mruby から次のエラーが表示されます。
いくつかの分析の後、「プット」がmrubyで機能していないことがわかりました。実際、mruby-require gem を追加した後、Ruby コードは実行されません。mruby-require で依存関係を追加する必要はありますか?
誰か助けてくれませんか?
更新: 要求に応じて build_config.rb の内容を貼り付けます。コメントされている行を削除しました。
build_config.rb
c - カスタム IRB の作成
私はあらゆる種類の小さなハードウェアで遊んでいます。それを学ぼうとしている。mruby を実行したいと思います。ハードウェア用にコンパイルしました。また、フレームワークと、MIRB および MRUBY ビンが含まれています。
しかし、私は自分の IRB のコードが好きになる可能性があります。私は本業のプログラマーですが、大学以来、これほど低レベルのものを扱ったことはありません。
プロセスのどこから始めればよいですか、私のgoogle-fooはそれをカットしていません。
nim-lang - nimアプリケーションにいくつかのmrubyを含めることは可能/簡単ですか?
私は現在 Nim を学ぼうとしています (それはゆっくりと進んでいます - それに多くの時間を費やすことはできません)。一方で、動作するコードを取得するために、Ruby で作業している Nim アプリのセクションのプロトタイプを作成したいと考えています。
mruby では Ruby サブセットを C アプリに埋め込むことができ、nim では任意の C コードを関数にコンパイルできるため、これは比較的簡単なはずです。誰もこれをやったことがありますか?
私は特に、Nim のファンキーなマクロ機能を使用して、インライン Ruby コードに分割する方法を探しています。私は自分自身を試してみますが、誰かがそれを試した、および/または現在の学習状態でできるよりも洗練された解決策を考え出すにちがいないと思います:)
rust - 別のスレッドから呼び出された場合に C ポインターを待機させ、コールバックで機能させるにはどうすればよいですか?
mruby Rust バインディングのスレッドセーフ バージョンを実装しようとしています。
mruby には*mut MRState
(のラッパーmrb_state
) があります。*mut MRState
mruby コードを実行するときにこれを渡す必要があります。*mut MRState
mruby コードには、同じ変数を渡す場所で呼び出すことができる Rust コールバックがあります。
これは、スレッドセーフにしようとしている に*mut MRState
ラップされています。MRuby
struct
問題は、 でラップMRuby
するMutex
と、Rust で作成されたコールバック内に再入力できなくなることです。
私は現在ラップMRuby
してRwLock
いますが、あまり役に立ちません。は*mut MRState
、コールバック内で実行できるように、より寛容なロックにする必要があります。
MRuby
コールバックの両方で機能させ、別のスレッドから呼び出された場合に強制的に待機させるにはどうすればよいですか?
これとは別に、&ではない*mut MRState
内部に問題があります。MRuby
Send
Sync
これはコールバックの例です。
これは、スレッドで mruby を実行する例です。mruby
ここの変数はArc<RwLock<MRuby>>
.
これを実装したい主な理由は機能ではありません。実際にcatch_panic
は、Rust コールバックから発生する可能性のあるパニックをキャッチするために必要です。別のスレッドで実行されるため、スレッドセーフcatch_panic
にする必要があります。MRuby
Rust は 1.9.0 でのみ安定std::panic
します。それまでは、毎晩 Rust を必要としない実用的なソリューションが必要です。
修正
Rust のドキュメンテーション生成のバグにより、catch_panic
非推奨としてのみマークされ、不安定ではありません。したがって、非常に簡単な解決策はstd::panic
、スレッドセーフを使用して放棄することです。ただし、前述のことを考慮すると、私の個人的な関心は低くなりますが、これに対する良い答えがある場合に備えて、質問を開いたままにします。
c - mruby と組み込み言語
私は mruby を学んでおり、それを支持する議論の 1 つは、どこでも読んでいるということです。
C と mruby が混在しているコードを見たことがあります。しかし、埋め込み可能な言語とは何か、またその利点は何なのか、私にはよくわかりません。たとえば、私はすべてを C で書くことができますが、mruby は私の C アプリケーションに何をもたらしますか? そして、なぜこの混合物や埋め込みを作りたいのですか?
簡単な例で理解を助けてください.acコードに埋め込まれたサンプルmrubyコードは次のとおりです。
また、組み込みシステム言語と組み込み言語を混同しています。
これを理解するのを手伝ってください。