タグ

ブックマーク / qiita.com/sisshiki1969 (2)

  • JITコンパイルをサポートした新たなRuby処理系をRustとアセンブリで書いている話 - Qiita

    CRuby(3.2.0-preview3)およびCRubyの新しいJITコンパイラ・モジュールであるYJITを有効にした場合と、monoruby(JITあり・なし)の単位時間当たりの実行回数をbenchmark-driver.gem を用いて比較しています。数字が大きい方が速いです。ベンチマークの種類によりますが、YJITと比較しても高速、特に浮動小数点演算を多数実行するso_mandelbrotやso_nbody、app_aobenchでは数倍高速となっています。インタプリタもCRuby(JITなし)と遜色ない速度になっています。 以下、設計と実装について紹介していきますが、その前に必要な基礎知識をおさらいしておきます。 基礎知識 JITコンパイラは実行時に対象言語のプログラムを機械語へコンパイルするモジュールですが、一般的な実装ではインタプリタと並存して動きます。プログラムは抽象構文木

    JITコンパイルをサポートした新たなRuby処理系をRustとアセンブリで書いている話 - Qiita
  • ruruby: RustでつくっているRuby - Qiita

    この記事は言語実装 Advent Calendar 20202日目の記事です。前回はκeenさんの「自作コンパイラをブラウザ上で動かす」、次回はmitsuchiさんの「LLVM の Kaleidoscope を育てながら作る」です。 はじめに みなさま、ご無沙汰しております。monochromeです。rurubyという名前でRuby処理系のRustによる実装を行っていて、昨年のAdvent CalendarでRustでつくる(つくれるかもしれない)Rubyという記事を書きました。今回はこの1年間の進捗と、今後の予定などを書いてみます。 レポジトリはこちら。実行にはRustツールチェーン(nightly channel)のインストールが必要です。 https://github.com/sisshiki1969/ruruby 毎度の宣伝ですが、「プログラミング言語処理系が好きな人の集まり」とい

    ruruby: RustでつくっているRuby - Qiita
  • 1