Reduce Immix block size to 8 KB
Currently Immix blocks are 32 KB. While this size is sufficient for languages that use few tasks/OS threads, it doesn't work well for languages that spawn many tasks (such as Inko). The reason is that even if only a single object is allocated, a process will need at least 32 KB of memory.
To illustrate, if we have 1 GB of RAM available to Inko we can start around 32 768 processes. If we take into account the additional memory every process needs, the maximum number will probably be much lower. With a block size of 8 KB we can instead fit 131 072 processes in 1 GB.
A smaller block size means more of them will have to be requested from the global allocator. To ensure this doesn't slow things down too much, we should investigate the use of lock free operations when requesting existing blocks. This could be done using a Compare and Swap.
Even smaller block sizes will likely lead to synchronisation overhead becoming more of a problem, as blocks would have to be requested from the global allocator too often.