A non-displaced array, with
, the array is made weak. If
, the array is made non-weak.
By default, arrays are non-weak, and they keep alive all the objects that are stored in them. A weak array may remove a pointer if the object that it points to is not pointed to from somewhere else. When a pointer is removed like this, it is replaced in array with
Pointers are replaced by
after a garbage collector operation that identifies that they can be replaced. This means that if the object that is pointed to has been promoted to a higher generation, a garbage collection of the higher generation is required to remove the pointer. Note that by default the system does not automatically GC the blocking generation or higher.
Note: An array can be made weak at creation time using the
argument to make-array.