Weak arrays and weak hash tables can be used to allow the GC to free objects.
Relevant functions are
make-hash-table,
set-hash-table-weak,
set-array-weak,
make-array and
copy-to-weak-simple-vector.
For a description of weak vectors see set-array-weak.