Repo

kjana00@gmail.com

older <-

2013-02-01 00:42:12

今朝は晴れ。朝ごはんはパンとサラダとソーセージ。しばらくぶりに起きた瞬間から仕事場に着くまで晴れ渡ってたな。あったかいし、ちょっと気分も持ち直そうというもの。

また新版が送られてきましたよとベースを更新。何か今回は当たりそうなところでも patch が .rej 送りにしてしまうというのでちょっと悩む。で、patch --merge で同じファイル中に置いておいてもらった方が楽かなとやってみたら、オプション無しだと弾かれてたところが無事に当たってしまったりして。何か良くわからないな……まあこっちの方がやり易いのは確かだから、今後はこれでいきましょう。

それから昨日の続きへ。やっぱり変数の指定間違いなんていうことはなくて、ちゃんと悩まなきゃいけないっていうのを確認するところから。はぁ…… Merge の変数指定外したら、Merge の上流と衝突するようになるだけ。そっちをいじってもまだ衝突する。……っていうか、こっち方面の初期値は統一されてるわけだよね、つまり。最後の出力ポートでの割り当ての初期値がまずい? ということでいじろうとするとダイアログにパラメータが無い。おや。

出力ポートの初期出力が 0 だから衝突してるわけだけど、それじゃ Merge 方面の初期値を 0 にしてやったらいいのかと試してみるともっと上流のどこかで衝突するか、何が悪いんだか知らないけどコード生成器が落ちるかという状況になった。何だそれ……というところでちょっとあきらめて、コード生成用の情報埋め込みだの何だのを先に全部やってしまうことにする。ライブラリ中の同レベルサブシステムは同じようにビルド出来ないのはわかってるけど、トップレベルはビルド通ったりしないかなとちょっと期待して。まあ、期待するのが間違ってるよねという結論が得られたりはしたのだけど。

それでとりあえず衝突してた変数の初期値に関わりそうな設定を片っぱしから 0 にするという暴挙に訴えてみることに。インターフェース仕様では初期値 0 じゃないかっていうのと、実際に動作する時には大域変数の初期化は関数呼んでやるからっていう理由。この初期値が本当に使われるわけじゃないはずなん。いくつか他の変数でも同じようなことをやったら初期値違いで変数がマージ出来ないっていうエラーは出なくなったし、それまでコードを吐くことも出来なかったサブシステムのいくつかはコードが生成出来るようになって、中にはシミュレーション用ビルドが成功するのも出て来た。……残りはコード生成器がスタックダンプ吐きつつ落ちるんだけど。どうしてくれようか、これ。

と、それは置いておいて、コード生成は出来てるけどビルド出来ないサブシステムをちょっと見てみる。外部関数呼び出しになってるところが問題なのね。関数と言いつつマクロ使うようになってるんだけど、何か勝手に引数を付け足して困ってる。これは……何だろうね? しばらく調べてて、もう一つのモジュールの方ではこの辺の再利用可能関数は reuse のフラグ立ててるんだよなと他と合わせて変更してみたらあっさり通るようになった。自分で生成したわけじゃないコードでも内部状態のための引数を付け足すから困ってたわけだけど、reuse フラグ立てることで内部状態持ってないっていう解析が真っ当に働くようになったっていうこと、かな? 多分。

この辺りの自動生成されてる内部状態変数が無くなったら他も落ちないでコード吐けるようになるかなとちょっと色々考えてみるも無駄だった、という辺りで今日はおしまい。今日で何とかしたかったんだけどな……星がきれいで気温も高めというのでちょっと機嫌を直しつつ帰る途中で晩ごはんにラーメン。ちょっと遅くなったんで。塩ラーメンっていうことだとやっぱりこういうポタージュみたいなどろっとしたスープよりもさらっとしたというか、すっきりしたスープの方が好みなんだなというのを改めて感じてみた。二種類ある内から自分で選んでるんだから文句は言わないけど。好みはもう一方の方だったとはいえこれはこれでおいしいことはおいしいし。

それで帰って後は、ミモレットかじりつつ WWW 見たりゲームしたり寝たり。たまに無闇と眠くなる。何だか。22 階に降りては戻り、降りては戻りでちょっとだけ装備が良くなった。でもまだまだね。

older <-

goto

hint can be:

Tags

old

2007-05 -- 2006-12

ゲーム関係の古い記録

before 2005-12