ruby-trunk-changes r61876 - r61888

今日も主に parse.y のリファクタリングや iseq.c のリファクタリングなどがありました。

mame: r61876 2018-01-17 00:12:09 +0900

r61875 で node_buffer_elem_t の最後の配列のサイズを省略するのはあきらめましたが、struct node_buffer_struct に node_buffer_elem_t を埋め込むのをやめてポインタで持つようにして FLEX_ARY_LEN の利用を復活させています。実際にはひとまとめにメモリを確保して、その内部のポインタを格納するようにしています。

svn: r61877 2018-01-17 00:12:10 +0900

version.h の日付更新。

mame: r61878 2018-01-17 00:12:11 +0900

parse.y の new_args() と new_args_tail() の短すぎる引数や変数名を改名してもうちょっと意味がわかりやすいようにしています。

mame: r61879 2018-01-17 00:12:15 +0900

parse.y の for 文のルールのアクション部で、共通の処理を switch 文の分岐の後に括り出したり、処理の順序を少し変更したりしています。

nobu: r61880 2018-01-17 13:25:39 +0900

ext/ripper/ripper.c の依存関係に ext/ripper/tools/preproc.rb を追加、ripper.y の依存関係に id.h を追加しています。

normal: r61881 2018-01-17 14:03:43 +0900

r61870 と同様に time.c の struct time_object のメンバーの bit field の型に bits_t という型を定義していたのを単に unsigned int を利用するように変更しています。

nobu: r61882 2018-01-17 15:05:37 +0900

parse.y の negate_lit() で即値の時の分岐を先に if 文で括り出して switch 文の前に早めに判定するようにしています。またエラー時のメッセージを TYPE() によるタイプの番号でなくクラス名を表示するようにしています。

nobu: r61883 2018-01-17 15:23:57 +0900

iseq.c の rb_insn_operand_intern() の insn のタイプによる分岐の条件部で代入とかしてたのをネストした分岐に書き換えるリファクタリング

nobu: r61884 2018-01-17 15:38:08 +0900

r61859 で追加した rb_ast_t の内部的な構造のテストでテストメソッド名にファイルのフルパスが含まれないようにしています。

mame: r61885 2018-01-17 19:17:16 +0900

r61880 で ext/ripper/depend に追加した ripper.y の依存関係で id.h のパスを $(top_srcdir) を参照していたのを {$(VPATH)} を使うようにしています。 nmake 対策ですかね。

nobu: r61886 2018-01-17 20:12:31 +0900

common.mk の ripper.c の生成時に ext/ripper/depend の {$(VPATH)} の部分を削るようにしています。うへー。けど common.mk にあるってことは Windows 版でも参照されるんじゃないのかな。

nobu: r61887 2018-01-17 20:16:24 +0900

process.c の get_clk_tck() という関数で sysconf(_SC_CLK_TCK) を利用する時に結果を double にキャストしていましたが、結果は long の変数に格納しているので不要なキャストを削除しています。 そして rb_proc_times() で get_clk_tck() の戻り値を double の変数に格納する時には明示的にキャストするようにしています。後半の変更はいるのかな?

nobu: r61888 2018-01-17 20:22:14 +0900

r61887 の再修正。 get_clk_tck() で戻り値を一旦変数に格納するために複雑な preprocessor の分岐を式の中で行なっていたのをシンプルに分岐内で return するように書き換えています。また定数の HZ よりも CLK_TCK のほうを優先して利用するようにしています。