LispWorks User Guide and Reference Manual > 10 Storage Management > 10.5 Common Memory Management Features


10.5.3 Allocation of interned symbols and packages

Interned symbols (and their symbol names), and packages, are treated in a special way, because they are assumed to have a long life. They are allocated in the generation specified by the variable *symbol-alloc-gen-num*, which has the initial value 2 in 32-bit LispWorks and 3 in 64-bit LispWorks.

Symbols created with make-symbol or gensym start out in generation 0.

Symbols will be garbage collected if they are no longer accessible (regardless of property lists) but note that in 32-bit LispWorks, if the symbols are in generation 2 then you might need to invoke mark-and-sweep explicitly to collect them in a timely manner.

LispWorks User Guide and Reference Manual - 22 Dec 2009