Ruby 2.0.0 リファレンスマニュアル
> NEWS for Ruby 2.3.0
NEWS for Ruby 2.3.0
このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
それぞれのエントリーは参照情報があるため短いです。
十分な情報と共に書かれた全ての変更のリストは ChangeLog ファイルか bugs.ruby-lang.org の issue を参照してください。
2.2.0 以降の変更
言語仕様の変更
- frozen-string-literal プラグマ:
- safe navigation operator (ぼっち演算子):
obj.try! {} # valid
obj&. {} # syntax error
- 引数はメソッドが呼び出された場合のみ評価されます。
obj.try!(:foo, bar()) # bar() は常に評価されます
obj&.foo(bar()) # bar() は条件付きで評価されます
obj&.attr += 1
- did_you_mean gem:
- 名前のタイポによって NameError や NoMethodError が起きたときに、自動的に他の似た名前を提案してくれます。
"Yuki".starts_with?("Y")
# => NoMethodError: undefined method `starts_with?' for "Yuki":String
# Did you mean? start_with?
組み込みクラスの更新
組み込みクラスの互換性 (機能追加とバグ修正を除く)
- pack/unpack (Array/String)
標準添付ライブラリの更新 (優れたもののみ)
標準添付ライブラリの互換性 (機能追加とバグ修正を除く)
- io/console
- io-console 0.4.5になりました。
ライセンスが BSD 2-clause "Simplified" License に変更されました。
組込みのグローバル変数の互換性に影響のある変更
C API の更新
- rb_define_class_id_under() は既にクラスが定義済みなのに、
そのスーパークラスが与えられたスーパークラスと一致しないとき
Rubyレベルの定義と同じように TypeError を発生させるようになりました。
- rb_compile_error_with_enc(), rb_compile_error(), rb_compile_bug() が非推奨になりました。
これらの関数は公開されていますが、内部利用のためなので外部のライブラリでは使用するべきではありません。
サポートしているプラットフォームの変更
- OS/2 はもうサポートされていません。
- BeOS はもうサポートされていません。
- Borland-C はもうサポートされていません。
- Haiku は安定しています。ベストエフォートです。
実装の改善
- オブジェクトアロケーションとメソッド呼び出しのために機械語レベルのチューニングをしました。
r52099, r52254