ruby-trunk-changes r33401 - r33409

今日もドキュメントの追記と、Psych のリファクタリングなどがありました。

tenderlove:r33401 2011-10-05 01:24:58 +0900

ext/psych/lib/psych/scalar_scanner.rb の後置 rescue に例外クラスが書かれていた記法が修正されています。昨日の pull request が取り込まれて rubyリポジトリに帰ってきました。

svn:r33402 2011-10-05 01:25:02 +0900

version.h の日付更新。

tenderlove:r33403 2011-10-05 01:53:14 +0900

Psych::Parser でパースエラー時の例外を生成する時に行番号、カラム番号(文字位置)を取得するために参照する yaml_parser_t 構造体のメンバを mark から context_mark へ変更しています。 yaml_parser_t は libyaml で定義されている構造体で、mark は現在位置、context_mark は context position だそうなので……たぶん今読もうとした要素(読んでしまったら mark は先に動く)を指しているということかなと。

tenderlove:r33404 2011-10-05 02:53:41 +0900

新たに YAML のパースエラーを意味する Psych::SyntaxError を定義しています。ファイル名、行番号、カラム番号やエラー内容をインスタンス変数として保持するようにしています。 ちょっと気になったのは Psych::SyntaxError はトップレベルの SyntaxError を継承しているんですが、これは Rubyスクリプトの文法エラーを現わす例外なのでこれでいいのかな。もっとも SyntaxError を特に処理したいという用途があるかわかりませんけど。

drbrain:r33405 2011-10-05 05:48:34 +0900

Random の rdoc を追加しています。 [ruby-core:39933] [Bug #5403]

drbrain:r33406 2011-10-05 05:57:07 +0900

Hash のクラスについての rdoc に追記しています。 [ruby-core:39939] [Bug #5405]

naruse:r33407 2011-10-05 16:35:27 +0900

Float#step の終了点の判定についての修正。繰り返し回数の修正や浮動小数点数の演算誤差で最後のイテレーションの数値が終了時の値として指定されたものを越えてしまう場合の対応など。ですがすぐに revert されています。 [Bug #4576] [ruby-core:35753] [ruby-core:39608] [ruby-core:39612]

naruse:r33408 2011-10-05 16:35:31 +0900

LLVM (clang) 用に reg_cfp を GC から保護するコードを削除しています。新しい clang では不要になった?

naruse:r33409 2011-10-05 16:36:28 +0900

r33407 の Float#step の修正を revert しています。中途半端なパッチだった (half-baked patch)、とのこと。