ruby-trunk-changes 2021-07-30

今日は finalizer 実行中に割り込み喪失する不具合の修正、標準添付ライブラリ reline の更新、mspec/rubyspec の更新などがありました。

[7564e066ff] Nobuyoshi Nakada 2021-07-29 07:23:54 UTC

C API rb_thread_fd_close() のテストのための拡張ライブラリとテストのスクリプトの名前を変更しています。

[693ce6af0a] Jeremy Evans 2021-07-29 15:10:20 UTC

Module#ruby2_keywords の rdoc 用コメントを 3.0 以降では不要だけど互換性のために残していることなどを追記して参考 URL も追加しています。

[12d4da7478] git 2021-07-29 15:14:57 UTC

version.h の日付更新

[cbecf9c7ba] Alan Wu 2021-07-29 16:04:36 UTC

insn_set_specialized_instruction() で一時的に operand を保持する変数を VALUE* から VALUE に変更しています。確かに machine stack に VALUE 自体が乗らないので、こうしておかないと GC の mark 漏れが起きる可能性がありそうですね。 -DUSE_EMBED_CI=0 でビルドすると異常終了することがあったみたいです。

[87b327efe6] Jeremy Evans 2021-04-07 18:32:30 UTC

finalize_deferred() で finalizer の処理をしている間 rb_execution_context_t::interrupt_mask に PENDING_INTERRUPT_MASK のビットフラグを立てて割り込みの処理を遅延するようにしています。finalizer 処理中に Thread#raise などを投げた時に処理されなくて無視されるのを修正しています。 [Bug #13876] [ruby-core:90898] [Bug #15507]

[2a7e86844b] aycabta 2021-06-27 12:01:36 UTC

標準添付ライブラリ reline に require "reline/terminfo" を追加しています。

[8fc98295cb] aycabta 2021-06-25 09:04:27 UTC

標準添付ライブラリ reline の Reline::Terminfo のテストスクリプト test/reline/test_terminfo.rb を追加しています。

[b0633ee4b3] aycabta 2021-06-25 11:01:02 UTC

lib/reline/terminfo.rb に TODO コメントを追加しています。

[5313d234e0] aycabta 2021-07-07 11:23:39 UTC

標準添付ライブラリ reline のテストで Encoding が UTF-8 じゃなかった時にテストをスキップするのを早期 return してたのを omit メソッドを利用するように書きかえています。

[03f8c27179] Lars Kanis 2021-07-08 08:09:38 UTC

標準添付ライブラリ reline の Reline::Windows で Alt キーが単独で押された時に "\e" を表示してしまっていたのを修正しています。

[750359ce81] aycabta 2021-07-18 13:10:48 UTC

標準添付ライブラリ reline の Reline::Windows でテンキーの Enter キー? が押された時のキーコードに対応するようにしています。本体(?)の Enter とは違うんだ。

[1bf768d2e1] SilverPhoenix99 2021-07-21 18:11:09 UTC

標準添付ライブラリ reline の Reline::Windows でテンキーの divide キー(割り算の "/" のことかな)のキーコードに対応するようにしています。

[44a9337a46] Jeremy Evans 2021-07-23 20:43:28 UTC

標準添付ライブラリ reline の Reline::Terminfo.curses_dl で tiparm() 関数の Fiddle::Function を得ようとしているところで OpenBSD ではみつらかなくて tparm() という関数が代替みたいなので tparm() を探すようにしています。

[51ee24e7f7] aycabta 2021-07-24 05:46:54 UTC

標準添付ライブラリ reline の Reline::Terminfo.curses_dl で関数を Fiddle::Function で取得するところでコメントで C の関数の prototype 宣言を追記しています。

[46c6da9c37] aycabta 2021-07-24 06:01:22 UTC

標準添付ライブラリ reline で .inputrc を読み込む時に空ファイルだった時に対応するようにしています。

[5b9f3ed326] SilverPhoenix99 2021-07-26 13:11:16 UTC

