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