2007/02/01
Leaky abstractionの例を見つけたのでメモ。
autoconf(2.59まで)のキャッシュメカニズムはgdbm/ndbm.hとgdbm-ndbm.hを区別できない。 一方をチェックすると、他方はキャッシュされた結果を使ってしまう。 たぶん変数名にマップするときに'/'も'-'も'_'にマップされちゃうんだろう。 2.60で直ってるかどうかは不明。
うっ、それだけじゃなかった。見付かった時に定義されるマクロ名も HAVE_GDBM_NDBM_Hでかぶるから区別がつかない。
こういう微妙な抽象性のほつれってのがどうも我慢できない。 っていうマインドはSchemerに多い気がする。(CLerはもっとおおらかな印象)
Tag: Programming