昔の最近の出来事(2002.04)

2002/04/30

日付け越え前に帰着。

フロー制御の方法を研究。基本はラベルを返すトークンに対して ブランチするというのが良いらしい。

  :
  :
	| LEX_WHILE '(' while_cond ')' '{' statement_list '}'
	{
		printf("--->end while(goto label=%d).\n",$3) ;
	}
	;

while_cond
	: expr
	{
		printf("while_cond(gen label(%d))\n",labelID) ;
		$$=labelID++ ;
	}
	;

取りあえずこんな感じ。while()文の条件評価コードの生成前にラベル を生成しておき、statement_listのコードを生成し終えたら、予め生成 されたラベルに戻る という手順。if文の場合は これをちょっと ひねって、条件評価時にラベルを生成と同時にそのラベルにブランチ するコードを生成しておき、statement_listコードを生成した後ろに予め 生成したラベルを置くと、if文になるという感じです。
for文は for(1st;2nd;3rd){statement_list} とあった場合、3rdの コードをstatement_listの後ろに置く必要がある?ちょっと面倒な 気分。

2002/04/29

昼少し前に起床。ちょっこり作業をして休出勤。

ppcsim-0.83を置きました御参考まで。何気にテストをしていて気づいたのですが、 gccの性能テストに使用したppcバイナリを使用したところ、ページに置いて ある結果と微妙に命令数が異なりました。一つは時間取得をtime()システム コールで行っているため、値によってほんの少し使用する命令が変わる事 が考えられますが、浮動小数点系命令の数が変わるのが少し解せない感じ があります。実行時間表示で秒単位部分はprintf()の %f フォーマット なのでその辺で若干の違いがあるのかも知れませんが.......
整数系命令については命令数が変わる事は無さそうです。ただし、Cygwin以外 のOSでシステムコールエミュレーションコードに若干手を入れる必要が ある場合、システムコールによって得られる構造体データの違いなどに よりプログラム実行という点からは完全一致にはならないことが考え られます。

コミッカーズを買ってふにゃふにゃ眺めていたら、「タチカワ新ペン先」 という名前のサインペンというか万年筆もどきというかの文房具の 事が書かれていたので買ってみました。商品名が誤解を招く気が しなくもありませんが 「ペン先だけ」ではなくて「新しいペン先を使用した サインペン」です。ペン軸もインクも不要で、これ一本買えば使えます。 さておき、ペンの感覚はつっかかりの無いスクールペン といった感じ。線はかなり細いです。力を入れれば入りと抜きが付くので、 細い線が好みの人には良い感じかも知れません。インクはカートリッジ式 なので交換は可能な模様です。ペン先の耐久力(というか寿命)はどの程度 かまでは判りませんが、細いのが好みの人ならばそれほど力を込めない と思いますので、意外と長持ちする予感がします。

