ruby-trunk-changes 2021-03-18

今日は defined? 用の命令のリファクタリング/最適化(?)や irb のテストの環境変数 XDG_CONFIG_HOME 対策などがありました。

[5b54dc9ab2] Kazuhiro NISHIYAMA 2021-03-17 12:00:46 UTC

win32/Makefile.sub で生成する config.h から既に不要になっている DEFAULT_KCODE の定義を削除しています。

[1d80d70314] Yusuke Endoh 2021-03-17 14:13:22 UTC

autogen.sh をディレクトリつきのパスで指定して実行した時に srcdir を切り出すのに bash の機能の変数展開を利用していたのを dirname コマンドを利用するように変更しています。

[366e88e508] Nobuyoshi Nakada 2021-03-17 14:51:00 UTC

README.md および README.ja.md のビルド方法の記述として autoreconf のかわりに autogen.sh を実行する方法を記述しています。またいくつかマークアップや文面の修正。

[17bf478de1] Aaron Patterson 2021-03-16 22:12:37 UTC

VM 命令の defined のオペランドの needstr を rb_iseq_defined_string() の返す文字列オブジェクトを埋め込むようにしています。

[c3971bea33] Aaron Patterson 2021-03-16 22:16:51 UTC

17bf478de14d0dd9098df65282f7f419cd792599 の続きで needstr が真偽値(Qtrue, Qfalse) じゃなくて文字列オブジェクトそのものを渡せるようになったので vm_defined() の第5引数が不要になったということで削除しています。

[ea817c60fc] Aaron Patterson 2021-03-16 22:25:37 UTC

17bf478de14d0dd9098df65282f7f419cd792599 からの defined 命令の変更の続きで VM 命令 defined の定義で変数を初期化しておくことで不要な else 節を削っています。また check_respond_to_missing() の戻り値の型を enum defined_type から VALUE に変更して Qtrue/Qfalse を返すようにしています。さらに vm_defined() の実装で type による分岐内で対応する rb_xxx_defined() 関数を呼び出すようにリファクタリングしています。なんとなくなにかの修正のためにやってそうですが対応しそうなチケットなどはみつけられず。

[8359821870] Aaron Patterson 2021-03-16 22:30:47 UTC

17bf478de14d0dd9098df65282f7f419cd792599 からの一連の defined? の実装の変更の続きで rb_iseq_defined_string() で返す文字列オブジェクトを fstring にしています。これにより ObjectSpace.memsize_of での考慮が不要になったため rb_vm_t::defined_strings メンバーを削除しています。

[04a814931a] Aaron Patterson 2021-03-17 16:10:42 UTC

check_respond_to_missing() および vm_defined() の戻り値を VALUE から bool に変更して Qtrue/Qfalse のかわりに C の true/false を使うようにしています。

[05ebaee80e] git 2021-03-17 17:55:53 UTC

version.h の日付更新

[e0dd072978] Kazuhiro NISHIYAMA 2021-03-18 06:20:41 UTC

irb のテストで環境変数 XDG_CONFIG_HOME が設定されているとそちらから irbrc を読もうとして環境によっては失敗してしまうことがあったので、環境変数を一時的に削除しておくようにしています。

[85f99f4b71] Kazuhiro NISHIYAMA 2021-03-18 09:07:18 UTC

e0dd072978e6c2c8180e75617e7ee37830caefa3 と同様に irbhistory file のテストでも環境変数 XDG_CONFIG_HOME を一時的に削除しておくようにしています。