Repo

kjana00@gmail.com

older <-

2009-04-18 01:41:39

今朝はくもり。雨上がりっぽい様子。朝ごはんはパンとソーセージとゆでたまごとサラダ。今朝も涼しい。からすが大きめな木の枝を拾ったはいいけど持て余して、もうちょっと小さくならないものかとばかりに突ついてるのが妙に面白かったり。

適当に依存関係を付けとかないと困るかなとしばらくごちゃごちゃ悩んでみたり。ビルド用のツールは要するに Visual C++ に Perl で皮を被せているだけ、で、依存関係の生成……DEPENDS.EXE ってあったけど使い方が分からない。結局依存関係だけならっていうことで gcc -MM。うーん、手元の環境依存が微妙に増える。gcc -MM -I"C:/Program Files/……" なんてのがちゃんと通るのはいいけどその C: のおかげで依存関係が二つ書いてあるよと make 怒られたりする。まああっちはアプリケーション向けの #include でいじらないから無くていいんだけど。

それから全ソースに対する依存関係を一つのファイルにするのが今一つっていうか、Makefile に include した上でそっちにも依存関係を付けたら一つソースいじるたびに全ファイル相手に走査しますねというので info にある勧めに従って .c.dep な感じの implicit rule 作ってオブジェクトファイル毎に依存関係を作るようにして、これも散らかるのが嫌でサブディレクトリに作るようにして、そうしたらまた依存物が見つからないっていうからちょっと悩んでみて……なんていうことをしつつそれなりに納得の行く形にしておく。

確かに中身を教えた覚えは無いけど引き継いだんだしどう確認したらいいのかも知ってるはずだし、残ってる人達に聞いて欲しいんだけどなとちょっと思いつつ先月まで居たところからの質問に応えたり。適当にラベルを付けたくて頑張って調べてみたけど、結局拡張モジュールの C コードでは表面を飾るのにいいタイミングで呼ばれるコールバックが無いからツールレベルのコールバックで実現するしか無さそうだっていうのを確認したり。C ソースから機械的に集めた情報を使うことぐらいは出来るからそれで妥協か。

それで本番向けにとりあえず中身はほぼ何も無いけど最低限の入出力ポート定義を付けてみた。I/O ポートのマップはエミュレータで使ってたテーブルをそのまま参照して使える……のは使えるんだけど、エントリ数を手で定数定義しなきゃならないのがかなり残念。……でも extern struct st table []; な宣言を #include してるのに、sizeof(table) == 0 ってのは何なんだろ。これが 4 ぐらいでポインタの大きさ返ってきてるよな、ならまだ納得するのに。……使えないことには変わりないとはいえ。

まあエントリ数は #define しとくとして、で片付けて、ポートのラベル付けを実現するのにこのテーブルからポート名だの入出力方向だのを引っ張り出して、ツールの言語でテーブルを定義するという微妙に不毛なスクリプトをでっちあげてみる。drop_while の条件に drop_until な感じのブロック渡したらそりゃ意図しない結果になるだろうよとか、case の when に切り分け含んだ正規表現を書いたら何か一つ足らないんだけど何が足らないんだかわからない、で正規表現は簡単にしておいて scan して flatten しするようにしたとか、最終的に行列でいいかと思ってたけど良く考えたらこれで行列って要素が全部同じ型でなきゃだめかということで調べ直したり。cell array よか struct の array の方がいいか。

そんな感じでとりあえず終わる。帰って晩ごはんにとりと山菜の汁でそば。何か久しぶりだ、そば。軽い酸味がなかなかって、それ山菜入れ過ぎっぽい。

何か食べたかったということで、そばには全然関係無いブリーを食べつつ WWW 見た後は、そうそう死なないからなとさくさく進んで 12 階のランダムクエストまで終了。イークの洞窟 12 階が平和だったから、多分 13 階で親子と連戦になるんだろうかと戦々恐々……まあ、子が出るまで 12 階で粘ったらいいだけの話ではあるけど。それにしても戦力が足りてる気がしないのがな……

older <-

goto

hint can be:

Tags

old

2007-05 -- 2006-12

ゲーム関係の古い記録

before 2005-12