ruby-trunk-changes 2023-01-28

今日は主に YJIT の Rust 実装から不要な symbol の公開がされていた問題の対策などがありました。

[17c8bf2c63] Alan Wu 2023-01-12 23:38:00 UTC

configure でリンカコマンドを格納する変数 LD に clang 利用時に clang が設定されるのを避けて ld コマンドに置換するようにしているようです。 YJIT で LD を使いたくて clang では利用できないオプションがあるからとのこと。 [ruby-core:111402] [Bug #19255]

[e7e48e8a66] Alan Wu 2023-01-12 22:07:00 UTC

configure で objcopy コマンドに相当するコマンドを変数 OBJCOPY に設定するための AC_CHECK_TOOLS() でみつからなかった時に ":" をセットしておくようにしています。これも YJIT で OBJCOPY 変数が必要だからとのこと。 [ruby-core:111402] [Bug #19255]

[7d4395cb69] Alan Wu 2023-01-18 20:58:35 UTC

YJIT の Rust 実装で大量の関数名などの symbol が公開されているのを修正するため libyjit.o を $(LD) と $(OBJCOPY) を使って export する symbol を削って生成するようにしているようです。 Rust で symbol の公開状態を制御することはできないそうなので生成したオブジェクトファイルをいじるということをしているみたいですね。 [ruby-core:111402] [Bug #19255]

[8429134d0d] Daniel Colson 2023-01-27 01:39:27 UTC

bundler の --standalone というオプション利用時の警告が意図せず出ることがあったみたいなのを修正しています。