ruby-trunk-changes 2019-05-08

今日は Module#const_defined? に文字列を渡した時に autoload が誤動作する不具合修正や、昨日 GitHub に誤まって push された変更の再投入などがありました。

[4dc5d3c5dd] Koichi Sasada 2019-05-07 14:10:43 +0900

debug counters に GC の保守的なポインタの判定でどの分岐を抜けたかを数えるカウンタを追加しています。

[6786fe44dc] git 2019-05-07 17:36:10 +0900

version.h の日付更新。

[7d805e67f3] Jean Boussier 2019-05-07 21:20:01 +0900

Moddule#const_defined? で引数に String を渡すと autoload が発火してしまうという不具合を修正しています。 [ruby-core:92351] [Bug #15780]

[a47f598d77] Lourens Naudé 2019-05-07 21:58:55 +0900

正規表現で部分マッチした位置を記憶するレジスタのサイズをメモリ確保する時の最小サイズである定数マクロ ONIG_NREGION を 10 から 4 に減らしています。2 の累乗にしたいというのと、多くの場合そんなにたくさん部分マッチしないからということみたいです。 https://github.com/ruby/ruby/pull/2135
昨日 c3cf1ef9bb という commit hash で GitHub に入ったやつのリトライというか再 push です。

[5eb5613fef] Kazuhiro NISHIYAMA 2019-05-07 22:53:45 +0900

tool/bisect.sh の使いかたのコメントで git-svn を前提としていた部分を修正しています。

[45b125eca7] Hiroshi SHIBATA 2019-05-07 23:16:26 +0900

ext/readline/readline.c のコメントに書いてあったリポジトリ URL を修正しています。

[efda52ba62] Hiroshi SHIBATA 2019-05-07 23:31:03 +0900

同じく lib/webrick/webrick.gemspec に書いてあったリポジトリの URL も cgit のものに修正しています。

[d56b0cb554] Kazuhiro NISHIYAMA 2019-05-08 11:16:23 +0900

標準添付ライブラリ find の rdoc 用コメントで ? 演算子による1文字文字列を使った書きかたがサンプルにあったのを String#start_with? による書きかたに変更しています。

[6ec43d3d04] git 2019-05-08 11:18:20 +0900

version.h の日付更新。

[229e5053a1] Takashi Kokubun 2019-05-08 14:59:21 +0900

.travis.yml の build matrix の rubyspec 実行用のやつで mspec のオプションに -fs をつけていたのを消しています。

[a7cbb65956] Takashi Kokubun 2019-05-08 15:13:34 +0900

rubyspec の autoload のテストで Module#const_defined? に文字列渡した時のテストを 2.7以前のみで実行するようにしています。 7d805e67f3275aef066d77aa9c32bef715c362ed で修正した挙動が rubyspec ではちゃんとテストされてたんですね(rubyspec は割と現状の挙動を追認するように書かれてておかしい仕様というかぶっちゃけバグもそのままその挙動を記述しているのでこのようなことがたびたび起きる)。 [ruby-core:92351] [Bug #15780]

[d736080c8b] Nobuyoshi Nakada 2019-05-08 15:45:13 +0900

a7cbb659566b4b9114cc2a00f036e7a88300b30d で追加した rubyspec の autoload のテストでの version による guard を ruby_bug というのを使うようにしてメッセージにチケットの参照を追加しています。なるほどこういう guard があった(できた?)のか。

[60869ebd00] Takashi Kokubun 2019-05-08 16:26:01 +0900

Wercker で --jit オプションつきのテストでエラーが発生した時に一時ディレクトリに残っている MJIT 用の一時ソースファイルの内容を表示するようにスクリプトを生成させるように wercker.yml を編集しています。

[b0965cc2d6] Takashi Kokubun 2019-05-08 16:26:53 +0900

60869ebd005dc21e03e5f3cf9b517ff761781e80 の続きで生成したシェルスクリプトに実行権限を不要するようにしています。

[e8e415b534] Kazuhiro NISHIYAMA 2019-05-08 16:46:18 +0900

r67347 以降でちょくちょくデバッグ用のコマンドを追加している Travis-CI の macOS で時々 Permission Denied なエラーになるやつで make install が失敗したら環境変数 COPY に cp -f をセットして再度 make install を試すようにしています。

[a1bab3d1a3] Takashi Kokubun 2019-05-08 16:51:39 +0900

60869ebd005dc21e03e5f3cf9b517ff761781e80 で Wercker でデバッグシェルスクリプトを作る時にその shell で変数が展開されてしまわないようにクオートを追加しています。

[c54d5872fb] Nobuyoshi Nakada 2019-05-08 17:00:12 +0900

mkmf.rb の dir_config で結果をキャッシュするようにして、have_library, find_library, have_header などで常に dir_config を呼んでおくようにしています。 --with-xxx とかのオプションが自動で効くようにするということだと思いますがコミットログに [EXPERIMENTL] って書かれてるので実験的な試みのようです。もしかすると拡張ライブラリのビルドの互換性に影響があるかもしれないのかな。

[29fcb37a83] Nobuyoshi Nakada 2019-05-08 17:00:12 +0900

defs/gmake.mk の変数名の typo 修正。代入してるところも参照してるところも間違ってたので動作には問題なかったと思われます。

[a95ca6d5e9] Takashi Kokubun 2019-05-08 17:30:15 +0900

ruby 本体のテストに使う test/unit 自体のテストで --hide-skip ってオプションのテストで MJIT が有効だとメッセージが追加で出るためテストがこけることがあるようなのでそれを削ってチェックするようにしています。