Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ruby 3.0 対応 #2458

Open
23 of 63 tasks
ima1zumi opened this issue Feb 25, 2021 · 5 comments
Open
23 of 63 tasks

Ruby 3.0 対応 #2458

ima1zumi opened this issue Feb 25, 2021 · 5 comments
Labels

Comments

@ima1zumi
Copy link
Contributor

ima1zumi commented Feb 25, 2021

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
    • 書くことなさそう
  • 番号指定パラメータへの代入が警告から禁止になった

コマンドラインオプション

組み込みライブラリ

  • 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_externalUTF-8 になった Feature #16604
  • Fiber Scheduler が導入された
  • Add GC.auto_compact = true Feature #17176
  • Modified Hash#transform_keys and Hash#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

非互換

  • RegexpRange オブジェクトが freeze されるようになった Feature #8948 Feature #16377 Feature #15504
  • Hash#each が常に2要素配列をyieldするようになった Bug #12706
    • 最適化のバグ修正。書くことないかも
  • 標準出力がクローズされた後に出力しようとしてもEPIPE例外を投げないようになった Bug #14413
  • 定数の TRUEFALSENIL が定義されないようになった
    • 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
Copy link
Contributor

@osyo-manga
Copy link
Contributor

Modified Hash#transform_keys and Hash#transform_keys! Feature #16274

これは既に対応されていそうです。
see: a807a92

@ima1zumi
Copy link
Contributor Author

@osyo-manga
ありがとうございます 😄 反映しました。

@osyo-manga
Copy link
Contributor

以下修正済みです

@ima1zumi
Copy link
Contributor Author

ima1zumi commented Apr 5, 2021

@osyo-manga
ありがとうございます。反映しました〜

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants