Sat Aug 29 09:39:12 CEST 2009
Primitive exceptions should be linear
The main reason for this is that you really want the C model to be
independent of the GC. Exceptions extend into C.
The _real_ problem is that in PF, there are occasions where you want
to perform a linear allocation, but you're not sure this is going to
succeed. What about calling this a system failure? I.e. always make
sure there are enough free cells. In an embedded system it most
definitely is an unrecoverable failure.
The problem is that in current ``prototyping PF'' the linear cells are
allocated lazily. Maybe a good solution would be to keep an extra
free buffer with a couple of cells N to guarantee at least N
allocations to succeed in the LINEAR regime where the GC is switched
off. Then when the machine can take a GC restart, replenish this
So, let's leave it as it is. Fix the problem when there are
unexpected allocations in LINEAR mode. Currently this seems to only
happen when errors are already quite severe.
Then, the only remaining problem is to make sure no _inconsistencies_
are introduced due to primitive errors by keeping linear data linked
to the VM instances at all times.