ruby-trunk-changes 2021-12-11

今日は標準添付ライブラリ reline の主に Windows 環境向けの修正や高速化、bundler の bundle add のオプション追加などがありました。

[eb2d3c19fe] Kevin Logan 2019-05-14 05:02:48 UTC

rubygems の Gem.latest_spec_for で複数の source があった時の対応を修正しています。

[66e14e2076] YO4 2021-12-07 11:45:58 UTC

標準添付ライブラリ reline の Reline::Windows.check_input_event で標準入力からの入力を WaitForSingleObject() で待ってタイムアウト時に GetConsoleMode() の結果を @@legacy_console にセットしなおすようにしています。待ってる間に変更された時に追随するためみたいですね。端末制御する pager のようなコマンドを起動した後などに復帰しなくなるなどの不具合修正のため。 https://github.com/ruby/reline/issues/300

[aed21d6574] YO4 2021-12-06 14:01:50 UTC

標準添付ライブラリ reline の Reline::Windows にクラス変数 @@hsg を導入して Reline::Windows.process_key_event でサロゲートペアを使った文字に対応するようにしています。2つの codepoint を組み合わせて1つの文字にするためバイト列の範囲が特定の範囲の時にそれを一時的に @hsg に格納して後続のバイト列と連結させるようです。

[74765a5a36] YO4 2021-12-09 13:23:25 UTC

標準添付ライブラリ reline の Reline::Windows.empty_buffer? でチェックするバッファを @@input_buf から @@output_buf に変更しています。これって output のほうが正しいのかな? コミットログによるとクリップボードからペーストした時の高速化のためみたいです。あー定常状態では input と output のバッファで output のほうに溜まっていることが蓋然性が高いのでそちらでチェックするほうがいいってことかな。両方チェックしても良いような気はしますが。

[3a2ae5bb19] YO4 2021-12-09 13:36:18 UTC

標準添付ライブラリ reline の Reline::Windows でさらにペースト時の高速化のために Reline::Windows.check_input_event の ReadConsoleInputW() のバッファサイズを増やしています。

[519a945efc] ima1zumi 2021-11-22 12:16:20 UTC

標準添付ライブラリ reline の Reline::KeyStroke#compress_meta_key で inputrc などで convert_meta という設定が off になってたら処理せずすぐに return するショートカットを追加しています。

[5f1975a454] ima1zumi 2021-12-06 14:26:38 UTC

519a945efcb0205bdf4085e32cc76e56610a45c0 の続きで Reline::Config#convert_meta のデフォルト値を出力の Encoding が US-ASCII の時に true に設定するようにしています。 readline のデフォルトの挙動にあわせるためみたいです。

[1a62a50c4f] Vyacheslav Alexeev 2021-12-10 07:40:58 UTC

bundler の bundle add のオプションに --github と --ref というのを追加して Gemfile に追加する gem の source とバージョン指定の :github と :ref をそれぞれコマンドラインから指定できるようにしています。

[d6817d0538] git 2021-12-10 15:13:41 UTC

version.h の日付更新

[e5ff030f60] Burdette Lamar 2021-12-10 16:50:13 UTC

String の to_i/to_f/to_s/inspect/dump/undump の rdoc 用コメントの手直し。 https://github.com/ruby/ruby/pull/5234

[ecb2ff6050] Yuta Saito 2021-12-10 15:51:41 UTC

inline 関数 rb_fd_dup() の未使用の第3引数を削除しています。 C API の互換性問題はないのかなと思いましたが rb_fd_dup() は thread.c や include/ruby/internal/intern/select/win32.h でも定義されていてそれと一致していなかったので include/ruby/ruby.h の分割時にうっかり誤って変更されてしまったものみたいです。ということは 3.0 でも修正しないといけないかな……。 [Bug #18403]

[c91fb5db59] Kazuhiro NISHIYAMA 2021-12-11 05:01:19 UTC

NEWS の bundled gems のバージョンの更新。

[b5c4570af4] Samuel Williams 2021-12-11 05:18:15 UTC

標準添付ライブラリ reline の Reline::ANSI および Reline::GeneralIO で入力待ちのために Kernel#select を使っていたところを 拡張ライブラリ io/wait の IO#wait_readable を利用するようにしています。なんでかなーと思ったら blocking fiber の対応のためみたいです。