Hello,

I am seeing massive deterministic corruption in
core images produced by ext:save-lisp with :purify t.

This is with the latest snapshot (2007-07), but
the corruption can be reproduced with builds from
years ago, even back to the first snapshot of the
19 series (2003-10).
18e does not seem to be affected.

The corruption manifests itself most visibly as
some (former) function symbols now being fbound
to a completely unrelated function, or non at all,
or becoming a completely unrelated constant
or a special variable.

I don't have a minimal testcase, but I can provide
a seemingly non-corrupt lisp image, that when
saved again without purify seems to stay ok,
but when saved with purify becomes massively
corrupt.  These are Linux x86 core images that have
a 'break pushed onto ext:*after-save-initializations*,
no custom init-function, and include an abstraction
that calls #'describe on a number of symbols to
demonstrate the corruption.  I could also provide
the sources.

The corruption manifests itself most visibly as
some (former) function symbols now being fbound
to a completely unrelated function, or non at all,
or becoming a completely unrelated constant
or a special variable.

The problem occurs when our project files are
compiled and loaded and a core image is dumped
from the same lisp instance that did the compilation.
When everything is already compiled and it is just
loaded from the fasl files before the image is saved,
no corruption has been observed so far.

Anyone interested in looking into this?

Thanks in advance.
Andreas


Reply via email to