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
