ruby-trunk-changes 2020-01-22

今日は Windows 上で Samba 上のファイルを利用する時の不具合対策や Windows 版での reline の端末判定の強化などがありました。

[d1166c6d39] Lars Kanis 2020-01-18 17:46:37 UTC

標準添付ライブラリ reline の Windows 版で MinTTY を使われてる時に検出するロジックが不完全(標準出力をパイプに繋げた時に誤検出する?)なので Reline::Windows.msys_tty? というメソッドを実装して Win32API の GetFileInformationByHandleEx() を使ってその内容で判定するようにしています。

[b0ca1fc21b] Lars Kanis 2020-01-18 20:22:24 UTC

readline および reline のテストで Encoding として locale encoding を使ってたところを default_external を使うように修正しています。また Windows では基本的に UTF-8 を使うようにしています。

[25f2005a63] Xia Xionjun 2020-01-21 13:41:45 UTC

コミットログによると Windows 上で VSCode で Samba 上の ruby スクリプトを編集中にそのファイルを実行すると require_relative がエラーになってしまうので、大元の rb_cloexec_open() でファイルディスクリプタを open(2) で開く時に EAGAIN を捕捉して何回かリトライするようにしています。sleep(0) とかしててなかなか大胆、というかこれはちょっといまいちですね。たぶん Samba 上のファイルということなので保存が走ったタイミングとかで open できない瞬間があったりするんでしょうけど、うーん……。

[5798d35ff6] Nobuyoshi Nakada 2020-01-21 13:45:10 UTC

ということで 25f2005a638570cce832d218a451072057610f06 の再修正というかリファクタリングも込みで EWOULDBLOCK も捕捉するようにしています。

[913dc64eb6] Nobuyoshi Nakada 2020-01-21 23:54:49 UTC

25f2005a638570cce832d218a451072057610f06 で io.c の mode に実行権限の bit が付与されてしまってたみたいなので戻しています。

[e51b6aa81d] git 2020-01-21 23:55:17 UTC

version.h の日付更新

[cdaae38f79] aycabta 2020-01-22 04:44:41 UTC

tool/sync_default_gems.rb で default gems の upstream のリポジトリ名を取得するのに使う $repositories のキー名を gem 名のものを使うようにしています。 "-" が入るとクオートが必要になっちゃうので削ってたけど一貫性を重視してって感じですね。

[9e3bfed53c] Hiroshi SHIBATA 2020-01-22 07:02:10 UTC

tool/sync_default_gems.rb のコメントに簡単な使いかたの例を追記しています。

[c90fc55a1f] Kazuhiro NISHIYAMA 2020-01-22 07:04:38 UTC

benchmark/fiber_chain.yml、ext/fiddle/win32/fficonfig.h、ext/fiddle/win32/libffi.mk.tmpl などのファイルにも mode に実行権限の bit がついてしまっていたみたいなので落としています。

[461db352c2] 0x005c 2020-01-08 11:40:08 UTC

gc.h のマクロ RUBY_MARK_NO_PIN_UNLESS_NULL() を RUBY_MARK_MOVABLE_UNLESS_NULL() と改名しています。