ruby-trunk-changes r66838 - r66844

今日は 2.6 以降の Dir.glob の不具合修正などがありました。

shirosaki: r66838 2019-01-16 23:06:37 +0900

2.6 で Dir.glob のパターンの最後に "/" があってもディレクトリ以外にもマッチしてしまうという不具合があったので修正しています。 [ruby-core:91110] [Bug #15540]

nobu: r66840 2019-01-17 09:36:08 +0900

rubyspec に rb_str_modify() という API を呼ぶ拡張ライブラリを用意して、String オブジェクトの共有状態解除に使うようにしています。

svn: r66841 2019-01-17 09:36:10 +0900

version.h の日付更新。

ko1: r66842 2019-01-17 10:36:21 +0900

bootstraptest/runner.rb で MJIT が有効な時にタイムアウトを伸ばすために RubyVM::MJIT.enabled? を呼んでるところを defined? で定数の存在チェックしてから呼ぶようにしています。ここは BASERUBY で呼ばれるから古い ruby で実行する可能性があるみたいでした。
[追記]ささださん曰く「通常はBASERUBYじゃなくてminirubyで呼んでます。miniruby で動かせなくなってしまったのでしかたなく古い ruby で動かそうとして困ったので」とのことでした。[/追記]

ko1: r66843 2019-01-17 16:52:47 +0900

hash.c の Hash の要素数が少ない時の array 実装の時に使う RHASH_AR_TABLE_SIZE_DEC() を関数マクロから inline 関数に変更し、size が 0 になる時は bound も 0 にリセットするようにしています。

hsbt: r66844 2019-01-17 22:45:48 +0900

tool/rbinstall.rb の default gem のインストール部分でインストール先にすでに gemspec ファイルがあったら一旦削除するようにしています。 for the Ruby committers とありますが、まあつまり trunk でビルドし続けてる人は古いバージョンの? gemspec ファイルが残ってしまうので掃除するようにしているってことだと思います。 [ruby-core:77284] [Bug #12764]