Allocates objects from a specified generation within the scope of evaluating a number of forms in 32-bit LispWorks.
An integer, which if out of range for a valid generation number is rounded either to the youngest or oldest generation.
If gen-num is negative, the specified generation is: the highest generation number + 1 - gen-num, so that an argument of -1 specifies the highest generation number.
The forms to be evaluated while the allocation generation has been temporarily set to gen-num.
Allocates objects from a specified generation during the extent of the evaluation of the body forms.
Normally objects are allocated from the first (youngest) generation, which assumes that they are short-lived. The storage allocator and garbage collector perform better if allocation of large numbers of non-ephemeral objects is done explicitly into a generation other than the youngest.
allocation-in-gen-num
is implemented only in 32-bit LispWorks. In 64-bit implementations, use apply-with-allocation-in-gen-num or the :allocation
argument to make-array instead.
(allocation-in-gen-num
1
(setq tab (make-hash-table :size 1200
:test 'eq)
arr (make-array 20)))
apply-with-allocation-in-gen-num
make-array
set-default-generation
get-default-generation
*symbol-alloc-gen-num*
Memory Management in 32-bit LispWorks
LispWorks User Guide and Reference Manual - 13 Feb 2015