[armedbear-devel] In-memory compilation status

Mark Evenson evenson at panix.com
Tue Sep 8 11:10:08 UTC 2009

On 9/8/09 1:04 PM, Alessio Stalla wrote:

>> I don't quite see the parts of the compiler that need to write to the
>> filesystem.  Can anyone point me to the places where that happens?
> Going from memory, when it compiles local functions/closures, it needs
> to write each one to its own class file. The compiled top-level
> function will contain instructions like
> loadCompiledFunction("tempClassFileFoo1234.cls"). After the compiled
> function is loaded, if the runtime compiler has been used, temporary
> files are deleted.
> I also vaguely remember that the compiler uses temporary memory
> (remember/recall) for constants and other things, and generates code
> in the compiled class files like 'fetch contant 1234 from the
> compiler'. So, if it's still like this, that's a problem for the OP,
> too.
> But I haven't got the abcl source handy now, so that might be incorrect.

Ok, I understand the first use now, still hunting for the second.

A possible strategy to  cover the first use is by binding a per-thread 
special variable on entrance to CL:LOAD that would tell 
Lisp.loadCompiledFunction() where to look if it can't find the requested 
'file'.  I started to follow that strategy for the "load from JAR files 
patch", but it turned out not to be necessary.

More investigation in a bit…

"A screaming comes across the sky.  It has happened before, but there
is nothing to compare to it now."

More information about the armedbear-devel mailing list