2006-07-27から1日間の記事一覧

マウスを左手で

操作するように変更してみた。なかなかいい感じ。

Concurrent Clean : CleanJ : push_args_u

懸案のpush_args_uは、レコード型のパターンマッチをするときに使われるらしい。 以下、テストコード。

Concurrent Clean : CleanJ : push_r_args_u

非ボックス化した基本型を持つレコード型の場合は、push_args_uではなく、push_r_args_uの方が使われる。 push_r_args_u 2 2 1対応するCodeGeneratorの関数は、 void code_push_r_args_u (int a_offset,int a_size,int b_size)

Concurrent Clean : CleanJ : eqD_b

eqD_bという命令がある。Genericのテストをやっている最中に見つけた。 CleanNodeで、 public static boolean eq_desc(CleanDescriptor d, int n, Object o) throws CleanException { return d == getDesc(o) && d.eq_arity(n,getData(o)); }というメソッド…

Concurrent Clean : CleanJ : push_r_args_a, push_r_args_b

この2つはよく似た命令で、レコード型から要素を1つ取り出すというもの。 push_r_args_aが通常のオブジェクトで、push_r_args_bが非ボックス化基本値を対象としている。 CodeGeneratorの対応する関数は、 void code_push_r_args_a (int a_offset,int a_siz…

Concurrent Clean : CleanJ : .record d

.record k121 daa 2 0 "Pair"これまで、.record命令は、 a : オブジェクト i : 非ボックス化整数 r : 非ボックス化実数 c : 非ボックス化文字 b : 非ボックス化真偽値 lR : レコード型非ボックス化正格リスト(頭のみ) を把握していたが、これに d が加わる…