fukuoka.rb#202 RustでつくるRuby
by
monochrome
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
RustでつくるRuby処理系 monochrome twitter: @s_isshiki1969 GitHub: https://github.com/sisshiki1969 Slack: プログラミング言語処理系が好きな人の集まり https://prog-lang-sys-ja-slack.github.io/wiki/
Slide 2
Slide 2 text
ruruby (https://github.com/sisshiki1969/ruruby) ● Rust製のRuby実装 ● 仮想マシンインタプリタ ● 他の既存実装・仮想マシンへの依存なし ● 3万行ぐらい
Slide 3
Slide 3 text
モチベーション 1. Rustの勉強がしたい 2. 何か言語処理系を作りたい 3. Ruby面白そう
Slide 4
Slide 4 text
benchmark
Slide 5
Slide 5 text
開発のモチベーションをいかに維持するか 1. おもちゃじゃないプログラムを動かしたい 2. 「正しく動いている」ことがわかるもの 3. 実行速度を測定できるもの 4. 極力外部ライブラリに依存しないもの
Slide 6
Slide 6 text
Optcarrot ● Rubyで書かれたファミコンのエミュレータ ● 「Ruby3x3」のための準公式ベンチマーク ● ベンチマーク用の速度測定モードがある ● 生成した画像の正しさをチェックサムで検証できる ● (ベンチマークモードでは)外部ライブラリを使用しない
Slide 7
Slide 7 text
optcarrot benchmark
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
技術的に難しかった点 ● ガベージコレクタ →自作した。 ● Fiber →アセンブリで実装 (x86-64/linux, aarch64/MacOS)
Slide 10
Slide 10 text
言語処理系自作は ● モチベーションを維持する工夫が大切 ● 対象言語の実行モデルの勉強になる ● 楽しいので、みんなで作ろう Slack: プログラミング言語処理系が好きな人の集まり https://prog-lang-sys-ja-slack.github.io/wiki/