Sat Nov 14 07:42:33 CET 2009

preventing GC restarts

It might be possible for me to write code under restarts, but in
practice, interfacing with (stateful) C code becomes really
difficult.  It's best to make the mechanism more explicit.


1. It is possible to prevent the gross of the restarts by checking the
available memory before executing the next VM step.  This guarantees
no restarts in case the nb of allocated cells remains below a certain

2. For primitives that allocate a lot of memory the restart mechanism
might be enabled.

Strategy: remove the 'PURE' mechanism, but prevent restarts in

OK.  This seems to work.  The only places where unbounded allocation
occurs are in ex.c -> ex_list_clone() (used by the mapping functions)
and ex_list_reverse().  Time will tell if I overlooked something.