What would Squeak be like without non-local returns

Rob Withers reefedjib at yahoo.com
Wed Nov 7 03:46:36 UTC 2007


----- Original Message ----- 
From: "Andreas Raab" <andreas.raab at gmx.de>
To: "The general-purpose Squeak developers list" 
<squeak-dev at lists.squeakfoundation.org>
Sent: Tuesday, November 06, 2007 5:55 PM
Subject: Re: What would Squeak be like without non-local returns


> Igor Stasenko wrote:
>> On 07/11/2007, Rob Withers <reefedjib at yahoo.com> wrote:
>>> E states that non-local returns are bad and we are seeing th 
>>> implications of
>>> that statement.  Our candidate solution of mixing non-local returns and
>>> eventual refs is not pretty.
>>
>> Yeah, but we talking about Smalltalk, not E. Maybe they are bad for E,
>> but why they should be bad for smalltalk? :)
>
> Indeed. And as a matter of fact I can't recall that particular statement. 
> Who said it and in what context? The main rule that matters to E (for many 
> reasons) is about globally mutable state which is a complete no-no. But 
> non-local returns? The only issue I can imagine with this is that code 
> could conceivably "escape" from an evaluation which may make it harder for 
> auditing but that's about all I can see.

Well, now I can't find that statement, but I was sure I had read it on 
erights or Mark's thesis.  I searched and found nothing.  It may have been a 
statement regarding eventual-sending specifically with non-local return.  It 
IS strange thinking about the correct behavior of an expression:

object eventual ifTrue: [^3].
^4

What should be the result?

What I did find was discussion about escape from a block with an ejector, 
which I had always wondered about.  It is non-local return from a 
synchronous send.  Click on ii.3 Escape: 
http://www.erights.org/elib/concurrency/msg-passing.html and also 
http://www.erights.org/elang/kernel/EscapeExpr.html

Cheers,
Rob 




More information about the Squeak-dev mailing list