ruby-trunk-changes 2023-07-01

今日は主にマクロで preprocessor 分岐していたのを通常の if 文での分岐にする変更や正規表現リテラルのパースの不具合修正などがありました。

[58386814a7] Peter Zhu 2023-06-29 20:31:35 UTC

free(3) および xfree() を呼ぶ前に渡すポインタが NULL でないことをチェックしている分岐は不要として削除しています。

[9398734010] tomoya ishida 2023-06-30 14:23:19 UTC

irb でコードをペーストした時のインデントの再計算の対応を追加しているようです。 https://github.com/ruby/irb/pull/607

[d8d7591e6f] Nobuyoshi Nakada 2023-06-28 12:55:25 UTC

GitHub Actions のいろんなコンパイラオプションを試す workflow で -DDEBUG_FIND_TIME_NUMGUESS というマクロ定義を追加するオプションをつけたビルドをコメントアウトして無効にしています。

[7a0a218dff] Nobuyoshi Nakada 2023-06-28 12:58:55 UTC

同じく GitHub Actions のいろんなコンパイラオプションを試す workflow で -DDEBUG_INTEGER_PACK をつけてビルドする設定をコメントアウトしています。そして実際に bignum.c で DEBUG_INTEGER_PACK で preprocessor 分岐していたところを static 変数による分岐にしてその変数の初期化のとろこを preprocessor で分岐するようにしています。また DEBUG_INTEGER_PACK の未指定時には RUBY_DEBUG を参照するようにしています。

[5204ad56e1] Nobuyoshi Nakada 2023-06-28 13:03:03 UTC

gc.c で参照されている GC_DEBUG_STRESS_TO_CLASS という定数マクロを RUBY_DEBUG でデフォルト値を設定するようにしています。またここでも GitHub Actions のいろんなコンパイラオプションを試す workflow の -DGC_DEBUG_STRESS_TO_CLASS を指定する設定をコメントアウトしています。

[469e644c93] Nobuyoshi Nakada 2023-06-28 13:45:34 UTC

vm_callinfo.h で参照している USE_EMBED_CI というマクロも preprocessor 分岐でなく定数マクロを if 文で参照するようにしています。また GitHub Actions の workflow での -DUSE_EMBED_CI=0 の指定をする設定をコメントアウトしています。

[ac0163949a] Nobuyoshi Nakada 2023-06-28 13:54:13 UTC

symbol.c で参照していた USE_SYMBOL_GC というマクロも preprocessor 分岐に使うのではなくて定数マクロとして定義して通常の if 文で参照するようにしています。

[e7dc8f0b27] Nobuyoshi Nakada 2023-06-28 14:04:11 UTC

SYMBOL_DEBUG というマクロも preprocessor 分岐に使うのではなく通常の if 文の条件として参照するように変更しています。

[c1432a4816] Nobuyoshi Nakada 2023-06-28 15:08:36 UTC

USE_THREAD_CACHE マクロで preprocessor 分岐していたところも通常の if 文の条件で参照するようにしています。また未使用なので #if 0 でコメントアウトしていた関数の定義などもコメントアウト状態を解除して呼び元で条件分岐するようにしています。ここまでの preprocessor 分岐をやめる変更はコンパイル時の指定によって関数などの未定義や未使用などが起きるのを避けるためのトリックなのかなという感じですね。

[0d0841ad4c] Nobuyoshi Nakada 2023-06-30 08:52:21 UTC

USE_LAZY_LOAD というマクロも preprocessor 分岐で使わず通常の if 文で参照するようにしています。また GitHub Actions の -DUSE_LAZY_LOAD オプションをつけてビルドする設定をコメントアウトしています。

[39933496ae] Nobuyoshi Nakada 2023-06-28 15:14:29 UTC

ractor.c の USE_TRANSIENT_HEAP が定義されている時の関数の prototype 宣言が重複していたとのことで削除しています。

[d49a92d036] Kevin Newton 2023-06-30 18:28:54 UTC

docs/fuzzing.md というドキュメントを追加しています。 yarp のリポジトリからのマージみたいです。あと doc/encodings.rdoc のリンクが https://docs.ruby-lang.org のサイトへの絶対 URL になってたのを rdoc-ref を使うように戻しています。これは yarp からのマージとは関係なさそうだけど巻き戻り?

[41779fede0] David Rodríguez 2023-06-30 17:00:18 UTC

bundler に同梱している net-http-persistent のバージョンを 4.0.2 に更新しています。

[1bc8838d60] Jeremy Evans 2023-07-01 02:37:53 UTC

正規表現リテラルに正しく閉じられていない \u{XXXXX} の記法が書かれているとハングアップするという不具合を修正しています。 ec3542229b29ec93062e9d90e877ea29d3c19472 での不具合とのことなので 3.2 にも影響ありそうですね。 [ruby-core:114049] [Bug #19750]

[2952dbad5e] Nobuyoshi Nakada 2023-07-01 03:22:22 UTC

d49a92d036fb316757d7c4a12a2f9808875f35bf で追加した docs/fuzzing.md を doc/yarp/fuzzing.md に移動しています。

[1a6f3becbb] Nobuyoshi Nakada 2023-07-01 06:14:27 UTC

USE_LAZY_LOAD が未定義の時の vm_core.h での rb_iseq_complete() の(なにもしない)代替実装の定義を追加しています。 SunC などの古い? コンパイラの対応みたいです。呼ばれてない関数でも宣言していたら定義がないといけないということかな?