ruby-trunk-changes 2020-05-13

今日は同梱している bundler の更新、拡張ライブラリ openssl の更新や fiddle のリンクする libffi のチェック方法の変更などがありました。

[02cb643ddb] Nobuyoshi Nakada 2020-05-12 13:59:58 UTC

693f7ab31578bf23d165f022b60da3a32055ceea の Strng#split の最適化に関連して引数に空の正規表現(//)を渡した時のベンチマークも追加しています。

[2383cdabc1] Nobuyoshi Nakada 2020-05-12 14:07:42 UTC

builtin_binary.inc を生成する時の tool/generic_erb.rb のオプションから -c を削っています。出力結果に変更がない時に更新しないというオプションなので、常に出力ファイルのタイムスタンプを更新するために削ったということのようです。

[1c4eb70654] Nobuyoshi Nakada 2020-05-12 14:19:20 UTC

fake.rb ファイルの生成を test-bundled-gems や test-spec の前処理の依存関係に入れてたのを programs ターゲットの依存関係にしてビルド時に生成させるようにしています。

[e1855100e4] Yusuke Endoh 2020-05-12 16:17:30 UTC

ext/fiddle/extconf.rb でリンクしようとしている libffi に ffi_closure_alloc() が存在するかチェックするようにしています。 95f387f61a4a4ea92635da760b7de5b1e09bb84effi_closure_alloc() の存在チェックしたのを revert してバージョンだけで判断するようにしてましたがやはり have_func でのチェックを復活させています。

[68224651a4] git 2020-05-12 16:24:17 UTC

version.h の日付更新

[0e60b59d58] Hiroshi SHIBATA 2020-05-08 05:19:04 UTC

budler を upstream の master に更新しています。

[a7c1791cec] Hiroshi SHIBATA 2020-05-07 07:15:53 UTC

0e60b59d5884edb8f9aea023efd9b24f1ff02049 のうち gemspec の spec.files などを ruby 本体同梱にあわせて修正しています。

[5b634afe4c] Hiroshi SHIBATA 2020-05-07 08:07:45 UTC

bundler のテスト用に tool/bundler/test_gems.rb.lock と tool/bundler/test_gems.rb というファイルを追加しています。

[cf9619084b] Hiroshi SHIBATA 2020-05-09 00:51:08 UTC

make test-bundle 時の gem install のコマンドラインでの rake の依存バージョン指定を 13.0 移行に更新しています。

[fcb5a9ee46] Hiroshi SHIBATA 2020-05-11 08:26:43 UTC

bundler のテストでセットアップ時の gemspec ファイルのファイルパスを ruby 同梱版で対応できるように変数から参照するようにしています。

[ea517cfe23] Hiroshi SHIBATA 2020-05-09 00:49:03 UTC

bundler のテストのひとつで ruby 同梱版ではファイル削除の副作用があるので skip するようにしています。

[ca892e6902] Hiroshi SHIBATA 2020-05-11 11:27:37 UTC

同じく bundler のテストで rake に依存しているものを ruby 同梱版では skip するようにしています。

[143872bf98] Hiroshi SHIBATA 2020-05-11 12:25:56 UTC

bundler のテストで逆に同梱版で skip していたテストの一部を実行するようにしています。

[aecbb78517] Hiroshi SHIBATA 2020-05-11 13:00:20 UTC

さらにいくつかの bundler のテストを同梱版で skip するようにしています。

[f61dbb921e] Hiroshi SHIBATA 2020-05-11 13:11:40 UTC

さらに bundler のテストのうちいくつかを同梱版では skip するようにしています。

[cecd343336] Hiroshi SHIBATA 2020-05-12 12:35:24 UTC

さらに bundler のテストのうちいくつかを同梱版では skip するようにしています。

[777b5b4f39] Hiroshi SHIBATA 2020-05-12 12:55:53 UTC

bundler のテスト前に gem install する時の rspec の依存バージョンを 3.8 以降に更新しています。

[9cfa811b0f] Yusuke Endoh 2020-05-12 23:39:50 UTC

e1855100e46040e73630b378974c17764e0cccee で復活させた fiddle ビルド時の libffi の have_func() での ffi_closure_alloc() の存在チェックですが、libffi のバージョンが 3.1 以前だったらチェックしないようにしています。 CentOSRHEL 系で存在はしているけど使うと SEGV する状態だったそうです。 以前もそんな理由でチェックをやめたんでしたっけ。

