ruby-trunk-changes r62528 - r62548

今日は ERB.new の第2引数以降の deprecated や Struct::Tms (Process::Tms の別名)の deprecated 化、bundled gem の minitest のバージョン更新などがありました。

nobu: r62528 2018-02-22 21:51:41 +0900

parse.y の cmdarg_stack の扱いを修正しているんですが、なんだろう。チケットのほうをみると具体的な挙動が変わるわけじゃなくてリファクタリングの一種みたいな感じです。 https://github.com/ruby/ruby/pull/1823 [ruby-core:85735] [Feature #14506]

k0kubun: r62529 2018-02-22 22:28:25 +0900

将来 $SAFE を廃止するにあたって標準添付ライブラリ erb の ERB.new の第2引数に safe_level を受け取っている(そして第3,第4引数もある)ので、これらの引数を deprecated にして、trim_mode などの追加の引数はキーワード引数で受け取る方式に移行させるようにして、標準添付ライブラリなどでもこれに対応するようにしています。 2.7 で古い方式の引数は廃止する予定とのこと。 [ruby-core:84546] [Feature #14256]

k0kubun: r62530 2018-02-22 23:53:17 +0900

ruby -v オプションで表示するバージョン表記に MJIT が有効かどうかを表示するようにしています。いるかなぁ、と思ったけどチケット登録時に ruby -v の出力を書かせるフォームがあるので、そこだけで MJIT ありかどうか確認できるように、ということでなるほど。 [ruby-core:85493] [Feature #14462]

k0kubun: r62531 2018-02-23 00:03:08 +0900

r62529 で ERB.new の第2引数移行の通常引数は deprecated にしてキーワード引数を使うようにしましたが、tool/generic_erb.rb で呼び分けのために RUBY_VERSION をみてましたが、erb だけ古いバージョンを動かしてると(erb って default gem になってないから、どういう状態でありえるんですっけ)エラーになるので、ERB.version でチェックするように修正しています。

svn: r62532 2018-02-23 00:03:09 +0900

version.h の日付更新。

k0kubun: r62533 2018-02-23 00:11:12 +0900

test/ruby/test_jit.rb から MJIT が有効かどうか確認するメソッド群などを test/lib/jit_support.rb に分離して、r62530 の -v オプションの挙動についてのテストを MJIT が使える環境でのみ行うようにしています。

svn: r62534 2018-02-23 00:11:13 +0900

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

k0kubun: r62535 2018-02-23 00:29:33 +0900

r62530 の preprocessor の条件分岐が反転してたのを修正。

eregon: r62536 2018-02-23 00:34:17 +0900

r62530 の -v オプションでの +JIT の出力を確認するテストで JRuby の時の定数名 typo 修正と、JRuby 以外のその他の実装の時も JRuby と同様に扱うようにしています。

nobu: r62540 2018-02-23 11:16:41 +0900

Process::Tms というプロセスの実行時間に関するデータをまとめたクラスの別名 Struct::Tms を deprecated constant として指定しています。

nobu: r62541 2018-02-23 11:16:41 +0900

object.c の FUNC_MINIMIZED() というプロトタイプ宣言を展開するマクロで rb_f_float() の宣言を書いていたところに static 修飾子をつけています。 rdoc によるドキュメント化を抑制するためみたいですね。

nobu: r62542 2018-02-23 11:16:42 +0900

rdoc 用のドキュメント化を抑制する :nodoc: タグのコメントをいくつか追加しています。

nobu: r62543 2018-02-23 11:16:43 +0900

Fixnum と Bignum というクラスと Process::Tms の rdoc 用コメントを追加して obsoleted であることを明記しています。

nobu: r62544 2018-02-23 11:18:52 +0900

Dir#each_child, Dir#children, NoMethodError#private_call?, GC.add_stress_to_class, GC.remove_stress_to_class, Hash#to_proc などなど rdoc 用コメントがなかったメソッドにコメントを追加しています。

nobu: r62545 2018-02-23 12:45:55 +0900

rubyspec に Struct::Tms を使っているところがあったので、Process::Tms を使うように変更しています。

hsbt: r62546 2018-02-23 14:09:11 +0900

bundled gem の minitest のバージョン指定を 5.11.3 に更新しています。

nobu: r62547 2018-02-23 17:32:33 +0900

rubyspec の Process.groups= のテストで代入する値を Process.group が返した結果を使っていたのを [0] 固定にしています。ここでは一般ユーザーだと権限がなくてエラーになることを確認しているので、代入するのは何でもよかったみたいです。

nobu: r62548 2018-02-23 17:39:03 +0900

print_errinfo() で例外のメッセージやバックトレースの出力時にハイライトするようにしていましたが、同様のエスケープシーケンスをファイルスコープの static 変数として定義して rb_error_write() と共有するようにしています。また rb_error_write() の引数に highlight と reverse を追加して、標準エラー出力が端末の時に色付けなどしていたのを引数で指定できるようにしています。Qnil を渡すとこれまで通り標準エラー出力で判定するようにしています。まだ明示的に Qnil 以外を渡して呼んでるところはないので、この先なにかに使うためっぽいですね。