そういや、連休は微妙にあるような無いような。5/4はフェスタらしい のですが、せりかさんの動いているのを一度見てみたいので、そちらに 行くつもり。と言いつつ夕方まで寝て、起きるとすっかり終ってる時間 とかになってそう(ぉぃ;

2002/04/28

また昼過ぎに起きたり。そして休出。

ちょっと調べたい事があったので「プログラミング言語C 二版」を 捜したのですが、部屋中捜してもみつからず。平積みになっている本 の山の中に紛れ込んだ模様。片付けないと見つからないっぽい。うーむ。

中間コード生成のテスト。といっても式だけ。基本的にはyacc/lexの 教科書と同じ。

$val5= ($val4+($val3+($val2+($val0+$val1)))) ;
$val5= (((($val0+$val1)+$val2)+$val3)+$val4) ;
という式に対して

push val[4]
push val[3]
push val[2]
push val[0]
push val[1]
add          /* s = val0 + val1 */
add          /* s = s    + val2 */
add          /* s = s    + val3 */
add          /* s = s    + val4 */
pop  val[5]

push val[0]
push val[1]
add          /* s= val0 + val1 */
push val[2] 
add          /* s= val2 + s    */
push val[3]
add          /* s= val3 + s    */
push val[4]
add          /* s= val4 + s    */  
pop  val[5]

のような感じ。基本はスタックに値をpushして、addは先頭2つのスタック を取り出して演算した後、一つの結果をpushしているというルールで読みます。 コードを操作する為に括弧で括っていますが、例えば 全然括弧無しで $val4+$val3+$val2+$val0+$val1 と書いた場合、 「一番最適なコードはどれ?」という観点で見た場合どうでしょう?
これをコンパイラの要領でレジスタに彩色する事 (仮にpushをレジスタへのロードとして彩色してみる)を考えた場合、まともに やったとすれば、前者の例ではすぐにレジスタ数が足りなくなってしまうと いう欠点があると思います。しかしCPUのパイプラインの効率的に 最初にまとめてロードして次にまとめて演算した方が良いという場合は、 前者の方が良いと考えられます。
なんて事を考えていると、コンパイラには手を出すもんじゃないな とか思ったりして(^^; 多分やり始めると一生遊べそうな気がします(笑

2002/04/27

昼過ぎに起きたり。そして休出。

インタープリタの続き。中間コードの生成を考えてみたり。

2002/04/26

起きたらえらい時間に!毎週やってるけどそろそろ悔い改めないとまずい。

switch()文を追加してみたり、文法エラーの検出を考えてみたり。

そういやppcクロスgccの測定結果が出てたのをすっかり忘れていました。 でも、命令毎のカウント数が出るようになってから、いまいち見づらく なってしまったので、「プロ遊」の下に読み物としてページを起こして みました。ppcsimは最新バージョン一つで測定し、実行バイナリだけが違う という比較条件なので、今までのを総合した測定という点では、日記に 出てきたものをひっくり返して見るよりは少しマシな比較になっていると 思います。御参考まで。

2002/04/25

日付越え少し前に帰着。

bisonでの構文解釈順序を見るために、取りあえず通ったアクションの順序 が判るようにコード書き。そして、for文などを追加していたのですが、 すっかり夢中(笑 なにがどうって説明できないのですが、なんか面白い ですよ。

先日bisonでfatalエラーになる話ですが、なんとなくメカニズムが判りました。 冷静に考えてみれば当たり前なのですが、自己参照時に初期値の設定が無い のがまずいということのようです。

-------
%%
start	: program
        ; 
program
	: program  rule
        ;
-------

programはruleの集まりになるのですが、一番最初のprogramを厳密に定義 していないため、結局この自己参照ループの中に飛び込めない状態に解釈 されてしまうようです。これに似た事象として、C言語だと

foo()
{
  int i ;
  return i++ ;
}

のように値が不定な変数を参照した場合に似ているのでしょうか。-Wall 付けずにコンパイルしてこれを見逃すとえらい目にあうのですよね(^^; 他にはハードウェア記述言語のVHDLでラッチが生成される過程も同じ事が 言えるのですが、まぁそれはそれとして。プログラム言語の場合は初期値は 暗黙のうちに0としても不都合が無い場合が多いと思うのですが、bisonでの 今回の例ではこのへんを厳密にしないとまずい事があるように思われます。 例えば、初期値をデフォルトで「空」と定義してしまうと、 「最低二つは指定が必要」といった表現できなくなる(もしくは特殊な記号を使用 して無理矢理表現する必要がある)ことになると思います。

-------
%%
/** 二つ以上のruleが必要な文法を表現.  空と一つしかruleがなければエラー       **/
/** 空をデフォルトにしてしまうと 全ての文法で省略が常に可能になってしまうハズ **/

start	: program
        ; 
program
	: rule rule
	| program  rule
        ;
-------

という事で、「for(i=0;;i++)」のような省略可能な項目とwhileの()の中が 省略できない項目である事などを分けたり色々。

2002/04/24

日付越え前に帰着。

++や--のような特殊な演算子をbisonで表現しようと思った所、はて、 どうすれば良いのか判らなくなりました(^^; というので整理。C言語の 場合、

 if( i++ == j || i++ == k || i++ == l ) ... ;

  とか
  
 return( i++ ) ;

といった書き方ができたりします。 例えば最初の「i++ == j」は i==j を評価した後で i++ を実行しなく てはなりません。逆に言うとi++を後で実行する事を覚えておいてから、 i==jを評価する必要があると言えます。returnの方も返すのはiですが、 i++は実行しなくてはなりません。覚えておく.....うーむ。
因みに、++や--を式に複数入れるとどのようになるか、以下のような コードを書いてみました。

int main()
{
int i,j ;

  i=1 ;
  j=1 ;
  i=i++ + i++ + i++ ;
  j=++j + ++j + ++j ;
  printf("%d  %d\n",i,j) ;
  return(0) ;
}


さて、実行結果はどうなるでしょうか?

test> ./a.exe 
6  10

となりました。iの方は「1 + 2 + 3 = 6」のようで、参照 した後に++しているという感じです。 jの方は「2 + 3 + 5(?) = 10(???)」.........なんで?(^_^;; 私の頭が悪いだけ?(汗;

2002/04/23

風邪引いたみたい。少し早めに帰着。

何もせずに死亡

2002/04/22

少し早めに帰着。

bisonプログラム書き。取りあえずbison的文法チェックを通すようにした 所、以下のような例で思いっきりはまってみたり(^^;

-------
%%
start	: program
        ; 
program
	: program  rule
        ;
-------
parse.y contains 4 useless nonterminals and 29 useless rules
parse.y:214: fatal error: Start symbol start does not derive any sentence

要するに全くなっとらんという事らしいのですが(^^;、何故ダメなのかがさっぱり 判らず。で調べた結果以下のようにするとOKになりました。

%%
start	: program
        ; 
program
	: /* empty */
	: program  rule
        ;

でも、どうすればOKになるかは判ったものの、何故ダメなのかはやっぱり判らず。

parse.y contains 144 shift/reduce conflicts.

とか。これは日本語のマニュアルによると「シフト還元衝突」と呼ばれるもの らしく、優先順位が不定で二つの意味に取れる場合などに発生するようです。 例えば減算式で仮に'-'がただの区切り文字の意味で定義されていたとした場合、 a-b-c は (a-b)-c と a-(b-c) との二つに取る事が可能であると考えられます。 前者の解釈になるようにするためには %left '-' で左側優先である事を明示的 に宣言する必要があるそうな。因みに%rightもありますので、これを使うと 後者のような解釈もできるようです。
他メモ。bison -v foo.y とかやるとfoo.outputというファイルに文法の解釈 フローチャートみたいな解析手順リストが作成されます。シフト循環衝突が 起こったときにはこれを眺めるとソースだけでは判りにくい巨大なループによる 矛盾も発見できるかもしれない予感。

後、昨晩仕掛けておいたもう一つのコンパイラテスト用シーンファイルの 実行結果を調べてたら殆ど変化無いので変だなぁと思ってよくよく確認して みると、古いPOV-Rayを実行していた模様(^^;そんな感じなので、 20020330のfish13.povの結果 20011231の結果と等価です。なんか微妙に実行命令数が違うのが 気にはなるのですが(^^; ついでにMegaPOVの方もコンパイラオプションが へぼってました。そんな感じで測定し直しの巻。

2002/04/21

起きたら昼過ぎ。うーむ。

雨が降っていたので、だらだらと過ごす。
なにげにサイバリア(μの方)をやっていたのですが、全HARD(ただし コンティニューしまくり)ルートで進めていくと、いつもより 1ステージ多くなって、それをクリアするとエンディングに変化が! なんだかよく判りませんが、sakura diesellとかいう女キャラのCGが エンディングロールのBGに表示されたりして。うーむ、微妙(何が?)。

先日cvs updateしたgccをppcクロスコンパイルしてみました。 MegaPOVをコンパイルしてppcsim上で実行してみた結果は以下の通り。

megapovdemo/photons/threelens.pov Statistics, Resolution 320 x 240
----------------------------------------------------------------------------
Pixels:           77120   Samples:          107168   Smpls/Pxl: 1.39
Rays:            871792   Saved:                30   Max Level: 5/5
----------------------------------------------------------------------------
Ray->Shape Intersection          Tests       Succeeded  Percentage
----------------------------------------------------------------------------
Box                            4138368          803343     19.41
CSG Intersection               4138368          521142     12.59
Sphere                         8276736         1471875     17.78
----------------------------------------------------------------------------
Calls to Noise:                  0   Calls to DNoise:        1671794
----------------------------------------------------------------------------
Shadow Ray Tests:          3046164   Succeeded:               222438
Reflected Rays:             180596   Total Internal:           17714
Refracted Rays:             157762
Number of photons shot:         426266
Surface photons stored:         261137
Priority queue insert:         2851189
Priority queue remove:          820296
Gather function called:         209890
Gather radius expanded:         170734
----------------------------------------------------------------------------
Smallest Alloc:                 12 bytes   Largest:           327688
Peak memory used:          5360261 bytes
----------------------------------------------------------------------------
Time For Parse:    0 hours  0 minutes  10.0 seconds (10 seconds)
Time For Photon:   3 hours 16 minutes  27.0 seconds (11787 seconds)
Time For Trace:    6 hours 51 minutes  43.0 seconds (24703 seconds)
    Total Time:   10 hours  8 minutes  20.0 seconds (36500 seconds)
Total cache size: 16720
called exit.
  =========== 実行命令サマリ ===========
sum
mulli        = 102119668
subfic       = 168897600
cmpli        = 18666992
cmpi         = 530154560
addic        = 3533545
addic.       = 188696
addi         = 3046542553
addis        = 908652502
bc           = 6846282068
sc           = 5554
b            = 723151578
rlwinmi      = 8353314020
ori          = 16312218
oris         = 47489379
xori         = 79307550
xoris        = 20665714
andi.        = 105344105
andis.       = 16315731
lwz          = 1998044580
lwzu         = 311910457
lbz          = 61083473
lbzu         = 2086050
stw          = 1552480181
stwu         = 616163873
stb          = 4299959
stbu         = 77173
lhz          = 6693179
lhzu         = 393216
lha          = 1278371
sth          = 754867
lmw          = 42607739
stmw         = 42607739
lfs          = 194423360
lfsu         = 1725592
lfd          = 1532251857
lfdu         = 26748704
stfs         = 67071311
stfd         = 653279886
stfdu        = 4374
mcrf         = 310401
bclrx        = 337332460
crnor        = 3
crxor        = 6821097
creqv        = 14
cror         = 33093757
bcctrx       = 25578509
cmp          = 3415448059
subfcx       = 2403471455
mulhwu       = 6811
mfcr         = 1281672999
lwzx         = 154580334
slw          = 674548
cntlzw       = 101780
and          = 4487529540
cmpl         = 11721353
subf         = 2434113065
andc         = 786990
mulhw        = 426267
lbzx         = 4179152
neg          = 1304089455
nor          = 261341
subfe        = 1206107832
adde         = 1203550553
mtcrf        = 6419693
stwx         = 39130933
subfze       = 351
addze        = 166039154
stbx         = 460205
addme        = 3560
mullw        = 1703689
add          = 8793808816
lhzx         = 17443979
xor          = 21558801
mfspr        = 183237966
lhax         = 10094961
sthx         = 596553
or           = 2452626249
divwu        = 203566
mtspr        = 250286884
nand         = 15
divw         = 2001
lfsx         = 160724891
srw          = 152674
lfdx         = 172718838
stfsx        = 721010
stfdx        = 96858799
sraw         = 938301
srawi        = 231253289
extshx       = 12610
fdivs        = 35682
fsubs        = 3622375
fadds        = 3683129
fmuls        = 9989119
fmadds       = 4019915
fcmpu        = 430453283
frsp         = 42052379
fctiwz       = 9855598
fneg         = 4242874
fmr          = 395726292
fdiv         = 66386552
fsub         = 256615039
fadd         = 108146114
fmul         = 364910314
fmsub        = 4565095
fmadd        = 470852912
fnmadd       = 801809
Total_count  = 61197744018

以前より少し実行命令数が多くなっています。しかし、使用 している命令の内訳は大分変わっているようなので、実際に実行 される命令列的には改善されているのかも知れません。でも 改善率としては微妙なところでしょうか。因みにAltiVec命令列出力 ソースのコンパイルエラーはまだ起こるようです。

何気に「プロ遊」の下のppcクロスbinutils/gccのmake方法のページを更新 しました。

2002/04/20

10:00頃に目が覚めたので、早く寝ると健康的だなぁなどと思いながら も布団から出ずにそのままうだうだしていたらいつの間にやら夕方(汗; 結局不健康ってことかよ!ヲレわ!などと思ってしまった。

ども、 遅レスで申し訳ないっす(^^; 仮に動的な入力に対してハッシュ サイズを決めるとすると普通はどうするものなのでしょうか? DBとしてのサイズが大きくなるとうっかりハッシュの再計算を行う 訳にもいかなくなりそうなので、実はハッシュのサイズは適度に 大きく取っておけばOKで、どちらかというとハッシュが衝突して いる要素の高速検索の方が重要だったりするのでしょうかね?

全然関係ありませんが、唐突に「プロ遊」のCygwinについてのページを 更新しました。情報自体が大分古くなっていたのと、時間の経過と 共に解決したものもありましたので更新したという感じ(^^;

2002/04/19

今日は早めに帰着。

金曜ロードショーで「ノートルダムの鐘」をやってました。 ダイナミックな画面構成とか流石だと思いましたが、どうもストーリー の方が肌に合わなかったといいますか。なんだ最後はやっぱり見た目 かよって感じがしたのは私だけでしょうか。それでいて続編のIIを 作るってのはどうかと思いました。
「美女と野獣」の最後にも同じような感想を持った気がするのですが、 「ハイ!ベル!(見たのが字幕版だったので英語)」とか野獣から人間の 姿に戻る辺りで、それまで積み上げてきた感動が吹き飛ぶくらい冷めた (むしろ退いた)記憶があります。あれは最初に張った伏線の回収と いう感じだったのでしかたが無くもありませんが、見た目でなく 心に惚れたというストーリーにするのなら最後に余計な事は しなくても良かったのでは?とか思いました。

コーディングの続き。前に作ったHash関数のDBを組み込んで キーワードチェックをしたり変数登録のテストをしたり。

猛烈に眠くなって死亡。普通の時間に帰ると色々やってもこの時間って 感じで余裕があって良いですなぁ。

2002/04/18

起きたらまたえらい時間に!って大丈夫かヲレ?!

ワード切り出し関数(字句解析機ともいう)のコーディング続き。 ==とか++とかの一文字じゃない演算子の切りだしが面倒でした。 というかなんかベタベタになってしまってカッコ悪いって感じ。 次はこれをbisonインターフェースで繋いでやっと文法解析を実際に 行うって感じ?

ダウンタウンDXを見てたら山咲トオルが出てた。笑う犬の発見 だかで、色からモノを連想するゲームに出てたのを見たのが最初だった のですが、その時はおかまっぽいしゃべりで職業がマンガ家(らしい)で TVに出ているって何者?って感じでした。しかも、連想したものが 白→白波、青→宇宙ってきたもんですから、なんだコイツわ?!と 非常にインパクトがあったのを覚えてました。さておき、このときは マンガ家だけどどんなマンガを描いているのか判りませんでしたが、 DXの方でそのことにちょろっと触れてて、挙がった代表作が 「戦慄!!タコ少女」ってホラーマンガかよっ!? (本人曰く、体がタコになった少女が恋をしたり冒険したりな物語 だそうな)って、これまた強烈なインパクトに驚き。あまりに強力な キャラに興味が湧き、思わずgooで検索した所 http://www.yamazakitoru.com/ なる(これまたすげーURL)ページが見つかったので、見てみた のですが、見ればみるほど訳がわからなくなってきたって感じです。 調べる事自体、ムダな時間を過ごした気がしなくもない山咲ワールド にみんなもれっつだーいぶ!(ぉぃ;

2002/04/17

いつもより一時間ほど早く帰着。

何気に思いついたので、彩フォーマットのSAVEコマンドをlaymanに追加 してみたり。X68kの頃にマスクにノイズを混ぜ込んでおいて、それを ベースに描くとつるっとした感じが無くなってちょっと良い感じに なったのですが、いかんせん猛烈に重くて結構辛かったことを思い 出します。で、同じ事をWin版でやるとどうなるでしょうか?という 実験です。結果、かなり快適に描けて良い感じでした。

サトエリレプリカ(-_-;

ノイズをぼかしで潰しただけなので、独特の模様がCG臭く感じなくも ありませんが、うまく作ればもっと色々な味が出るかと思われます。 そんな感じ。

2002/04/16

起きたらどひーな時間。ダメ過ぎ。いきなり休業。

コーディングもせずで、なんだか何もせずに一日終了。
ラクガキやら物書きやらに使っている中性ボールペンのインクが切れた ので、代わりの書くものとして鉛筆を探し出した所、削る必要があった ので、確か見える所にあったハズの鉛筆削りを探したのですが、すぐ 見つからず結局 ゴミ溜めになっているテーブルを片付けてやっと 発掘できたので、ついでに散らかったゴミを片付けた後にふと気づく と探したハズの鉛筆削りをどこに置いたのか判らなくなって、また探し まわったりとムダな時間を過ごしているうちに、そもそも何故 書くものを欲していたのかまで忘れてしまっているダメっぷり。 今日はダメだ。

2002/04/15

日付け越え。

ワード切り出し関数をコーディングしてみたり。ふむー。

2002/04/14

あんだけ早く寝たのに起きたのは夕方(滝汗;; ちょっこり出社。

線形リストを生成する部分で色々はまったり(汗; リスト処理は 何度やっても慣れません。ちゅうか修行が足りないだけか(^^;
こんなので良いかなぁという感じで完成。本当はインタープリタの 予約ワード検索や出現変数のチェックなどを行う為に使うのが 目的だったので、本題はこれからって感じなのですが。

この前KOJIさん達と飲みに行ったときに、KOJIさんが撮影した 写真を送ってもらっていたのですが、そのままになっていたのを すっかり忘れていたので、やっとこさ絵日記を 補完しました(^^; だいたい写真通りっしょ?(<大分違います)

2002/04/13

昼頃起床。

先日のコーディングの続き。ハッシュキーが衝突した場合、衝突した キーのグループは線形リストなどを使用して繋いで、検索時に順次 キーの一致を取るようなのですが、多段でハッシュテーブルを用意 して引きなおせば良いのでは?と思いコーディングしていたのですが、 何故かキーを生成する時点でどんな素数を選んでもぶつかる場合が 意外と多い事に気づいて、多段ハッシュはやっぱヤメ。

これマジスペシャル。宇宙人や月着陸疑惑より、気功の達人が良い と思った。気で人を倒すって、倒される人は思いっきり力抜いた 状態で、且つ気のやり取りができる人限定で、しかも倒すのに時間が かかるってのが、色々変身ポーズを繰り出しているうちに倒され そうな特撮ヒーローのようで、世の中の平和を感じます。

何故かとても眠くて日付け越える前に死亡。

2002/04/12

日付け越え。

何気にhash関数のコーディングをしてみたり。アルゴリズムの教科書を 見てみますに、h(k)=k mod m で、mは素数を選べという事のようですが、 その場合mがそのままハッシュテーブルのサイズとなってしまいます。 このmのサイズって何を基準にサイズを決定するものなのかイマイチ よく判らず。

2002/04/11

日付け越え。明日は山場その1って予感。

yacc/bison プログラム(?)書き。と言ってもルールを書いただけ。
昨日GIMPの新しいのが出ていたのでダウンロードしていたのを インストール。起動がやけに速くなっています。フィルタを いくつか試してみましたが、やはり少し不安定な感じ。フィルタの種類が 少し増えたような気分?

2002/04/10

日付け越え。

GAMEWAVEを見ながら下ごしらえの続き。まさか残留するとは思いません でした。

2002/04/09

日付け越え。うぃー、連日1:00前では死ぬかも。

トークン切り出しの下ごしらえをしながらちょびっつを見たり。 って死ぬのなら寝ろってか?(苦笑;

2002/04/08

日付け越え。眠いっす。

飯食べながらテレビのチャンネル回してたらあずまんが大王をやって ました。
あぁ、眠くて死亡。

2002/04/07

いいとも増刊号時間に目が覚めてしばらくしたらいつの間にかまた寝てて、 起きたらすっかり日が落ちてしまってました(汗;

特に何をするでもなく、だらだらとテレビを見て過ごす。うーむ。

先日の続き。gawkとrubyとperlのパーサーを見てみたのですが、いずれも lex/flexは使用せずトークン切り出しは自前で行っているようです。 また、gawkやperlの方は自前でステートメントキーワードの切り出しを 行っていますが、rubyの方はgperfで生成した静的ハッシュで キーワード切りだしを行っているようです。gccの方もc_lex()と いうこれもまた自前切りだし関数で行っている感じです。ふむ。
lexを使用しない理由はいまいち良くわかりませんが、単に同じような 宣言を二箇所で行わなくてはならないのが面倒だからなのでしょうか? flexはGNUウェアではないというのは関係ないとは思いますが......

そういやperlのソースを探していたら、perl6のことが書いてあった のですが、実行部を仮想マシンとして実装するような旨が書いてある ような気がしました(勘で英文翻訳(-_-;)。どのようなものになるかは よく判りませんでしたが、JavaのVMみたいにグラフィックが使えるとか だと面白いかも。組み込み系デバイスの様に高級なOSを乗せるまでの 必要が無いのであれば、VMを直接動かす様にする事でクロス環境や シミュレータといった大げさな開発環境など無くても、どこでも同じ様 に動作するプログラムが書けて、幸せって感じぃみたいなぁ(ぉぃ。 JavaVMみたいにライセンスの都合で好きにそこらへんのアーキテクチャの ハード上で動かせないのはつまらないので、そこんところは是非 うまくやっていただけると良いなぁと思いました。

ラクガキ王国で少し遊んだり。ゴールドに換金したせいで色が全然 無くてしくり。

2002/04/06

昼頃起きて休出。

突然思い出したようにyacc/lexのお勉強。gawkがどのように書いているのか 観察。でも眠くなって死亡(ぉぃ;

2002/04/05

日付け越え。1:00に近いと流石に眠いです。

ラクガキ王国を進める。100万ゴールド達成!帝国の敵キャラと対戦できる ようになりました。ってちょっとガッカリ。というのは、ゴールドはラクガキを 買う事にしか使えないのですが、売っているラクガキは値段の割にあまり強く ない気のする私にしてみれば、ゴールドを持つ事には全く意味が無いのです。 しかも購入したラクガキには部品の追加はできますが、既にある部品を削る 事はできないので、買ったラクガキを「全て戻す」でカラー石変換する ような裏技は無いのです。したがって、100万ゴールドはただ貯めただけ。 ヘコリ。それならカラー石を使って色々描いた方がよかったよ.......

どもども(^^)。こちらこそ今更でなんですが(汗;、 御怪我が無かったのは幸いでしたね(^^;。最後の「TECH GIAN」が 大丈夫さ加減を醸し出しているようです(笑

2002/04/04

日付け越え。

ラクガキ王国を少し。70万ゴールド。今日これだけ。眠くて死亡。

2002/04/03

日付け越え。

風呂に入っていたら雨と共に雷の音が。春の嵐か?

RenderMan関連資料探索。簡単なシーンファイルのソースがあったので ダウンロードして眺めてみる。なんとなく判るようなイマイチよくわからない ような。全てはシェーダー次第という感じのようなので、shaders下を色々 眺めて適当に差し替えてみるのが良さそうな感じ。

今日は眠いのでラクガキ王国はお休み。

2002/04/02

起きたらまた偉い時間に......最近、疲れているとなかなか復帰ができない 臭い。

BMRTいじり。つーか、資料探索。RIB形式で直接書く感じではない気分。 Postscriptに近い感覚か?C言語でRIB形式を自動生成する方法の方が良い 感じみたいなのですが、それだとコンパイル方法しか判らず。うーむ、 なんだかむずいっす(^^; そういやレンダリング中にプレビューのグラフィック ウインドを出せるようなのですが、レンダリング中はそのウインドは 動かせないようです。ますます以前のppcsimのような感じ(笑

なにげに電子英和辞典であるらしいところの「英辞郎」なるものを購入。 以前から辞書を引くのが面倒だったので、CD-ROMの辞書が欲しいと思っていた のですが、値段があまり手ごろでなかったので買うのを躊躇していました。 この辞書、登録単語数が多いのも良いのですが、付属の検索ソフトで コピーバッファ(クリップボード?)を監視して更新されたら、コピーバッファに 入った文字列から自動的に辞書検索を行う事ができるのが便利です。なので、 例えばMeadowで英文テキストを開いて、意味の知りたい単語をマウスの ダブルクリック(やドラッグセレクト)でワードをコピーバッファに入れると 検索結果ウインドが開く感じになります。結果、辞書付きテキストエディタ みたいな感じになったりして良い感じです(^_^)。 他にもCygwinのrxvtを使っていれば、 ダブルクリック(やドラッグセレクト)でワードをコピーバッファに入れられ ますので、manページの閲覧でも使用することができます。自動辞書検索の OFF/ONはキーバインド可能なので、実際のテキスト編集などで邪魔になる 場合は、その場でOFFにしてしまうという感じでバッチリでした。 ただ、単語が見つからなかったときの検索結果がヘンなのがタマに傷って 感じです。
因みに、この辞書(ソフト部分が?)、書籍で買わない場合はシェアウェアで 1000円だそうです。

そういやMetasequoiaにRIB形式でセーブする機能がなかったかと、 お試し版を久々に起動。シェア版だとできそうな雰囲気なのですが、 それでもせいぜい形状を持って行ける程度らしいです。うーむ。

ラクガキ王国を少し進める。60万ゴールド。

2002/04/01

日付越え。

たぼさんのKOJIさんところの書き込みより、3Dレンダリングソフトウェアで あるところの BMRT(Blue Moon Rendering Tools)をダウンロードしてみました。 Windows版はCygwinをベースに動作するようで、cygwin.dllが同梱だったり するようです(^^; examplesをテストで実行してみたりいろいろ。なんか 見かけのユーザインターフェースがppcsim+GraphicDeviceみたいです(^^; しかも、 Cntl-Cが受け付けられなかったりするあたり昔のppcsimっぽい(汗; ちょこっとサンプルを触っただけではイマイチ記述のルールがよく 判らなかったり。もちっとドキュメントを眺めてみます。 ところで、ソースは公開されていないのでしょうかね?いや、PPC対応に コンパイルできないかなぁと少しだけ思ったもので。

ラクガキ王国を少し進める。50万ゴールド。あと半分。

gsl-1.1.1をコンパイルしたのですが、相変わらずmake checkで テストモジュールのコンパイルに失敗したり。手で叩くとうまく いくのですが、元のMakefileのどのへんをちょっと直せば良いか まではよく判らず。コンパイル自体にかかる時間も強烈です(^^;


TOP PREV