ruby-trunk-changes r47315 - r47321

今日は主に拡張ライブラリ psych の不具合修正がありました。

tenderlove: r47315 2014-08-30 06:02:19 +0900

拡張ライブラリ psych でハッシュのキー名に "<<" という文字列を利用するとロードした結果がおかしくなるという不具合を修正しています。 "<<" には特殊な意味がある場合があるらしく、その場合を判定するための条件に tag のチェックも追加するようにしています。 https://github.com/tenderlove/psych/issues/203

svn: r47316 2014-08-30 06:02:31 +0900

version.h の日付更新。

tenderlove: r47317 2014-08-30 06:11:47 +0900

さっそく YAML の "<<" というキーが登場してくれています。 拡張ライブラリ psych でハッシュのキーに "<<" を使うと、その値のハッシュを親にマージするという意味なのですが(そういえば Rails アプリの database.yml とかでこういうのみたことあったような)、それが働いておらずそのまま "<<" というキーの値としてロードされていたのを修正しています。 https://github.com/tenderlove/psych/issues/202

tenderlove: r47318 2014-08-30 06:24:33 +0900

拡張ライブラリ psych で数字と改行を含む文字列を古い(Psych 1.3.4 で) dump した結果を load しようとするとエラーになっていたのを修正しています。dump 時の余分な改行をなくした時に load できなくなったんでしょうかね。 https://github.com/tenderlove/psych/issues/189

tenderlove: r47319 2014-08-30 06:41:02 +0900

拡張ライブラリ psych で NameError 例外オブジェクトを load できなかった不具合を修正しています。むしろこんなものまでまともに dump/load できるんですね。 https://github.com/tenderlove/psych/issues/85

nobu: r47320 2014-08-30 15:15:22 +0900

r47260 や r47262 で benchmark ライブラリでの時間計測に Process.clock_gettime を利用するようにしたら、(主に仮想環境で?) Benchmark.realtime の精度をチェックしているテストが失敗するようになったのですが、まず CLOCK_MONOTONIC_RAW が利用できる場合はこちらを使うようにしています。こちらのほうがより正確に計測できるはずとのこと。

nobu: r47321 2014-08-30 15:18:57 +0900

また問題になったテストが sleep 0.001 して、Benchmark.realtime で測った誤差が 0.001 秒以下というチェック方法だったので、条件を緩和して sleep 1 して誤差も 1秒以下というチェックにしています。 これ sleep の時間と誤差は別に一緒でなくてもいいんですよね?