ruby-trunk-changes 2019-06-26

今日は Coroutine の ucontext 実装の追加や irb の auto indent の修正などがありました。

[0b57f9b25d] aycabta 2019-06-25 13:00:29 UTC

irb の auto indent のための対応するトークンのインデントレベルを計算する処理で else, rescue, ensure, when, in などのブロックの途中(?)に出現するキーワードの時も対応する begin や switch のインデントレベルを参照するようにしています。

[57e1a69ea3] aycabta 2019-06-25 13:07:32 UTC

irb の auto indent のための処理がさらに追加されています。めちゃ大変そうだこれ……。しかし auto indent は嬉しいのでいい感じになって欲しいですね。

[730aeb2523] Yusuke Endoh 2019-06-25 14:31:49 UTC

518adcca0a2c611c4a94eaa778f9dcec4aff03f9 および dbe232e24e56cb200b8e5b78062c8a2784a792e9 の arm32 での Coroutine 実装と Linux でこれを使うようにする変更を revert しています。 CI でエラーになっていたとのこと。

[0bd5f846df] Jeremy Evans 2019-06-24 20:55:31 UTC

doc/syntax/assignment.rdoc に Kernel#eval でのローカル変数への代入が通常のローカル変数(parse 時点で確保される)と違う点を追記しています。 [ruby-core:80253] [Bug #13337]

[dd57442f74] git 2019-06-25 16:53:19 UTC

0bd5f846df2f6268f653773e0cd4a20e2a944646 の行末の空白除去。

[0aa8c3d88b] git 2019-06-25 16:53:22 UTC

version.h の日付更新

[0f28094201] Jeremy Evans 2019-06-25 18:18:08 UTC

0bd5f846df2f6268f653773e0cd4a20e2a944646 の doc/syntax/assignment.rdoc へ追加したローカル変数の記述を少し変更しています。

[cfa1a18431] aycabta 2019-06-25 23:07:58 UTC

57e1a69ea38d30bc249553e5fe15295ae0f5af81 で irbデバッグ用の出力が残ったままだったので削除しています。

[e478671e19] Hiroshi SHIBATA 2019-06-26 00:23:02 UTC

d7887b05d810e7e3188d25ed91364d5850d92cd7 の Psych.dump で例外を dump した時の rubyspec のテストを追随させていましたが、ruby のバージョンで分けるようにしています。

[ea8bc6822d] Nobuyoshi Nakada 2019-06-25 23:37:14 UTC

irb の auto indent のコードでまだデバッグ用のメッセージ出力が残ってたので削除しています。

[a3d1cacda6] Nobuyoshi Nakada 2019-06-25 23:43:08 UTC

0b57f9b25d43c2efec8ac17c0c03ce9fa461937a の irb の auto indent の処理で else などと同様に elsif キーワードも処理するようにしています。

[51361272f9] Jeremy Evans 2019-06-25 17:59:26 UTC

r66844 で tool/rbinstall.rb でインストール先に既に default gem の gemspec ファイルがあったら一度削除するようにしていましたが、この時 configure の --dest-dir の指定を加味して掃除するディレクトリを決めるように修正しています。

[6df1814c08] Yusuke Endoh 2019-06-26 05:08:10 UTC

730aeb2523fadd816b07e0e5322fb79841efc709 で revert された 518adcca0a2c611c4a94eaa778f9dcec4aff03f9 および dbe232e24e56cb200b8e5b78062c8a2784a792e9 のリトライ。 arm32 の COROUTINE_REGISTERS を1減らしたり arm32 版実装のアセンブラを変更したりしています。

[fe0ddf0e58] Nobuyoshi Nakada 2019-06-26 06:01:01 UTC

irb の行継続の判定で ensure は ";" なしに続けて書けない(そうだっけ)のでそのように修正しています。

[04bc4c0662] John Hawthorn 2019-06-25 16:01:57 UTC

