| Allegro CL version 8.2 Moderate update since 8.2 release. 8.1 version |
Arguments: file &key global-gc
If the current Lisp has no .pll file, an association is made
with the file file and the heap is remapped to
use the resulting new pure space. An error is signaled if the current
Lisp already has a .pll file. All
code vectors in the heap are redirected if they have a corresponding
bit-equivalent code vector in the file specified by
file. Strings are redirected if they have
equivalents in file,
and if they appear as symbol-names in symbols, or if they
appear in the constant vectors of function objects. All other strings
must be purified by the program
using excl::maybe-purify-string
or
pure-string, documented
elsewhere. Warning: the program must be careful not to purify a
string that is not a constant; if subsequent modification of string
contents is attempted, an error will be signaled.
The global-gc argument defaults to t
. Specifying nil
for this
argument allows the user to delay the global GC until all strings are
purified. A global GC is necessary to remove all old code vectors and
strings that have now been replaced in pure space.
You should ensure that there are no closed old areas before performing a global gc intended to get rid of purified strings. Do the following before the call to use-pll-file or before the final global gc:
((setf (sys:gsgc-parameter :open-old-area-fence) 0)
See System
parameters and switches in gc.htm for
information on the :open-old-area-fence
gsgc
parameter.
There are other ways a global gc can automatically occur. See gc.htm, particularly section Global garbage collection, for more information on global GCs and for general information on garbage collection.
Copyright (c) 1998-2016, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 8.1 page.
Created 2010.1.21.
| Allegro CL version 8.2 Moderate update since 8.2 release. 8.1 version |