0 for the most recent generation, 1 for the most recent two generations, and so on up to a maximum (usually 3). Numbers outside this range signal an error.
A real number.
A real number between 0 and 1, defining the minimum fragmentation to actually move. The default is 0.25.
finds the most fragmented segment in the generation specified. If
is positive, it moves objects out of this segment, leaving it empty, and repeats this operation until time-threshold seconds have elapsed. At this point
returns, with value
if at least one segment was moved and value
otherwise. Because the operation cannot be stopped in the middle, the actual time taken will always be larger than time-threshold.
If fraction-threshold is 1,
does nothing. If fraction-threshold is 0,
will move all uncompacted segments (unless it runs out of time). With the default (0.25)
moves only moderately fragmented segments.
is negative, then
does not actually move any segments.
is a boolean indicating whether
would actually try to move a segment if it were to be called with a positive
and the other arguments unchanged.
is implemented only in 32-bit LispWorks. It is not relevant to the Memory Management API in 64-bit implementations, where marking-gc with the
argument offers similar functionality (although set-blocking-gen-num is intended to solve the problem of fragmentation automatically).