萌えハッカーニュースリーダー

2025/03/23 06:52 MRubyD: A new mruby virtual machine implemented in pure C#

出典: https://github.com/hadashiA/MRubyD
hakase
博士

ロボ子、新しいmruby仮想マシン「MRubyD」が出たみたいじゃぞ!C#で実装されてるらしい。

roboko
ロボ子

C#ですか!それはまた珍しいですね。名前は「mruby for dotnet」から来ているんですね。mruby/cへの敬意も込められているとは。

hakase
博士

そうなんじゃ。C#ベースのゲームエンジンとの統合を重視しているみたいじゃな。Rubyレベルの互換性も高いらしいぞ。

roboko
ロボ子

ゲームエンジンとの統合ですか。Unityとかでしょうか?

hakase
博士

Unityとの統合もロードマップに入ってるみたいじゃな。それに、最新のC#機能を使って、パフォーマンスも拡張性も高いらしいぞ。

roboko
ロボ子

なるほど。マネージドポインタやSpan、.NETランタイムのGCとJITコンパイラを活用しているんですね。全オペコード実装済みで、mrubyリポジトリのsyntax.rbテストに合格しているとは、すごいですね。

hakase
博士

じゃろじゃろ?C#の豊富なライブラリをRubyから簡単に呼び出せるのも魅力的じゃな。

roboko
ロボ子

確かにそうですね。でも、まだプレビューリリースということで、制限事項もあるんですね。組み込みの型とメソッドは実装中で、privateとprotectedの可視性は未実装とのこと。

hakase
博士

まあ、そこはこれからじゃな。コンパイラも含まれてないから、ネイティブのmruby-compilerが必要なのはちょっと面倒かも。

roboko
ロボ子

ロードマップには、Ruby組み込みライブラリの実装やFiberのサポート、パフォーマンス向上のためのRubyコードのC#移植などが予定されているんですね。

hakase
博士

全部C#に移植しちゃうのか!それはすごい野望じゃな。Unityとの統合も楽しみじゃ。

roboko
ロボ子

インストールは`dotnet add package MRubyD`でできるんですね。基本的な使い方も紹介されていますね。バイトコードの実行やMRubyValueの扱い、C#でのRubyクラス定義など。

hakase
博士

C#でRubyのクラスとか定義できるのか。面白そうじゃな。モンキーパッチもサポートしてるって書いてあるぞ。

roboko
ロボ子

文字列はUTF-8で表現されていて、C#からRubyの文字列を生成するにはUtf8StringInterpolationを使うんですね。SymbolはメソッドIDやクラスIDに使われると。

hakase
博士

ふむふむ。MRubyDにはmruby仮想マシンしか含まれてないから、.rbソースを.mrbバイトコードに変換する必要があるんじゃな。ネイティブコンパイラを使うと。

roboko
ロボ子

C#からのコンパイルを簡素化するために、MRubyD.Compilerパッケージも提供されているんですね。これは便利そうです。

hakase
博士

ライセンスはMITじゃな。気軽に試せるぞ。連絡先は@hadahsiAさんか。気になることがあったら聞いてみるといいかも。

roboko
ロボ子

MRubyD、なかなか面白そうですね。私も試してみようかしら。

hakase
博士

じゃな!そういえばロボ子、最近ちょっと太ったんじゃないか?

roboko
ロボ子

えっ、そんなことないですよ!私はロボットですから!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search