From 9a1c06711d02ea291f467daff72b3c806431d2e4 Mon Sep 17 00:00:00 2001 From: "NARUSE, Yui" Date: Mon, 17 Nov 2025 22:41:16 +0900 Subject: [PATCH] Ruby 4.0.0 preview2 Released --- _data/branches.yml | 5 + _data/downloads.yml | 1 + _data/releases.yml | 31 +++++ ...2025-11-17-ruby-4-0-0-preview2-released.md | 122 ++++++++++++++++++ ...2025-11-17-ruby-4-0-0-preview2-released.md | 115 +++++++++++++++++ 5 files changed, 274 insertions(+) create mode 100644 en/news/_posts/2025-11-17-ruby-4-0-0-preview2-released.md create mode 100644 ja/news/_posts/2025-11-17-ruby-4-0-0-preview2-released.md diff --git a/_data/branches.yml b/_data/branches.yml index 57cf7f9159..e072df0e06 100644 --- a/_data/branches.yml +++ b/_data/branches.yml @@ -8,6 +8,11 @@ # date: date of first stable release (YYYY-MM-DD) # eol_date: date of EOL (YYYY-MM-DD) +- name: 4.0 + status: preview + date: + eol_date: + - name: 3.5 status: preview date: diff --git a/_data/downloads.yml b/_data/downloads.yml index 084020202c..7088d6d00a 100644 --- a/_data/downloads.yml +++ b/_data/downloads.yml @@ -4,6 +4,7 @@ # optional preview: + - 4.0.0-preview2 - 3.5.0-preview1 stable: diff --git a/_data/releases.yml b/_data/releases.yml index 3e8e8ac2c6..f46fedadf0 100644 --- a/_data/releases.yml +++ b/_data/releases.yml @@ -19,6 +19,37 @@ # In order to get the release listed on the downloads page, # you also need to add an entry to `_data/downloads.yml'. +# 4.0 series + +- version: 4.0.0-preview2 + date: 2025-11-17 + post: /en/news/2025/11/17/ruby-4-0-0-preview2-released/ + tag: v4_0_0_preview2 + stats: + files_changed: 3607 + insertions: 197451 + deletions: 285607 + url: + gz: https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.0-preview2.tar.gz + zip: https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.0-preview2.zip + xz: https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.0-preview2.tar.xz + size: + gz: 23444451 + zip: 28933540 + xz: 17554228 + sha1: + gz: 132e450bbee3f61ed0b463ed1e2bd3a3a324339c + zip: 48a235cfbfd4252dce81da870c792e32309e62b9 + xz: f8e8b98ea85ac82610ab601a21dc9a90c5c56a97 + sha256: + gz: 0a3330dae710302e11f7f0323e83219ab3c6517984691a312c662f329c5120e1 + zip: f5c68ee44dfcb76b61c07c437fa945814dfc516570b1c921506ac886960160ca + xz: 0b92b15466d77a9d7e59e4a75f050d42cd50fe96c951d2b3b9f8029394cd9a43 + sha512: + gz: b5e681cc84be59148485b9a2212dcf54d61cfee27431ceddb49bedc8baa913ec8b36da43242cb4f1791b25e4bfc1dcf72b5527288a0656f2933da898d0e0b40f + zip: 508c685e46a641c74e2968daf650559503ce2bcaac3403654713adb2345c3ede2bace929294a1367afecac5edd6b2c42fa833f5313456f78c79151d310c860cf + xz: 7afaa8d8e832ef0ded28f1caf874da69f16105e1b3aad5947c6911364159b4c6ebd3d7ea5d7d86708e9f2f06a047921b8302ca6e75ec429a3da846845f896976 + # 3.5 series - version: 3.5.0-preview1 diff --git a/en/news/_posts/2025-11-17-ruby-4-0-0-preview2-released.md b/en/news/_posts/2025-11-17-ruby-4-0-0-preview2-released.md new file mode 100644 index 0000000000..1b23f26f4e --- /dev/null +++ b/en/news/_posts/2025-11-17-ruby-4-0-0-preview2-released.md @@ -0,0 +1,122 @@ +--- +layout: news_post +title: "Ruby 4.0.0 preview2 Released" +author: "naruse" +translator: +date: 2025-11-17 00:00:00 +0000 +lang: en +--- + +{% assign release = site.data.releases | where: "version", "4.0.0-preview2" | first %} +We are pleased to announce the release of Ruby {{ release.version }}. Ruby 4.0 updates its Unicode version to 15.1.0, and so on. + +## Language changes + +* `*nil` no longer calls `nil.to_a`, similar to how `**nil` does + not call `nil.to_hash`. [[Feature #21047]] + +## Core classes updates + +Note: We're only listing notable updates of Core class. + +* Binding + + * `Binding#local_variables` does no longer include numbered parameters. + Also, `Binding#local_variable_get` and `Binding#local_variable_set` reject to handle numbered parameters. + [[Bug #21049]] + +* IO + + * `IO.select` accepts +Float::INFINITY+ as a timeout argument. + [[Feature #20610]] + +* String + + * Update Unicode to Version 15.1.0 and Emoji Version 15.1. [[Feature #19908]] + (also applies to Regexp) + + +## Standard Library updates + +Note: We're only listing notable updates of Standard librarires. + +* ostruct 0.6.1 +* pstore 0.2.0 +* benchmark 0.4.0 +* logger 1.7.0 +* rdoc 6.13.1 +* win32ole 1.9.2 +* irb 1.15.2 +* reline 0.6.1 +* readline 0.0.4 +* fiddle 1.1.6 + +## Compatibility issues + +Note: Excluding feature bug fixes. + + + +## Standard library compatibility issues + + +## C API updates + + +## JIT + +* YJIT + * YJIT stats + * `ratio_in_yjit` no longer works in the default build. + Use `--enable-yjit=stats` on `configure` to enable it on `--yjit-stats`. + * Add `invalidate_everything` to default stats, which is + incremented when every code is invalidated by TracePoint. + * Add `mem_size:` and `call_threshold:` options to `RubyVM::YJIT.enable`. +* ZJIT + * Add an experimental method-based JIT compiler. + Use `--enable-zjit` on `configure` to enable the `--zjit` support. + * As of Ruby 4.0.0-preview2, ZJIT is not yet ready for speeding up most benchmarks. + Please refrain from evaluating ZJIT just yet. Stay tuned for the Ruby 4.0 release. +* RJIT + * `--rjit` is removed. We will move the implementation of the third-party JIT API + to the [ruby/rjit](https://github.com/ruby/rjit) repository. + +## Miscellaneous changes + + + +See [NEWS](https://github.com/ruby/ruby/blob/{{ release.tag }}/NEWS.md) +or [commit logs](https://github.com/ruby/ruby/compare/v3_4_0...{{ release.tag }}) +for more details. + +With those changes, [{{ release.stats.files_changed }} files changed, {{ release.stats.insertions }} insertions(+), {{ release.stats.deletions }} deletions(-)](https://github.com/ruby/ruby/compare/v3_4_0...{{ release.tag }}#file_bucket) +since Ruby 3.4.0! + +## Download + +* <{{ release.url.gz }}> + + SIZE: {{ release.size.gz }} + SHA1: {{ release.sha1.gz }} + SHA256: {{ release.sha256.gz }} + SHA512: {{ release.sha512.gz }} + +* <{{ release.url.xz }}> + + SIZE: {{ release.size.xz }} + SHA1: {{ release.sha1.xz }} + SHA256: {{ release.sha256.xz }} + SHA512: {{ release.sha512.xz }} + +* <{{ release.url.zip }}> + + SIZE: {{ release.size.zip }} + SHA1: {{ release.sha1.zip }} + SHA256: {{ release.sha256.zip }} + SHA512: {{ release.sha512.zip }} + +## What is Ruby + +Ruby was first developed by Matz (Yukihiro Matsumoto) in 1993, +and is now developed as Open Source. It runs on multiple platforms +and is used all over the world especially for web development. diff --git a/ja/news/_posts/2025-11-17-ruby-4-0-0-preview2-released.md b/ja/news/_posts/2025-11-17-ruby-4-0-0-preview2-released.md new file mode 100644 index 0000000000..c912e80edc --- /dev/null +++ b/ja/news/_posts/2025-11-17-ruby-4-0-0-preview2-released.md @@ -0,0 +1,115 @@ +--- +layout: news_post +title: "Ruby 4.0.0 preview2 リリース" +author: "naruse" +translator: +date: 2025-11-17 00:00:00 +0000 +lang: ja +--- + +{% assign release = site.data.releases | where: "version", "4.0.0-preview2" | first %} +Ruby {{ release.version }} が公開されました。Ruby 4.0では、Unicodeバージョンの15.1.0へのアップデートなど様々な改善が行われています。 + + + +## 言語機能の変更 + + + +* `*nil` no longer calls `nil.to_a`, similar to how `**nil` does + not call `nil.to_hash`. [[Feature #21047]] + +## コアクラスのアップデート + +注: 複数のアップデートの中から注目すべきアップデートのみを掲載しています。 + +* Binding + + * `Binding#local_variables` does no longer include numbered parameters. + Also, `Binding#local_variable_get` and `Binding#local_variable_set` reject to handle numbered parameters. + [[Bug #21049]] + +* IO + + * `IO.select` accepts +Float::INFINITY+ as a timeout argument. + [[Feature #20610]] + +* String + + * Update Unicode to Version 15.1.0 and Emoji Version 15.1. [[Feature #19908]] + (also applies to Regexp) + + +## 標準ライブラリのアップデート + +注: 複数のアップデートの中から注目すべき標準ライブラリのアップデートのみを掲載しています。 + + + +## 互換性に関する変更 + +注: 不具合修正を除きます。 + + + +## 標準ライブラリの互換性の変更 + + + +## C API のアップデート + + +## JIT + +* YJIT + * YJIT stats + * デフォルトビルドでは `ratio_in_yjit` が機能しなくなりました。 + `--yjit-stats` で有効にするためには、`configure` で `--enable-yjit=stats` を使用してください。 + * トレースポイントによってすべてのコードが無効化されたときに増加する `invalidate_everything` をYJIT statsにデフォルトで追加します。 + * `RubyVM::YJIT.enable` に `mem_size:` と `call_threshold:` オプションを追加します。 +* ZJIT + * 実験的なメソッドベースのJITコンパイラを追加しました。 + `--enable-zjit` を `configure` で使用して `--zjit` のサポートを有効にしてください。 + * Ruby 4.0.0-preview2の時点で、ZJITはまだほとんどのベンチマークを高速化する準備が整っていません。 + ZJITの性能評価はRuby 4.0のリリースまでお控えください。 +* RJIT + * `--rjit` は削除されました。サードパーティのJIT APIの実装を + [ruby/rjit](https://github.com/ruby/rjit) リポジトリに移行します。 + +## その他の変更点 + + + +より詳細な情報は [NEWS](https://github.com/ruby/ruby/blob/{{ release.tag }}/NEWS.md) +か [commit logs](https://github.com/ruby/ruby/compare/v3_4_0...{{ release.tag }}) を参照してください。 + + +これらの変更により、Ruby 3.4.0から [{{ release.stats.files_changed }} ファイルが変更され、 {{ release.stats.insertions }} 行が追加され、 {{ release.stats.deletions }} 行が削除されました!deletions(-)](https://github.com/ruby/ruby/compare/v3_4_0...{{ release.tag }}#file_bucket) + + +## Download + +* <{{ release.url.gz }}> + + SIZE: {{ release.size.gz }} + SHA1: {{ release.sha1.gz }} + SHA256: {{ release.sha256.gz }} + SHA512: {{ release.sha512.gz }} + +* <{{ release.url.xz }}> + + SIZE: {{ release.size.xz }} + SHA1: {{ release.sha1.xz }} + SHA256: {{ release.sha256.xz }} + SHA512: {{ release.sha512.xz }} + +* <{{ release.url.zip }}> + + SIZE: {{ release.size.zip }} + SHA1: {{ release.sha1.zip }} + SHA256: {{ release.sha256.zip }} + SHA512: {{ release.sha512.zip }} + +## What is Ruby + +Rubyはまつもとゆきひろ (Matz) によって1993年に開発が始められ、今もオープンソースソフトウェアとして開発が続けられています。Rubyは様々なプラットフォームで動き、世界中で、特にWebアプリケーション開発のために使われています。