-
Notifications
You must be signed in to change notification settings - Fork 339
Open
Labels
Description
3.0 の変更点をまとめてチェックリストにしました。 叩き台として作ったので自由に編集してください。
builtin library はあまり見ていません。また、issue 執筆時点で対応済のものがあるかどうかはほとんど確認していません。
作業が終わったらこちらの issue にリンク or コメントするか、直接この issue を編集していただけるとありがたいです 🙏
言語の変更
- キーワード引数の分離 Feature #14183
- ブロックがキーワード引数を受け取る場合の意味の整理 Feature #16166
- 引数委譲の記法の拡張 Feature #16378
- パターンマッチが正式機能になった Feature #17260
- 右代入が導入された (EXPERIMENTAL) Feature #17260
- 1行パターンマッチが再設計された (EXPERIMENTAL) Feature #17371
- findパターンが追加された (EXPERIMENTAL) Feature #16828
- 一行メソッド定義が追加された (EXPERIMENTAL) Feature #16746
- 式展開を含む文字列リテラルは、frozen-string-literal: true で freeze しなくなった Feature #17104
- 書くことなさそう
- RBSの追加
- TypeProfの追加
- deprecated警告がデフォルトで出ないことになった Feature #16345
-
$SAFE
と$KCODE
の削除 Feature #16131 Feature #17136 - シングルトンクラス定義の中での yield が禁止になった Feature #15575
- 書くことなさそう
- スーパークラスでクラス変数を再定義してしまったとき、サブクラスで参照したときに例外が出るようになった Bug #14541
- 書くことなさそう
- 番号指定パラメータへの代入が警告から禁止になった
コマンドラインオプション
-
--help
にページャーがついた Feature #16754 -
--backtrace-limit
オプション Feature #8661
組み込みライブラリ
- Array のサブクラスのメソッドが、サブクラスではなく、Array クラスのオブジェクトを返すようになった Bug #6087
- String のサブクラスのメソッドが、サブクラスではなく、String クラスのオブジェクトを返すようになった Bug #10845
- Modified
Binding#eval
Kernel#eval
Bug #4352 Bug #17419- 引数を受け取ったときの挙動が変更になった
- Modified
ConditionVariable#wait
Feature #16786 - Modified
Dir.glob
Dir.[]
Feature #8709- デフォルトでソートされるようになった
- Add
ENV.except
Feature #15822 - Modified
ENV
Feature #12650- ロケールによらず
UTF-8
になった
- ロケールによらず
- Add
IBM720
Encoding Feature #16233 - Windows 環境でのデフォルトの
Encoding.default_external
がUTF-8
になった Feature #16604 - Fiber Scheduler が導入された
- Add
GC.auto_compact = true
Feature #17176 - Modified
Hash#transform_keys
andHash#transform_keys!
Feature #16274 - Add
Hash#except
Feature #15822 - Modified
IO#nonblock?
Feature #16786- デフォルトで
true
を返すようになった
- デフォルトで
- Modified
IO#wait_readable, IO#wait_writable, IO#read, IO#write and other related methods
Feature #16786 - Modified
Kernel#clone
- Modified
Kernel#lambda
- Modified
Kernel.sleep
- Modified
Module#include and Module#prepend
- Modified
Module#attr_accessor, Module#attr_reader, Module#attr_writer and Module#attr
Feature #17314 - Modified
Module#alias_method
Feature #17314 - Modified
Proc#== and Proc#eql?
Feature #14267 - Modified
Queue#pop, SizedQueue#push
Feature #16786 - Add Ractor Class
- Modified
Random::DEFAULT
- Modified
Symbol#to_proc
- lambda を返すようになった
- Add
Symbol#name
- frozen string literal を返す
- Add
Fiber.set_scheduler
Fiber.scheduler
Feature #16786 - Add
Fiber.blocking?
Feature #16786 - Add
Thread#join
Feature #16786 - Add
Thread.ignore_deadlock
Bug #13768 - Modified
Warning#warn
Feature #17122
標準添付ライブラリ
ruby/NEWS.md at v3_0_0 · ruby/ruby
非互換
-
Regexp
とRange
オブジェクトが freeze されるようになった Feature #8948 Feature #16377 Feature #15504 -
Hash#each
が常に2要素配列をyieldするようになった Bug #12706- 最適化のバグ修正。書くことないかも
- 標準出力がクローズされた後に出力しようとしてもEPIPE例外を投げないようになった Bug #14413
- 定数の
TRUE
とFALSE
とNIL
が定義されないようになったObject
クラス
-
Integer#zero?
が改めて定義された Misc #16961- 今までは
Numeric#zero?
を使っていた
- 今までは
-
Enumerable#grep
Enumerable#grep_v
に正規表現を渡してブロックを渡さなかった場合、$~
を更新しなくなった Bug #17030 - open-uri が
Kernel#open
を上書き定義しなくなった Misc #15893- 今後は
URI.open
を使う
- 今後は
-
SortedSet
が削除された- 別の gem に分離された
標準添付ライブラリの非互換
- 以下の gem が stdlib から default gems になり、rubygems.org からアップデート可能になった
- 書くことないかも
English
abbrev
base64
drb
debug
erb
find
net-ftp
net-http
net-imap
net-protocol
open-uri
optparse
pp
prettyprint
resolv-replace
resolv
rinda
set
securerandom
shellwords
tempfile
tmpdir
time
tsort
un
weakref
digest
io-nonblock
io-wait
nkf
pathname
syslog
win32ole
- 以下の extensions が stdlib から default gems になった
- 書くことないかも
digest
io-nonblock
io-wait
nkf
pathname
syslog
win32ole
- net-telnet と xmlrpc が bundled gem ではなくなった
- SDBM が standard library ではなくなった
- WEBrick が standard library ではなくなった
C API
ruby/NEWS.md at v3_0_0 · ruby/ruby
静的解析
ruby/NEWS.md at v3_0_0 · ruby/ruby
その他の変更点
ruby/NEWS.md at v3_0_0 · ruby/ruby
ref
osyo-manga and hanachinSixeight and hanachin