--- Alan Burlison <[EMAIL PROTECTED]> wrote:
> 
> > > or have entered a mutex,
> > 
> > If they're holding a mutex over a function call without
> a
> > _really_ good reason, it's their own fault.
> 
> Rubbish.  It is common to take out a lock in an outer
> functions and then
> to call several other functions under the protection of
> the lock.

Let me be more specific: if you're holding a mutex over a
call back into parrot, it's your own fault. Parrot itself
knows which functions may croak() and which won't, so it
can use utility funtions that return a status in places
where it'd be unsafe to croak(). (And true panics probably
should not be croak()s the way they are in perl5 - there's
not much an application can do with "Bizarre copy of
ARRAY")
 
> > > > The alternative is that _every_ function simply
> return
> > > a status, which
> > > > is fundamentally expensive (your real retval has to
> be
> > > an out
> > > > parameter, to start with).
> 
> Are we talking 'expensive in C' or 'expensive in parrot?'

Expensive in C (wasted memory bandwidth, code bloat ->
cache waste), which translates to a slower parrot.

> > It is also slow, and speed is priority #1.
> 
> As far as I'm aware, trading correctness for speed is not
> an option.

This is true, which is why I asked if there were any
platforms that have a nonfunctional (set|long)jump.

-- BKS

__________________________________________________
Do You Yahoo!?
Listen to your Yahoo! Mail messages from any phone.
http://phone.yahoo.com

Reply via email to