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

Concurrent Clean : CleanJ : .keep

.keepという命令を、_SystemEnumStrictを調査中に発見。 とりあえず、無視。

Concurrent Clean : CleanJ : _Conss, _Consts

StdOverloadedListを調査中に、新しいConsを発見。 _Conss _Consts - あ、これは、ただの関数だ。 CleanSystemに_Consstsがあるので、このグループの関数でした。 - 多分、 _Conss 頭部正格リスト _Consts 尾部正格リスト _Conssts 頭部尾部正格リスト です。

Concurrent Clean : CleanJ : repl_r_args_a

repl_r_args_a命令について。引数の意味が良くわからない。 - 分かった。 repl_r_args_a al bl aidx alen第1引数と第2引数は、argumentsの全体のサイズ。 第3引数はargumentのインデックスで、第4引数は指定したargumentのサイズ。 - 以下、参考資料

Concurrent Clean : CleanJ : 非ボックス化正格リスト

Intの非ボックス化リストには、ConsiとConsitsの2つのリストがある。Consiは頭部正格リストで、Consitsは頭部尾部正格リストだ。 最初、ConsiとConsitsは尾部の持ち方を変えて、Consitsは尾部が評価済みであることを前提にした実装にしていたのだが、Consit…

Concurrent Clean : CleanJ : 基本値の正格リストの実装が完了 & レコード型非ボックス化リスト

StdOverloadedListの関数に対するテストも完了。 - 次は、レコード型の非ボックス化正格リストの実装。 レコード型非ボックス化リストが必要なときは、次のレコードが生成される。 .record r_Cons#Rec lRiaa 2 1 "[#Rec]"対応しているレコードは、 ::Rec = {…

Concurrent Clean : CleanJ : buildの第3引数の活用

build命令の第3引数は、ほとんどの場合意味のない引数だと思っていたのだけれど・・・ build d_cons_u;4 2 n_cons_u;4このような場合、第3引数の「n_cons_u;4」は無視していたのだけれど、 .desc d_cons_u;4 _ l_cons_u;4 2 0 "_cons_u;4"対応する宣言がこ…

Concurrent Clean : StdOverloadedList Diag2

Diag2という関数を使うと、コンパイルエラーになる。なんか、マクロ展開された局所関数の型付けが上手く行かないようだが・・・

Concurrent Clean : CleanJ : レコード型非ボックス化正格リストの実装完了

ひとまず、実装完了して、動作確認まで。 レコード型リストのデータが次のように連続してできることに着目して、プリティプリンタを実装した。 .record r5 ia 1 1 "!!!" .record r_Cons#!!!! lRiaa 2 1 "[#!!!!]" .record r_Cons#!!! lRiaa 2 1 "[#!!!]" - S…