String オブジェクトは freeze するともうバッファを変更しなくなるので、(バッファをヒープに確保している場合) capa を実際のサイズ(+終端の NUL 文字ぶん)のサイズに切り詰めるということをしていて、rb_fstring() で(String#-@ で) fstring 化した時にこのバッファの切り詰め処理が行なわれていなかったのでここでもするようにしています。 https://github.com/ruby/ruby/pull/2256

[a84a99ffab] Yusuke Endoh 2019-06-26 07:01:45 UTC

Array のテストで GC を何度も強制的に実行するテストが時間がかかるため子プロセスを起動してそこで実施するようにしています。

[6c6bf9ffcb] Samuel Williams 2019-06-24 11:54:19 UTC

Coroutine 実装に ucontext(3) を利用した実装を追加して、ネイティブの実装が使えないときにこれを利用するようにしています。ついでに構造体の名前変更(というか typedef をやめる)があったりしてメインの変更がよくわからないですが、これでもう Fiber の実装は常に Coroutine 実装になったのかな。そうはなってなさそう。 FIBER_USE_COROUTINE が偽の時の実装と ucontext 利用時の Coroutine 実装は違うのかな?

[28eeaed8a9] Yusuke Endoh 2019-06-26 08:22:46 UTC

6df1814c08df93bbc0b3e7a73649bcf82e126064 の arm32 版 Coroutine 実装の修正も revert されています。まだ armv7l-linux での CI が失敗した模様。

[ba17127e99] aycabta 2019-06-26 09:41:42 UTC

irb の auto indent で end などのブロックを閉じるトークンが行頭に来た時のインデントレベルを減らす修正。

[acb67472c7] Samuel Williams 2019-06-26 10:02:19 UTC

6df1814c08df93bbc0b3e7a73649bcf82e126064 の arm32 版の Coroutine の実装は再適用しつつ、configure 時に armv7 linux 環境ではこれを使わず ucontext 実装の Coroutine を利用するようにしています。

ruby-trunk-changes 2019-06-25

今日は拡張ライブラリ psych の Exception のダンプの backtrace 対応や Hash を継承したクラスのインスタンスの dump/load の不具合修正や arm32 版の Coroutine 実装の不具合修正などがありました。

[9c19cd5222] aycabta 2019-06-24 14:58:50 UTC

irb の auto indent のためのネストレベル管理のためのメソッド process_nesting_level からメインの処理を check_corresponding_token_depth というメソッドに切り出して、インデントレベルの管理部分だけ process_nesting_level に残すようにリファクタリングしています。

[e09afd15b7] git 2019-06-24 15:19:49 UTC

version.h の日付更新

[dbe232e24e] Samuel Williams 2019-06-25 05:04:04 UTC

ARM 32 版 Coroutine 実装 coroutine/arm32/Context.S でレジスタの番号ミスを修正しています。

[9b23aab290] Hiroshi SHIBATA 2019-06-25 02:51:25 UTC

tool/sync_default_gems.rb で io/console の同期時のファイルパス間違いを修正。

[083fda8490] SHIBATA Hiroshi 2019-03-27 07:53:54 UTC

標準添付ライブラリ fileutils のバージョン(定数 FileUtils::VERSION の値)を 1.2.0 に更新しています。

[e572ff2f95] David Rodríguez 2019-04-30 14:21:45 UTC

lib/fileutils.rb からの fileutils/version の require を require_relative を利用するように修正? しています。

[d118c84b0b] Jeremy Evans 2019-06-15 00:50:31 UTC

標準添付ライブラリ scanf で IO#scanf で seek が Errno::EINVAL を返した時にも Errno::ESPIPE と同様に無視するようにしています。 Windows では EINVAL が発生するらしいです。 [ruby-core:89271] [Bug #15199]

[4bd1909427] Aaron Patterson 2019-01-09 21:25:09 UTC

拡張ライブラリ psych で Exception オブジェクトをダンプした時に backtrace も出力してましたがしないように変更しています。 "never worked" なのでって書いてあるので実は出力されてなかった? 後のほうで rubyspec の変更もありますがどうやらそれっぽい実装はあるけど実際にはダンプされてなかったようです。

[f770a5be66] Aaron Patterson 2019-01-09 21:28:08 UTC

4bd190942710725a79ca61fb30cff152888b55d0 の続きで psych での Exception と NameError (NameError は内部に追加の属性があるので独自に実装があるらしい)で共通部分をメソッドに切り出すリファクタリング

[a53ab897c3] Aaron Patterson 2019-01-09 21:34:51 UTC

で psych で例外オブジェクトの backtrace をダンプするように戻しています。なるほど dump はしてたけど load 時に参照してなかったのでちゃんと参照するようにしたっぽい。

[0016edbead] Jordan Owens 2019-01-16 05:29:12 UTC

拡張ライブラリ psych のテストに Hash を継承してインスタンス変数を追加したクラスのインスタンスを dump した時の不具合についてのテストを追加しています。

[03dac55f90] Aaron Patterson 2019-01-16 18:46:34 UTC

拡張ライブラリ psych の Hash のダンプ時に格納してる要素の前にインスタンス変数の出力を行うようにしています。 []= メソッドの実装にインスタンス変数が必要なケースでこの順にしておかないとエラーになるため。なるほどそういうことか。つまり修正は dump 時の順序だけど問題が発生するのは load 時。なので古いバージョンで dump したものは新しいバージョンでも load できない。

[3c4fc830dd] SHIBATA Hiroshi 2019-02-26 06:56:55 UTC

拡張ライブラリ psych の .gemspec ファイルの spec.files から存在しなくなってる CHANGELOG.rdoc を削除しています。

[00d0ede845] SHIBATA Hiroshi 2019-02-26 23:44:33 UTC

3c4fc830dd3f2c3e1e642f83072bead8189aec63 と同じく psych.gemspec ファイルの spec.extra_rdoc_files からも CHANGELOG.rdoc を削除しています。

[63f78bbaae] Jean Boussier 2019-04-26 11:26:14 UTC

拡張ライブラリ psych の Psych::ScalarScanner#tokenize で switch 文の when に正規表現書いてたのを if 文と Regexp#match? メソッドを使うように書き換えています。

[5a4d2b9f2f] Jean Boussier 2019-04-26 16:57:03 UTC

拡張ライブラリ psych の Psych::ScalarScanner のインスタンス変数 @string_cache を削除しています。使われかたをみてもいまいちなにを cache していたのかよくわからず。dedup してるわけでもなさそうだしなぁ。

[746812ee96] Jean Boussier 2019-04-26 17:38:43 UTC

拡張ライブラリ psych の Psych::ScalarScanner で整数を tokenize する時の正規表現を修正して例外的な処理しているのを整理しています。ところで知らなかったのですが、YAML の整数で桁の区切りにカンマが書けるんですね。つまり "123,456,789" みたいに書いて 123456789 という整数になる。これ配列を JSON 風に書いた時に衝突するんじゃないかと思ったのですが、この処理はあくまで scalar の処理するものなので配列の要素の分解は別にされているみたいで、 "[123,456,789]" と書いたのを Psych.load するとちゃんと 3要素の配列になりました。うーん、きもちわるい仕様(たぶん YAML の仕様ですよね)。

[d7887b05d8] Hiroshi SHIBATA 2019-06-25 07:46:42 UTC

a53ab897c35586a836710a8afeb1e8c1abd9b087 で例外を Psych.dump すると backtrace もダンプされるようになったので rubyspec を追随させています。

[1cbc4f9876] Yusuke Endoh 2019-06-25 08:20:01 UTC

net/imap のテストでサーバーを起動する Thread の準備ができるまで待つのにローカル変数への代入をチェックしていたのを Thread#stop? を使って待ち状態になるまで待つように変更しています。このほうが確実にソケットを accept する状態になってることを確認できるため。

ruby-trunk-changes 2019-06-24

今日は ARM 上の Linux での Fiber の coroutine 実装のサポートや CESU-8 というエンコーディングの追加などがありました。

[096a45d3d2] Samuel Williams 2019-06-23 13:28:23 UTC

NEWS ファイルに IA64 のサポート削除と VM スタックをマシンスタックに確保するようにしたことによるパフォーマンス改善について追記しています。

[bdcfba547d] Nobuyoshi Nakada 2019-06-23 09:28:32 UTC

tool/vcs.rb に --dryrun オプションと --dubeg オプションを追加して、--dryrun 指定時に実際にコマンド実行せず表示するだけにするようにしています。

[50b2807a7c] Nobuyoshi Nakada 2019-06-23 14:10:16 UTC

rubyspec の UNIXSocket のテストで UNIX socket のパスに1文字追加してパス名を作ってたところで末尾の文字を置換する方法に変更しています。 UNIX socket のファイル名の長さに制限がある環境があるみたいです。

[97a7f463f6] Nobuyoshi Nakada 2019-06-23 14:12:47 UTC

rubyspec の UNIXSocket のテストで UNIX socket のパス名の上限が macOS で厳しくなったらしくサイズ上限のチェックを変更しています。まじか。

[11a60f9bdb] Nobuyoshi Nakada 2019-03-09 10:53:51 UTC

標準添付ライブラリ webrick が返す HTTP の status line の行末に空白が含まれてしまっていたのを修正。

[c6229e7c69] Rob 2019-03-30 17:28:22 UTC

webrick の認識する MIME type に application/wasm を追加しています。

[edbad4adcc] masakazutakewaka 2019-06-19 18:22:52 UTC

webrickWEBrick::HTTPStatus についてのテストを追加しています。

[0b36c90e12] git 2019-06-24 01:24:51 UTC

version.h の日付更新

[a071bed7a5] Samuel Williams 2019-06-24 02:24:49 UTC

cont.c に FIBER_USE_COROUTINE が未定義の時に警告を出力する #pragma を追加しています。

[5d4dfcd808] git 2019-06-24 02:25:17 UTC

a071bed7a5041e3d3e7029f73c3f09a9f6cdfd98 の行末の空白削除。

[abdbfebad1] Samuel Williams 2019-06-24 03:12:21 UTC

configure.ac のインデントのタブを空白に展開。

[0e6396d2ac] Samuel Williams 2019-06-24 03:13:10 UTC

arm64-linux の環境で coroutine の ARM 実装を利用するように configure を修正しています。

[7f64a0b4db] "NARUSE, Yui" 2019-06-16 23:50:44 UTC

Encoding に CESU-8 というエンコーディングを追加しています。 Java の固有拡張版の UTF-8 に類似のエンコーディングということみたいです。 [ruby-dev:50801] [Feature #15931]

[97b4fe2ff6] Luke Gruber 2019-06-23 19:28:22 UTC

array.c の ARY_HEAP_SIZE() が共有配列の時(や embed されてる時?)に不正な値を返していたのを修正しています。 https://github.com/ruby/ruby/pull/2253 [ruby-core:93325] [Bug #15953]

[4275f09015] "NARUSE, Yui" 2019-06-24 06:56:18 UTC

7f64a0b4db7ee27a04579236950d88301c7bcabb で追加した CESU-8 の Encoding 追加で不要な switch 文の default 節を削除しています。

[518adcca0a] Samuel Williams 2019-06-24 07:09:16 UTC

0e6396d2ac8bc3803742655896bb0fad70007dda に続き armv7-linux の環境で coroutine の arm32 実装を利用するように configure を修正しています。

ruby-trunk-changes 2019-06-23

今日は Module#const_source_location の追加や Array#unshift の不具合修正などがありました。

[f738eeabc2] Nobuyoshi Nakada 2019-06-22 14:38:07 UTC

golf_prelude.rb でメソッド再定義の警告除去のため一時的に $VERBOSE をクリアするようにしています。

[f5e2904471] Nobuyoshi Nakada 2019-06-22 14:44:19 UTC

minitest/unit で diff コマンドの利用可能なコマンド名を探すところで RbConfig::CONFIG["EXEEXT"] をみて ".exe" の有無は判定するようにして分岐を減らしています。

[f3c81b4e90] Nobuyoshi Nakada 2019-06-22 15:31:16 UTC

ObjectSpace::WeakMap に freeze したオブジェクトを格納しようとするとチェックで弾かれてエラーになるのを修正しています。 finalizer の設定の時のチェック関数を利用していたので frozen チェックも一緒にしてしまっていたようです。 [ruby-core:80835] [Bug #13498]

[fd9ac1e76b] git 2019-06-22 15:37:11 UTC

version.h の日付更新

[c033dc3073] Luke Gruber 2019-06-22 15:25:52 UTC

Array#rindex の実装で rb_equal() を呼んだ結果 receiver の配列のサイズが変化した場合を考慮して再度サイズチェックするようにしています。 https://github.com/ruby/ruby/pull/2250 [ruby-core:93319] [Bug #15951]

[151843b981] Nobuyoshi Nakada 2018-12-13 09:12:07 UTC

rb_autoloading_value() から処理の大部分を autoloading_const_entry() という関数に切り出して rb_const_search() かこちらを呼び出すようにリファクタリングしています。

[5084233b88] Nobuyoshi Nakada 2018-12-13 09:27:32 UTC

定数探索の関数 rb_const_search() から retry で繰り返してるところを rb_const_search_from() という関数に切り出して呼び直すようにリファクタリングしています。

[9384383019] Nobuyoshi Nakada 2018-12-13 12:49:05 UTC

定数の宣言のソース上の位置を返す Module#const_source_location を追加しています。あれ、これまだなかったっけ? [ruby-core:67745] [Feature #10771]

[ef524c13d9] Nobuyoshi Nakada 2019-06-22 16:44:07 UTC

93843830198ba436e2ea21a60a11758d47cf521b の Module#constant_source_location の追加について NEWS ファイルに追記しています。 [ruby-core:67745] [Feature #10771]

[c5c3486340] git 2019-06-22 16:47:40 UTC

93843830198ba436e2ea21a60a11758d47cf521b のインデントのタブを空白に展開。

[aa2f505825] Nobuyoshi Nakada 2019-06-22 17:49:39 UTC

151843b9816b52b1ddb1e9b2040991a7de4173c6 で切り出した autoloading_const_entry() を static 関数にしています。

[2ad7a7f801] "MSP-Greg (Greg L)" 2019-06-22 22:33:15 UTC

標準添付ライブラリ cgi のテストでリクエストの改行(LF)を CR+LF に変換するのに String#gsub! を使っていたので文字列が freeze されてるとエラーになるのに対策しています。 [ruby-core:84313] [Bug #14194]

[bebe8d13f8] Nobuyoshi Nakada 2019-06-22 22:42:11 UTC

ObjectSpace のテストで子プロセスを起動する時にコマンドラインオプションに --disable=frozen-string-literal を付けておくようにしています。 [ruby-core:84313] [Bug #14194]

[3840791b7e] Nobuyoshi Nakada 2019-06-22 22:56:43 UTC

テストで frozen-string-literal が有効にされるとエラーになるところを修正したり、マジックコメントを追加したりしています。 [ruby-core:84313] [Bug #14194]

[ec8e5f5aa6] Luke Gruber 2019-06-22 22:37:08 UTC

Array#unshift の実装でバッファを共有した配列の時に rb_ary_modify() がスキップされてしまっていたのを修正しています。 https://github.com/ruby/ruby/pull/2251 [ruby-core:93322] [Bug #15952]

[5a187e26ad] Luke Gruber 2019-06-23 02:22:23 UTC

ec8e5f5aa64e2a54cf1e303f2b012c98e8d521ba の修正は共有配列の時の最適化処理の意味がなくなってしまうので revert して、実際にバッファの書き換えが起きる条件に入ったところで rb_ary_modify() を呼ぶように再修正しています。 https://github.com/ruby/ruby/pull/2252 [ruby-core:93322] [Bug #15952]

ruby-trunk-changes 2019-06-22

今日は ENV.merge! の追加や irb の auto indent の挙動の修正などがありました。

[8f51da5d41] Nobuyoshi Nakada 2019-06-21 13:42:14 UTC

String#sub! の実装で同じメモリ領域の可能性があるバッファ間のコピーに memcpy(3) を使っていましたが、これは未定義挙動となるので memmove(3) を利用するようにしています。 [ruby-core:93295] [Bug #15946]

[551ef27490] git 2019-06-21 13:48:50 UTC

8f51da5d41f0642d5a971e4223d1ba14643c6398 のインデントのタブを空白に展開。

[1c7e303b26] Nobuyoshi Nakada 2019-06-21 14:03:36 UTC

標準添付ライブラリ tmpdir で prefix と suffix から file separator は除外するようにしてますが、この除外する文字群を定数に入れておくようにして、 ":" も除外するようにしています。 ":" の除外は Windows 向けかな?

[8a1dd9b84b] Nobuyoshi Nakada 2019-06-21 14:45:39 UTC

リリース版でない時の RUBY_DESCRIPTION_WITH に時刻まで含めるようにしています。

[d1fa0f6191] git 2019-06-21 15:03:27 UTC

version.h の日付更新

[5e2088665b] aycabta 2019-06-21 12:57:19 UTC

irb の auto indent で閉じかっこや end があった時の対応する開きトークンにあわせる挙動はそれが行頭にある時だけにするように修正しています。

[c79131df28] aycabta 2019-06-21 15:31:30 UTC

同じく irb の auto indent の閉じトークンのインデントの対応トークンにそろえる処理の例外対応。

[2f2fc939eb] Nobuyoshi Nakada 2019-06-21 16:16:23 UTC

version.h でリリース版でも定数マクロ RUBY_RELEASE_DATETIME を常に定義するようにしています。

[e5e811e4a0] Jean Boussier 2019-05-07 10:52:24 UTC

rubyspec に autoload? のテストに第2引数を指定したものを追加しています。 https://github.com/ruby/ruby/pull/2173

[3b2d11ad90] Benoit Daloze 2019-06-21 16:21:16 UTC

e5e811e4a04482a5ad764fbb2b792ee5fbdd7195 の続き。 rubyspec の Module#autoload? のテストで使う定数名を変更しています。意図をわかりやすくするためで内容的には変化はないはず。

[d01fd82187] Kenichi Kamiya 2019-06-21 03:28:28 UTC

ENV に merge! メソッドを ENV.update の alias として追加しています。 https://github.com/ruby/ruby/pull/2246 [ruby-core:93296] [Feature #15947]

[4d650bc257] Nobuyoshi Nakada 2019-06-22 00:29:33 UTC

テスト用の minitest/unit で差分を整形して出すためのメソッドでエスケープを展開する処理でバックスラッシュをバックスラッシュでエスケープしてるケースを考慮するようにしています。ややこしいな。

[bad66f3e36] Nobuyoshi Nakada 2019-06-22 09:39:06 UTC

test/unit の assert_join_threads で ensure 節を追加してまだ動いている Thread に Timeout::Error 例外を送信して終了させるようにしています。

ruby-trunk-changes 2019-06-21

今日は Enumerator::Lazy#filter_map の追加や Module#autoload? に継承元まで遡るかの指定をする引数を追加する変更などがありました。

[1f0762ad21] Nobuyoshi Nakada 2019-06-20 10:27:27 UTC

mkmf のテストで警告抑制のため一時的に $VERBOSE を false にセットするようにしています。

[93356576fe] Hiroshi SHIBATA 2019-06-20 13:27:06 UTC

5bbfca7b1d4be89d4728203b4610de17bccbefd7 で削除した lib/racc/parser-text.rb を復活させています。

[4a5e07d8e1] Jeremy Evans 2019-06-20 17:22:01 UTC

標準添付ライブラリ net/pop で SSL 利用した時に警告が出ていたのを抑制するため TCPSocket に hostname をセットするようにしています。 [ruby-core:87390] [Bug #14822]

[2ee1c76206] git 2019-06-20 17:28:27 UTC

version.h の日付更新

[fde842fec0] Nobuyoshi Nakada 2019-06-20 18:19:42 UTC

make clean で coroutine 関係の生成ヘッダのタイムスタンプファイルを消すようにしています。

[4149fd6078] Espartaco Palma 2019-06-21 05:46:24 UTC

標準添付ライブラリ scanf の String#block_scanf の rdoc 用コメントの typo 修正。

[06a622b76e] Nobuyoshi Nakada 2019-06-21 07:28:39 UTC

Enumerator::Lazy#filter_map メソッドを追加しています。Enumerable に追加した時に Lazy には入れ忘れてたので今回追加ってことですね。 [ruby-core:93299] [Bug #15949]

[0174285e8c] git 2019-06-21 07:31:42 UTC

06a622b76e20b8996cd6d66c11ac7819a0996fae のインデントのタブを空白に展開。

[887163beb8] Kazuhiro NISHIYAMA 2019-06-21 08:08:42 UTC

06a622b76e20b8996cd6d66c11ac7819a0996fae の Enumerator::Lazy#filter_map の rdoc 用コメントが Enunmerable#filter_map のもののままだったので修正。

[fb85a42860] Jean Boussier 2019-05-07 10:52:24 UTC

Module#autoload? に省略可能な第2引数 inherit を追加しています。親クラスまで再帰的に検査するかを指定できるようにして、デフォルトは true にしています。デフォルトの挙動は変化なしですね。 https://github.com/ruby/ruby/pull/2173 [ruby-core:92336] [Feature #15777]

[5b7cc63d11] Nobuyoshi Nakada 2019-06-21 08:21:34 UTC

fb85a428605265a8fd449b0702a4dd88cb6f3b20 で使った rb_autoload_at_p() の引数 recur を VALUE から int にして Qtrue ではなく C の真偽値で渡すようにしています。 https://github.com/ruby/ruby/pull/2173 [ruby-core:92336] [Feature #15777]

[c997f7daaa] git 2019-06-21 08:29:08 UTC

5b7cc63d114fbca641ce2d93c7b3f2117e38af60 のインデントのタブを空白に展開。

[35392ff0a0] Nobuyoshi Nakada 2019-06-21 08:40:28 UTC

06a622b76e20b8996cd6d66c11ac7819a0996fae で Enumerator::Lazy#filter_map のサンプルコードとして rdoc 用コメントに書いたコードは take を使ってて結果を取り出してなかった(Enumrator::Lazy#take は先頭の指定の数まで取る Lazy を返すメソッド)ので first の呼び出しに変更しています。

[702cf3ec90] Shugo Maeda 2019-06-21 08:27:20 UTC

Enumerator::Lazy#filter_map の実装関数を追加しているんですが、これって 06a622b76e20b8996cd6d66c11ac7819a0996fae で追加しているの重複していますよね。はて…? [ruby-core:93299] [Bug #15949]

[432b28af90] git 2019-06-21 08:43:21 UTC

702cf3ec9051914c8ef5a353580e0e74f7ec7005 のインデントのタブを空白に展開。

[16729f6430] Nobuyoshi Nakada 2019-06-21 08:53:32 UTC

702cf3ec9051914c8ef5a353580e0e74f7ec7005 で重複して追加された関数を削除しています。正確には前に入れてたほうを消してますね。 rdoc 用コメントが少ないほうが残ってるけどこれはわざとだろうか。

[38ccb8f747] Shugo Maeda 2019-06-21 09:02:24 UTC

同じく 702cf3ec9051914c8ef5a353580e0e74f7ec7005 で入れた重複したテストも削除…しかしテストメソッド名は一緒だけど具体的な内容は違うんですよね。同時に別々に実装しちゃってたのかな。

[50841eca43] aycabta 2019-06-21 12:31:56 UTC

irb の auto indent で end のインデントを対応する開き要素のインデントレベルにあうように調整するのが正しく動くように修正しています。

ruby-trunk-changes 2019-06-20

今日は Complex#<=> メソッドの追加や racc の default gem 化などがありました。

[2abe548f35] Samuel Williams 2019-06-19 14:05:04 UTC

b24603adff8ec1e93e71358b93b3e30c99ba29d5 からの VM スタックのマシンスタック内での確保の変更で thread_start_func_2() での rb_execution_context_t の初期化の前に GVL 確保をするように修正しています。

[65944e96d3] Yusuke Endoh 2019-06-19 14:10:40 UTC

racc のテストで実際に racc 起動してコード生成させるテストでタイムアウトを伸ばしています。

[b9ef35e4c6] Jeremy Evans 2019-06-05 04:41:02 UTC

Complex#<=> の比較演算子メソッドを追加しています。どういう比較するのかと思ったら Complex は虚数部が 0 の時だけ比較に使って、そうでない時は nil を返すようにしています。なんか <=> で暗黙に nil を返すのやめようという運動がちょっと前にあったような気がするけど、これはいいのかな? [ruby-core:92694] [Bug #15857]

[fdfe51d169] git 2019-06-19 19:07:31 UTC

b9ef35e4c6325864e013ab6e45df6fe00f759a47 のインデントのタブを空白に展開。

[208cc6e3d0] git 2019-06-19 19:07:35 UTC

version.h の日付更新

[a0af60c7f2] Jeremy Evans 2019-06-13 14:55:26 UTC

rubyspec から Float::NAN を含む配列を比較した時のテストを削除しています。これは undefined behavior だということ。 [ruby-dev:50715] [Bug #15432]

[91c4ef0151] Samuel Williams 2019-06-19 23:31:22 UTC

構造体 rb_execution_context_t の mark 処理で cfp も NULL のタイミングができたのでチェックして NULL の時にアクセスしないようにしています。

[25049a6e81] Samuel Williams 2019-06-19 23:32:08 UTC

thread_start_func_2() などにデバッグ出力の追加と VM_ASSERT() でのチェック追加。また ruby_thread_set_native() を呼ぶタイミングを th->ec->machine.stack_{start,maxsize} の設定後に移動しています。

[626483721a] Samuel Williams 2019-06-19 23:56:06 UTC

rb_fiber_close() にて vm_stack をクリアするのと同時に ec->cfp の明示的な NULL リセットを追加しています。

[6bf1285b20] Samuel Williams 2019-06-20 00:07:15 UTC

25049a6e818d879aecb88379753f1e215b915f93 で追加した VM_ASSERT() の式の変数名 typo 修正。

[dbc2b89bc0] Samuel Williams 2019-06-20 01:41:18 UTC

rb_execution_context_t の vm_stack と cfp の両方をクリアする rb_ec_clear_vm_stack() という関数を導入して thread_cleanup_func_before_exec() でこれを呼ぶようにしています。

[199310997f] git 2019-06-20 01:41:46 UTC

dbc2b89bc042d73e60aeb7d56686aa28d82e2622 の行末の空白除去。

[15c4f6aed2] Samuel Williams 2019-06-20 02:16:08 UTC

dbc2b89bc042d73e60aeb7d56686aa28d82e2622 で追加した thread_cleanup_func_before_exec() からの rb_ec_clear_vm_stack() の呼び出しをやっぱり if(0) のブロック内に入れて一時的に? 実行しないようにしています。

[7d9d1ed463] Samuel Williams 2019-06-20 02:55:43 UTC

15c4f6aed29b4f9f8d2c911548ac87756239b592 やはっぱりやめて rb_ec_clear_vm_stack() は呼び出すんだけどその中で ec->cfp のクリアはしないようにしています。これ dbc2b89bc042d73e60aeb7d56686aa28d82e2622 で別の明示的に ec->cfp = NULL してたところも rb_ec_clear_vm_stack() の呼び出しにするようにしているんだけどいいのかな。

[c26c514494] Samuel Williams 2019-06-20 03:30:29 UTC

91c4ef01512d1ba285ccb3c3cb03e611257790e8 以降の一連のコミットを revert しています。

[e4cafa393f] Samuel Williams 2019-06-19 23:31:22 UTC

91c4ef01512d1ba285ccb3c3cb03e611257790e8 以降の一連のコミットのリトライ。えーと結局違うのは…コメントと thread_start_func_2() での ec->cfp の VM_ASSERT() を削っただけですね。

[c4c47b792d] aycabta 2019-06-20 06:56:10 UTC

reline の Reline::LineEditor#input_key から auto indent ありの複数行変数の処理を process_auto_indent というメソッドに切り出して @previous_line_index をチェックして early return するのを追加しています。コメントによると up/down キーによる行の移動だけの時は動かさないようにしているようです。

[45e939f5ad] Hiroshi SHIBATA 2019-06-20 05:31:41 UTC

racc に gemspec ファイルをして追加して default gem 化しています。

[71ebf6d8e5] Hiroshi SHIBATA 2019-06-20 06:00:40 UTC

tool/sync_default_gems.rb の racc の同期処理で cparse 用のサブディレクトリを掘るように修正しています。

[5bbfca7b1d] Hiroshi SHIBATA 2019-06-20 06:00:54 UTC

racc の不要なファイル lib/racc/parser-text.rb を削除しています。

[557bcd8774] Hiroshi SHIBATA 2019-06-20 06:59:20 UTC

NEWS ファイルに racc のバージョン更新とコマンド追加について追記しています。

[3aa8691d52] Hiroshi SHIBATA 2019-06-20 07:10:24 UTC

doc/maintainers.rdoc に racc のメンテナ追加と doc/standard_library.rdoc での racc の記述を default gem のところに移動しています。

[e6fbdde229] Kazuhiro NISHIYAMA 2019-06-20 08:40:08 UTC

557bcd877490092c826a56789d78dc73f8ad0321 の NEWS ファイルのエントリの typo 修正。

[e31602b78d] Nobuyoshi Nakada 2019-06-20 08:41:01 UTC

test/racc/helper.rb の警告除去のためメソッド呼び出しに明示的なかっこを追加しています。

[3077cb6912] Nobuyoshi Nakada 2019-06-20 09:20:38 UTC

同じく test/racc/helper.rb で $VERBOSE を弄っていたので begin-ensure で囲んで ensure 節で復旧させるようにしています。

[f607e43352] Samuel Williams 2019-06-20 08:29:35 UTC

thread_cleanup_func_before_exec() で fork 後に main 以外の全 Thread の root fiber の状態を FIBER_TERMINATED にセットするようにしています。 しかしこれの呼び元を調べてて気がついたんですが rb_thread_atfork_before_exec() って関数今はどこからも呼ばれてないみたいですね。 rb_thread_atfork() 経由で呼ばれてるので fork 時に呼ばれるようですが。

[9e7a8a4351] Samuel Williams 2019-06-20 11:12:42 UTC

a6a4e86029f16415767b579e62691f09b1fb6075 で /build* を無視するように .gitignore に追加してましたがディレクトリの時だけ無視するように最後に "/" を追加しています。