ruby-trunk-changes r38237 - r38260

今日もたくさんコミットがありました。まず refinement のメソッド定義は拡張ライブラリとして切り出されて、require 時に警告が出力されるようになりました。また Timeout.timeout で Thread.async_interrupt_timing を使って割り込みのタイミング制御をするようにした変更は revert されています。また Time の Marshal.dump がタイムゾーンの情報もダンプするようになりました。

ngoto:r38237 2012-12-06 23:27:38 +0900

ext/fiddle/lib/fiddle/import.rb で定義している CALL_TYPE_TO_ABI という定数は内部的に使うものなので RDoc の :stopdoc: と :startdoc: ではさんでドキュメント化されないようにしています。

ngoto:r38238 2012-12-06 23:30:24 +0900

ext/dl/lib/dl/func.rb の CALL_TYPE_TO_ABI、FiddleClosureCFunc、DL::Function.call_type_to_abi, DL::Function.class_fiddle_closure_cfunc にも RDoc でドキュメント化されないように :nodoc: タグなどをつけています。

shugo:r38239 2012-12-06 23:31:43 +0900

Refinement 用のメソッド Module#refine, Module#using と Kernel#refinements などの定義が拡張ライブラリ refinement に追い出されていて、require "refinement" を呼ばないと使えないようになっています。 また require "refinement" すると "Refinements are experimental, and the behavior may change in future versions of Ruby!" と警告を出力するようになっています。実装はコアに入っている(メソッド探索のコアなところに入らざるをえないので当然ですが)のですがメソッドの定義だけ拡張ライブラリに追い出されているという coverage と同じようなライブラリになってしまいました。

nobu:r38240 2012-12-06 23:33:09 +0900

r38239 で追加されたファイルの svn property の設定。

shugo:r38241 2012-12-07 00:12:36 +0900

Refinement のテストを module_eval と Module#using を使わずに書くように変更しています。

svn:r38242 2012-12-07 00:12:41 +0900

version.h の日付更新。

ngoto:r38243 2012-12-07 01:21:43 +0900

Win32::Registry が DL から Fiddle に移行するために Fiddle::Function#name という属性に対応する必要があったので Fiddle::Function に追加しているようです。 instance_eval でインスタンス変数に代入していて、attr_accessor にしてもよかったんじゃないかと思います。

naruse:r38244 2012-12-07 11:55:28 +0900

拡張ライブラリ refinement のソースに rb_warn() のプロトタイプ宣言を追加しています。

naruse:r38245 2012-12-07 11:55:30 +0900

Time のタイムゾーンについてのテストに使われているテストデータのタイムゾーンの Canada/Newfoundland という表記を America/St_Johns に変更しています。なんででしょうね。

naruse:r38246 2012-12-07 11:55:33 +0900

test/ruby/test_time_tz.rb タイムゾーンのテストで freebsd の時も Mac OS (darwin) と同じく一部のテストを除いてテスト実行するようにしています。

naruse:r38247 2012-12-07 11:55:35 +0900

Time オブジェクトを Marshal.dump でダンプした時にタイムゾーンの情報を含めるようにしています。なんとこれまで タイムゾーンは保存されていなかったんですね。

naruse:r38248 2012-12-07 11:58:55 +0900

test/ruby/test_time.rb で ENV["TZ"] にセットしているタイムゾーンの表記を 'Asia/Tokyo' から 'JST-9' に変更しています。こちらのほうがよりポータブルなんだそうです。

zzak:r38249 2012-12-07 13:08:29 +0900

doc/forwardable.rd という標準ライブラリ forwardable についてのドキュメントが存在していたのを削除して lib/forwardable.rb の中に rdoc として埋め込んでいます。

zzak:r38250 2012-12-07 13:21:20 +0900

r38249 のぶんの ChangeLog エントリを追加しています。

ngoto:r38251 2012-12-07 13:35:43 +0900

拡張ライブラリ fiddle の rdoc 用コメントの call-seq の typo を修正。

ngoto:r38252 2012-12-07 13:39:39 +0900

拡張ライブラリ fiddle の rdoc 用コメントの typo をもうひとつ修正。

nobu:r38253 2012-12-07 14:02:18 +0900

テストスクリプト内のヒアドキュメント内での行末の空白を "\s" に置き換えています。なるほど、行末の空白削除は自動化されてるようなので誤動作を防ぐために置換したんだと思います。

nobu:r38254 2012-12-07 14:02:21 +0900

refinement が拡張ライブラリになって、テストで require "refinement" しているところで警告メッセージが出力されるようになったので EnvUtil.suppress_warning を使って抑制しています。

nobu:r38255 2012-12-07 14:04:02 +0900

r38216 で標準添付ライブラリ timeout.rb で Thread.async_interrupt_timing を使って割り込みをブロックする処理の実行まで遅延させるようにしましたが、Thread.async_interrupt_timing のブロックがタイムアウト時の例外の処理より外になっていたのでタイムアウト時の例外を上げ直す処理が飛ばされていたので内側に移動しています。 [ruby-core:50524] [Bug #7503]

drbrain:r38256 2012-12-07 14:22:50 +0900

標準ライブラリ rdoc 自身の rdoc 用コメントにドキュメントを追記しています。
また "A::B = 42" のようなネストした名前空間の定数への代入についてコメントのパースの不具合を修正しています。

usa:r38257 2012-12-07 16:03:45 +0900

Test::Unit で並列テスト実行した時に skip したテストケースを、最後に親プロセスでエラーになったテストをリトライする時に実行してしまっていたので error と failure のものだけリトライするようにしています。

zzak:r38258 2012-12-07 16:08:06 +0900

doc/etc.rd に独立したファイルとして存在していたドキュメントを ext/etc/etc.c にコメントとして埋め込んでいます。また Etc::Passwd, Etc::Group については追記しているそうです。

zzak:r38259 2012-12-07 16:10:10 +0900

r38201 で消すとコミットログには書いてあったけど消されていなかった doc/shell.rd を削除しています。そういえば報告忘れてました。

kosaki:r38260 2012-12-07 19:36:59 +0900

標準ライブラリ timeout で Thread.async_interrupt_timing を使って割り込みのタイミング制御をするようにした修正(r38216, r38221 および r38255) を revert しています。この変更は 2.0 ではリリースせず、次のマイナーバージョンアップの時に入れることになりました。 [ruby-core:50524] [Feature #7503]