Ruby開発プロジェクトは4月3日、Ruby 3.2シリーズの最初のプレビュー版である「Ruby 3.2.0 Preview 1」をリリースしました(ruby-lang.org)。現在公式サイトよりソースコードをダウンロードすることができます。
Ruby 3.2.0 Preview 1の新機能としてはまず、WASIベースのWebAssemblyサポートがあげられています。現在はThread API以外のbasic testとbootstrap testをパスした状態で、これにより、ブラウザやサーバーレスエッジ環境、その他のWebAssembly/WASI環境でCRubyのバイナリが利用できるようになるとのことです。
また、正規表現マッチングにタイムアウトを指定できるようになり、適切にRegexp.timeoutを設定することで、DoSのリスクを防止、または大幅に緩和することができるようになっています。Regexp.timeoutはグローバルな設定で、一部の正規表現にだけ異なるタイムアウトを設定したい場合、Regexp.newのtimeoutキーワードを使用します。
Regexp.timeout = 1.0 long_time_re = Regexp.new("^a*b?a*$", timeout: nil) # タイムアウトなし long_time_re =~ "a" * 50000 + "x" # 割り込まれない
その他Find patternの実験的機能からの昇格や、libyaml、libffiのようなサードパーティ製ライブラリのソースコードの同梱の廃止、パフォーマンスの改善、標準ライブラリのアップデートなど多数の変更が行われています。
3.1からの変更点を含め詳細はこちらで確認可能です。
タイトル | Ruby | |
---|---|---|
公式サイト | http://www.ruby-lang.org/ja/ | |
ソフトアンテナ | https://softantenna.com/softwares/1964-ruby | |
説明 | オブジェクト指向スクリプト言語。 |