Allocating more than BLOCK_SIZE bytes of memory fails
The compiler cannot generate code that allocates more than BLOCK_SIZE bytes in one go. At the moment, the compiler will panic in the code generator if it finds itself trying to generate code with an oversized heap request in it. There's no easy fix for this one: splitting up the allocation in the compiler is hard if not impossible (splitting up a recursive allocation can't be done). Even if we allowed the thread to allocate into a large block, the garbage collector can't cope with large blocks containing small objects, and objects that don't start at the beginning of the large block.