On Thu, Jul 31, 2008 at 05:25:53AM -0500, John M. Dlugosz wrote: > In S04, "Note that temporizations that are undone upon scope exit must be > prepared to be redone if a continuation within that scope is taken." > > What will create a continuation there and how do you take it? > > That is, how will this ever happen?
At this point I'm not sure that "temp" variables are even going to make it into the final design. Context vars are much more well-behaved with respect to continuations and multithreading since they're always rooted in some lexical scope that is ancestral in your dynamic scope, and hence automatically managed by closure/continuation mechanisms. Alternately, "temp" may end up being a syntax for cloning an outer context var. Not sure how "let" would work in that scenario, unless a KEEP copies the final value outward. I guess that'd work. As for temporizing the results of code execution, that probably will have to wait on a coherent transactional memory model, which may or may not be deferred till after 6.0.0, but my bets are on "may" at this point. :) Larry