Robin Popplestone writes:
> To this day we can't compete with Scheme and JNML in generating
> light weight continuations.
Scheme continuations are not quite the same thing as Pop processes regardless
of issues of dlocalisation. In particular, Pop processes take copies
of the dynamic environment (i.e. copies the callstack) and Scheme
processes do not.
The upshot of this is that Scheme achieves its lightweight continuations
by forcing all (mutable) variables to be type-3 lexicals. This is just
shifting the work from one place to another, of course. It makes good sense
in Scheme because very few variables are mutable. It makes poor sense in
current day Pop because almost all variables are mutable.
Unfortunately, POP-11 doesn't implement environment copying perfectly. Type-3
lexicals are not copied -- but shared between different processes. This
is a known defect in Pop processes.
Steve
|