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