ruby-trunk-changes 2022-05-16

今日は annocheck というツールによるセキュリティチェック? を行なう make test-annocheck の追加や bundler の高速化のための変更などがありました。

[774b9e27ae] Nobuyoshi Nakada 2022-05-13 07:01:36 UTC

標準添付ライブラリ racc で Racc::ParseError 例外の別名としてトップレベルの ParseError 定数にも代入しているところで :nodoc: タグをつけて rdoc によるドキュメント生成の対象外にしています。

[36efb2a146] git 2022-05-16 03:24:26 UTC

version.h の日付更新

[dccfff943c] Jun Aruga 2022-05-10 14:34:08 UTC

annocheck というツール(これ自体はコンパイルしたバイナリファイルのセキュリティチェック? をするものみたいです)を使ってチェックする make test-annocheck というターゲットを追加し、さらに GitHub Actions の .github/workflows/compilers.yml の workflow でこれを実行するようにしています。今のところ Fedra でしか動かない(?)ので Docker コンテナを使って実行するスクリプトを追加しています。

[c380aac19d] David Rodríguez 2022-05-13 09:26:20 UTC

bundler の依存関係解決のための Bundler::SpecSet#for で重複した spec の除去を最後にまとめてするようにしてローカル変数 specs に追加する都度 |= で重複除去してたのをやめています。このほうが高速だからということみたいです。

[641c3830df] David Rodríguez 2022-05-13 13:56:50 UTC

c380aac19d097f1d38d2299fe3f64567b42fb55d の再修正でさらに specs に追加するのに += ではなく Array#concat を使うようにしています。 += は Array#+ で新規に Array オブジェクトを作ってそれを再代入するので毎回オブジェクトが作られるのでそれを抑制し GC 圧力を抑えるためのようです。

[a7577dbfd3] Nobuyoshi Nakada 2022-05-16 08:56:32 UTC

dccfff943c3ea9defd91647cfa3fd8714041bb5a で追加した make test-annocheck を $(target_os) つきのターゲットに依存させて Linux でのみ実行するように変更しています。$(TEST_RUNNABLE) が yes の時に(他のテストと同様)実行するようにターゲットを作ってましたがこれは build した環境で実行できるかというチェックの結果みたいなのでコンテナを使って実行する test-annocheck ではこれを参照するのは不適切とのこと。