[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