ruby-trunk-changes 2021-09-24

今日は addr2line.c の DWARF のレコードの対応強化や特別な Module を include した時のクラス継承リストに BasicObject が挟まることがある不具合修正などがありました。

[96c8964e0e] Nobuyoshi Nakada 2021-09-23 10:33:48 UTC

Marshal.load のテストに ruby2_keywords のフラグつきの Hash の dump 結果の Symbol の Encoding を無理矢理 UTF-7 に置換してみてエラーになるのを確認するテストを追加しています。

[8226c33bb5] Nobuyoshi Nakada 2021-09-22 15:23:37 UTC

marshal.c の ruby2_keywords_flag_check() という関数を symname_equal() に改名してより汎用的に Symbol 名が一致するか確認する関数にして呼び元から name_s_ruby2_keywords_flag を渡すようにしています。

[3b5923bca3] aycabta 2021-09-23 14:41:45 UTC

標準添付ライブラリ reline の Reline::LineEditor のダイアログ表示のスクロールバーのためのエスケープシーケンス出力を最後に "\e[0m" でリセットするように変更しています。

[63aba76893] aycabta 2021-09-23 18:08:33 UTC

3b5923bca3f6cdaddda59c4b52fed1706dd727e9 と同様に標準添付ライブラリ reline のエスケープシーケンスによる表示のリセットに "\e[39m\e[49" のかわりに "\e[0m" を使うように変更しています。

[3531c859a6] git 2021-09-23 18:08:48 UTC

version.h の日付更新

[f140965b97] xtkoba 2021-04-30 14:22:37 UTC

addr2line.c の ranges_include() という関数で DW_RLE_base_address というレコードのアドレスを加算するのを忘れてたのを修正しています。

[77e6715d67] xtkoba 2021-04-30 14:29:57 UTC

addr2line.c の DWARF の DW_RLE_start_length というレコードを正しく処理していなかったのを修正しています。 [ruby-core:103578] [Bug #17823]

[5d756118af] xtkoba 2021-08-18 21:01:24 UTC

addr2line.c の read_dw_form_addr() という関数で読みこむサイズに構造体 DebugInfoReader の format というメンバーを利用していたのを address_size を利用するように修正しています。たぶん現実的な環境では値は同じだと思いますが意味が異なってるんだろうな。

[edb34e3563] Alan Wu 2021-09-23 21:14:04 UTC

insns.def のコメント内の typo 修正。

[854fe9d1c1] Burdette Lamar 2021-09-23 23:08:49 UTC

Range#== および Range#eql? の rdoc 用コメントの typo 修正。 https://github.com/ruby/ruby/pull/4889

[65285bf673] Nobuyoshi Nakada 2021-09-23 15:55:11 UTC

Module を継承したクラスを作って、そのクラスを include する(Module を継承してるから include できる、のか?)と Module#ancestors 内に BasicObject が挟まることがあるという不具合を修正しています。いやー Module を継承したクラスがモジュールとして扱えるというの知らなかった。というかそれはありなんだろうか? この不具合は Module#initialize_copy の不具合修正のために未初期化のマークとして struct RClass::super に rb_cBasicObject を入れるようにしておいたのがそのまま残る場合ああってその結果できてしまったものみたいで、rb_class_modify_check() にも初期化(super をクリアする)処理を追加して修正しています。 [ruby-core:105374] [Bug #18185]

[b929af430c] Nobuyoshi Nakada 2021-09-23 16:30:00 UTC

65285bf673914424e960671d1d35e357c455985e の続きで Module の未初期化であることをマークするための方法として struct RClass::super を使うのをやめて flags に RUBY_FL_USER5 のビットフラグを利用するようにしています。 [ruby-core:105374] [Bug #18185]

[63297c2ca4] Nobuyoshi Nakada 2021-09-24 01:05:17 UTC

include/ruby/atomic.h の rbimpl_atomic_inc() を inline 関数化したものの定義に HAVE_GCC_ATOMIC_BUILTINS か HAVE_GCC_SYNC_BUILTINS が定義済みの時に rbimpl_atomic_xxx() という関数群を利用する実装を追加しています。MinGW での警告抑制のためだそうです。

[b1ab1ee046] huangduirong 2021-09-09 07:24:41 UTC

rubygems の警告メッセージ出力時に source の URI にパスワード部分が含まれている場合にそれをマスクする処理を Gem::Uri#redacted に委譲するようにして、オリジナルのインスタンスを破壊的変更してしまうのを避けるようにしています。

[4e7f085cf7] David Rodríguez 2021-09-23 09:42:40 UTC

63109976bef20a7141f18fc33d6d8a867c3a7fc1rubygems がメッセージ出力時に Gem::Uriインスタンスを再度 Gem::Uri.new に渡してたのを冗長としてやめていましたが、やっぱり Gem::Uri#redact を呼び出して変更するので必要だったのに気がついたようで revert しています。

[61aedb28ef] Lucas Kanashiro 2021-09-23 21:25:38 UTC

rubygems のテストで skip を利用していたところを pend に変更しています。

[0eb679f70c] Nobuyoshi Nakada 2021-09-24 02:36:42 UTC

WindowsAPI の HCRYPTPROV という型の値を INVALID_HANDLE_VALUE という定数と比較していたのをやめて INVALID_HANDLE_VALUE を HCRYPTPROV 型に明示的にキャストした定数 INVALID_HCRYPTPROV というのを導入してこれと比較するようにしています。 HCRYPTPROV は HANDLE 型じゃないからとのことですがHANDLE とそうでない整数型とはなにかセマンティクスが違うのかな。

[845c017e08] Nobuyoshi Nakada 2021-09-24 03:31:20 UTC

win32/win32.c の kernel32.dll の関数を取得している部分のいくつかに Windows Vista または Windows Server 2008 以降で利用可能なシンボルというコメントを追記しています。