Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^3: MoarVM update

by Arunbear (Parson)
on Sep 11, 2013 at 10:08 UTC ( #1053444=note: print w/ replies, xml ) Need Help??


in reply to Re^2: MoarVM update
in thread MoarVM update

That raises the question: what is the point of MoarVM (i.e. if not to run Perl 6)?


Comment on Re^3: MoarVM update
Re^4: MoarVM update
by raiph (Hermit) on Sep 11, 2013 at 21:52 UTC
    The original and current justification for developing MoarVM is to run Perl 6. I didn't mean to suggest otherwise.

    That said, now you've raised the question of the point of MoarVM, I'm not comfortable leaving the foregoing as the complete answer because imo MoarVM is relevant to P5, ignoring P6.

    First, note that there's a "P5interop" project that is starting out by embedding libperl in MoarVM. This will allow Perl 5 code to call "Perl 6 code" and vice-versa. (Sept 2014 update: See the new Inline::Perl5. This embeds libperl, is known to work with Rakudo HEAD on MoarVM, and is expected to work with other backends in due course.)

    Second, note that "Perl 6 code" can include any code from any language compiled using a compiler written in Perl 6. If someone wrote a python compiler in P6, python code could call P5 code and vice-versa. In this scenario, P6 would be a behind-the-scenes implementation detail.

    Third, note that there's a "v5" project, a new implementation of "pure" Perl 5. The "pure" means no XS. But don't forget the P5interop project mentioned above.

    In summary, to more fully answer your question given my own personal view, the original and current justification for MoarVM development was and is to run Perl 6, but the outcome is set to include a reimplementation of Perl 5 with Perl 6 as an implementation detail (or as a side-benefit, if someone prefers to see it as such).

      Hooray, it is fun to announce things that don't exist! Perl-6 is set to allow cold fusion! Perl-6 is set to demonstrate the existence of extra-terrestrial life! Perl-6 is set to negotiate a peace settlement between Palestine and Israel! Bibi Netanyahu recently visited #perl6 and said "Who the #$(* is Raiph and why is he quoting me?" Recently also Anonymous Monk declined to visit #perl6 and said "Raiph never answered the simple yes or no question in Re^13: A $dayjob Perl 6 program that runs 40x faster on the JVM than on Parrot," which just proves that Raiph is set to talk about anything except the truth.
Re^4: MoarVM update
by Anonymous Monk on Sep 12, 2013 at 16:28 UTC
    Finishing things is hard! Let's start new things!
      Rakudo Perl 6 on Parrot is too many years away from being sufficiently ready.

      Are you suggesting some folk should work on Parrot to make it acceptable for 6.0.0? Who? How?

      jnthn decided Perl 6 on JVM was the quickest way to get Perl 6 on to a mature VM so they could drive the Perl 6 specification toward 6.0.0.

      Do you think he was wrong?

      Perl 6 on JVM might be a decent choice for driving the Perl 6 specification toward 6.0.0, and might even be workable for some JVM fans, but it's obviously inappropriate as the only serious VM option. So now what?

        Rakudo Perl 6 on Parrot is too many years away from being sufficiently ready.

        This is the most disappointing thing I've read all day today

        jnthn decided Perl 6 on JVM was the quickest way to get Perl 6

        How quick?

        Seriously speaking I don't care if Perl 6 runs on a dozen VM's in its first 6.0.0 release. In fact I prefer it rather doesn't. There are plenty of other important things like the standard library, CPAN compatibility and documentation to be sorted out and standardized before we branch out to other platforms. Perl 5 doesn't run on any VMs apart from its own and we are perfectly fine with it and its perfectly usable. There is no reason for any one to expect anything other wise for the first cut production release. And not just Perl, most new languages that come today run only on one VM, and users are perfectly fine with that.

        Perl 6 on JVM might be a decent choice for driving the Perl 6 specification to 6.0.0, and might even be workable for some JVM fans, but it's obviously inappropriate as the only serious VM option. So now what?

        Far more important than a few percentage of users who can't use JVM or Parrot or whatever are the vast majority of users who would prefer a working product on anything. And by this definition and strategy whom would you please? There are always going to be users, who can't deploy a compiler on a particular VM. So will we keep starting new projects and never finish them.

        You can release 6.0.0 product on any VM, then you have all the time in the world to release it on other VM's when you want. Other wise no matter how great the progress is in the sub projects, there is hardly any reason for anybody to care.

        Do you think he was wrong?

        At the time, yes—but as it turns out, all of the FUD flung at Parrot chased away most of its developers, so his prediction came true. After being told not to improve Parrot (being told not to change Parrot), there was no reason to continue working on it. That's why you can see commits and participation drop off a cliff a couple of months after Rakudo announced yet another NQP rewrite, one designed to remove Parrot from Rakudo's long term plans.

        Granted, it's taken a couple of years and Rakudo on the JVM still doesn't pass as many P6 spec tests as Rakudo on Parrot, but I'm confident that they're aiming for feature parity eventually.

        So now what?

        So now MoarVM doesn't even pass all of the NQP test suite, so let's all stand up and cheer that the Rakudo developers are dividing their attention between three VMs that we know of: one all but dead but still the most feature complete, one proprietary and memory hungry and a black box of sharecropping, and one nascent that needs at least one rewrite and doesn't run any P6 code worth mentioning.

        My guess is what next is yet another rewrite of major components, yet another VM announced, and still nothing I can give to customers who expect little things like stability, library support, and documentation.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (10)
As of 2014-12-28 01:47 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (177 votes), past polls