ぎょーむ日誌 2001-08-28
2001 年 08 月 28 日 (火)
- 0700 起床.
8 時間ぐらい寝た.
よく寝た.
体調回復.
- 朝飯・弁当の準備.
朝飯.
コーヒー.
シャワー.
- 0740 自宅発.
曇りちょっと晴れ.
特急に乗って
0752 京急平和島発.
普通に乗り換えて
0820 京急上大岡発.
0835 研究所着.
- Abies PipeTree の続き
……
と思うんだけど,
着手できない.
この樹木モデルは来月末にカナダの奥地で
樹木モデル屋たちが隔離された場で発表しなければならない.
航空券の依頼出した旅行会社に問い合わせのメイル書いたりする.
4 週間後には出発か.
うう.
間に合うんだろうか.
- さような代理発表せねばならぬ状況を作ってくださった
ご本人からは近ごろ獲得した御自慢のレアアイテム写真など
送っていただく.
何がどうなってるのやら.
|
[ゴーヤーマン]
近ごろ
人気
だそうです
TV のない生活をしてる私は知らなかった.
|
- どうでもいいが,
独房群と外をつなぐ通信速度,
今日はいつもよりさらに遅い.
回線腐ってるんじゃないの.
あるいは腐れファイアーウォールのヘボい設定が原因,
とか.
- PipeTerminal と PipeBundle を連携させて,
枝を伸ばしたり落したりする過程を作りこんでいく.
- ついでに,
書き方の改善も試みる.
まず reference でいいところは
pointer をやめてそっちに変更してみる.
しかしこれはほとんどうまくいかなかった.
メンバー変数を参照化するのは
const なデータじゃないとダメなのか?
あと default 引数が与えられるところは
その値を書く.
- なぜだかわからんけど,
枝落ちのところでディストラクターの挙動がおかしい.
よくわからぬ core を吐く.
gdb に放りこんでも
ディストラクターの最後で
標準ライブラリの中に突入していってエラー.
ナゾだ.
- バグとれぬまま昼飯.
弁当食いつついろいろ実験してみる.
- 午後もこのエラーが取れぬ.
上のエラーは PipeBundle そのものが
何らかの理由で delete できん,
という意味らしい,
ということはつきとめた.
どうみてもふつーのディストラクターなんだが.
- 1550 よーやくナゾが解けた.
今回はきわめつけにちょーばかばかしいエラーだった.
すごく簡単に要約できるほどだ.
たとえば,
こういうことである.
int main ( void )
{
int* pointer( new int( 1 ) );
delete pointer; // 消す → これは OK
int x( 3 );
pointer = &x;
delete pointer; // 消す → エラー!!
}
ポインターを介在して自動変数の delete を試みると
Segmentation Fault になるのである.
いやはやわれながら阿呆だね.
- なんで,
こんなことしたのか.
本来 PipeTree 内では構造部品はことごとく new で作られて,
ポインターを介して呼ばれる.
で,
ディストラクターもそれにあわせて作ってある.
ところが,
試験運転用の架設樹木個体では自動変数で部品を
用意してそのを
PipeTree オブジェクトにそのポインターを教えていた.
で,
動作試験が無事に終了して
ディストラクターが呼ばれると
……
ああなるわけだ.
- もともとは開発効率を向上するべく構築した動作試験用樹木が
だんだん足をひっぱるようになってきたなぁ.
なんてことだろうね.
- 水呑み研究者なので水を飲みつつ一休み.
気を取り直して,
動作試験樹木を改善する.
やはり試験なしでは後からたいへんそうなんで.
- 1615 問題のテスト終了.
新規シュートの生成ならびに枝先への追加処理よし.
死亡処理における PipeBundle の階層的削除よし.
やれやれ.
- うーむ,
STL (標準テンプレイトライブラリ)
の <list>
って merge みたいな面倒な関数はあるけど,
単純にふたつをくっつけるような安直なメソッド無いね.
自分で書くしかないか.
- 短期成長試験.
三次元座標系もまともに定義されていない世界で
Abies PipeTree を育成してみる.
まだ光計算やってないから,
それで差し支えないのである.
資源は外部から少しずつ与える
……
ふーん,
毎年 0.1g しか生長用の資源与えなくても,
数年は生残するのか?
- あ,
これは試験用個体なんだけど,
PipeTree 内のお役所に管理を委ねられてるやつ.
どうやら,
始動→ちょい生長→終了,
は問題なくできるようになった.
ならば次は?
いままではグライダー的な滑空だったけど,
完全自力で離着陸できるところまで作ってみるか.
よーし.
やってみよう.
- 以前の PipeTree 開発をやってたころとは
kubolib ライブラリの呼び出しかたなんかが,
だいぶ変わっていて
……
と手直しをはじめたあたりで撤退.
1740 研究所発.
普通に乗って
1800 京急杉田発.
特急に乗り換えて
1810 京急上大岡発.
1840 帰宅.
- 晩飯食ったあとは kubolib ライブラリの手直し.
といってもインターフェイスの一部を変えただけなのだが.
kubolib/basic に入ってる Filereader を見なしてるうちに
安直な initializer の作り方を思いつく.
この Filereader けっこう応用がきくなぁ.
- もうちょっとだけ PipeTree 内部をいじって今日は終りにしよう.
時刻は 2230.
- 今日の食卓
- 朝 (0720):
米 0.7 合.
豆腐・ゴーヤ・チンゲンサイの炒めもの.
- 昼 (1220):
弁当.
米 0.7 合.
朝と同じ.
- 晩 (1850):
米 0.6 合.
朝と同じ.