Firstly, what I wrote was pure speculation because I had no context at all.In the "shared everything" model, code that touches shared PMCs needs to be cloned into the offending thread.Ask yourself why?
I'll play devil's advocate once more.
Why does anything need to be cloned. There is only one reason. Fork emulation.I can think of at least two reasons:
There is only one reason. Fork emulation ... But if you have a real fork, you don't need to do that.It does indeed look like they plan to provide some sort of fork()-like facility to platforms without it. I don't read anything else into it than that.
Fork emulation just doesn't work, and perpectuating it serves no good purpose.Parrot has to run on multiple platforms, if you're going to provide the unix fork() via HLL APIs at all, you need to provide something similar to all platforms. Certainly, there will be costs associated with that on particular platforms.
In any case, for an HLL you can use threads directly instead. perl5 specifically exposed unix fork() semantics, perl6 doesn't have to expose fork(). In that scenario I imagine it'll still be available by importing a module that knows how to do it using parrot APIs.
-David
Update: fixed a couple of typos.
In reply to Re^5: Slow evolution of Perl = Perl is a closed Word (NQP, parrot concurrency == Oh dear.)
by erroneousBollock
in thread Slow evolution of Perl = Perl is a closed Word
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |