ruby-trunk-changes r42645 - r42652

今日は Process.clock_gettime のリファクタリングや仕様変更、VM の内部的なメソッドの仕様変更などがありました。

akr:r42645 2013-08-22 06:27:44 +0900

Process.clock_gettime の実装 rb_clock_gettime() から正常終了時の戻り値の調整処理を make_clock_result() という関数に切り出すリファクタリング

svn:r42646 2013-08-22 06:27:58 +0900

version.h の日付更新。

akr:r42647 2013-08-22 06:57:25 +0900

Process.clock_gettime の clock_id に渡す Symbol のエミュレーション実装を利用するものを、全体的に XXX_BASED_YYY_ID のように BASED という単語を挟むように改名しています。

akr:r42648 2013-08-22 07:17:55 +0900

Process.clock_gettime の clock_id の :ISO_C_CLOCK_BASED_CLOCK_PROCESS_CPUTIME_ID と :POSIX_TIMES_BASED_CLOCK_PROCESS_CPUTIME_ID の rdoc コメントの説明およびマクロの定義の順番を入れ替えています。これはどういうポリシーでソートされてるんでしょうか。

ko1:r42649 2013-08-22 15:50:42 +0900

VM から内部的に呼ばれるプロセス終了時に実行する処理を登録するメソッド VMFrozenCore.set_postexe の実装を変更して引数で ISeq を渡すのでなくブロックとして処理すべき内容を渡すようにしています。現在提案中の ONCE{} の実装に流用することを念頭に置いた修正だろうと思われます。

ko1:r42650 2013-08-22 16:23:44 +0900

r42649 で追加した build_postexe_iseq() で生成した ISeq にローカル変数テーブルをセットし忘れていたのを修正しています。

akr:r42651 2013-08-22 20:19:49 +0900

configure で clock_t のサイズをチェックして process.c で Process.clock_gettime の実装のために unsigned_clock_t という unsigned 版の clock_t の型を定義して、clock_id :ISO_C_CLOCK_BASED_CLOCK_PROCESS_CPUTIME_ID の時の実装でオーバフローを防ぐために利用するようにしています。

akr:r42652 2013-08-22 22:04:06 +0900

Process.clock_gettime の第2引数で結果の単位を指定するシンボルが複数形(microseconds)だったのを s を削って単数形にしています。