If the JVM effort was underway doesn't it make sense to finish it and then start on something else?

Maybe, but it was the other way around -- MoarVM was started about 8 months before the JVM port was started. The question should properly be, why did they start a JVM port?

We still don't have a feature complete stable release on one VM.

Right, but the issue is the "one VM". The Rakudo team have made Rakudo relatively complete, stable, and generating code that ought to be fast. But the "one VM" that Rakudo has been running on, Parrot, is too slow, buggy, and complicated.

Rewrote next two paragraphs:

Some history, aiui. After the launch of Rakudo Star in 2010 the Rakudo team increasingly impressed upon the Parrot team that Parrot was a long way from what Rakudo needed, especially speed-wise, and was too heavily burdened with extraneous baggage. By mid 2011 the smoke had cleared and there was a written commitment to Rakudo as the #1 "customer", a strong desire to switch to 6model, and talk of rewriting much of Parrot. However, many contributors bailed in 2011 and by early 2012 the Rakudo team decided they needed to have a backup plan. They still needed a custom VM to realize several central Perl 6 features (not least its potential for unrestricted efficient execution of features like NFG) so existing VMs like the JVM would not cut it. In early 2012 a small group started MoarVM.

So the remaining questions are things like why wasn't the JVM good enough; conversely, given that they had started MoarVM, why did they chose to start a port to the JVM; why didn't they wait until MoarVM was ready, then port to that, and ignore the JVM until MoarVM was done; why didn't they use an existing lightweight VM or VM kit to build MoarVM? Well, they've given their reasons in blog posts and I find them compelling. YMMV.

Porting Rakudo to MoarVM looks like a 6-8 month exercise and after all that you wouldn't have added a single user facing enhancement to the whole product.

The universal user complaint is that Rakudo is far too slow. If they do nothing but radically speed Rakudo up they'll have fixed what Larry Wall has said he thinks is the #1 blocker in the way of mass adoption.

Update: Fwiw I just visited #moarvm and saw the following fibonacci benchmark comparison:

$ parrot fib.pir # Parrot fib(28) = 317811 start : 1370329827.014 end : 1370329829.229 end - start: 2.21500015258789 $ perl fib.pl # Perl 5 fib(28) = 317811 start : 1370329768.826 end : 1370329769.45 end - start: 0.624000072479248 $ nqp bench/fib.t # MoarVM fib(28) = 317811 start : 1370329844.736027 end : 1370329845.001228 end - start: 0.265201

In reply to Re^4: A Just In Time VM for Not Quite Perl by raiph
in thread A Just In Time VM for Not Quite Perl by raiph

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.