Non-linear continuations considered harmful
04 Aug 1999 00:06:21 +0200

Shriram Krishnamurthi <> writes:

> You are right to point out that adding continuations to a language
> messes with the standard model of compilation that many users might
> have in their heads.  dynamic-wind has this effect also.

> But when you do catch your breath, you may want to look at Dybvig, Heib and
> Bruggeman's PLDI 1990 paper on implementing call/cc (as well as
> Clinger, Hartheimer and Ost's 1988 paper on the same topic).
Thanks for the tip!

> The
> reality isn't quite as dismal as you seem to be making it out to be.
> (I say "seems to be" because, frankly, I don't have the time to read
> this post with the care it probably deserves.)
Well, after thinking about it, I see many things that I may have distorted
in my too long post. I should have taken more time, to make it shorter.
Anyway, as a Scheme implementer yourself, you probably know much more than me
about the ins and outs of continuations, activation frames, stacks and heaps.

There remains the final questions in my post:
has anyone added to Scheme (or another LISP)
explicit support for linear objects (and hence linear continuations),
especially in a concurrent environment?
How to otherwise manage affordable access (and consistent semantics)
for variables shared by concurrent continuations?
How to otherwise seggregate internal (private) data
from external (shared) data when duplicating objects and continuations,
for purposes of migration, persistence, retry, backtracking, etc.?

[ "Faré" | VN: Уng-Vû Bân | Join the TUNES project!  ]
[ FR: François-René Rideau | TUNES is a Useful, Nevertheless Expedient System ]
[ Reflection&Cybernethics  | Project for  a Free Reflective  Computing System ]
No matter what language you use, a Cunning Compiler(TM) will be able to find
an efficient implementation for whatever apparently difficult problem you
specify. However, a Cunning Compiler(TM) is itself an AI-complete problem.