[cmucl-help] Doing purification: gc invariant lost (purify.c:510)

Raymond Toy toy.raymond at gmail.com
Thu Oct 29 03:48:53 CET 2009


Jared C. Davis wrote:
> Hi,
>
> I have been hitting the following error in CMUCL 19f (and I think 20a)
> when my program calls extensions::save-lisp:
>
>     [Doing purification: GC invariant lost!  File
> "../../src/lisp/purify.c", line 510
>
> And I am then sent to LDB.  I seem to run into this same problem on
> 32- and 64-bit Linux, and on Darwin. I'm a fairly novice user of
> CMUCL, and am not sure how to proceed w.r.t. debugging this.
>   
Ok.  I tried out the test.  Room shows that the stack is 58K bytes.  
Curiously, there are 1800 recursive calls to
try-to-accept-all-commands.  I don't know why the compiler did tail-call
that.   Perhaps because of the defun-comp macro to compile it function,
instead of file-compiling the whole file.

Anyway, if I increase that array size from 1024 to 10*1024, cmucl can
save lisp.

I didn't try it, but it would be interesting to see if file-compiling 
milawa.lisp would allow tail-calling try-to-accept-all-commands.  That
would probably take care of the purify problem.

Ray




More information about the cmucl-help mailing list