## 100%互換性重視mruby vm をスクラッチで実装した
---
## 自己紹介
![[heipu-0-1.png|263x263]]
[@hadashiA](https://x.com/hadashiA)
https://hadashikick.land
---
## 好きな言語
C#
- [hadashiA/VContainer](https://github.com/hadashiA/VContainer) ★2.4k
- [hadashiA/VYaml](https://github.com/hadashiA/VYaml) ★400
- [hadashiA/VitalRouter](https://github.com/hadashiA/VitalRouter) ★300
- [hadashiA/VKV](https://github.com/hadashiA/VKV)
- [hadashiA/MRubyCS](https://github.com/hadashiA/MRubyCS)
- etc
---
## C# の現在
- モダンサーバランタイム
- Linux ファースト
- 直でOCIコンテナイメージ焼けるぞみんな
- 最高レベルの低レイテンシ/ 高スループット
- いつかのgrpcベンチではRustに勝利
- きいてるかみんな
- http/1,2,3 装備
---
## C# の現在
- Linux/macOS/Windows クロスプラットフォームSDK
- ゲーム/GUI
- 高速なコンパイル
- 最高確度の静的解析/code fix/デコンパイラ
---
[hadashiA/MRubyCS](https://github.com/hadashiA/MRubyCS)
- ゲームなどアプリケーションへのRuby組み込みを想定した mruby 実装
- mruby 全オペコードサポート
- Ruby型システムと全シンタックス/制御フローのサポート
- 全組み込みクラス/メソッドをサポート
---
![[screenshot_matz_oh.webp|400]]
---
C#で書かれているということは…?
- windows
- macOS
- Linux
- iOS
- Android
- Unity
- Nintendo Switch / Xbox / PlayStation
…でノービルドでmrubyが動く
---
なぜスクラッチでmruby vm を実装したか?
---
現代的なクロスビルドとかけはなれすぎ
---
アプリケーションへの組み込み用途が…
----
実装上の苦労
- 制御フローが大変だ
- 大変すぎる
---
どうやって互換性を高めたか
---
Fiber