CHANGELOG v0.30.0
2019/08/01
[原文]
言語仕様
[破壊的変更] 抽象メソッドは返り値の型を明示しなければならなくなった(#7956、#7999、#8010)
[破壊的変更] 複数行にまたがった範囲リテラルは使用できなくなった(#7888)
マクロ
Annotations 型に args と named_args マクロメソッドを追加(#7694)
利便性向上のため、Type や Path における resolve、types マクロメソッドのAPIを統一(#7970)
標準ライブラリ
[破壊的変更] ダングリングポインタ問題を解決するため、UUID#to_slice を無くし UUID#bytes を追加(#7901)
[性能改善] 参照型の Box を改善. (#8016)
Random::ISAAC の初期シードを修正(#7977)
aarch64 に固有のメモリ問題を修正(#7983)
Benchmark.memory を追加(#7835)
StringPool にデフォルトのキャパシティを設定(#7899)
INI 型の各種メソッドに型制約を追加(#7831)
Logger のドキュメントを修正(#7898)
複数箇所のサンプルコードを修正(#8003)
数値
不正確な Int#% オーバーフローを修正. (#7980)
Float#to_s に合わせて小数部をもなたない場合も BigFloat#to_s が常に .0 を追加するよう変更(#7982)
テキスト
ユニコード代替文字の範囲生成を修正(#7924)
Collections
Enumerable#tally を追加(#7921)
Enumerable#reduce? に初期値を持たない場合のオーバーロードを追加(#7941)
Enumerable#min_by? のスペックを修正(#7919)
Serialization
[破壊的変更] JSON: トークンやパーサの種別に Symbol 型でなく専用の Enum 型を使用するよう変更(#7966)
YAMLのマッピングで値を String 型を含むユニオン型として解釈する場合に、String 型を最後に評価するよう変更(#7938)
class Foo
YAML.mapping(
bar: String?
)
end
bar: null
みたいな時に null が Nil型(nil) ではなく String 型("null")として解釈されてしまうのを抑止するため。
XML::Builder の要素名のバリデーションを行うよう変更(#7965)
JSONで数値のキーを許可(#7944)
YAML::Builder 型と YAML::Nodes::Builder 型に、alias と merge メソッドを追加(#7949)
ファイル
File.symlink に合わせて File.readlink を追加(#7858)
シンボリックリンクを作成する File.symlink に対して、シンボリックリンク先のパスを取得する File.readlink が追加された。
電柱商事