Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Re^2: Parrot, threads & fears for the future.

by BrowserUk (Pope)
on Oct 23, 2006 at 17:18 UTC ( #580105=note: print w/replies, xml ) Need Help??

in reply to Re: Parrot, threads & fears for the future.
in thread Parrot, threads & fears for the future.

Yes AudreyT, it does inspire me. With curiosity, and excitement--and confidence.

I've been keeping loose tabs on your progress ever since your first post in the Perl6 fora received it's initially rather brusque reception.

Thanks to Mr. Wall's ability to prevaricate, stall and change his mind--until he gets it right, and the support of his team. Your vision; your ability to follow through on your vision; and your ability to inspire others to go with you; combines to give me a great confidence that not only will Perl6 be real--it'll be bloody amazing.

My doubts, and this thread, are solely aimed at Parrot.

Is Parrot important given Pugs? Pugs is still somewhat slow, though the latest build seems to be a great deal faster than previous builds. Can Pugs ever hope to achieve acceptable production performance?

As far as I am aware, the intention is still to have a Perl6 compiler, written in Perl6, that can compile itself, and will (primarily?) target Parrot. My doubts centre on whether, given what I knew of the Parrot development up to ten months ago, it could ever hope to match the abilities you've already achieved with Pugs?

Of course, you've leveraged a great deal of high quality development that has taken (10+?) years of some of the brightest minds in academia to get to where it is now. That's a pretty big heft up over where the Parrot guys started from.

But the significant thing is that the guys at Glasgow see beyond the world of Unix, even though that's where they live. See the complementary merits of forks and threads. See the benefits of concurrency, and know that to achieve it, you have to build it in from the ground up--not tack it on afterwards.

As another responder in this thread has shown very clearly, not only are not everyone in the Perl community so enlightened. Many actively decry that threads have any merit whatsoever. And up to 10 months ago, very few if any in the Parrot community were any better.

Yet another responder, now a part of the Parrot team has pointed out that my knowledge of Parrot is out of date--something I pointed out myself elsewhere here recently. Still, on the basis of what particle has said, it still seems (to me at least), that threading has not been tackled early enough in the project to really ensure that it can be fully integrated into the project. At best it might require substantial rewrites of existing code to achieve that integration. At worst, it'll end up being a 'tack on' solution.

As always in our few brief interactions, let me take the opportunity to thank you for your amazing work and inspiration.

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
  • Comment on Re^2: Parrot, threads & fears for the future.

Replies are listed 'Best First'.
Re^3: Parrot, threads & fears for the future.
by audreyt (Hermit) on Oct 23, 2006 at 17:32 UTC
    Thanks for your kind words. *blush*

    The concept of One True Official Perl 6 is, well, officially gone. Much like other standard-based languages, anything that passes the conformance test suite is Officially Perl 6.

    Pugs's interpreted core will always focus on semantics rather than speed. In that regard it may one day be comparable to Perl 5, but not fundamentally faster than it. However, much as GHC has two cores (interpreted GHCi and natively generated C--), so will Pugs provide an ahead-of-time compilation mode that supports runtime modification through dynamic linking.

    The AOT mode scheduled for the next release is based on a new Meta Object model that can generate fast, native embeddings in both of Pugs's runcores, namely GHC and Perl5. That will get Pugs a performance comparable to compiled Haskell code on the GHC runcore, and as fast in the Perl5 runcore as we can, probably with help from new opcodes hacked into Perl 5.12. Both will be likely faster than what Perl 5 currently is.

    Pugs does not aim to be a cross-language bytecode interpreter that supports both static and dynamic method dispatch. CLR3, Java6, Rhino and plenty of other less mature VMs (Parrot, StrongTalk, HLVM, IO, YARV, PyPy) already do them pretty well, and all we have to do is to write a backend to generate bytecode for those platforms, in order to use their libraries.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://580105]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (4)
As of 2021-06-16 16:06 GMT
Find Nodes?
    Voting Booth?
    What does the "s" stand for in "perls"? (Whence perls)

    Results (76 votes). Check out past polls.