Objects that cannot be moved are allocated in special segments, called static segments. These can be in any generation, but are in generation 2 by default.
Such objects include:
in-static-areaor by use of
link-load:read-foreign-modules. This applies to LispWorks for UNIX only (not LispWorks for Linux, x86/x64 Solaris, FreeBSD or Macintosh).
memalignin foreign code loaded as above.
Because static objects are not allowed to move, the static segments are not allowed to move. This implies that if there is a static segment in a high address the image size cannot be reduced below this size. Applications that use a lot of static area normally allocate additional static segments, and thus grow without being able to shrink again. This can be prevented by enlarging the initial static segment, which is in a low address. Use the function
to increase the size of the initial static segment. (Use
to find its current size.)