ruby-trunk-changes 2022-08-04

今日は主に macOS での拡張ライブラリのためのリンカオプションの変更などがありました。

[b54f26b704] tompng 2022-08-01 19:10:45 UTC

irb の端末での色付けの処理で空文字列や一部の記号などの処理を Color を通さずに pretty_print の PP の処理に委譲するショートカットを追加しています。高速化のためだそうです。

[3944862066] git 2022-08-03 23:37:19 UTC

version.h の日付更新

[0591780a74] David Rodríguez 2022-08-02 09:25:51 UTC

rubygems で同じメソッドを繰り返し呼ぶのを避けて変数に結果を格納して使うようにするリファクタリング

[542040fb83] David Rodríguez 2022-08-02 08:27:42 UTC

rubygems でパッケージ内の symbolic link の指す先のファイルが存在しない時の警告出力する処理を Gem::Package#extract_tar_gz に移動して実行ファイルに限らずチェックするようにしています。

[50d81bfbc1] Yuta Saito 2022-07-28 08:19:28 UTC

macOS で拡張ライブラリをビルドする時に -bundle_loader というリンカオプションを指定するようにしています。 macOS で -undefined dynamic_lookup というリンカオプションについて ld64 を使うと実際には問題がないけど警告が出ていてビルドの失敗に繋がっていたそうで、このオプションはもう古いということもありかわりに -bundle_loader を指定するようにしています。ただ未解決のシンボルの load 時の処理に若干の変更もあるとのことです。 https://developer.apple.com/documentation/xcode-release-notes/xcode-13-release-notes

[c69582a540] Alan Wu 2022-07-29 18:18:26 UTC

50d81bfbc19d9b2e3d4be511c26c3dff317e2f8e の configure の修正で -bundle_loader オプションを EXTDLDFLAGS にセットする時にパスに空白が含まれていた時の対応のため $(BUILTRUBY) にクオートを追加しています。

[e5a3f23256] Alan Wu 2022-07-29 17:54:27 UTC

50d81bfbc19d9b2e3d4be511c26c3dff317e2f8e の -bundle_loader オプションには実行ファイルのパスを指定する必要があり、その指定のために ext/extmk.rb で $builtruby という変数を導入して、runruby.rb などのスクリプトの実行が誤って指定されないように実行ファイルのパスが設定されるように修正しています。

[6d8b9a9d61] Yuta Saito 2022-07-30 08:25:12 UTC

50d81bfbc19d9b2e3d4be511c26c3dff317e2f8e からの変更の続きで -bundle_loader オプションに指定するための BUILTRUBY 変数の指定に miniruby を利用するようにしています。依存関係の循環が発生してしまっていたのでそれを避けるためとのこと。

[184fd94d7e] Yuta Saito 2022-07-30 09:32:38 UTC

これも 50d81bfbc19d9b2e3d4be511c26c3dff317e2f8emacOS での -bundle_loader オプション追加の続きで configure に --enable-shared が指定されていた時かわりにリンカに libruby.dylib のパスを渡すようにしています。

[00f411c58a] Yuta Saito 2022-07-30 11:26:57 UTC

同じく 50d81bfbc19d9b2e3d4be511c26c3dff317e2f8e の続きで macOS では MJIT で JIT コードをビルドする時にも -bundle_loader を指定する必要があったようなのでその対応を追加しています。

[6b2fc33ae2] Jean Boussier 2022-08-04 08:37:46 UTC

Thread::SizedQueue#push の実装で rb_ensure() のコールバック関数 queue_sleep() に渡す引数が e3aabe93aae87a60ba7b8f1a0fd590534647e352 の Thread::Queue#pop の timeout キーワード引数追加の対応で変化していたのに追随できていなかったので修正しています。 [ruby-core:108514] [Feature #18774]