--- 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