オープンソースのプログラミング言語であるRubyの開発チームは、最新バージョンとなる「Ruby 3.2.0」を12月25日にリリースしている。
「Ruby 3.2.0」では、WASIベースのWebAssemblyへのコンパイルがサポートされており、ブラウザやサーバレスエッジ環境、その他のWebAssembly/WASI環境でCRubyのバイナリが利用できるようになった。現在、この移植版はThread API以外のbasic testとbootstrap testをパスしている。
WASIベースのWebAssemblyへのコンパイルのサポートは、開発者がCRubyをWebAssembly環境で利用することを促進し、CRubyをWebブラウザ上で試せるようになった。
現時点では、WASIとWebAssemblyにFiberや例外、GCを実装するための機能に一部足りないものがある。CRubyでは、このギャップを埋めるためにユーザランドで実行を制御可能なAsyncifyというバイナリ変換技術を使っている。
さらに、WASI上にVFSを実装することによって、Rubyアプリを単一の.wasmファイルに容易にパッケージ化でき、Rubyアプリの配布が容易になった。
そのほか、YJITが実用段階になるとともに、ReDoSに対するRegexpの改善としてRegexpのマッチングアルゴリズムの改善と、Regexpへのタイムアウト導入が行われている。また、syntax_suggestの機能がRubyに統合されたほか、TypeErrorとArgumentErrorの引数を下線表示するようになり、匿名の可変長引数と可変長キーワード引数はメソッドパラメータとしてだけではなく、引数としても使えるようになるなど、非常に多くの機能追加・改善が行われた。
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です