* sgen-split-nursery.c: Implement aging. Age information is stored in 512 byte buckets in parallel to the nursery. This increases our bandwidth requirements by a small bit but has the advantage not requiring us to mess with the status word of objects. Reducing the number of available bits for hashing sounded like a specially bad idea since ages above 1 are not very usefull unless you're a long living object. The object promotion code was split into a fast/slow path since we now have per-age bump allocators. The fast path is extremely efficient and does only 3 comparisons and a bunch of cache hot lookups.
* sgen-split-nursery.c (prepare_to_space): If a fragment is not aligned to the nursery alloc granule, we must insert phony arrays for those areas as they might be needed by pinning and fragment building.
…eading." This commit breaks binary compatibility for no good reason. This reverts commit cd794a6.
… system dirs. Get the executable binary name on OSX, too. Fix private symbol use in mini-llvm.c.
The minor copy/scan functions used to be specialized based on the major collector. It's better to do so based on the nursery collector since we expect that more objects are internally promoted than moved to the major heap.