ruby-trunk-changes 2020-09-12

今日は主に標準添付ライブラリ open-uri, secureerandom, resolv, resolv-replace, time の default gems 化や標準添付ライブラリ reline の更新などがありました。

[2f24818319] Hiroshi SHIBATA 2020-09-11 11:38:18 UTC

標準添付ライブラリ open-uri に gemspec ファイルを追加して default gem にしています。

[d1851ba5b9] Hiroshi SHIBATA 2020-09-11 12:15:25 UTC

標準添付ライブラリ securerandom に gemspec ファイルを追加して default gem にしています。

[e0675b1c76] Hiroshi SHIBATA 2020-09-11 12:50:07 UTC

標準添付ライブラリ resolv に gemspec ファイルを追加して default gem にしています。

[01e0d74965] Hiroshi SHIBATA 2020-09-11 13:01:08 UTC

標準添付ライブラリ resolv-replace に gemspec ファイルを追加して default gem にしています。 resolv-replace ってなんだっけ。

[6042b7433d] Hiroshi SHIBATA 2020-09-11 23:29:06 UTC

標準添付ライブラリtime.rb にも gemspec ファイルを追加して default gem にしています。

[ae5d97ca53] git 2020-09-11 23:31:07 UTC

version.h の日付更新

[770e66030a] aycabta 2020-08-28 03:12:10 UTC

標準添付ライブラリ reline の Reline::Unicode.split_by_width の第3引数 encoding を省略可能にしてデフォルト値を第1引数 str の encoding を使うようにしています。

[0862744010] Yoshinao Muramatu 2020-08-10 02:01:05 UTC

標準添付ライブラリ reline の Reline::Windows.clear_screen でエスケープシーケンスを出力していたのを kernel32.dll の FillConsoleOutputAttribute() という API を利用するように書き換えています。

[a840ef8569] Yoshinao Muramatu 2020-08-30 05:42:41 UTC

0862744010907ecda8c8122557e97de9238d51a1 の標準添付ライブラリ reline の Reline::Windows.clear_screen の実装変更の再修正。上書きする文字数の計算を修正しています。

[2e34b35a0f] aycabta 2020-09-05 12:13:47 UTC

標準添付ライブラリ reline の Reline::ANSI.gretc で IO#raw で getbyte で読み込んだ結果が nil の時に少し sleep して繰り返し読み込むようにしています。EOF になっていれば例外が発生するはずなので、とのこと。ここでループしていいのかな。Reline::ANSI.cursor_pos で getc を呼び出してるところでも nil が返ってきてもループを抜けないようにしているけど、こちらも EOF の時に nil を返してるのでこれだとまずくないのかな。

[0ec19cc843] aycabta 2020-09-09 10:46:30 UTC

標準添付ライブラリ reline の Reline::LineEditor#rerender で不要な文字を消す処理でカーソルが行末にある状態でカーソルより後ろの文字削除すると行末の文字が消えることがあるそうなので判定して不要な Reline::IOGate.erase_after_cursor の呼び出しを行なわないようにしているようです。

[9baf1bd0a4] aycabta 2020-09-09 08:44:44 UTC

標準添付ライブラリ reline で String#lines の chomp オプションを利用していたのをやめて後で String#chomp を呼び出すようにしています。引数に明示的に "" を渡しているので、複数の改行コードを消したいということかな。lines を呼び出したら通常改行は 1 つになりそうだけど。

[ce389ade45] aycabta 2020-09-10 20:48:59 UTC

標準添付ライブラリ reline の Reline::LineEditor#rerender でカーソルを次の行に移動する向きの計算を修正しています。

[f36dc2b6de] aycabta 2020-09-11 16:51:26 UTC

標準添付ライブラリ reline の Reline::LineEditor#calculate_height_by_lines のプロンプトを渡す引数の扱いを変更しています。 Reline.prompt_proc が設定されてない時の不具合修正らしいです。

[777d536749] aycabta 2020-09-11 19:51:08 UTC

標準添付ライブラリ reline の Reline::ANSI の RAW_KEYSTROKE_CONFIG に iTerm2 での Option+→、Option+←、Option+f、Option+b などのキー入力に対応するキーマップを追加しています。

[ae508633b7] aycabta 2020-09-12 01:07:18 UTC

標準添付ライブラリ reline の Reline::Windows.clear_screen の未使用のローカル変数の警告抑制のため変数名の最初に "_" を追加しています。

[012785ef35] Masaki Matsushita 2020-09-12 04:36:53 UTC

io.c で IO.copy_stream のために copy_file_range(2) を利用するかどうかの判定に USE_COPY_FILE_RANGE のほかに __linux__ および __NR_copy_file_range マクロ定数の存在チェックをしていたのを configure で実際に使えるかチェックして USE_COPY_FILE_RANGE マクロ定義するようにしています。GitLab のバグトラッカで実際には copy_file_range() が使えない環境での不具合というのがあった模様。 https://gitlab.com/gitlab-org/gitlab/-/issues/218999#note_363225872

[0ac185be40] Masaki Matsushita 2020-09-12 07:27:14 UTC

012785ef352d6eee983e087adad71692b3aeb354 で追加した configure.ac の copy_file_range(2) 確認用のコードに close(2) 追加。また copy_file_range(2) を使うかどうかの判定にコンパイルしてみての確認の他に $ac_cv_func_copy_file_range も見るようにしています。 cross compile のビルド時の対応らしいのですがどうしてこうなるんだろう。