How would shallow generators compose with lambda?
Brendan Eich
brendan at mozilla.com
Thu May 14 16:08:12 PDT 2009
On May 14, 2009, at 3:42 PM, Brendan Eich wrote:
>> Those hard stops kill all further activity within that event loop.
>> Once a universe has been destroyed, no further bad things can happen
>> in that universe.
>
> There's always the next universe (new event starts another control
> flow). Life goes on, in the JS serial multiverse, and those finally
> clauses failed to run even though control abruptly left the lambda
> under the hypothesis.
>
>
>> Infinite loops don't kill their universe, so this case is similar but
>> different. As the halting problem teaches us, an infinite loop is
>> generally indistinguishable from a loop that hasn't terminated yet.
>> Since control flow has not yet escaped the loop, it hasn't yet
>> bypassed the finally, and so no invariants have yet been violated.
>
> True enough, but see above.
>
> This isn't entirely academic, since information leaks include
> termination channels.
And that previous universe ended, detectably. It's not as if the loop
is still running in the lambda when the next event-flow little bang
blooms into a universe, since there is a big fat shared heap (no
quantum uncertainty obscuring inter-verse sharing!) accessible by
which to detect mutations. If the iloop were incrementing a counter,
it is guaranteed that the counter stopped before the new event-flow
started.
No racing scripts; run-to-completion is the observable execution model
(ignoring web workers, which are shared nothing in JS heap terms but
may share effects in DOM storage, etc).
/be
More information about the es-discuss
mailing list