resize-areas

$Revision: 5.0.2.4 $

Function

Package: SYSTEM

Arguments: (&key old old-symbols new global-gc tenure expand pack-areas sift-old-areas pack-heap verbose)

This function attempts to restructure the Lisp heap according to the programmer's wishes. These wishes may call for old or new space to be increased in size (usually doable unless the operating system refuses to give up the needed extra space) or to be reduced in size (sometimes doable, but gaps -- foreign data -- above newspace or between the top oldspace and newspace may prevent resizing). Note that other gsgc parameters or requirements may also prevent resizing. This function can modify newspace, the top oldspace, and can coalesce two or more adjacent oldspace areas into one. Arguments control whether a global gc and/or tenuring of objects in newspace are forced prior to resizing.

Argument Values and effects
verbose If non-nil (default nil), print information about what function is doing.
old For each argument, the number of bytes which should be free in that area (oldspace, oldspace symbols, newspace) after this function returns. Other gsgc parameters may affect the number of free bytes, so the values specified are lower limits. No 5.0 platforms stores symbols separately in oldspace so the value of old-symbols has no effect in release 5.0. old and old-symbols default to 0. new defaults to

(+ (sys:gsgc-parameter :free-bytes-new-pages)
   (sys:gsgc-parameter :free-bytes-new-other)))

old-symbols
new
global-gc If non-nil, do a global gc before other actions. Defaults to nil but note that a (perhaps second) global gc is also done later if sift-old-areas and pack-heap are both t.
tenure If non-nil then tenure all possible data in newspace after processing the global-gc keyword argument but before any other keyword values. Defaults to nil.
expand If non-nil then expand oldspace or symbol oldspace if necessary, otherwise do nothing if the requested amount is not free. Defaults to t.
sift-old-areas Move data in oldspace down to the oldest oldspace area possible. The hope is that the lower (older) oldspace areas will fill up, leaving the higher (newer) areas empty (or emptier). If both this argument and pack-heap are true, a global gc will occur after sifting and then adjacent empty oldspace areas will be coalesced if possible. Defaults to t. The global gc that occurs if this argument and pack-heap are both true can take an appreciable time so make this argument nil when time is an issue.
pack-heap Reduce the size of the top (newest) old area as much as possible. Defaults to t.

See gc.htm for more information on garbage collection and gsgc parameters.

The general documentation description is in introduction.htm. The index is in index.htm.

Copyright (C) 1998-1999, Franz Inc., Berkeley, CA. All Rights Reserved.