その3

せっかく CVS 版が build できたので、revision を遡って出現時点を特定しようと試みる。

Build できない。make が失敗する! 何でよ!? ちょっと source を修正して再挑戦。また失敗。失敗した部分を手直しして再挑戦。また失敗。

… [二時間経過]

GCC 4 のせいか…orz

もういい、寝る。

因みに build したのは 2005/04/10 の分。例の source を与えてみると

ERROR: bad lambda form: (#<id 0x807d5c0 scheme::lambda> ())

Stack Trace:
_______________________________________

って出た。

その2 compile.scm を load する

脳内で追いかけるのはちょっと辛いので (load "compile.scm") して普通に走ってる gosh から debug できないかやってみた。

挫折orz

無理これ。とりあえず eval-when は

(define-macro (eval-when condition . body)
`(begin . ,body))

という黒魔術で黙らせたけど、module がどうにもできん。Module を gauche.internal にしとくと走ってる gauche に static link された compile.c と競合するのか、select-module と define-module の組合せ次第で

ERROR: Compile Error: wrong number of arguments for #<closure pass3> (required 7, got 4)

とか

ERROR: Compile Error: proper list required for function application: ((item) . body)

とか理解不能な error が出る。Code 見ても 4 つしか引数無いのに…
そこで module 指定を comment out すると内部用の関数が見えなくなってやっぱり load が通らない。grep gauche.internal -R $(src_root) の結果は見なかったことに。

ということで今の知識では無理。脳内 interpreter 起動。

その1

あれ? 二日もだらだら他の事やってたから件の不具合はもう直ってるのかと思って cvs update してみたけど、まだ再現する。勝手に想像してたより手強いのか Shiro さんが忙しいのか両方なのか。

そんなわけで自分で読みつづけることに。