- Here we define the minimum size for updatable closures. This must be at
- least 2, to allow for cons cells and linked indirections. All updates
- will be performed on closures of this size. For non-updatable closures
- the minimum size is 1 to allow for a forwarding pointer.
-
- Linked indirections are UPD_OLDGEN things: see Closures.h
-
- o MIN_UPD_SIZE doesn't apply to stack closures, static closures
- or non-updateable objects like PAPs or CONSTRs
- o MIN_UPD_SIZE is big enough to contain any of the following:
- o EVACUATED
- o BLACKHOLE
- o BLOCKING QUEUE
- o IND, IND_PERM, IND_OLDGEN and IND_OLDGEN_PERM
- (it need not be big enough for IND_STATIC - but it is)
- o MIN_NONUPD_SIZE doesn't apply to stack closures, static closures
- or updateable objects like APs, THUNKS or THUNK_SELECTORs
- o MIN_NONUPD_SIZE is big enough to contain any of the following:
- o EVACUATED
+ This is the minimum number of words in the payload of a
+ heap-allocated closure, so that the closure has enough room to be
+ overwritten with a forwarding pointer during garbage collection.