ruby-trunk-changes 2020-03-10

今日は MJIT のメソッドキャッシュ実装変更への追随修正や Method#inspect の不具合修正、Float::ROUND 定数の削除や拡張ライブラリ openssl の更新などがありました。

[d019cac08a] zverok 2020-03-08 08:44:46 UTC

Time.at のタイムゾーンを指定する in キーワード引数についての rdoc 用コメントのサンプルに整数や tzinfo の TZInfo::DataTimezone のインスタンスを渡す例を追加しています。

[ecef163cf9] Jeremy Evans 2020-03-09 04:01:04 UTC

FLT_ROUNDS という C のマクロを表現した Float::ROUNDS という定数がありますが、このマクロは実際にはその時点での浮動小数点数の丸めモードを返すので定数にするのは不適切ということで e89d9f3debab353d1c5a5162752af8f201d98d49 で deprecated な定数にしていましたが、2.8(3.0?)にむけて削除しています。 [ruby-core:94139] [Bug #16044]

[e02bd0e713] Jeremy Evans 2020-03-09 14:57:16 UTC

Method#inspect がメソッドの定義クラスを表示する時に、その receiver に特異クラスが存在するとたとえメソッドの定義位置がその特異クラスでなくてもその特異クラスが表示されてしまっていた不具合を修正しています。 [ruby-core:91570] [Bug #15608]

[9034cbd331] Jeremy Evans 2020-03-09 15:11:13 UTC

NEWS に f4394bbca361c2bb500f586ba0bf1bef8b919910 のブロックパラメータで配列を splat する挙動の変更について追記しています。 [Feature #16166]

[62d82b6dfe] git 2020-03-09 15:13:00 UTC

version.h の日付更新

[384feb6c51] Nobuyoshi Nakada 2020-03-10 03:43:49 UTC

9034cbd331624089524a239a050c906bdd798482 の NEWS の追記に含まれるチケット参照がリンクになるように footnote を追加しています。

[bba2b70949] Nobuyoshi Nakada 2020-03-10 03:44:33 UTC

同じく 9034cbd331624089524a239a050c906bdd798482 の NEWS への追加のサンプルコード部分をハイライトされるようにマークアップしています。

[4015f27a4d] Takashi Kokubun 2020-03-10 05:31:50 UTC

GitHub Actions の古いほうの Slack 通知の設定を削除しています。

[4bcd5981e8] Takashi Kokubun 2020-03-10 07:19:19 UTC

7ec23593746c8ccabd6c005cc34dde77d564c6c9 で b9007b6c548f91e88fd3f2ffa23de740431fa969 のメソッドキャッシュの実装変更の影響で MJIT の修正としてとりあえず call cache 情報を malloc() で確保するようにしてたのを再修正してメモリがリークするのを防いでいます。ちょっとよくわかってないのですが ISeq の call cache 情報の管理方法を変更して GC で回収された call cache を MJIT が触ってしまわないようにより根本的に修正しているようです。

[aa3a7d6d74] Takashi Kokubun 2020-03-10 08:32:44 UTC

4bcd5981e80d3e1852c8723741a0069779464128 の修正により不要になった tool/ruby_vm/views/_mjit_compile_send.erb の TODO コメントを削除しています。

[28f3e03880] Kazuki Yamaguchi 2020-03-09 06:23:32 UTC

拡張ライブラリ digest の ext/digest/digest_conf.rb というファイル(コメントによると openssl の extconf.rb からコピーしてきたらしい)で openssl の deprecation.rb というライブラリというかツール? に依存していたのをやめてOpenSSL.check_func のかわりに mkmf の通常の have_func を利用するようにしています。コミットログによるとこの deprecation.rb は macOS の古い OpenSSL をリンクしないようにするためのもので、もうこの考慮は不要になったとのこと。 https://github.com/ruby/openssl/pull/333 [ruby-core:44755] [Bug #6379]

[61cfd6da84] Kazuki Yamaguchi 2020-03-10 08:24:47 UTC

tool/sync_default_gems.rb の openssl の同期時のディレクトリ構成の対応を変更しています。

[e4a26cd4f8] Kazuki Yamaguchi 2020-03-09 09:26:19 UTC

拡張ライブラリ openssl に upstream の master から変更をマージしています。テスト時の鍵のサイズ変更(というか自動生成するようにしている?)などがあるので一部はバックポートしたほうがいいかなぁ。