Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re^8: A $dayjob Perl 6 program that runs 40x faster on the JVM than on Parrot

by raiph (Deacon)
on Aug 06, 2013 at 09:10 UTC ( #1048069=note: print w/replies, xml ) Need Help??

in reply to Re^7: A $dayjob Perl 6 program that runs 40x faster on the JVM than on Parrot
in thread A $dayjob Perl 6 program that runs 40x faster on the JVM than on Parrot

dukeleto, effectively the current leader of the Parrot project, writing in 2011: "the most important reason for M0 is {that} it is best for a virtual machine to minimize crossing language boundaries" and M0 supplied "high-level constructs and conveniences, such as objects, lexical variables, classes and their associated syntax sugar". While the details are of course different I find dukeleto's description of MoarVM as "the spiritual successor to M0" apt.

if MoarVM will ever run any Perl 6 code

That's FUD.

Update 5 months later: Rakudo/MoarVM is already compiling the core setting -- which is 18K lines of non-trivial Perl 6 code -- and passing ~26k of ~28k spectests.

Update a year later: Rakudo on MoarVM now passes more spectests than on other backends. It's startup, compilation, and run time are generally much faster and use much less RAM. Etc. In short, MoarVM is now firmly established as devs' most popular backend for most uses.

(To be clear, Rakudo on JVM has a few advantages: it runs on the JVM, which is necessary or desirable for some folk; it can interop with Java code; it's sometimes much faster for long running code due to its excellent and mature JIT; it has battle hardened threads which means concurrent code is currently more reliable.)

  • Comment on Re^8: A $dayjob Perl 6 program that runs 40x faster on the JVM than on Parrot

Replies are listed 'Best First'.
Propaganda for P6 Advocates
by chromatic (Archbishop) on Aug 06, 2013 at 16:48 UTC
    While the details are of course different I find dukeleto's description of MoarVM as "the spiritual successor to M0" apt.

    With all due respect, you find it apt because you don't know anything about M0.

    Your strategy of finding random quotes from IRC which, when taken out of context, appear to support whatever you're trying to argue at the moment is not research. It's propaganda—done badly, at that.

    If you were truly interested in M0, any decent search engine, or even a trawl through one of several Perl 6 and Parrot Links pages, would have taken you to an article written in 2011 by one of the designers and developers of Lorito and M0. That article is Less Magic, Less C, A Faster Parrot, which says:

    The current stage of Lorito is M0, the "zero magic" layer of implementing a handful of operations which provide the language semantics of C without dragging along the C execution model. In other words, it's a language powerful enough to do everything we use C for without actually being C. It offers access to raw memory, basic mathematical operations, and Turing-complete branching while not relying on the C stack and C calling conventions.

    This was the core of both the M0 design and Lorito itself.

    If you'd bothered to find that, let alone understand it, I hope you wouldn't have posted such nonsense. MoarVM may have a fine design, but unless it's taking the Squeak Slang approach (or the Forth approach or...) that M0 intended, MoarVM has nothing substantive in common with M0. The only reasonable interpretation of dukeleto's comment is that it's metonymy, where "a smaller, simpler VM (via reimplementation as Moar)" is similar to "a smaller, simpler VM (via M0)".

    Metonymy is not, of course, an exhaustive technical explanation.

    Your lack of research and your apparent disregard for the truth of what happened—even when you're corrected by the people who were actually there, who actually designed and implemented the subjects under discussion—makes both you and P6 look bad. If you're trying to advocate for P6, you're doing a terrible job.

    I shouldn't have to keep telling you this.

    If you don't think an NQP/MVM "hello world" counts as Perl 6 code...

    After thirteen years, I don't care about potential. If and when something passes the P6 spec tests, I'll take it seriously as a P6 implementation.

      I had already read several descriptions of M0, from the first time I heard about it in 2011, including the one you quoted. Aiui the MoarVM approach is to start with a version written in hand coded C (and stick with that through 6.0.0) and then rewrite MoarVM and its JIT in (a subset of) Perl 6. This still makes sense to me as the appropriate P6/Rakudo/NQP flavored version of M0 thinking.

      But am definitely out of my depth, and the OP was about Rakudo/JVM, so I'm going to quit talking about M0 and MoarVM.

Re^9: A $dayjob Perl 6 program that runs 40x faster on the JVM than on Parrot
by Anonymous Monk on Aug 06, 2013 at 09:13 UTC

    ...That's FUD... hello world ...

    that's pure clownshoes

      You guys are relentless aren't you?

      From the first Rakudo/JVM "hello world" to being able to run substantial programs such as the subject of this thread took a further 6 weeks. Again, iirc, diakopter estimates that getting Rakudo/MVM to the same place will take about the same time.

      Of course, things might not go according to plan. But my point is to respond to chromatic's misleading FUD -- "if MoarVM ever runs any Perl 6 code".

        You guys are relentless aren't you?

        I made the clownshoes comment

        It is you who are relentless

        If I were a voter, I'd ++ your original post, and your first replies (re^2) , but everything after that I would have -- for being obscenely idiotic

        For thirteen years I've been reading how next week perl6 will be finished, or that feature will be finished, or .... its the oldest running joke about perl6

        So if something good happened and you report on it, that is great

        But when you start arguing technical points with rumor and out of context quotes, you're not making friends

        I love perl, I'm optimistic about perl6, but if you keep this nonsense up, it will be impossible to discuss perl6 in any way shape or form on perlmonks

        Bridle your enthusiasm, cause you're not doing perl any favors

        Does it pass any of the Perl-6 spec tests right now? No? Then stop whinging.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (2)
As of 2023-09-26 10:08 GMT
Find Nodes?
    Voting Booth?

    No recent polls found