ruby-trunk-changes r62092 - r62110

今日は net/pop の frozen_string_literal: true 化で dup が漏れてたところの修正と tool/vcs.rb を 1.9 の BASERUBY でも動くようにする追加修正などがありました。

eregon: r62092 2018-01-30 01:07:35 +0900

mspec に upstream の変更をマージしています。

svn: r62093 2018-01-30 01:07:36 +0900

version.h の日付更新。

eregon: r62094 2018-01-30 01:08:16 +0900

ruby/spec の upstream の変更をマージしています。 KeyError.new のキーワード引数のテストなんかもうまいこと 2.6 移行のバージョンの guard つきにしてくれているようです。ありがとう eregon。

naruse: r62097 2018-01-30 02:05:41 +0900

r62070 で tool/vcs.rb の DebugSystem で Kernel#system を上書きしているところでキーワード引数を使ってしまってましたが、1.9 系だとそもそもキーワード引数がまだなので Hash によるオプションとして渡すように修正しています。

naruse: r62098 2018-01-30 02:12:07 +0900

make showflags で BASERUBY のバージョンを表示するようにしています。これそもそも BASERUBY がない時に大丈夫かな。

normal: r62099 2018-01-30 09:22:22 +0900

標準添付ライブラリ net/pop で magic comment の frozen_string_literal: true があるので破壊的操作を行う(かもしれない)文字列リテラルに String#+@ をつけて複製するようにしています。 inspect の戻り値は freeze でもいいような気もするけどまあ昔は freeze されてなかったので互換性のためには dup しないと、ってことですね。 [ruby-core:85210] [Bug #14416]

nobu: r62100 2018-01-30 11:08:30 +0900

ちょっと元々の挙動がよくわかってないのですが、iseq.c の local_var_name() で変数名が ID から決まらなかった時に、local 変数テーブルのインデックスの番号をそのまま名前にしています。 内部的に利用される変数で名前がないやつを disasm で表示する時のための対応かなぁ。

nobu: r62101 2018-01-30 11:20:02 +0900

r62097 の再修正。 tool/vcs.rb の DebugSystem#system で exception というローカル変数の代入を消してしまって後でエラーになってたので、代入を復活させています。

ko1: r62102 2018-01-30 11:21:59 +0900

rubyspec の File::TMPFILE のテストで File.open が発生する例外として Errno::EINVAL も許容するようにしています。 filesystem がサポートしていなかったら Errno::EOPNOTSUPP が発生するとして rescue していましたが、環境によっては Errno::EINVAL も発生しうるので無視するようにしているようです。

nobu: r62103 2018-01-30 12:21:52 +0900

insns.def の命令の attribute の sp_inc の型を rb_num_t から符号ありの rb_snum_t に変更しています。またこれによりマクロ ADJ_SP() の定義を mswin 版とそれ以外で分岐していたのをやめています。

nobu: r62104 2018-01-30 12:57:54 +0900

common.mk に VMソースコード用の自動生成ファイル *.inc の対応するテンプレートファイルへの依存関係を追加しています。

nobu: r62105 2018-01-30 13:17:32 +0900

tool/vcs.rb の VCS::Git#commit で HEAD のリビジョンを取得して rebase 前に checkout HEAD しなおすようにしています。確か git svn だと最新の revision が別ブランチのコミットだと、そのブランチに移動した状態になっちゃったりするんですよねー。そういう現象の対策だと思います。

hsbt: r62106 2018-01-30 14:43:42 +0900

IA64 の環境で rb_thread_t::machine が rb_execution_context_t::machine に移動されたのに追随していなかったので修正しています。

nobu: r62107 2018-01-30 14:48:28 +0900

Complex#hash および Rational#hash で返した Integer が Fixnum の範囲に収まらないものを返していて、Fixnum 化できることを期待した部分でエラーになっていたので、変換マクロを LONG2FIX() から ST2FIX() に変更しています。 [ruby-core:85224] [Bug #14420]

hsbt: r62108 2018-01-30 16:08:53 +0900

doc/syntax/refinements.rdoc の記述を Module も Module#refine の引数にできるようになったのに追随させています。

naruse: r62109 2018-01-30 16:34:06 +0900

tool/vcs.rb の DebugSystem#system ですが、引数で **opts のようにキーワード引数を Hash で受け取る記法も 1.9 で使えないので、*args で受け取って最後の引数が Hash だったらそこから取り出すように変更しています。今となっては 1.9 はいろいろと無いんだなぁ。

nobu: r62110 2018-01-30 20:12:21 +0900

win32/setup.mak で $(BASERUBY) が実際に実行できるかテストしているところでためしに $(BASERUBY) を実行してその出力を nul に捨ててるところでリダイレクトの指定が間違ってたのを修正しているみたいです。 nmake の記法? よく読めないけど。