ruby-trunk-changes r64255 - r64273

今日は Enumerator::ArithmeticSequence の修正や rubyspec の socket のテストの対応/削除、make check で rubyspec も実行するようにする変更などがありました。

naruse: r64255 2018-08-09 21:45:02 +0900

r64240 と同様に rubyspec の socket のテストで bind してないソケットへの accept のテストを Solaris でも実施しないようにしています。

mrkn: r64256 2018-08-09 22:18:08 +0900

r64205 で追加した Enumerator::ArithmeticSequence の allocate および new メソッドを直接呼んでオブジェクト生成はできないようにしています。 Numeric#step や Range#step で内部的に生成する時だけ使われるようにしています。 [ruby-core:82816] [Feature #13904]

nobu: r64257 2018-08-09 22:32:49 +0900

defs/gmake.mk で make commit 時の update-src src all-incs などの自動生成の更新時に CONFIGURE 変数を渡すようにしています。また Makefile.in の @confugure_args@ も削除するように sed正規表現を修正しています(大文字のみの変数名だけ消してたのを小文字も消すようにした)。

nobu: r64258 2018-08-10 09:53:49 +0900

rubyspec の socket のテストで darwinfreebsd でのみ IO.select を追加していたのを位置をちょっと移動しています。他のテストでも必要だったので外側のスコープの before のブロック内に移動。

svn: r64259 2018-08-10 09:53:50 +0900

version.h の日付更新。

nobu: r64260 2018-08-10 13:26:54 +0900

.gdbinit に set startup-with-shell off という文を追加しています。 macOSSierra 以降だとこれが必要とのこと。 https://github.com/cyrus-and/gdb-dashboard/issues/81

nobu: r64261 2018-08-10 13:33:11 +0900

r63279 以降 mjit.c が version.h に依存しなくなってるそうで #include を消して Makefile.in の依存関係からも消しています。

mrkn: r64262 2018-08-10 13:49:44 +0900

Enumerator::ArithmeticSequence#last の引数に Integer でないオブジェクトが渡された時に Integer に変換してから処理するようにしています。

nobu: r64263 2018-08-10 13:52:24 +0900

MJIT 用の各 arch 用ヘッダの生成の依存関係をまとめて書くようにしています。

nobu: r64264 2018-08-10 14:02:35 +0900

RUBY_DESCRIPTION という定数の内容を mjit_init() で書き換えていたのを Init_ruby_description() という初期化関数を追加して MJIT の on/off をみて最初から文字列を変えておくようにしています。

mrkn: r64265 2018-08-10 14:18:03 +0900

Process.groups は /etc/groups の記述などが壊れていて重複した id のグループがあると複数の同じ id がかえってくるので、uniq したほうがいいよ、というのを rdoc 用コメントに追記しています。また rubyspec のテストに重複でこけるものがあったので uniq.sort しておくようにしています。 [ruby-dev:50603] [Bug #14969]

nobu: r64266 2018-08-10 14:20:46 +0900

r64264 で Init_ruby_description() で定数 RUBY_DESCRIPTION の定義をする時にコメント内に MKSTR(description) というのを書いてます。 fake.rb で偽装する定数名の抽出のために MKSTR というマクロがマーカーになってるようですね。

hsbt: r64267 2018-08-10 15:06:32 +0900

doc/maintainers.rdoc および doc/standard_library.rdoc に標準添付ライブラリ ipaddr に default gem 化を反映させてカテゴリを移動しています。

mame: r64268 2018-08-10 16:45:16 +0900

VM 命令の invokesuper で receiver を send 命令と同様に VM スタックを使って渡すようにしています。invokesuper は引数なしの super (ZSUPER) か引数を明示した super かによって cfp->self に Qtrue か Qfalse を入れておくようにしてましたが、struct rb_call_info::flags のビットフラグに ZSUPER を意味するフラグを追加してこちらで伝えるようにしたそうです。

naruse: r64269 2018-08-10 17:31:17 +0900

rubyspec の socket のテストのうまく動かないやつを一旦まとめてファイル単位で削除しています。

mame: r64270 2018-08-10 17:42:45 +0900

make check は make test と make test-all をまとめて実行するという意味でしたが、さらに test-spec も実行するという意味にしています。make check だけで良くなるのかー。ただし 2.6 (trunk) 以降だけど。同様の target として make exam というのが追加されていましたが、これは check と同じになりました。 あと make test の別名として make test-short という target も追加されています。 [ruby-core:84275] [Feature #14187]

naruse: r64271 2018-08-10 18:22:13 +0900

RubyVM::InstructionSequence#load と #to_a のテストで GC.stress = true の環境下でテストするものを assert_separately を使って別プロセスで実行するようにしています。 mswin の CI で10分以上かかってたとのこと。

nobu: r64272 2018-08-10 20:55:19 +0900

r64270 の make check のターゲットの変更の追加修正。 defs/gmake.mk の TEST_TARGETS と TEST_DEPENDS も追随させています。

nobu: r64273 2018-08-10 21:04:24 +0900

拡張ライブラリ pathname の Pathname#mountpoint? で2つのディレクトリが同一のドライブかどうか確認する条件が冗長になってたので修正しています。うーん、これって冗長というよりは、ino の比較のところ条件が逆になってない? あー ino を比較してるのは parent が同じパスになってる(つまりドライブのルートを指してる)というのをチェックしているのかな。 https://github.com/ruby/ruby/pull/1927