ぎょーむ日誌 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 合.
			朝と同じ.