[MLton] adding synchronous finalizers

Henry Cejtin henry@sourcelight.com
Wed, 29 Sep 2004 16:25:15 -0500


I have down-loaded the paper, but haven't read it yet.  I'm impressed that he
agrees with so many of our thoughts.

The idea of a single-threaded program manually clearing out finalizers sounds
good, but do we really want this to be a run-time or a compile-time decision.
Perhaps I am thinking too much about the optimizations we lose when  multiple
threads  exist, but I would think that the distinction between multi-threaded
and single-threaded is almost certainly going to be known  at  compile  time.
Hence it should be set by a compile-time flag.

Speaking  of  finalizers,  I  would think that the exact same arguments would
apply to signals.

I.e., what we really want is a  flag  (indicating  now  signal  checking  nor
finalization  running  automatically)  and  a single function, something link
MLton.poll of type unit -> unit which runs any finalizers  waiting  and  also
handles any pending signals.