昨日は寝てしまったよ。
おとといとその前は寝たあとに起きれたので、昨日も起きれると予想したんだけど、6:30まで寝てた。ううん。まあいいんだけど。
Binary 2.0 カンファレンス 2005
というわけで、何の間違いか喋ることになってしまったらしい。
内容は先週書いてたg++の例外の話とか。
先週書いてたときは、調べながら書いてたので、行き当たりばったりだとか、その時のやる気の影響を受けすぎてるとかがあったので、そこらへんをもう一回まとめた感じにする予定。まだ全然決めてないんだけど。
いやー、でも、なんか、こうやってプログラム見てると、僕のが一番低レベルプログラミングっぽくないような感じが…
■
あと、本名が出てるので、HNとかの話。
僕がここでは自分の名前をHNでしか書いてないのは、別に本名を隠しておこうとかいう意図があるわけでもなく、なんとなく、わざわざ名乗る機会が無かったから、と、いうのが主な理由で。と、いうか、名乗る機会なんて普通ないと思うが。
じゃあ、ずっとHNでいいかとも思うんだけど、「をです」って名乗るのがあまり好きではないというか、発音的とか文法的に、非常にわかりにくいので、名乗る場面では、自分の名前で名乗ってる、というような感じ。woはタイプしやすいのでここで書く分には良いんだけど。
いや、だからなんだ。
■
GCをデバッグに使ったらいいんですよ。 ゴミ見つけたらタイーホ
ゴミを見つけるくらいならC言語でもできる!!(glibc依存だけど)
#include <stdlib.h> #include <mcheck.h> int main() { char *ptr; mtrace(); ptr =malloc( 1 ); free( ptr ); ptr =malloc( 1 ); ptr =malloc( 2 ); ptr =malloc( 3 ); muntrace(); return 0; }
こんな感じにして、
$ export MALLOC_TRACE=log $ ./nanika $ mtrace ./nanika log Memory not freed: ----------------- Address Size Caller 0x0804a3c8 0x1 at /home/wo/test/malloc.c:10 0x0804a3d8 0x2 at /home/wo/test/malloc.c:11 0x0804a3e8 0x3 at /home/wo/test/malloc.c:12
まず、MALLOC_TRACEで、mallocログの出力先を指定。
んで、プログラム実行。ここで、ログが出力。あとは、mtraceでログ観賞。
こういうふうに、ツールやライブラリを駆使して色々やる楽しみっていうのは、GC無し言語だと味わえないとかいう話なんです。昨日のは。あまり健康的ではないとわかってるんだけど。
あと、まあ、
http://www-06.ibm.com/jp/developerworks/java/051104/j_j-jtp09275.shtml
こんな時代にGC無しにこだわるというのは頭のイタい人のすることだ、という意見はもっともなんだとは思うんだけど、たとえば、全てのアプリケーションが、Javaでーあー、時間が無い。会社行かないと。返ったら書きます。そんなに長くないんだけど。スワップ。スワップがあるんだ!!Javaには。メモリ使いすぎ。起動遅い。
■
と、思ったけど、なんか元の話とズレすぎなので書かない。またなんか関連する話を思い付いたときに書こう。
Link-time optimization
http://gcc.gnu.org/ml/gcc/2005-11/msg00735.html
あ…あとで、頑張って…読むこと…。面白そうなんだけど…