ruby-trunk-changes r43804 - r43820

今日は RubyGems の昨日の依存関係の解決の不具合修正および Gemfile を自動的に読み込む機能は廃止されました。また 2.1.0-preview2 がリリースされました。 2.1.0 のリリースは来月に予定されておりこの後はおそおらく release candidate が出るだけで、それ以降はブランチが切られて致命的な不具合の修正のみ入るという状態になると思いますので、是非手元のプロジェクトで 2.1.0 を試してみてください。

https://www.ruby-lang.org/en/news/2013/11/22/ruby-2-1-0-preview2-is-released/

tarui:r43804 2013-11-23 03:22:57 +0900

r43773 で TracePoint のテストで別の Thread でのイベントを除外するようにした時に、判定に使う変数への Thread オブジェクトの代入前に判定処理が走る可能性があったため、イベントを捕捉する時にスキップするのではなくてイベントは全て取っておいて後で Thread をみて別の Thread のものを除外するように変更しています。

svn:r43805 2013-11-23 03:23:06 +0900

version.h の日付更新。

drbrain:r43806 2013-11-23 03:53:21 +0900

RubyGems を更新しています。 Gemfile などを自動的に読み込む機能を revert しています。依存関係解決でエラーがあったというのもありましたが(そしてその修正もこのコミットに含まれているようですが)、それ以前にカレントディレクトリのファイルを自動的に読み込んで実行してしまうというのはセキュリティ上の問題があるという指摘があり([ruby-core:58490])、それを受けてこの機能は取り下げられたようです。 bundle exec が不要になるかと思いましたが残念ながら難しいようです。 そしてこの修正を受けて 2.1.0-preview2 がリリースされたようです。

tmm1:r43808 2013-11-23 08:50:06 +0900

標準ライブラリ set.rb で module_eval に文字列を渡して動的にメソッド定義しているところで第2、3引数にファイル名と行番号を渡してメソッドに実際の定義位置が含まれるようにしています。

tmm1:r43809 2013-11-23 08:50:08 +0900

GC の統計情報の heap_pages_swept_num を heap_pages_swept_slots に改名して、slot の数のことを意味していることが明確になるようにしています。

tmm1:r43810 2013-11-23 09:46:25 +0900

Marshal.dump で Hash にデフォルト値を指定するための Proc オブジェクトが含まれている時に dump できないことを判定するためのフラグチェックで FL_USER2 を利用していたのを、値は同じですが実際に hash.c で利用されている HASH_PROC_DEFAULT のほうを参照するように修正しています。

ko1:r43811 2013-11-23 12:33:10 +0900

GC のパラメータの変数名、構造体メンバ名およびそれを設定するための環境変数を改名しています。 RUBY_FREE_MIN と RUBY_HEAP_MIN_SLOTS は改名されて古い名前 obsolete として利用時は警告を表示するようにされています。

tarui:r43812 2013-11-23 12:40:27 +0900

r43811 の ChangeLog エントリの typo 修正。

nari:r43813 2013-11-23 13:46:34 +0900

NEWS ファイルに rb_gc_set_params() の deprecate 化と rb_gc_count() の公開 API 化について追記しています。

nobu:r43814 2013-11-23 13:51:05 +0900

NEWS ファイルの末尾に改行が含まれていなかったのを修正しています。 nari さんは emacs を使ってるんですねきっと。

mrkn:r43815 2013-11-23 19:36:40 +0900

拡張ライブラリ bigdecimalBigDecimal_div2() のリファクタリング。 引数に argc と argv の形式で渡していたのをそのまま VALUE 型を渡すようにして Qnil で省略されているのを判定するようにして内部的にはこちらを利用するようにし、rb_define_method() に渡すための関数としては rb_scan_args() を呼び出す BigDecimal_div3() を追加しています。

mrkn:r43816 2013-11-23 19:49:36 +0900

拡張ライブラリ bigdecimal の BigMath.exp の最適化。 よく読んでいませんが除算の回数を減らしているようです。 [ruby-core:47130] [Feature #6857]

mrkn:r43817 2013-11-23 19:52:40 +0900

拡張ライブラリ bigdecimal の BigMath.E というネイピア数を返すメソッド(精度を受けつけるため定数ではなくてメソッドとして実装されています)を BigMath.exp を呼び出すように変更しています。 [ruby-core:47130] [Feature #6857]

akr:r43818 2013-11-23 22:25:36 +0900

Bignum で値を struct RVALUE の中に埋め込めるサイズの判定を 8 ワード(BDIGIT 数単位)未満に抑える条件を追加しています。埋め込める空きだけでなく、埋め込んだ時のサイズを flags に持たせるところで 3bit しか使えないのでそちらの制約もあったのを明文化しているということだと思います。

nagachika:r43819 2013-11-24 00:35:04 +0900

gc.c の is_mark_stask_empty() を is_mark_stack_empty() と改名しています。 ちょっと勘違いしてて r43744 で追加されたのかと思って r43744 のChangeLog エントリも一緒に変更してしまいました。もしかして typo じゃなかったのかも…。そうだったらごめんなさい。

svn:r43820 2013-11-24 00:35:10 +0900

version.h の日付更新。