ruby-trunk-changes 2019-06-18

今日は文字列操作のメモリリークの修正や共有文字列の操作で一部異常終了になる可能性があるケースがあった不具合修正などがありました。

[01b3a38043] Nobuyoshi Nakada 2019-06-17 12:36:41 UTC

if/unless 文を代入の右辺としていて、if または else (elsif) の節のひとつに next や break などのループやブロックから抜ける制御文があると "void value expression" という SyntaxError になってしまい他の条件の時には値があっても parse 時点でエラーになる不具合を修正しています。最近入ったのかな、と思いきや 1.8.7 でもおきるらしいのでだいぶ昔からですね。 [ruby-core:93199] [Bug #15932]

[c8e9e0b74b] Nobuyoshi Nakada 2019-06-17 13:30:52 UTC

01b3a3804334be19d013526d3edde2b84399ae43 の追加修正で、代入の右辺が後置 if/unless つきの break の時も SyntaxError にしないようにしています。 [ruby-core:93199] [Bug #15932]

[801d0d9dd7] Nobuyoshi Nakada 2019-06-17 14:25:47 UTC

a064e46762ec0bfd40e6a04242d9e62fdd21e1f0 の Bison 3 対応を古い bison でも動くようにするための tool/pure_parser.rb 実行を ripper 向けの ripper.y 生成時にも行うようにしています。

[c8edf70cd2] Jeremy Evans 2019-06-11 19:05:04 UTC

File.executable? と File.executable_real? の rdoc 用コメントに Windows での executable の概念は拡張子で判定される? というのを追記しています。 [ruby-core:91822] [Bug #15664]

[39a8c71424] git 2019-06-17 21:05:43 UTC

version.h の日付更新

[9dec4e8fc3] Alan Wu 2019-05-13 00:22:37 UTC

3f9562015e651735bfc2fdd14e8f6963b673e22a および c06ddfee878524168e4af07443217ed2f8d0954b の String オブジェクトの共有の参照関係を修正したものと同様に str_replace_shared_without_enc() でも shared string からの共有文字列作成時に大元のオブジェクトを参照元として登録するようにしています。 [ruby-core:93207] [Bug #15934]

[c770c98ac4] git 2019-06-18 03:21:38 UTC

9dec4e8fc3a6018261834b5ac9b9877f787b97ca のインデントのタブを空白に展開。

[8b3774be3d] Nobuyoshi Nakada 2019-06-18 04:27:05 UTC

str_make_independent_expand() で文字列のバッファを拡張してすりかえた後に古いバッファを解放し忘れていた典型的なメモリリークを修正しています。 [ruby-core:93208] [Bug #15935]

[e6aa0a61fa] Kazuhiro NISHIYAMA 2019-06-18 08:30:01 UTC

doc/globals.rdoc に $, と $; への nil 以外の代入は deprecated になったことを追記しています。