今日は(リリースされたのは昨日ですが)拡張ライブラリ socket の脆弱性修正や alpine でのビルド対応などがありました。
[61b7f86248] Yusuke Endoh 2020-03-31 11:18:21 UTC
拡張ライブラリ socket の BasicSocket#read_nonblock などに引数でバッファとして使う String オブジェクトを渡して、まだデータが受信してない状態で未初期化のバッファが String オブジェクトにセットされてしまうためメモリ上に残ったゴミが ruby レベルでみえてしまうという不具合の修正。脆弱性情報がこちらにまとめられています。 https://www.ruby-lang.org/en/news/2020/03/31/heap-exposure-in-socket-cve-2020-10933/
[519a69b55c] Paul Jordan 2020-04-01 01:13:49 UTC
Arm Linux の環境で Fiber の実装の coroutine に ucontext 実装ではなく独自のアセンブリ実装(arm32)を使うように configure を変更しています。
[0091fac1d8] Paul Jordan 2020-04-01 01:15:20 UTC
そして arm32 の coroutine 実装の coroutine/arm32/Context.S で .align 2 という directive などを追加しています。
[3e386d76c2] Paul Jordan 2020-04-01 01:18:23 UTC
musl (というか alpine) でのテストのために拡張ライブラリ fiddle の テストで arm-linux の時にライブラリの探すディレクトリの決定に /lib/arm-linug-gnuxxx がみつからなかったケースの workaround を追加しています。
[57a36a1698] git 2020-04-01 02:49:23 UTC
version.h の日付更新
[5a81562dfe] Nobuyoshi Nakada 2020-04-01 03:37:01 UTC
3e386d76c2d2f4a38ddf7101344178bff84c824f の fiddle のテストの変更をリファクタリングしています。
[151f8be40d] Takashi Kokubun 2020-04-01 04:58:01 UTC
MJIT で leave 命令のコンパイル時にキャンセルする場合に sp/pc のリセットするようにして leave 命令を副作用のない命令にしておくようにしています。最適化をきかせるためみたいですね。 leaf フラグは明示的に付けなくてもいいんでしたっけ。
[3a2073e61b] Nobuyoshi Nakada 2020-02-09 02:07:01 UTC
rubyspec で 2.5 から FrozenError 例外クラスが導入されたのでその差異を吸収するために定義されてた frozen_error_class というメソッドを削除して、直接 FrozenError を参照するようにしています。
[826f44834f] Nobuyoshi Nakada 2020-02-08 10:43:27 UTC
rubyspec の最低バージョンを 2.5 に引き上げて 2.4 サポートを停止しています。
[552f05ef27] Nobuyoshi Nakada 2020-04-01 06:34:01 UTC
ちょっとよくわからないのですが拡張ライブラリ etc の gemspec ファイルの spec.files から stub/etc.rb を削除。binary gem のサポートを切るとのこと。元々 ruby リポジトリ内の etc には当該ファイルはないですね。
[919b175afc] Nobuyoshi Nakada 2020-04-01 06:18:00 UTC
拡張ライブラリ etc で Struct::Passwd や Struct::Group などの定数を定義していたのを deprecated にしています。
[fad0a1451b] Nobuyoshi Nakada 2020-04-01 10:29:39 UTC
919b175afc389f8df6a3caa05ffdd28f5fc4bfca の etc での Struct の下の定数定義 deprecated 化を revert しています。拡張ライブラリで rb_deprecate_constant() を使うのがビルドのされかたによってはダメだったみたいです。