標準添付ライブラリ reline の Reline::Windows のキーマップ対応の実装をリファクタリングして、コミットログによると Ctrl+Enter の対応を追加いているようです。

[0f496b9b29] aycabta 2021-06-24 09:04:02 UTC

標準添付ライブラリ reline の Reline::Terminfo.tigetstr メソッドが返す String オブジェクトに特異メソッドとして tiparm メソッドを追加してたのを StringWithTiparm という String を継承したクラスを作ってこのインスタンスを返すように変更しています。特異メソッドを持ってると Marshal.dump できなくなったりしますしね。

[b158b4666d] aycabta 2021-07-28 14:26:41 UTC

標準添付ライブラリ reline の Reline::Terminfo.curses_dl で fiddle が Fiddle::TYPE_VARIADIC を定義していないバージョン/環境? だった時に fiddle_supports_variadic を false に落としておくようにしています。

[f1b5cb7e5d] aycabta 2021-07-05 06:54:12 UTC

標準添付ライブラリ reline の Reline::Terminfo.curses_dl で探すライブラリ名の候補を Reline::Terminfo.curses_dl_files というメソッドに切り出して Windows 環境ではサポートされないので空配列を返すようにしています。

[1c9cb9da8f] aycabta 2021-07-06 14:03:09 UTC

f1b5cb7e5d9498405f7ed611abda37cb0d9f2ea4 で切り出した 標準添付ライブラリ reline の Reline::Termnfo.curses_dl_files に cygwinmacOS でのファイル名対応を追加しています。

[41e2ab88c3] aycabta 2021-07-29 17:56:29 UTC

標準添付ライブラリ reline のテストで assert_raises を使ってたところを assert_raise に変更しています。

[15d05f8120] Benoit Daloze 2021-07-29 20:11:19 UTC

mspec を upstream から最新版をマージしています。サポートする ruby の最低バージョンの引き上げだけみたいですね。

[6998d75824] Benoit Daloze 2021-07-29 20:11:21 UTC

rubyspec を upstream からマージしています。

[64ac984129] Jeremy Evans 2021-05-21 18:01:06 UTC

RubyVM::AbstractSyntaxTree.of で eval 内で定義されたメソッドを渡すと不正なオブジェクトを返してたので例外を発生させるようにしています。 [ruby-core:98931] [Bug #16983]

[9931e2f509] Jeremy Evans 2021-06-17 18:27:53 UTC

Integer#digits が大きい数値だと非常に遅くなってたのを修正しています。基数のビット数の 50倍以上のビット数を持つ整数の時に最適化用の実装のパスを追加しています。 [ruby-dev:50427] [Bug #14391]

[2aecb95acb] Jeremy Evans 2021-07-30 01:54:20 UTC

a6dc48f86a8ee7b1f713105b5c7136824d6b5720 で追加した NoMemoryError のテストが CI の環境で失敗することがあるみたいで一時的に? skip するようにしています。

[fd96503f7b] Nobuyoshi Nakada 2021-07-30 03:21:38 UTC

test/runner.rb で bundled gems の gemspec ファイルを探すディレクトリをソースディレクトリの gems/* から .bundle/gems/* に変更しています。 55bf0ef1aa7c936b564b883196de1ace4be4cc7e の変更に追随しています。

[ff6c176028] Benoit Daloze 2021-07-30 09:36:20 UTC

rubyspec の C API の rb_str_modify_expand() のテスト用の拡張ライブラリの実装にデバッグ用に配列の情報をつめて返すようにしてテストスクリプトでチェックするようにしています。 CI でいくつかの環境で失敗してるのを調査するためみたいです。

[01d9e7f26c] Nobuyoshi Nakada 2021-07-30 10:20:09 UTC

Kernel#exec の rdoc 用コメントの環境変数 RUBYSHELL や COMSPEC の参照についての記述が両方とも Windows 環境で使われるのに RUBYSHELL は UNIX 系 OS で使われると書かれてたので修正しています。