W.Deeの2006年7月の日記

kikyou.info»日記

誠に勝手ながら、kikyou.infoは2017年12月いっぱいをもって閉鎖します。ながらくありがとうございました。

最新月 : 2008年10月
2003年 [             3    4    5    6    7    8    9   10   11   12  ] 月
2004年 [   1    2    3    4    5    6    7    8    9   10   11   12  ] 月
2005年 [   1    2    3    4    5    6    7    8    9   10   11   12  ] 月
2006年 [   1    2    3    4    5    6    7    8    9   10   11   12  ] 月
2007年 [   1    2    3    4    5    6    7    8    9   10   11   12  ] 月
2008年 [   1    2    3    4    5    6    7    8    9   10   11   12  ] 月
2009年 [   1    2    3    4    5    6    7    8    9   10   11       ] 月
前月の日記  次月の日記

2006年7月21日

Risse 進捗(5)

コードジェネレータの実装も半ばながら、VMの実装にそろそろ入ります………。

その前に固めておかなければならない方針や仕様が多数。こりゃたいへんだじぇ_| ̄|○

2006年7月9日

kikyou.infoサーバメンテ

kikyou.infoサーバが「ガッガッガッガッガ ガシャガシャガシャガシャ ガッガッガッガ」という異音をたてていたので、ゴミでもファンにつまったのかと思って分解清掃。

調べてみると電源ファンの軸がゆるゆるになって、ファンの枠にファンの羽根がぶつかる音でした。

電源を取り替えてメンテ終了です。

  • 2006-07-09 07:43 SB : ぬるぽ
  • 2006-07-09 11:16 W.Dee : ガッ
  • 2006-07-11 08:29 cAwn : あの、吉里吉里/KAG推進委員会へのリンクができません。サイトが閉鎖されてしまったのでしょうか?
  • 2006-07-11 10:44 W.Dee : ご本人から閉鎖のアナウンスが公式にあったわけではないのでどのタイミングで私が言うか迷っていましたが、閉鎖です。閉鎖に関連しては、コンテンツをkikyou.infoに統合してよいかをメールでPIA少尉様にお伺いを立てているのですがまだお返事を頂いておりません。もう一ヶ月以上たっているのでどうするかをこちらでも決めないとならない時期ですが、許可がない以上コンテンツを引き継ぐことはできなさそうです。
  • 2006-07-11 21:46 cAwn : お返事、どうもありがとうございます。残念です。ですが、吉里吉里は使わせて頂いております、本当にありがとうございます。これからも活用させていただきます。では、失礼します。

2006年7月6日

Risse 進捗(4)

SSA形式からVMコードを生成する部分(コードジェネレータ)を書いてます。

いまのところ

var a, c;
a = 1;
do {
    c = a;
    a = 2;
}while(x);
f(c);

というコードから

00000 const %0, *0 // *0=void
00003 cp %1, %0
00006 const %2, *0 // *0=void
00009 cp %3, %2
00012 const %4, *1 // *1=1
00015 cp %5, %4
00018 cp %6, %5
00021 jump 00023
00023 cp %0, %6
00026 const %1, *2 // *2=2
00029 cp %2, %1
00032 cp %3, %0
00035 cp %4, %2
00038 jump 00040
00040 this %5
00042 const %6, *3 // *3="x"
00045 dget %1, %5, %6
00049 cp %7, %4
00052 cp %8, %3
00055 branch %1, 00023, 00059
00059 this %5
00061 const %6, *4 // *4="f"
00064 dget %1, %5, %6
00068 call %0, %1(%8)

というコードを吐いてくれます。ニーモニックの意味は推して知るべし。最適化を全くしてないのでひどいものですが、まずは動くものを作ることを優先しようと思います。最適化の機構は後からでも十分つけられるので。

ちなみに TJS2 だとこんなに短いです。

00000000 cl %-3
00000002 cl %-4
00000004 const %1, *0    // *0 = (int)1
00000007 cp %-3, %1
00000010 cp %-4, %-3
00000013 const %1, *1    // *1 = (int)2
00000016 cp %-3, %1
00000019 gpd %1, %-2.*2    // *2 = (string)"x"
00000023 tt %1
00000025 jf 000000010
00000027 calld %0, %-2.*3(%-4)    // *3 = (string)"f"

うーむ、前にTJS2はほとんど最適化を行ってないと書いてしまいましたが、そういえば覗き穴最適化はいくらかは行うようになっていたし、いろいろ苦労したなぁと今更になって思い出しました。TJS2は機構が単純でしかもほぼon the flyでコードを生成していたわりには結構効率的なコードを吐いてたなぁ、と。

Risseの方がよいコードを吐ける機構を導入しうるので、上記コードはさらに短くなるはずです。