On Mon, Mar 24, 2014 at 4:33 PM, [email protected] <[email protected]>wrote:

> On Tue, Mar 25, 2014 at 12:11 AM, Eliot Miranda 
> <[email protected]>wrote:
>
>>
>>
>>
>> On Mon, Mar 24, 2014 at 4:02 PM, [email protected] 
>> <[email protected]>wrote:
>>
>>> I am curious.
>>>
>>> Maybe on the first one, substitute something when a DNU is encountered.
>>> Like logging undefined receivers.
>>>
>>> I wonder how the next one behaves on JITted methods. I fear that offset
>>> errors may lead to weird errors.
>>>
>>
>> It *should* "just work" :-) (provided the jump distance of -12 is
>> correct).  The VM traps assignments to variables of contexts, and converts
>> them to vanilla contexts.  Therefore the jump doesn't occur in JITTED code
>> but back in normal interpreted bytecode.
>>
>>
> How magical!
>
>
>>  On Mon, Mar 24, 2014 at 11:51 PM, Pavel Krivanek <
>>> [email protected]> wrote:
>>>
>>>> Who can find the most useful usage of this?
>>>>
>>>> thisContext instVarNamed: #receiver put: 42.
>>>>  self factorial
>>>>
>>>> GOTO statement in Pharo:
>>>>
>>>> FileStream stdout nextPutAll: 'Hello world'; lf.
>>>>  thisContext jump: -12.
>>>> Let's collect the next ones :-)
>>>>
>>>
>> this is my favourite, and would lock-up a strict blue book VM.  (I once
>> locked up Allen Wirfs-Brock's 4404 with this and he wasn't best pleased
>> [forgive me Allen])
>>
>>
>> | a |
>> a := Array with: #perform:withArguments: with: nil.
>> a at: 2 put: a.
>> a perform: a first withArguments: a
>>
>> ;-)
>>
>>
>
> The infinite is near.
>
> Not as blocking, but still... (Alt-. interrupts this one)
>
> Crazy>>run
> Continuation currentDo: [ :cc | here := cc ].
>  here value: true.
>
> Crazy new run
>
> BTW, is there any support for partial continuations in Pharo?
> Continuations like this one look like full continuations and that's *huge*.
>

Yes, see Seaside.  Remember a Process is simply a linked list of context
/objects/, so it is easy to copy as much or as little of one as one wants.


>
>
>
>>>> Cheers,
>>>> -- Pavel
>>>>
>>>
>>>
>>
>>
>> --
>> best,
>> Eliot
>>
>
>


-- 
best,
Eliot

Reply via email to