ruby-trunk-changes 2021-10-09

今日は Kernel#autoload で load しても定数が定義されなかった時の挙動の変更や bundler の更新などがありました。

[08759edea8] Jeremy Evans 2021-10-08 21:54:26 UTC

Kernel#autoload で定数名の参照時に autoload する設定により load したファイルで対象の定数が定義されない場合に autoload の設定をクリアするようにしています。従来も load したファイルが $LOADED_FEATURES に追加されるのでそこから削除しなければ再 load はされなかったようですが、仮に削除してももう autoload されないように定数名のエントリ自体を削除するみたいです。ふーむ、機能を実験しようとした時とかでファイルを書きかえながら試してる場合は autoload を実行しなおさないと再ロードされなくなるのでちょっと注意が必要そうですね。 [ruby-core:92403] [Bug #15790]

[b4afedb0dd] git 2021-10-08 21:54:40 UTC

version.h の日付更新

[06c3e80611] Jeremy Evans 2021-08-13 15:16:24 UTC

configure に --enable-install-static-library というオプションをつけた時に --disable-shared も一緒に指定されていたらエラーにするようにしています。 [ruby-core:104361] [Bug #18000]

[ad92651d64] gabriele renzi 2021-09-30 11:51:08 UTC

bundler の git リポジトリの情報を表示する処理の共通部分をメソッドに切り出すリファクタリング

[d03d122ba1] Masataka Pocke Kuwabara 2021-10-02 16:30:55 UTC

rubygems の Gem::Specification#missing_extensions? の条件分岐の順序をいれかえて最適化しているみたいです。

[b857a87653] David Rodríguez 2021-10-08 11:03:17 UTC

bundler のテストで発生させる例外? のメッセージの変更。よくわからないですがあんまり挙動やテスト内容には関係ない変更みたいです。

[5a34b639fc] David Rodríguez 2021-10-08 11:04:34 UTC

bundler のテストで git コマンドを実行するところで git add してから git commit してたのを commit に -a オプションを追加して 1コマンドで実施するようにしています。

[a5bae843ff] David Rodríguez 2021-10-08 11:05:31 UTC

bundler のテストで git コマンド実行してブランチを作成するところでも 1コマンドで実施するように変更しています。

[991a3aad05] David Rodríguez 2021-10-08 11:06:21 UTC

bundler のテストで 5a34b639fc8f51f2464f36e59f32eff8b3fd2e0f で変更した git commit コマンドを利用するところで :raise_on_error というオプションを渡していたのを削っています。ここのコマンドは予想される失敗がなくなったのでエラー時はテスト自体をエラーにするためみたいです。

[91f794b516] David Rodríguez 2021-10-08 11:07:07 UTC

bundler のテストで git コマンドを操作するためのクラス Spec::Builder::GitUpdater で :branch オプションに "master" を指定したら例外を発生させてたのをやめています。

[7e506716d2] OKURA Masafumi 2021-09-20 14:18:14 UTC

bundler の bundle gem コマンドで生成した gemspec ファイルのデフォルトの spec.required_ruby_version を 2.6.0 以降にするように変更しています。ただし実行している ruby 自体が古い場合はそれにあわて 2.3.0 までは古いのも指定するようにしています。そのほか rubocop や standard といった gem の最低バージョンの指定も更新しています。

[489c22b17f] Nobuyoshi Nakada 2021-10-09 05:22:18 UTC

tool/lib/core_assertions.rb の Test::Unit::CoreAssertions::AllFailures#for というメソッド(assert_all? で使うやつかな、たぶん)でブロックを yirld する時にメソッドの引数をブロックにも渡すようにしています。

[3932227d96] Nobuyoshi Nakada 2021-10-09 07:17:01 UTC

Test::Unit::CoreAssertions#message メソッドの定義を削除して Test::Unit::Assertions#message に同様の処理を追加しています。

[fc913ad21d] Nobuyoshi Nakada 2021-10-09 07:17:37 UTC

tool/lib/test/unit.rb でバックトレースからテスト用ライブラリのファイルパスを取り除く処理で core_assertions.rb も除外対象になるように追加しています。

[c423cc932e] Nobuyoshi Nakada 2021-10-09 08:44:01 UTC

テスト用ライブラリの Test::Unit::CoreAssertions#assert_nothing_raised の例外処理を複数の rescue 節に分けて書くようにリファクタリングしています。

ruby-trunk-changes 2021-10-08

今日は ISeq をバイナリフォーマットにダンプする時の Proc オブジェクトの扱いの不具合修正や reline のダイアログ表示の修正などがありました。

[896626fa02] Jeremy Evans 2021-10-06 15:55:29 UTC

Binding#irb から Kernel#exit を呼び出した時に例外が発生してプロセスが終了しなくなっていた不具合を修正しています。 [ruby-core:105512] [Bug #18234]

[8057129da6] Nobuyoshi Nakada 2021-10-07 15:10:32 UTC

parse.y で代入文の右辺値に対して value_expr() を呼んでいたところを削っています。mrhs および mrhs_arg というノードは常に value なので冗長なチェックだったとのこと。

[cb5a3b198e] git 2021-10-07 15:15:42 UTC

version.h の日付更新

[217df51f0e] Aaron Patterson 2021-10-06 20:55:02 UTC

RubyVM::InstructionSequence#to_binary で ISeq をバイナリフォーマットにダンプする時に Ractor.make_shareable で複製した Proc オブジェクトの外部の変数の参照が保存できていなかったのを修正しています。これスコープ外の変数参照も機能するんだ。すごいな。 [ruby-core:105504] [Bug #18232]

[a2f55679f0] aycabta 2021-10-05 15:09:03 UTC

標準添付ライブラリ reline の定数名 Reline::LineEditor::DIALOG_HEIGHT を DIALOG_DEFAULT_HEIGHT に改名。

[374b15a84a] aycabta 2021-10-05 17:56:14 UTC

標準添付ライブラリ reline で端末幅が狭くてダイアログ表示幅の計算結果が負になった時の対応を追加。

[36bf378363] aycabta 2021-10-05 18:25:53 UTC

標準添付ライブラリ reline の yamatanooroti.gem を使ったテストに非常に狭い端末を使った時のテストケースを追加しています。

[5c02df8296] aycabta 2021-10-07 18:43:21 UTC

irb の補完ダイアログでの rdoc ドキュメント表示の幅が足りない時の対応を追加しています。あんまり狭すぎると表示をあきらめるみたいですね。

[374efa8e30] aycabta 2021-10-08 01:21:55 UTC

irb の補完ダイアログでのドキュメント表示の位置の計算で変数名を改名するリファクタリング

[576eccf76d] aycabta 2021-10-08 01:24:55 UTC

irb の補完ダイアログでのドキュメント表示の端末サイズが小さい時の幅計算の再修正。

[1507cb084c] aycabta 2021-10-08 01:26:23 UTC

同じく irb のドキュメント表示ダイアログの幅計算で Integer#negative? を使ってたところを <=0 にして 0 の時の分岐を修正しています。

[1251edd1db] aycabta 2021-10-08 01:28:44 UTC

irb のテストに yamatanooroti.gem を使って端末サイズが小さい時のドキュメントダイアログ表示についてのテストケースを追加しています。

[eb4682b3c6] Jeremy Evans 2021-10-06 17:38:21 UTC

標準添付ライブラリ reline のダイアログ表示のメソッドで Encoding.default_external が UTF-8 でなかった時にはダイアログ表示しないようにしています。ダイアログのスクロールバーに使う記号文字が US-ASCII に変換する時にエラーになるので default_external が UTF-8 じゃないとちゃんと表示できないため。

[55d7f63bde] Jeremy Evans 2021-10-06 19:56:31 UTC

eb4682b3c6dd703b073614fa10dec9f968e98df3 の default_external が UTF-8 じゃない時に reline のダイアログ表示をあきらめるのは revert して、かわりにダイアログのスクロールバー表示に使う記号文字を空にしてスクロールバー表示だけあきらめるように変更しています。

[d0268c5ec2] Nobuyoshi Nakada 2021-10-07 11:11:48 UTC

Proc オブジェクトのブロックから参照している外のスコープの変数を探す collect_outer_variable_names() や env_copy() で変数名を文字列で持ちまわっていたのを、結局あとで rb_str_intern() してるので ID2SYM() で Symbol にして格納するように変更しています。

[78ff9b719c] Nobuyoshi Nakada 2021-10-08 05:08:03 UTC

String#end_with? に引数の文字列が空文字列の時のショートカットを追加しています。高速化のためかと思いましたがコミットログをみると文字列の途中も共有可能にして文字列オブジェクトの指すバッファが NUL 文字終端しない時に rb_enc_left_char_head() に問題のある引数を渡す可能性があったのを回避するためみたいです。

[076f2e9d3e] Nobuyoshi Nakada 2021-10-08 06:44:47 UTC

require_internal() の引数 realpath の宣言に volatile 修飾子を追加しています。 EC_EXEC_TAG() の前後で利用しているので警告抑制のためかな。

[ded5a66cb9] aycabta 2021-10-08 01:51:49 UTC

55d7f63bdeda993696c2700bd1a2a3b02b0b6d30 のさらに続きで標準添付ライブラリ reline で default_external が UTF-8 でない時にダイアログのスクロールバーの記号を空文字列にせず ASCII 文字による代替を利用するようにしています。

ruby-trunk-changes 2021-10-07

今日は Ractor.make_shareable で Proc オブジェクトを複製した時の不具合修正や標準添付ライブラリ ipaddr の機能追加含む更新などがありました。

[7622819147] Alan Wu 2021-10-06 19:38:33 UTC

Ractor.make_shareable で Proc オブジェクトをコピーする時に env_copy() で内部的な rb_env_t をコピーする時にローカル変数を再帰的に複製する時の順序を逆順にしています。Ractor.make_shareable を通した Proc オブジェクトで外部のローカル変数を参照してる時に参照値が false になってしまうことがあったみたいです。 [ruby-core:104519] [Bug #18023]

[121424a097] git 2021-10-06 19:38:52 UTC

version.h の日付更新

[fb122042e0] Burdette Lamar 2021-10-06 20:51:49 UTC

Enumerable#sum, #uniq, #compact の rdoc 用コメントを追加しています。 https://github.com/ruby/ruby/pull/4941

[7caeead36f] Burdette Lamar 2021-10-07 00:06:17 UTC

Enumerable の rdoc 用コメントの細かな修正。 https://github.com/ruby/ruby/pull/4943

[273673aeaf] Yusuke Endoh 2021-10-07 01:40:40 UTC

カレントディレクトリが削除された状態での Kernel#system の実行のテストを Solaris で skip するようにしています。

[323e7a6744] S-H-GAMELINKS 2021-10-06 11:18:35 UTC

variable.c の set_namespace_path_i() で body 部がまったく同じ if 文が 2つあったので条件を OR(||) で連結して 1つの if 文にまとめるリファクタリング

[b23fba91ae] Espartaco Palma 2018-10-28 00:13:31 UTC

標準添付ライブラリ ipaddr で IPAddr.ntop で明示的な return をやめるリファクタリング

[54ee22be53] Jeremy Evans 2019-05-08 01:44:42 UTC

標準添付ライブラリ ipaddr で IPv4/IPv6 それぞれを期待したメソッド群で対応していないアドレスの場合に発生させる例外メッセージにアドレスの文字列表現を埋め込むようにしています。 IPAddr#initialize で例外を捕捉して addr を追加して再度 raise してたのでそれを不要にするためみたいです。

[38da84296c] Nobuyoshi Nakada 2019-05-06 23:39:42 UTC

標準添付ライブラリ ipaddr の IPAddr#initialize で "/" でアドレスを分割する時に 2つ以上 "/" があっても 2つにしか分解しないように String#split に第2引数を追加しています。 "/" が2つ以上ある不正な文字列の時にエラーにするようにしています。

[abad5e10e8] Jeremy Evans 2019-06-05 01:58:15 UTC

標準添付ライブラリ ipaddr の IPAddr#mask! で指定するマスクを文字列で渡していて先頭に 0 がついているのは例外を発生させるようにしています(ただし mask="0" は許容)。

[74ed881e10] Bogdan Irimie 2019-10-09 10:23:27 UTC

標準添付ライブラリ ipaddr に IPAddr#netmask というメソッドを追加して、インスタンスの mask を "255.255.255.0" みたいにアドレス表記で文字列化したものを返すようにしています。

[bd6e1a0f08] Jeremy Evans 2020-07-13 16:36:06 UTC

標準添付ライブラリ ipaddr に IPv6 のアドレスの zone_id 部というのを含めることができるようにしています。末尾に '%' で区切って追加される部分のことみたいです。 [ruby-core:68331] [Feature #10911]

[ae5dffd666] Hiroshi SHIBATA 2021-10-07 09:34:29 UTC

bd6e1a0f0883dba7b02f30cefe5ebec96d02cb90 の標準添付ライブラリ ipaddr の IPv6 のアドレスの変更に追随して rubyspec のテストを 3.1 とそれ以前とで分岐するようにしています。

[a706c09fa6] Nobuyoshi Nakada 2021-10-07 08:56:57 UTC

io.c の関数定義のコーディングスタイルの変更のみ。

[606e785fa8] Nobuyoshi Nakada 2021-10-07 08:59:16 UTC

io.c の rb_stderr_to_original_p() という関数で rb_ractor_stderr() を呼び出して結果を参照していたのをかわりに引数で受け取るようにして、呼び元で rb_ractor_stderr() を呼んだものを渡すようにしています。呼び元でも結局 rb_ractor_stderr() を呼んでるのでこれを使いまわすためみたいです。

ruby-trunk-changes 2021-10-06

今日は主に Marshal.load にキーワード引数 freeze を追加して load したオブジェクトを一律 freeze できるようにする機能追加などがありました。

[6966c3ff44] aycabta 2021-10-03 15:15:18 UTC

標準添付ライブラリ reline の Reline::Windows.erase_after_cursor の Windows API GetConsoleScreenBufferInfo() に渡すバッファの文字列サイズを修正しています。

[2c2a017fe8] aycabta 2021-10-03 18:27:24 UTC

標準添付ライブラリ reline の Windows 環境でのキリル文字? を使ったテストを削除しています。

[f625645a37] aycabta 2021-10-04 13:40:35 UTC

標準添付ライブラリ reline の Reline::LineEditor#reset でダイアログのスクロールバー用の文字の表示幅を取得する処理を Windows 環境では常に 1 にするようにしています。

[dc8fa2691b] aycabta 2021-10-04 13:46:03 UTC

標準添付ライブラリ reline の yamatanoorochi.gem を使った仮想端末でのテストで端末サイズを少し小さくしています。

[f2ca65266f] Koichi Sasada 2021-10-05 13:19:22 UTC

bundled gems の debug.gem のバージョンを 1.2.4 に更新しています。

[c6706f15af] Jeremy Evans 2021-10-05 15:39:27 UTC

String#concat, #<<, #prepend の rdoc 用コメントに receiver の String オブジェクトが破壊的に変更されるというふうに記述を修正しています。新しいオブジェクトを返すというようになってしまっていたようですね。 [ruby-core:105562] [Bug #18241]

[f883f550f2] git 2021-10-05 15:41:05 UTC

version.h の日付更新

[279b2b5b60] Burdette Lamar 2021-10-05 15:52:51 UTC

Enumerable#slice_before の rdoc 用コメントを手直ししています。 https://github.com/ruby/ruby/pull/4932

[afcbb501ac] Jean Boussier 2021-09-18 13:34:15 UTC

Marshal.load にキーワード引数 freeze というのを追加して、load したオブジェクトを freeze するように指定できるようにしています。 [ruby-core:105133] [Feature #18148]

[b9f34062f0] Benoit Daloze 2021-10-05 17:41:44 UTC

spec/ruby に upstream から最新版をマージしています。

[abd473928e] Burdette Lamar 2021-10-05 23:57:06 UTC

Enumerable#slice_after, #slice_when, #chunk_while などの rdoc 用コメントの手直し。 https://github.com/ruby/ruby/pull/4938

[ddca0c6686] Nobuyoshi Nakada 2021-10-06 02:38:47 UTC

rubyspec の変更で File.atime の nsec 精度のテストが厳密な数値になっていたので条件を緩和しています。

[7ed1180e00] Nobuyoshi Nakada 2021-10-06 03:19:52 UTC

ddca0c66867b09106a835f28600edefac7e785ce で修正した rubyspec の File.atime, mtime のテストが Windows でのみ実施するようになっていたので(おそらく厳密すぎる数値を指定しててその環境でのみ通る状態だったからだと思われるので)、他の環境でも実行するようにしています。

[702a58e9e5] Nobuyoshi Nakada 2021-10-06 04:54:53 UTC

rb_encoding という型は既に typedef の時点で const 修飾子が付与されているので冗長な const rb_encoding * のような引数の型の指定の const を削っています。MSVC で警告が出てたそうです。

[d53493715c] Nobuyoshi Nakada 2021-10-06 06:42:37 UTC

template/GNUmakefile.in に GNUmakefile への依存関係として template/GNUmakefile.in 自身を追加しています。

ruby-trunk-changes 2021-10-05

今日は標準添付ライブラリ debug を bundled gem 化して新しい実装にする変更や Solaris での require の不具合修正などがありました。

[44b2e32fb6] Nobuyoshi Nakada 2021-08-25 04:12:50 UTC

tool/rbinstall.rb のオプションを解析する正規表現typo 修正。

[c4570acc86] Nobuyoshi Nakada 2021-09-18 07:05:26 UTC

tool/lib/test/unit.rb にテストの実行順番を決める方法の専用のモジュール Test::Unit::Order を追加して配下のクラスで実際の実装を分離しています。

[8dc546b6b6] Burdette Lamar 2021-10-04 15:41:12 UTC

Enumerable#chunk の rdoc 用コメントの手直し。 https://github.com/ruby/ruby/pull/4930

[aa2a1fb047] git 2021-10-04 15:41:33 UTC

version.h の日付更新

[b44c5187b4] Nobuyoshi Nakada 2021-07-07 03:22:40 UTC

rb_vm_insn_len_info、rb_vm_insn_name_offset、rb_vm_insn_op_offset などの VM 命令についての情報のテーブルを export する変数として宣言するようにしています。 debugger で使うためとのこと。 [ruby-core:104526] [Feature #18026]

[d9b7403746] Jeremy Evans 2021-10-04 14:35:39 UTC

require_internal() でファイルパスを realpath にしてから読みこむ時に rb_rescue() を使って例外発生を捕捉するようにしています。Solaris でのみ必要になる対応とのことですが一時的に常に有効になるように preprocessor の条件を設定しています。

[3381fa5458] Jeremy Evans 2021-10-04 14:44:51 UTC

d9b7403746249b532ac57ca80112d7e63a417d86 の対応を Solaris でのみ有効になるように preprocessor 条件を __sun に変更しています。これにより不要になったテストの skip を削除しています。

[cbb115213c] Hiroshi SHIBATA 2021-08-24 11:46:18 UTC

tool/rbinstall.rb の GemInstaller を継承した UnpackedInstaller というクラスで build_extensions メソッドを上書きして空っぽにしていたのをやめています。 rubygems の実装を使って拡張ライブラリのビルドをするようにしているみたいです。

[ae1da7e1f7] Koichi Sasada 2021-09-30 17:56:59 UTC

標準添付ライブラリ debug を削除しています。

[bc96a45f12] Koichi Sasada 2021-09-30 18:13:00 UTC

bundled gems に debug.gem を追加しています。debug.gem は拡張ライブラリを使うみたいなので tool/rbinstall.rb や tool/test-bundled-gems.rb などにも変更が入ってます。

[e4d85d3a2d] Jeremy Evans 2021-10-04 17:51:29 UTC

d9b7403746249b532ac57ca80112d7e63a417d86 および 3381fa5458d26fee1a5d109ba65e87212f644ac0Solaris 向けの require_internal() での rb_rescue 追加を revert しています。 Solaris でこの修正してもエラーが直らなかったみたいです。

[16ce578da1] Rei Odaira 2021-10-05 04:06:43 UTC

gc.h の SET_MACHINE_STACK_END() マクロの定義に AIX 向けの対応を追加しています。

[ee89543e09] Jeremy Evans 2021-10-04 21:13:47 UTC

d9b7403746249b532ac57ca80112d7e63a417d863381fa5458d26fee1a5d109ba65e87212f644ac0Solaris での require の不具合修正のリトライ。 realpath(3) がない環境で rb_check_realpath_emulate() を mode=RB_REALPATH_CHECK で呼ぶ場合にのみ rb_rescue() を使って rescue つきで呼び出すようにしています。

[e42c8c160d] 卜部昌平 2021-09-28 01:49:07 UTC

string.c の upcase_single() および downcase_single() に enc という変数を参照してるのに宣言してなかったので宣言を追加しています。これまでどの変数をみてたんだろう……。まあ渡している rb_enc_isascii() ではその引数は利用されてなかったのでなにを渡しても挙動に影響はないのですが。

[2fa4715bf2] 卜部昌平 2021-09-28 07:51:09 UTC

rb_ractor_shareable_p() の Doxygen 用コメントに戻り値の説明を追記。

[312668cf03] 卜部昌平 2021-09-24 01:34:32 UTC

include/ruby/encoding.h ヘッダの内容を include/ruby/internal/encoding/ 配下に細かく分割するリファクタリング

[5112a54846] 卜部昌平 2021-09-29 03:58:26 UTC

include/ruby/internal/encoding/ の関数マクロ群を inline 関数に変換するリファクタリング

[5c167a9778] 卜部昌平 2021-09-29 06:23:45 UTC

common.mk および各種拡張ライブラリの depend ファイルの依存関係の更新。

[499660b04f] 卜部昌平 2021-09-30 06:32:34 UTC

e42c8c160d17e302f56fdc4af4d54043ed2499df の続きで string.c の upcase_single() および downcase_single() でそもそも rb_enc_isascii() を呼ばないように変更しています。

[f032c09bca] 卜部昌平 2021-10-05 02:39:05 UTC

rb_enc_left_char_head() の第2引数の型を const char * から const void * に変更しています。

[0553494ad7] Koichi Sasada 2021-10-05 03:20:18 UTC

gems/bundled_gems の debug のバージョンを 1.2.3 に更新しています。

[126122bb6c] Nobuyoshi Nakada 2021-10-05 04:42:17 UTC

parse.y で YY_() というマクロを定義して bison によるエラーメッセージ? が "memory exhausted" だったら "nesting too deep" に書きかえるようにしています。

[5a961c3768] Nobuyoshi Nakada 2021-10-05 06:56:34 UTC

string.c の rb_str_casemap() 内からの各 rb_encoding::case_map の呼び出し時に不要なキャストをしていたのを削っています。

[1f544d6715] Nobuyoshi Nakada 2021-10-05 07:44:43 UTC

parse.y の parser_yyerror() で yylloc->beg_pos と yylloc->end_pos のチェックしていたところを削っています。よくわかりませんが yylloc をクリアしてしまってエラー位置が出なくなることがあるのを修正するためみたいです。

[a15996c752] Nobuyoshi Nakada 2021-10-05 07:59:35 UTC

parse.y に位置情報なしの parser_yyerror0() という関数を追加して、RUBY_SET_YYLLOC() で現在位置を取得するようにしています。bison 用と ripper 用で少し分離のしかたが違ってて bison 用は parser_yyerror0() から parser_yyerror() を呼び出すようにしていて、ripper 用では parser_yyerror() から parser_yyerror0() を呼び出すように分離しています。

[cd182c5ee1] Nobuyoshi Nakada 2021-10-05 08:14:29 UTC

f032c09bca96d82ce5fe935c99afed4c3fc2dbea の rb_enc_left_char_head() も第2引数の型を変更したのを revert して呼び元のほうの変数の型を変更することで対応しています。

[7c98e673d7] Nobuyoshi Nakada 2021-10-05 09:18:29 UTC

tool/lib/test/unit.rb の変数名の typo 修正。 688f2e1a893e04457a1a5aa3577b13f74b2bc080タイムアウト時の後処理の不具合の修正です。

ruby-trunk-changes 2021-10-04

今日は irb と reline の更新や if などの条件部に Symbol リテラルが書かれてた時の警告メッセージの変更などがありました。

[6cb37d4136] aycabta 2021-10-03 12:37:48 UTC

標準添付ライブラリ reline の Reline::LineEditor#initialize にインスタンス変数 @trap_key の初期化を追加しています。

[7f02cc50dd] aycabta 2021-10-03 12:47:46 UTC

標準添付ライブラリ reline の Reline::VERSION を 0.2.8.pre.10 に更新しています。

[a5c58e88de] aycabta 2021-10-03 12:49:53 UTC

標準添付ライブラリ irb の gemspec ファイルの reline の依存バージョンを 0.2.8.pre.10 以降に更新しています。

[208b7b8199] aycabta 2021-10-03 12:50:18 UTC

irb のバージョンを 1.3.8.pre.10 に更新しています。

[64e96d6b41] aycabta 2021-10-03 09:25:26 UTC

標準添付ライブラリ rleine のダイアログ表示で候補が多い時の調整をしています。

[853ca5cceb] Masataka Pocke Kuwabara 2021-09-25 09:16:13 UTC

irb で補完時のドキュメント表示のための rdoc の require をしているところを SHOW_DOC_DIALOG の Proc オブジェクト内でしていたのを削除しています。シグナルハンドラ内から呼ばれた時に ThreadError 例外が発生することがあったとのこと。

[19f9d9cf73] Nobuyoshi Nakada 2021-10-03 11:03:24 UTC

Thread#join に渡されたタイムアウトの秒数を毎回 rb_sec2hrtime() で変換していたのを変換結果を構造体に保持しておくようにリファクタリングしています。 [ruby-core:105523] [Bug #18236]

[fb03598666] Jörg W Mittag 2021-10-03 13:16:08 UTC

Range#each や Range#step で要素のオブジェクトが Time でないか毎回チェックしていたのを削っています。 Time#succ が削除されたのでもう respond_to? によるチェックで良くなったので。 [ruby-core:105531] [Bug #18237]

[dc9112cf10] "S.H" 2021-10-03 13:34:45 UTC

Qnil や Qfalse との比較をしているところを NIL_P() や RTEST() マクロを利用するようにリファクタリングしています。

[1e9714cf34] aycabta 2021-10-03 14:02:24 UTC

標準添付ライブラリ reline の Reline::Windows.erase_after_cursor で端末の attribute を 0 にクリアしてしまっていたのを元のフラグを保持するようにしています。

[761383166e] git 2021-10-03 15:14:25 UTC

version.h の日付更新

[0cf9197988] xtkoba 2021-05-02 06:45:42 UTC

win32/win32.c で ASSUME() マクロの引数に代入文を書いてたのを代入後の変数だけ渡すように書きかえています。

[3f5b52bfda] xtkoba 2021-05-02 05:11:28 UTC

thread_win32.c の w32_error() という関数に RBIMPL_ATTR_NORETURN() をつけて処理が戻らないことを示すようにしています。

[e54d1e99e9] "S.H" 2021-10-03 23:21:40 UTC

rb_ractor_p() の prototype 宣言を ractor.c から ractor_core.h に移動しています。

[31332cf469] aycabta 2021-10-04 00:36:38 UTC

標準添付ライブラリ irbIRB::Irb#convert_invalid_byte_sequence で変数名の参照の typo があったので修正しています。 e72a6ed45f6ba844f15523b9f1250c22601c0011 で追加されて 4bb683a570043d169049d9741c319a297acd607b で修正したのと同じ行ですがもう一箇所あったみたいです。

[e25ad5475c] Nobuyoshi Nakada 2021-10-04 02:58:32 UTC

GitHub Actions の macOSMinGW の make check や make all, mate test-all のタイムアウトを短縮しています。

[da139317a5] Nobuyoshi Nakada 2021-10-04 03:14:27 UTC

if 文などの条件部にリテラルが書かれてる時の警告で式展開ありのクオートつき Symbol の時の警告メッセージが string literal になってたので symbol literal に修正しています。

[28392d3045] Nobuyoshi Nakada 2021-10-04 03:15:27 UTC

if 文などの条件部に静的 symbol リテラルが書かれてる時にも symbol literal が書かれているという警告メッセージになるようにしています。これまではただ単に "literal in condition" になってたようです。

[e8dde46359] Nobuyoshi Nakada 2021-10-04 03:37:11 UTC

GitHub Actions の macOS 版の e25ad5475c235b51395fe14edf212c85fe3e17fe でのタイムアウトの短縮で make test-bundler-parallel の時は再度 40分にまで伸ばしています。

[bac6e8ca5d] Nobuyoshi Nakada 2021-10-04 08:55:59 UTC

make all の依存関係から gems ターゲットを削っています。

[3842e723da] Nobuyoshi Nakada 2021-10-04 08:56:37 UTC

tool/fake.rb で builddir を相対パスに変換している部分をコメントアウトしています。コミットログによると拡張ライブラリの gem のビルドのために絶対パスにしておく必要があるとのこと。

ruby-trunk-changes 2021-10-03

今日は symbolic link 経由で同一のファイルが複数回 require されることがある不具合の修正や標準添付ライブラリ reline の変更などがありました。

[e0ef4899f3] Nobuyoshi Nakada 2021-09-24 08:06:10 UTC

Random の実装に MinGW 版の時に bcrypt ライブラリの BCryptGenRandom() という関数を利用するようにしています。

[3f7da458a7] Jeremy Evans 2021-09-23 19:31:32 UTC

load_encoding() で一時的に load_encoding 変数を Qfalse にセットして警告抑制するようにしていたのを rb_require_internal_silent() という関数を導入して require_internal() で ruby_verbose 変数を直接参照せず引数で警告を出すかどうかを判定させるようにリファクリングしています。 Ractor の導入で GVL 内でも複数の thread で同時に動く可能性ができたのでグローバル変数を変更するのは race condition があるため不要な警告が出る可能性があったから、ということかなと思います。

[79a4484a07] Jeremy Evans 2021-06-30 20:50:19 UTC

symbolic link を経由して実体は同じファイルを別の経路で require した時に同じファイルを複数回 load してしまう不具合の修正。 ddb85c5d2bdf75a83eb163856508691a7436b446 で一度入れてすぐあとに 162ad65fdd5e3f826eff4e0208c58a21151e993a で revert した変更の再挑戦だと思います。パッチの内容にはほとんど変化がないので、直前の 79a4484a072e9769b603e7b4fbdb15b1d7eccb15 が関連した CI でのエラーに対する修正だったのかもしれないですね。 [ruby-core:104010] [Bug #17885]

[4f65e6ce2a] Jeremy Evans 2021-10-02 22:55:13 UTC

カレントディレクトリが既に削除されてる場合のテストで Solaris では skip するようにしています。

[842673240b] git 2021-10-02 23:05:00 UTC

version.h の日付更新

[c5ff954410] xtkoba 2021-05-09 01:32:11 UTC

file.c の not_same_drive() という関数の定義を #ifndef _WIN32 の分岐の中にいれて使わない時に定義しないようにしてコンパイラの警告を抑制しています。

[2962c421e1] mitsu-ksgr 2021-10-03 02:09:08 UTC

doc/marshal.rdoc の記述ミスを修正しています。

[ceeae31901] Rei Odaira 2021-10-03 02:22:37 UTC

拡張ライブラリ date の AIX 向けに altzone を利用しないようにする修正。

[ff480f2953] Nobuyoshi Nakada 2021-10-03 02:42:31 UTC

RUBY_DEBUG_LOG() というデバッグ用のメッセージ出力のマクロ? で %p で整形する値を明示的に (void*) にキャストするようにしています。

[7c6ef27d6c] aycabta 2021-09-30 10:36:19 UTC

標準添付ライブラリ reline のテストで vi-movement-mode というコマンドのテストをするために inputrc に追加したキーバインディングを Ctrl-j から Ctrl-a に変更しています。 Windows だと Ctrl-j と Enter の区別ができないためとのこと。

[1d2edda9f8] aycabta 2021-09-30 11:07:26 UTC

標準添付ライブラリ reline のダイアログのスクロールバー表示の長さ計算の修正。

[a2d2f00e4a] aycabta 2021-09-30 11:33:45 UTC

1d2edda9f8427a36eaa12005267b10dcf4bb882e の続き。標準添付ライブラリ reline のダイアログのスクロールバー表示の長さ計算の再修正。

[4401bbe8a7] aycabta 2021-09-30 11:49:42 UTC

標準添付ライブラリ reline で String#unpack を使って1つめの要素だけ使っているところを String#unpack1 を利用するようにリファクタリングしています。

[2a3d0fbe17] aycabta 2021-09-30 11:55:50 UTC

標準添付ライブラリ reline の test/reline/yamatanooroti/multiline_repl の文字列配列リテラルが横に長くなってのを1要素ごとに改行するようにスタイルの変更。

[ef350b3a56] TOMITA Masahiro 2021-09-26 06:39:45 UTC

標準添付ライブラリ reline の SIGWINCH のハンドラの処理を Reline::LineEditor#resize というメソッドに切り出して、ついでに Reline::ANSI.inner_getc でもこれを呼び出して毎回端末サイズ変更がないかのチェックをするようにしています。

[bf0a8a7462] aycabta 2021-10-01 05:25:43 UTC

標準添付ライブラリ reline の Reline::Windows.check_input_event でも Reline::LineEditor#resize を呼び出して1文字ごとに端末サイズ変更がないかチェックするようにしています。

[95522ef8b9] aycabta 2021-09-30 12:15:39 UTC

標準添付ライブラリ reline のメソッドの引数を読み終えたところで? 端末の再描画をするように @rerender_all を true にセットするようにしています。しかし一箇所変数名が @rerender_al になってますね。

[d31279fe6f] aycabta 2021-10-01 05:16:42 UTC

標準添付ライブラリ reline のテストで M-3 のように回数指定つきで文字削除した後のプロンプト表示を確認するテストを追加しています。

[bc5407f00c] aycabta 2021-10-03 06:22:47 UTC

標準添付ライブラリ reline の Reline::LineEditor の private メソッド ed_unassigned と ed_insert (というより inputrc に書くコマンドについてのドキュメントみたいですけど)の説明をコメントとして追記しています。

[ea64e742f5] Nobuyoshi Nakada 2021-10-03 07:35:10 UTC

524513be399e81bb170ec88aa0d501f33cbde8c3 で 標準添付ライブラリ mkmf の try_var で実際にリンクするところまでチェックするようにした変更を revert しています。誤検出することがあったとのこと。 [ruby-core:105520] [Bug #18235]

[bf4f3ef5ad] aycabta 2021-10-03 09:41:22 UTC

標準添付ライブラリ reline の lib/reline/line_editor.rb に TODO コメントを追加して、2.5 のサポートがなくなったら alias_method の戻り値を private に渡すようにするぞ、と宣言しています。