ruby-trunk-changes 2019-08-15

今日は Range#=== で要素が文字列の時の判定方法の変更や Range#minmax の最適化のためのメソッド定義追加などがありました。

[8be521662d] Takashi Kokubun 2019-08-14 13:21:15 UTC

.github/workflows/check_branch.yml のジョブ名? タスク名? を改名しています。

[bf77f43b39] Takashi Kokubun 2019-08-14 13:36:41 UTC

.github/workflows/check_branch.yml のコメントのこの GitHub Actions のチェックの目的についてまた書きなおしています。

[9874dca3e7] Takashi Kokubun 2019-08-14 14:00:09 UTC

.github/workflows/macos.yml の make check と make test-bundler および make test-bundled-gems の実行を分けて continue-on-error の設定を true にしてエラーを無視させるようにしています。また .github/workflows/ubuntu.yml でも test-bundler と test-bundled-gems のエラーを無視させるようにしています。

[48e9155e65] Nikolai B 2019-08-14 09:16:07 UTC

標準添付ライブラリ English の rdoc 用コメントに rdoc のマークアップではない? \vref というものが書かれてたので削除しています。

[7da40d74e1] Steven Harman 2019-08-14 14:35:47 UTC

Exception#backtrace および Exception#backtrace_locations の rdoc 用コメントの call-seq に nil がかえる可能性があることについて明記しています。 https://github.com/ruby/ruby/pull/2358

[e173012f44] Takashi Kokubun 2019-08-14 14:41:30 UTC

defs/gmake.mk の make merge-github および merge-github-xxx のターゲットを削除しています。

[938e075273] Takashi Kokubun 2019-08-14 16:00:26 UTC

make update-github というターゲットを追加して GitHub の pull request のブランチに master をマージさせることができるようにしています。 https://github.com/ruby/ruby/pull/2368

[7d32cb7631] git 2019-08-14 16:00:46 UTC

version.h の日付更新

[fbcd065294] Jeremy Evans 2019-08-14 05:44:36 UTC

知らなかったのですが nil::C のように nil に対して定数の探索ができてたみたいで、動機はよくわからないのですが VM 命令の getconstant に scope として nil を許容するかどうかを指定するオペランドを追加して構文的な定数アクセスの時には許容しないように修正しています。 [ruby-core:71598] [Bug #11718]

[d053a57014] git 2019-08-14 16:51:19 UTC

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

[6ac6de84ac] Jeremy Evans 2019-08-14 16:59:27 UTC

fbcd0652944568c43a6ae427960d909d62ce6a8d の再修正。 getconstant のオペランドに 0/1 を渡していたのを Qfalse/Qtrue を渡すように修正しています。

[661927a4c5] Jeremy Evans 2019-08-14 18:19:16 UTC

fbcd0652944568c43a6ae427960d909d62ce6a8d のさらに再修正。 VM 命令の getconstant に nil 許容のフラグをオペランドとして追加していたのはやっぱりやめて、VM スタック経由で渡すようにしています。 ISeq の構造が変化しないようにってことだと思いますが、VM スタックの消費量が変わるのも結局結構大きな影響があるような気がするけどなぁ。

[d5c60214c4] Jeremy Evans 2019-06-08 05:03:02 UTC

Range#minmax の定義を追加して Enumerable#minmax を継承していたので非効率な実行になってたり処理が帰ってこなくなってたりしたのを対処しています。 [ruby-core:92459] [Bug #15807] [ruby-core:92789] [Bug #15867]

[082424ef58] Jeremy Evans 2019-05-09 03:35:56 UTC

String#casecmp の実装で大文字小文字を無視して比較する時に TOUPPER() で大文字に揃えて比較してたのを TOLOWER() で小文字に揃えて比較するように変更しています。なんか特別な意味があるのかなと思ったけどコメントみる限り String#casecmp? などと挙動を揃えたということみたいです。

[6954ff1dcb] Jeremy Evans 2019-07-29 23:22:00 UTC

Ragen#=== の文字列を begin/end とする Range について Range#cover? の実装を使ってチェックするようにしています。Range は begin からはじめて succ でインクリメントしていくという semantic なので ("a"..."z") とした時には "aa" はこの Range を each でイテレートした時の要素としては現れないんだけど、<=> で比較すると辞書順なので "a" < "aa" < "z" という順序にはなるのでこの順序としての解釈を使うようにするよ、ということですね。うーん、まあそのほうが便利な気はする(が使うかなぁ)。ただこの挙動は r63453 で再実装した時に変わっちゃったみたいなのでそれを修正しているということみたいですね。 [ruby-core:90660] [Bug #15449]

[132b7eb104] git 2019-08-14 23:16:14 UTC

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

[53a55aeff3] Koichi Sasada 2019-08-15 04:48:58 UTC

RUBY_ON_BUG という環境変数コマンドラインを指定しておくと、rb_bug() で異常終了する際にこのコマンドに自分自身の pid を渡してコマンド実行するようにしています。デバッガを指定することで異常終了する時の状態を保存してデバッガに処理を引き継ぐようにできるようにしています。便利そう。 https://github.com/ruby/ruby/pull/2331 [ruby-core:94216] [Feature #16090]