[de29a022ac] Jeremy Evans 2020-05-13 01:01:16 UTC

Object#hash の rdoc 用コメントで組み込みクラスのなかには Object#hash を利用せずメソッド呼び出しもしないことがある旨追記しています。 [ruby-core:98290] [Bug #16850]

[b68dab8667] Yusuke Endoh 2020-05-13 01:57:14 UTC

9cfa811b0f209d714f89fe0de6778c71f77556c7 の再修正。 3.1 以前というのに version を分解後のを使ってたので正確には 3.1.x が 3.1 以前に含まれなくなってたので 3.2 よりも前(3.2 は含まない)という判定に変更しています。

[3bca1b6aad] Yusuke Endoh 2020-05-13 04:45:31 UTC

拡張ライブラリ openssl の ossl_str_adjust() というマクロで assert() でしか参照していないローカル変数を導入していたのが NDEBUG を有効にすると assert() が消えるため未参照変数の警告になっていたので、変数を利用しないように書き換えています。

[61d451d6ce] Yusuke Endoh 2020-05-13 04:49:21 UTC

拡張ライブラリ date や bigdecimal で NDEBUG マクロを定義する場合に先に #undef して再定義の警告が出るのを抑制するようにしています。

[fcd2576290] Takashi Kokubun 2020-05-13 05:46:59 UTC

MJIT で inline 化の対象となる 関数から vm_getinstancevariable()、vm_setinstancevariable()、vm_setivar() を外しています。実際には使われないのにコードサイズを圧迫するので inline 化しようとしないほうが性能が良くなるとのこと。

[3f8665fe0e] Bart de Water 2020-04-19 21:00:01 UTC

拡張ライブラリ openssl の OpenSSL::PKey の各種クラスが Marshal.dump に対応するように _load/_dump メソッドの定義を追加しています。 OpenSSL::X509 が対応してたのを共通の Module に切り出して対応。 to_der で文字列化するようです。

[0b2c70eaa1] Bart de Water 2020-04-19 15:14:36 UTC

拡張ライブラリ openssl の OpenSSL::Digest のドキュメントでアルゴリズムを配下のクラス名の指定で OpenSSL::Digest::SHA1 などを参照する方式を書いてたのを OpenSSL::Digest.new("SHA1") のように OpenSSL::Digest のメソッドを直接使って文字列で名前を指定する方式を記述するようにしています。こっちのほうが推奨なのかな。

[b44cc9f040] Bart de Water 2020-04-19 20:01:15 UTC

拡張ライブラリ openssl のドキュメントから OpenSSL::Digest の各種アルゴリズムの short name, long name の対応表みたいなものを消しています。 ruby レベルで意味のあるものじゃなくて ANS.1 の表記にまつわるものだったみたいで、引用されてるヘッダにももう存在しなくなっているらしいので。

[c85789f9b2] Bart de Water 2020-04-19 20:14:34 UTC

拡張ライブラリ openssl のドキュメントやテストで OpenSSL::Cipher も配下のクラスでアルゴリズムの指定をしてたのを引数の文字列の名前で指定する方式に変更しています。

[a7145c3de4] Bart de Water 2020-04-20 22:18:57 UTC

拡張ライブラリ openssl のドキュメントで OpenSSL::PKey#sign に OpenSSL::Digest のインスタンスを渡してたのを文字列でアルゴリズム名を渡す方式に切り替えています。

[6f008c9d2f] Kazuki Yamaguchi 2020-04-20 17:12:29 UTC

拡張ライブラリ openssl に OpenSSL::PKey::PKey#oid や #inspect メソッドを追加して EVP_PKey_id() 関数の結果を文字列化したものを得られるようにしています。

[cc26638cae] Kazuki Yamaguchi 2020-05-13 05:33:06 UTC

拡張ライブラリ opessl から OpenSSL::SSL::SSLContext#add_certificate_chain_file メソッドを(一時的に?)削除しています。 openssl.gem のリリースのため実験的な? このメソッドは一旦消しておこうというコミットのようです。

[87662134b5] Kazuki Yamaguchi 2020-05-13 05:55:35 UTC

ということで openssl の ext/openssl/History.md のバージョンの記述の Version 2.2.0 の (not yet released) という注釈を削除しています。