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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.