トップ «前の日記(2005-06-07 (Tue)) 最新 次の日記(2005-06-09 (Thu))» 編集   RSS 1.0 FEED  

Journal InTime


2005-06-08 (Wed) [長年日記]

_ C++の設計と進化

C++の設計と進化

まつもとさんにお借りした。

まだパラパラとめくってみた程度だけど、なかなか面白い。 え、ダブルディスパッチが最初に紹介されたのは1986年?、そんなに最近なの?、とか。

機会があれば、一度本格的にC++を使ってみたいな(一度ってところがポイント)。

Tags: 言語

_ SEGV

SEGVでRastのインデックスが壊れた:(

その後、~/ximapd/mails以下を新しいデータディレクトリにインポートすると やはりSEGV。どうもスタックが壊れているようだ。

とりあえず、ruby/ext/rast/rast.cのVALUE型のauto変数全部にvolatileを付けたら 落ちなくなった。

$ cd rast-0.1.1/
$ sed -i -e 's/^\( *\)VALUE/\1volatile VALUE/' ruby/ext/rast/*.c

これでしばらく様子を見てみよう。

Tags: ximapd
本日のツッコミ(全5件) [ツッコミを入れる]
_ なかだ (2005-06-09 (Thu) 10:34)

pool_new()してget_pool()するVALUEにはvolatileが必要そう。

_ 安達 (2005-06-09 (Thu) 13:41)

右上の「お子ちゃま」の写真を見るたびに心が和(なご)みます。ついでに、生まれ故郷の松江を思い出して感慨に浸る私。

_ shugo (2005-06-09 (Thu) 14:01)

そのあたりっぽいですね > volatile<br>もう全部volatileにしといた方が面倒が少ないかなと思ったり。<br><br>安達さんは松江の方なんですね。<br>子どもを育てるのにいいところですね。

_ なかだ (2005-06-09 (Thu) 14:24)

ripperのときにも書いたような気がしますが、<br> VALUE vhoge = hoge_new(void);<br> struct hoge *ptr = get_hoge(vhoge);<br>と分かれているのは間違いを招きやすいつくりだと思います。<br><br> struct hoge *hoge_new(volatile VALUE *);<br><br> VALUE vhoge;<br> struct hoge *ptr = hoge_new(&vhoge);<br><br>と、分割できない形になっているべきなのでは。

_ shugo (2005-06-09 (Thu) 19:47)

そういえば、そんな話がありましたね。<br>Y君に伝えておきます。