問題タブ [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.

0 投票する
1 に答える
158 参照

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_LIBFILESLDFLAGS

おそらく、私が見逃している簡単な答えがあるでしょう。提案をありがとう。

0 投票する
1 に答える
171 参照

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 があります (私の例では何がうまくいかなかったのか、コンパイルしている場所と同じフォルダーに入れただけです)。

インストールの何が問題なのか、および/またはどのようにコンパイルしているのか、何か考えはありますか?

0 投票する
1 に答える
313 参照

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 メソッドからの戻り値を読み取るにはどうすればよいですか?

よろしく、

0 投票する
1 に答える
429 参照

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

0 投票する
1 に答える
70 参照

c - カスタム IRB の作成

私はあらゆる種類の小さなハードウェアで遊んでいます。それを学ぼうとしている。mruby を実行したいと思います。ハードウェア用にコンパイルしました。また、フレームワークと、MIRB および MRUBY ビンが含まれています。

しかし、私は自分の IRB のコードが好きになる可能性があります。私は本業のプログラマーですが、大学以来、これほど低レベルのものを扱ったことはありません。

プロセスのどこから始めればよいですか、私のgoogle-fooはそれをカットしていません。

0 投票する
2 に答える
203 参照

nim-lang - nimアプリケーションにいくつかのmrubyを含めることは可能/簡単ですか?

私は現在 Nim を学ぼうとしています (それはゆっくりと進んでいます - それに多くの時間を費やすことはできません)。一方で、動作するコードを取得するために、Ruby で作業している Nim アプリのセクションのプロトタイプを作成したいと考えています。

mruby では Ruby サブセットを C アプリに埋め込むことができ、nim では任意の C コードを関数にコンパイルできるため、これは比較的簡単なはずです。誰もこれをやったことがありますか?

私は特に、Nim のファンキーなマクロ機能を使用して、インライン Ruby コードに分割する方法を探しています。私は自分自身を試してみますが、誰かがそれを試した、および/または現在の学習状態でできるよりも洗練された解決策を考え出すにちがいないと思います:)

0 投票する
0 に答える
115 参照

rust - 別のスレッドから呼び出された場合に C ポインターを待機させ、コールバックで機能させるにはどうすればよいですか?

mruby Rust バインディングのスレッドセーフ バージョンを実装しようとしています。

mruby には*mut MRState(のラッパーmrb_state) があります。*mut MRStatemruby コードを実行するときにこれを渡す必要があります。*mut MRStatemruby コードには、同じ変数を渡す場所で呼び出すことができる Rust コールバックがあります。

これは、スレッドセーフにしようとしている に*mut MRStateラップされています。MRuby struct問題は、 でラップMRubyするMutexと、Rust で作成されたコールバック内に再入力できなくなることです。

私は現在ラップMRubyしてRwLockいますが、あまり役に立ちません。は*mut MRState、コールバック内で実行できるように、より寛容なロックにする必要があります。

MRubyコールバックの両方で機能させ、別のスレッドから呼び出された場合に強制的に待機させるにはどうすればよいですか?

これとは別に、&ではない*mut MRState内部に問題があります。MRubySendSync

これはコールバックの例です。

これは、スレッドで mruby を実行する例です。mrubyここの変数はArc<RwLock<MRuby>>.

これを実装したい主な理由は機能ではありません。実際にcatch_panicは、Rust コールバックから発生する可能性のあるパニックをキャッチするために必要です。別のスレッドで実行されるため、スレッドセーフcatch_panicにする必要があります。MRubyRust は 1.9.0 でのみ安定std::panicします。それまでは、毎晩 Rust を必要としない実用的なソリューションが必要です。

修正

Rust のドキュメンテーション生成のバグにより、catch_panic非推奨としてのみマークされ、不安定ではありません。したがって、非常に簡単な解決策はstd::panic、スレッドセーフを使用して放棄することです。ただし、前述のことを考慮すると、私の個人的な関心は低くなりますが、これに対する良い答えがある場合に備えて、質問を開いたままにします。

0 投票する
0 に答える
235 参照

c - mruby と組み込み言語

私は mruby を学んでおり、それを支持する議論の 1 つは、どこでも読んでいるということです。

C と mruby が混在しているコードを見たことがあります。しかし、埋め込み可能な言語とは何か、またその利点は何なのか、私にはよくわかりません。たとえば、私はすべてを C で書くことができますが、mruby は私の C アプリケーションに何をもたらしますか? そして、なぜこの混合物や埋め込みを作りたいのですか?

簡単な例で理解を助けてください.acコードに埋め込まれたサンプルmrubyコードは次のとおりです。

また、組み込みシステム言語と組み込み言語を混同しています。

これを理解するのを手伝ってください。