Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions _data/branches.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
1 change: 1 addition & 0 deletions _data/downloads.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
# optional
preview:

- 4.0.0-preview2
- 3.5.0-preview1

stable:
Expand Down
31 changes: 31 additions & 0 deletions _data/releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
122 changes: 122 additions & 0 deletions en/news/_posts/2025-11-17-ruby-4-0-0-preview2-released.md
Original file line number Diff line number Diff line change
@@ -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.
115 changes: 115 additions & 0 deletions ja/news/_posts/2025-11-17-ruby-4-0-0-preview2-released.md
Original file line number Diff line number Diff line change
@@ -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アプリケーション開発のために使われています。
Loading