ruby-trunk-changes 2020-02-04

今日は標準添付ライブラリ delegate の最適化や require 内で例外が発生した時に $LOADED_FEATURES にファイルパスを追加しないようにする修正などがありました。

[f2552216d4] Jean Boussier 2020-02-03 11:29:37 UTC

標準添付ライブラリ delegate で Kernel#respond_to? を UnboundMethod オブジェクトとして取り出して bind して呼び出すのを毎回 instance_method を呼んで UnboundMethod を作るのを避けて定数に格納しておいて使いまわすようにしています。また常に bind_call するのではなくて Kernel#respond_to? で respond_to? メソッドが呼べるかどうかチェックして、そのオブジェクトに respond_to? メソッドがあったらそれを直接呼ぶようにしています。うーん、これはいいのかな。respond_to? の再定義を尊重すべきなのかどうか、というのとせめて arity もみたほうがいいような気もする(過去のコードで respond_to? の arity が 1 のもありそう)。

[e7739b600f] git 2020-02-03 16:16:41 UTC

version.h の日付更新

[a4fca28b80] Lars Kanis 2020-01-29 14:23:03 UTC

Encoding.default_external と Encoding.default_internal の rdoc 用コメントに script encoding が使われる記述の削除と出力時の変換が internal_encoding が明示されてる時だけ行なわれることを追記しています。

[7c165bd7d9] Mikhail Novosyolov 2020-01-26 13:37:34 UTC

テスト用拡張ライブラリの extconf.rb ext/-test-/popen_deadlock/extconf.rb で LinuxSolaris で $LDLFLAGS に -ldl オプションを追加しています。 dlsym(3) を使うテストなので dynamic link 用にビルドしないといけないとかかな。

[7a51d979cf] Lars Kanis 2020-01-27 12:15:46 UTC

readline のテストと -E オプションのテストなどで Windows 環境で Encoding として locale encoding を使っていたところを external encoding を利用するようにしています。ふーむ、なんか Windows では locale encoding を使うことが多いのでそういうものだと思っていたけど、まあ現状の実装に合わせた修正ということですかね。

[9cdc964d07] Nobuyoshi Nakada 2020-02-04 05:41:52 UTC

parser で CR (\r) を警告していたのを parser_cr() の中から parser_yylex() に移動して、文字列リテラル内の CR について警告が出てしまうのを抑制しているようです。

[7d6903dc47] Nobuyoshi Nakada 2020-02-04 06:21:49 UTC

require したスクリプト内で例外が発生した時には $LOADED_FEATURES にはそのファイルを追加しないようにして、require が例外で抜けた時に再度 require した時に読み直せるようにしています。 2.7 からそうなってたらしい。 [ruby-core:97057] [Bug #16607]

[0529fead36] "NARUSE, Yui" 2020-02-04 10:29:27 UTC

テスト用のユーティリティ assert_separately で pipe を生成して子プロセスからのオブジェクトを受け取るのに Marshal.dump したものを stdout から受け取るのではなくてその pipe で受け渡すようにしています。