ruby-trunk-changes r61768 - r61790

今日は parse.y のリファクタリングVM 用ソースの生成ツールの置き換え、標準添付ライブラリ matrix の新メソッド追加などがありました。

mame: r61768 2018-01-11 22:42:15 +0900

parse.y の構造体メンバーのコメント追加と paren_nest の管理方法のリファクタリング

mame: r61769 2018-01-11 22:42:18 +0900

parse.y の lexer で ")" と "]" と "}" を switch 文の fallthrough を使って同じ節に、一部分岐して書いてたのを、それぞれ別の case 節に分けています。

kazu: r61770 2018-01-11 22:56:04 +0900

root ユーザーで実行した時に skip するテストでコメントに書いてあった文章を skip のメッセージに渡すようにしています。

kazu: r61771 2018-01-11 22:56:05 +0900

r61768 で parse.y に追加したコメントの typo 修正。

mame: r61772 2018-01-12 00:54:13 +0900

cond_stack や cmdarg_stack の操作するマクロ群から COND_LEXPOP(), CMDARG_LEXPOP() を削除してかわりに XXX_POP() を使うようにしています。command_args というノードのルールで引数が ( や { ではじまってた時に1文字先読みする関係で cmdarg_stack の状態が 1 bit ずれるために LEXPOP() が必要だったみたいなので、その部分で余分に POP/PUSH して調整するようにしているそうです。

svn: r61773 2018-01-12 00:54:14 +0900

version.h の日付更新。

naruse: r61774 2018-01-12 03:26:49 +0900

標準添付ライブラリ resolv の Resolv::MDNS#each_address のテストで時間がかかるものについて DNS の問い合わせ部分を mock して実際には通信しないようにしています。ライブラリ本体も to_a で中間配列を生成するのを抑制するようにしています。 [ruby-core:84751] [Feature #14340]

stomar: r61775 2018-01-12 04:36:30 +0900

標準添付ライブラリ matrix に Matrix#antisymmetric? というメソッドを追加しています。 正方行列で行と列を入れ換えても同じものを判定するメソッドです。 https://github.com/ruby/ruby/pull/1788

svn: r61776 2018-01-12 04:36:31 +0900

r61775 の新規追加ファイルの svn property 設定。

stomar: r61777 2018-01-12 04:37:25 +0900

r61775 の Matrix#antisymmetric? の追加について NEWS ファイルに追記しています。

naruse: r61778 2018-01-12 04:41:49 +0900

r61774 の Resolv::MDNS のテストの mock で IPv6 が有効かどうかによって localhost のアドレスを変更するようにしています。

normal: r61779 2018-01-12 09:15:28 +0900

thread.c の thread_cleanup_func() のコメントに FIXME コメントで atfork が真の時には僅かに memory leak の可能性があるということについて追記しています。

kazu: r61780 2018-01-12 09:16:56 +0900

doc/NEWS-2.5.0 の Integer#step というエントリは Numeric#step に修正して記述位置も移動しています。

kazu: r61781 2018-01-12 09:16:59 +0900

標準添付ライブラリ net/http の Net::HTTP::STATUS_CODES という定数に 103 "Early Hints" という r61634 で追加した新しいステータスの対応を追加しています。

shyouhei: r61782 2018-01-12 17:38:07 +0900

r61755 で revert した VMソースコード生成ツールの置き換えのリトライで、insns.def の日本語コメントの削除や sp_inc の annotation の記述方法の変更など r61728 の再導入です。

shyouhei: r61783 2018-01-12 17:38:08 +0900

r61782 の続きで insns.def のヘッダ部分のコメント追加。

shyouhei: r61784 2018-01-12 17:38:09 +0900

r61782 の続きで tool/instruction.rb を削除して tool/ruby_vm/ に新しく insns.def から VMソースコードの生成のためのツールを導入しています。

shyouhei: r61785 2018-01-12 17:38:10 +0900

r61784 で導入した tool/ruby_vm/ のツールで 2.3 以前の BASERUBY でも動作するように、インデント除去つきヒアドキュメントの削除や Enumerable#grep_v を reject に書き換えなど、 r61744 を再適用しています。

shyouhei: r61786 2018-01-12 17:38:11 +0900

さらに ruby 2.1 でも動くように tool/ruby_vm を修正しています。正規表現の新機能が使えないの書き換えが大変そう。

shyouhei: r61787 2018-01-12 17:38:12 +0900

さらに tool/ruby_vm を 1.9 でも動かせるようにしています。 String#b の代替実装や __dir__ を __FILE__ から作るようにしたり ->(){} による lambda の記法の置き換えなど。うーむ、なつかしい。 __dir__ って割と最近な気がしてたけど 2.0 からか。結構前からあるんだな。

hsbt: r61788 2018-01-12 18:07:47 +0900

sample/trick2013 と sample/trick2015 にある TRICK の入賞作品の説明の typo 修正。

normal: r61789 2018-01-12 18:31:17 +0900

sample/iseq_loader.rb のメッセージの typo 修正。

normal: r61790 2018-01-12 18:31:22 +0900

sample/iseq_loader.rb で Kernel#open を使っているところを File.open を使うようにしてファイルを開くのに限定するようにしています。