WebAssembly版Rubyが正式に登場、YJITが実用段階に。「Ruby 3.2.0」正式リリース

今回は「WebAssembly版Rubyが正式に登場、YJITが実用段階に。「Ruby 3.2.0」正式リリース」についてご紹介します。

関連ワード (業界標準、稼働、自身等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


Ruby開発チームは、2022年12月25日にRuby 3.2.0の正式リリースを発表しました。Rubyは毎年12月25日に新バージョンをリリースすることが恒例となっています。

fig

WebブラウザでRubyコードをそのまま実行可能に

新バージョンであるRuby 3.2.0の最大の新機能は、WASIベースのWebAssembly版Rubyが登場したことです。

これによりWASIをサポートしたWebAssemblyの実行環境、例えばWebブラウザやNode.js、DenoなどのサーバサイドJavaScriptランタイム、Cloudflare WorkersやFastly Compute@Edgeなどのクラウドエッジ環境で、WebAssembly版のRubyを実行できるようになりました。

これらの環境でWebAssemblyの上でRubyランタイムを実行すると、Rubyで書かれたコードをそのまま走らせることができます。

WebブラウザでRubyを試せるTryRuby Playgroundは、このWebAssembly版Rubyランタイムを用いることで、Webブラウザ上で直接Rubyのコードを実行しています。

fig

WebAssembly版Rubyが正式に登場

WASIベースのWebAssembly版Rubyの開発は、Rubyアソシエーションによる開発助成金の対象として今年(2022年)1月にスタートしました。

参考:RubyがWebAssemblyのWASI対応へ前進。ブラウザでもサーバでもエッジでもどこでもWebAssembly版Rubyが動くように

Ruby言語のリファレンス実装、すなわち事実上の標準となっているRubyランタイムはC言語で実装されているため、このRubyランタイムもしくはそのソースコードは一般に「CRuby」(もしくは、まつもとゆきひろ氏による実装という意味でMRI:Matz’ Ruby Implementation)と呼ばれています。

このCRubyのソースコードをコンパイルすることで、Windows対応RubyやLinux対応Rubyなどのバイナリファイルが生成されるわけです。今回のWASIベースのWebAssembly版Rubyも、このCRubyのソースコードをコンパイルしてWebAssemblyバイナリとして生成されたものです。

さらにファイルシステムAPIなどのOSごとの違いをWebAssemblyのレイヤで吸収する業界標準の仕様「WASI」(WebAssembly System Interface)にも対応したことで、前述のように異なるOS環境におけるWebブラウザからJavaScriptランタイム、クラウドエッジまで、単一のWebAssemblyバイナリでサポートされています。

さらにWASIの上にリードオンリーの仮想ファイルシステム(VFS)が実装されており、これによりWebAssembly版RubyランタイムとRubyのコードをワンバイナリにまとめることが可能です、つまりRubyアプリケーションをWebAssembly環境で簡単に実行できる形式で配布できるようになっています。

ここまで説明してきたWebAssembly版Rubyの開発を担当した齋藤優太氏が9月のRubyKaigi 2022で行った基調講演の内容がログミーで記事として公開されています。

参考:Rubyを手軽にブラウザ上で動かすことが可能に WebAssemblyを使って解消する、Rubyの動作環境問題 – ログミーTech

実用段階に入ったYJIT

前バージョンのRuby 3.1でメインラインにマージされたJITコンパイラ「YJIT」が1年以上にわたって本番環境でテストされ、安定して稼働する実用段階に到達したことも発表されました。

YJITは、ECサイト構築サービスで知られるShopifyが開発を進めてきたもので、Shopify自身が構築している大規模なRailsアプリケーションにおいて、より高い性能向上を目指して開発されました。

Ruby 3.2のYJITはRuby 3.1よりも高速になり、メモリのオーバーヘッドも3分の1になっています。

YJITはx86-64とarm64/aarch64のCPU アーキテクチャと、Linux、 MacOS、BSDとその他のUNIXプラットフォームをサポート。今回のリリースではMacのM1/M2プロセッサ、AWS Graviton、Raspberry Pi 4 のARM64プロセッサに対応しています。

正規表現処理の高速化など

そのほかRuby 3.2では正規表現の処理を行うRegexpのマッチングアルゴリズムの改善による高速化やRegexpのタイムアウトの導入をはじめ、多数の改善や機能追加が行われています。詳細は「Ruby 3.2.0 リリース」や公式ドキュメントなどをご参照ください。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
サードパーティーがユーザーデータを知らぬ間に収集する副次的監視の時代を終わらせよう
セキュリティ
2021-01-19 09:58
アップル、自社開発の対話型AIシステム「ReALM」に関する論文を発表
IT関連
2024-04-04 04:14
インディーズ映画制作者にAIを活用したVFXを提供するWonder Dynamicsが2.7億円を調達
人工知能・AI
2021-04-12 21:15
「ChatGPT」、マルウェア作成に悪用される–Check Point調査
IT関連
2023-01-11 01:41
勝手に動き回って伸縮するパーティション登場 ソーシャルディスタンスとプライバシー確保 東北大学が開発 :Innovative Tech(1/2 ページ)
トップニュース
2021-08-14 03:40
NFTに仮想通貨は不要だが仮想通貨にはNFTが必要
その他
2021-03-30 23:39
基幹人財育成+共創型ラボでDXを実践–サッポロホールディングス(後編)
IT関連
2024-03-20 01:02
人気漫画「呪術廻戦」、作者体調不良で1カ月休載へ 編集部からの提案に「時代は変わった」の声
くらテク
2021-06-11 09:15
ブロックチェーン技術のスキルに関するニーズが上昇中–その理由とは?
IT関連
2023-02-01 19:54
Amazon、AWSの次期CEOに元幹部でTableauのアダム・セリプスキーCEOを指名
企業・業界動向
2021-03-25 20:58
SAPジャパン、国内AIエコシステムで戦略的パートナーシップ–他社製AIを連携活用
IT関連
2023-09-21 15:27
開発者の男女格差是正に向けて–業界の女性を支援する非営利団体の取り組み
IT関連
2022-03-26 17:44
業務で使う生成AI、国内企業の契約率は16%、個人での契約は19%。懸念点は情報漏洩や偽情報。JIPDECとITRの調査結果
業界動向
2024-03-27 19:30
マイクロソフト、自律型航空機のシミュレーションを「Project AirSim」で提供へ
IT関連
2022-07-21 11:24