Re: circumflex/caret
Ger Hobbelt <[email protected]>
| Newsgroups | gmane.mail.spam.crm114 |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Feb 26, 2009 at 2:50 AM, Paolo <[email protected]> wrote: > On Thu, Feb 26, 2009 at 01:53:21AM +0100, Ger Hobbelt wrote: > ... >> distributed Monte Carlo simulation is running full out :-((((((((((( >> </rant> > > no room left even for a coffe? ;)) Nope. I noticed the slowdown somewhat when banging away on my keyboard, but didn't really watch the CPU monitors. Knew what I had running in the background anyway. Turned out they stuck to the roof for about 2 hours flat, which is a good number. Just hadn't thought of FF quiting the JavaScript interpreter like that, so the gmail edits went down the drain irrecoverably. Had 'saved draft' before, that was nirvana'd too :-( Clearly, FF doesn't check actual JS CPU usage, but looks at system overall CPU load. Grmbl. Talk about 'side effect'. > >> In short: <keep> is used as a flag for isolate / match / eval / union >> / intersect / call, i.e. all operations which can *instantiate* >> variables, to instruct them to allocate that variable in global scope. > > ok, but what would that mean for > > match <keep> (:: :x:) [:z:] /.../ > > where :z: is local? this instatiate (binds) :x: somewhere along :z:, not > :z: itself, hence on RETURN :z: is gone, then <keep> keeps what? just :x: > with the piece it grabbed from :z:, ~like ISOLATE does now? Not precisely like isolate. That's why using bound variables coming from an outer scope, together with local scope :z: like that, is a little hairy. Since I consider this sort of thing 'bad' coding practice (or that's the excuse anyway) the current state of affairs is that this sort of thing will keep :x: 'intact' until the, by now invisible, variable name :z: is re-instantiated in a subsequent 'call'. The cop out there is to 'isolate' :x: before that time. And, yeah, I know this is hairy. See previous response about time & effort and such. It's simmering in the back of the brain, so when I have a good idea I'll do it, but until then, this is a caveat. In code: isolate (:x:) // call /:match_binding_etc_func:/ # :x: is still 'live' here. ... ... ... #... no 'call' statements here... 'return's are okay, though # they will make :x: invisible, due to the 'isolate' up there. ... ... ... # from this point on, you can't be sure if :x: is still 'good'. # It depends, whether :other_func:, or one of the subroutines # it calls, uses the same variable name (:z:) which :x: got # bound to previously. call /:other_func:/ -- Met vriendelijke groeten / Best regards, Ger Hobbelt -------------------------------------------------- web: http://www.hobbelt.com/ http://www.hebbut.net/ mail: [email protected] mobile: +31-6-11 120 978 -------------------------------------------------- ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H