ruby-trunk-changes 2021-11-30

今日は主に Solaris 環境でのビルド用の修正や bundler の bundle doctor の修正、標準添付ライブラリ pp で端末幅を取得するのに io/console を利用する変更などがありました。

[4acc7563a1] Nobuyoshi Nakada 2021-11-28 12:49:03 UTC

テストで様々なリソースの leak をチェックする tool/lib/leakchecker.rb で環境変数が変数名の大文字小文字を区別するかをチェックして find_env の実装を切り替えるようにしています。

[95a6212a43] Lars Kanis 2021-11-24 19:58:02 UTC

ENV のテスト test/ruby/test_env.rb で環境によって ENV にセットする文字列サイズを変更する条件として ucrt をチェックしてたのを RUBY_PLATFORM を正規表現でチェックするシンプルな方法に変更しています。

[659c864a43] Nobuyoshi Nakada 2021-11-29 10:00:15 UTC

rubygems の Gem::UnsatisfiableDepedencyError という定数を deprecated_constant で参照時に deprecation warning が出るようにしています。

[f8ead3a72f] Peter Zhu 2021-11-29 14:33:54 UTC

GC.stat の rdoc 用コメントの文面の微修正。

[e6d93a27af] Benoit Daloze 2021-11-29 14:50:26 UTC

spec/mspec に upstream から最新版をマージ。

[67a1e22589] Benoit Daloze 2021-11-29 14:50:28 UTC

ruby/spec に upstream から最新版をマージしています。

[8287d2f23c] Naohisa Goto 2021-11-29 14:46:48 UTC

Solaris 環境で configure 時に caddr_t という型の存在チェックをして cont.c で madvise() の宣言を追加するようにしています。

[f8f2885bd0] Naohisa Goto 2021-11-29 15:07:30 UTC

27fb9d272daaae89089dfb61849ebe8e7aa6c833Solaris で socket のテストをファイル全体 skip するようにしていたのを revert しています。CI 環境の問題だったのが直ったはずなのでとのこと。

[a60aba18f0] git 2021-11-29 15:27:59 UTC

version.h の日付更新

[af59d35570] ooooooo-q 2021-11-27 06:17:48 UTC

bundler の bundle doctor で外部コマンド起動時に埋め込むファイル名を shellwords を使ってエスケープするようにしています。

[ac8647bec1] Nobuyoshi Nakada 2021-11-29 23:49:41 UTC

rubyspec の GC.total_time のテストでチェックに等号を追加して GC.start しても GC.total_time が増えなかったケースも許容するようにしています。

[12fbdf4d4e] Nobuyoshi Nakada 2021-11-30 00:01:36 UTC

8287d2f23c06c614d1ae83b6e0dad48bcda622cbSolaris 環境での madvise() の宣言追加の判定を configure 時により詳しくチェックするようにしています。

[f379748e80] Nobuyoshi Nakada 2021-11-30 02:12:21 UTC

12fbdf4d4e52bafaeef6f923b8f357a39a37c02b の configure 時の madvise() 利用可否のチェックを AC_CACHE_CHECK() を使ってキャッシュするようにしているようです。

[eac347fdb0] Yusuke Endoh 2021-11-30 02:42:06 UTC

標準添付ライブラリ pp の PP.pp でデフォルトの端末幅を拡張ライブラリ io/console を使って動的に取得できればするようにしています。 [ruby-core:78062] [Feature #12913]

[316caf6b39] Nobuyoshi Nakada 2021-11-30 03:36:49 UTC

Solaris 環境で --enable-load-relative が指定されたらリンクする共有ライブラリのパスを相対パス指定にできるように対応を追加しています。

[d20a120b03] Nobuyoshi Nakada 2021-11-30 03:40:12 UTC

tool/mkrunnable.rb で ln_exe というメソッドを symbolic link でなく hard link にするようにしているのを Linux だけでなくて macOSSolaris も hard link を使うようにしています。

[d400c44a55] Nobuyoshi Nakada 2021-11-30 04:07:37 UTC

tool/lib/core_assertions.rb で pp を使っているところで require "io/console" を追加しています。[eac347fdb04023e1a365d84a8c163263cc7a5904 で require が追加されたのでテスト途中に load されるのを避けるために先に require しておくということみたいです。

[20065eabdb] Yusuke Endoh 2021-11-30 04:17:54 UTC

eac347fdb04023e1a365d84a8c163263cc7a5904 の PP.pp の端末幅を得るために io/console を require する時に捕捉する例外に Errno::EINVAL を追加しています。 Solaris の CI で発生していたようです。

[3288f0d09e] Yusuke Endoh 2021-11-30 04:46:08 UTC

20065eabdb2235a605b61e03d72c19b2a20b52a5 の追加修正で環境ごとに発生しうる errno 起因の例外を捕捉するのはやめて SystemCallError で Errno::EXXXX は全て捕捉するようにしています。Windows でさらに Errno::EBADF が起きることがあったみたいです。

[dc46529b64] Yusuke Endoh 2021-11-30 04:47:44 UTC

3288f0d09e35a98d3569c79fad654e38eaeb7a9c と同様に標準添付ライブラリ error_highlight でも io/console の require 時の捕捉する例外の Errno::EXXX を SystemCallError でまとめて捕捉するように変更しています。

[438220f063] Nobuyoshi Nakada 2021-11-30 04:40:42 UTC

tool/lib/core_assertions.rb で事前に load しておくために require "io/console" していたのを nil.pretty_inspect として pp経由で require させるようにしています。例外の捕捉などをさせるためかなと思いましたが、古いバージョンの pp.rb は require しないので不要な require を避けるためという意味もあるようです。ruby 本体のテストで古い pp を使うことってあるのかな。

[e59f3054c3] Naohisa Goto 2021-11-30 05:23:07 UTC

12fbdf4d4e52bafaeef6f923b8f357a39a37c02b で configure に追加した madvise() の確認のためにコンパイルするコードで HAVE_CADDR_T などのマクロチェックしていたのをやめて常に madvise() の宣言を含むソーコードをコンパイルするようにしています。これ endif は出力してなかったみたいだけどそれは AC_COMPILE_IFELSE() では不要だったのかな。