[Openmcl-devel] *initial-process* and *current-process*
gb at clozure.com
Thu Jun 23 00:42:05 CDT 2011
On Wed, 22 Jun 2011, Gabriel Dos Reis wrote:
> I have an application where when I use ccl:save-application,
> CCL apparently saves the "old image" (not what I want), that is the image
> as it was before I LOAD some fasls instead of the "current image" that contains
> the loaded fasls. I started seeing that behavior only with "recent"
> versions of CCL --
I have no idea how SAVE-APPLICATION would do this. How would it know
what was part of the "old image" and what wasn't ?
There are some scenarios where SAVE-APPLICATION could start to write
an image file and encounter some sort of catastrophic error (out of
disk space, memory corruption, a bug) before finishing. The last
thing written to an image file is signature information that the
image loader uses to validate the file; an incomplete image file
can't be loaded.
You might want to check pathnames and file write dates carefully;
I don't think it's likely that what you think is happening is happening,
and it seems much more likely that there's a more mundane explanation
for what you're seeing.
> that is anything but recent CCL from trunk works fine.
I think that you'll find that recent versions of the trunk also work
fine and that you're misunderstanding what you're seeing.
> That led me to wonder the difference between *INITIAL-PROCESS* and
> *CURRENT-PROCESS*. Thanks,
As it's used in the names of these variables, the word "process"
essentially means "thread" or "lightweight process". The initial
process (the lisp process/thread that's the value of
*INITIAL-PROCESS*) was created by the OS when the application started,
and (as David Rager said) each thread has its own dynamic binding of
*CURRENT-PROCESS* that refers to itself.
None of this has very much to do with heap images, so I may misunderstand
> -- Gaby
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
More information about the Openmcl-devel