今日は MJIT のデッドロック修正、Kernel#Rational() の不具合修正などがありました。
また今日は JIT という大きな機能追加があったので、広く試してもらうために早期に 2.6.0-preview1 のリリースがありました。 https://www.ruby-lang.org/ja/news/2018/02/24/ruby-2-6-0-preview1-released/
k0kubun: r62549 2018-02-24 09:40:36 +0900
mjit.c の mjit_mark() で rb_gc_mark() を呼ぶとそれが GC を開始してしまってデッドロックに陥る可能性があったので、一時的に mutex を unlock しておくようにしています。
svn: r62550 2018-02-24 09:40:37 +0900
version.h の日付更新。
nobu: r62551 2018-02-24 10:02:58 +0900
vm.c の構造体タグ名およびコメントの typo 修正。 https://github.com/ruby/ruby/pull/1824
k0kubun: r62552 2018-02-24 10:05:20 +0900
NEWS ファイルに MJIT 関連のオプションについてもう少し詳しく説明を追記して、2.6.0-preview1 での状態(まだそんなに速くなってないとか遅くなるケースもあるけど今後改良予定)についても追記しています。
nobu: r62553 2018-02-24 10:12:51 +0900
Array#sample の rdoc 用コメントにキーワード引数 random を使ったサンプルを追加しています。 https://github.com/ruby/ruby/pull/1825
nobu: r62555 2018-02-24 11:08:36 +0900
Kernel#Raitional() に文字列で指数表記の数値を渡した時に指数部が小数点以下の桁数より小さい時に不正な変換をして SEGV する可能性があった不具合を修正しています。 [ruby-core:85783] [Bug #14547]
nobu: r62556 2018-02-24 11:45:12 +0900
Rational() で使ってる read_num() で指数表記の指数部が 0 の時に乗算は不要なのでスキップするようにしています。
nobu: r62557 2018-02-24 11:48:09 +0900
r62555 で追加した Kernel#Rational() のテストに指数部が小数点以下の桁数とちょうど同じケースも追加しています。
nobu: r62558 2018-02-24 11:55:03 +0900
version.h で JIT が有効かどうかで表示する文字列を変えるためにマクロ RUBY_DESCRIPTION と RUBY_DESCRIPTION_WITH_JIT を定義していたのを、RUBY_DESCRIPTION_WITH() という関数マクロ1つを定義して参照元で引数を "" と " +JIT" に変えるようにして、重複を減らしています。
naruse: r62559 2018-02-24 11:58:39 +0900
tool/vcs.rb の ChangeLog を生成するメソッドで git log のオプションに --no-notes を追加して git notes の注釈は表示しないようにしています。 git notes については昔記事を書いたなぁ。 http://d.hatena.ne.jp/nagachika/20111215/git_notes_bottomup
naruse: r62560 2018-02-24 11:58:41 +0900
r62531 の tool/generic_erb.rb と同様に enc/make_encmake.rb と tool/transcode-tblgen.rb も ERB.new の引数を呼び分けるのに RUBY_VERSION ではなく ERB.version をみるようにしています。 cross compile 時には RUBY_VERSION には依存できないとのこと。
kazu: r62563 2018-02-24 17:54:19 +0900
標準添付ライブラリ erb で Kernel#warn で警告メッセージを出力する時にメッセージの先頭に "warning: " とつけてましたがこれは削って、またキーワード引数 uplevel に 1 を指定して位置を呼び元にするようにしています。