Live data from Hacker News

Perl 6 developers will attempt to make a Version 1.0 release by Christmas 2015

blogs.perl.org

61–70 of 148 posts

Re: Perl 6 developers will attempt to make a Version 1.0 release by Christmas 2015

#61
post #58
post #46

Earlier quoted context omitted.

IIRC the new VM (MoarVM) is around for quite a short time and it replaced Parrot in a dramatically short time. What are the advantages of MoarVM over Parrot and why were we stuck at Parrot for so long before giving it up?

I'm the developer of the MoarVM JIT (but not the developer of the MoarVM bytecode specialisation framework, which is typically seen as part of the JIT). The weakness of Parrot VM was it's ambition - to be an efficient VM for all dynamic languages. This may have seemed possible in the past but recent work (i.e. v8, luajit2, etc) has invalidated that; it's much better (and much easier) to build a VM for a specific targ…

You say potato, I say "Parrot was designed to implement the semantics of both Perl 5 and Rakudo in the same process."

You say "It's better to build a specialized VM", I say "Emscripten, Clojure, Niecza, Truffle, and Jakudo."

Re: Perl 6 developers will attempt to make a Version 1.0 release by Christmas 2015

#62
post #51

Earlier quoted context omitted.

Perl 6 is a spec, and different implementations are possible and encouraged. Rakudo is an implementation, and targets a few different VMs, including Parrot, MoarVM and the JVM. A lot of effort is being put into making MoarVM a good VM for the intermediate language that Rakudo uses to implement Perl 6, but AFAIK the JVM is kept up to date as well, and Parrot is also where time and expertise exist.

Thanks, my intention in asking the question was to see if there is any willingness to speak about what will ship. I don't need a pedantic explanation of the runtimes, I want to know if a decision has been made to get behind one of them. I've been waiting 15 years to hear some actual details about what I can expect when I install this thing.

Why wait? I assume it will be similar to Rakudo Star, which packages[0] Perl 6 for regular consumption on a semi-monthly (quarterly now?) basis, which you can download windows installers for here[1]. If you aren't on windows, compile, it's not that hard, directions are included in the github repo for Rakudo[2] under INSTALL.txt. You can see more info on that at the Rakudo website[3].

0: MSI installers for MoarVM and Parrot, I assume JVM bytecode it includes is in there as it stated it ships with "experimental JVM support."

1: http://rakudo.org/downloads/star/

2: https://github.com/rakudo/rakudo

3: http://rakudo.org/

Re: Perl 6 developers will attempt to make a Version 1.0 release by Christmas 2015

#63
post #51

Earlier quoted context omitted.

Perl 6 is a spec, and different implementations are possible and encouraged. Rakudo is an implementation, and targets a few different VMs, including Parrot, MoarVM and the JVM. A lot of effort is being put into making MoarVM a good VM for the intermediate language that Rakudo uses to implement Perl 6, but AFAIK the JVM is kept up to date as well, and Parrot is also where time and expertise exist.

Thanks, my intention in asking the question was to see if there is any willingness to speak about what will ship. I don't need a pedantic explanation of the runtimes, I want to know if a decision has been made to get behind one of them. I've been waiting 15 years to hear some actual details about what I can expect when I install this thing.

MoarVM is the closest to "ready", and seems to be what most of the developers actually using Perl 6 today are using. But, as the prior post mentioned, Rakudo-JVM and Rakuda-Parrot are also getting closer to ready. All of them will likely "ship", as long as the developers keep working on them, and Perl 6 code will likely run correctly on any of them.

Here is the current feature test statuses of the Perl 6 compilers/runtimes: http://perl6.org/compilers/features

Note that the Rakudo-MoarVM runtime is the closest to feature complete, with Rakudo-JVM close behind.

In short, you can expect you'll get whichever runtime you install, and if that runtime is ready for production you can expect that Perl 6 will work on that runtime. MoarVM will likely be the first to be ready for production.

You may have other reasons for choosing a runtime; if you have a Java/Clojure/Scala shop and wanted a powerful scripting language to integrate into your systems, the JVM runtime might be just the thing. If you wanted the fastest Perl 6 for standalone Perl 6 applications, MoarVM will likely be it (I think, I haven't looked at benchmarks, just guessing). The FFI may be easier to work with in MoarVM, if you need C or other compiled external libraries...but maybe not. I'm not at all familiar with how that works in JVM runtimes, but it seems like it would be more convoluted.

Re: Perl 6 developers will attempt to make a Version 1.0 release by Christmas 2015

#64
post #20

Earlier quoted context omitted.

I'm not sure about any current Perl6 vs other language benchmarks; older benchmarks aren't terribly useful because within the past year MoarVM both became the dominant P6 VM and also received substantial performance optimizations. My understanding is that this is one of the big goals of this year. Another one of Johnathon's excellent presentations goes into depth about the kinds of optimizations being made in MoarVM:…

The new VM seems to be a good foundation, hopefully the Whipuptitude and Manipulexity can be made performant in high-use operations.

We try to :-). Specifically, there are designs underway to implement e.g. hyper operators - those things that apply an operator to an array of values, irrespective of order - by SIMD instructions on the hardware level. If you're interested you're very welcome to come and check it out.

[edit] - there is also some progress in speeding up list operations, because as it turns out making all lists lazy is not a really good way to do fast list computations. This is known as the 'Great List Refactor' (GLR) in perl6 circles, and spoken of with awe :-)

Re: Perl 6 developers will attempt to make a Version 1.0 release by Christmas 2015

#65
post #7

If you want to have an idea of what makes Perl 6 compelling, check these slides that were submitted a few days ago, "Perl 6 for Mere Mortals" (which is also another talk at FOSDEM): https://news.ycombinator.com/item?id=8953368 I hate to repeat a comment of mine, but for the sake of emphasizing just how different Perl 6 is, here's a version of Fibonacci in Perl 6: subset NonNegativeInt of Int where * >= 0; proto fib (…

Why would I learn this rather than Haskell?

Oh, I'm a big fan of Haskell! It's definitely a language worth learning. However, if you want a pretty nice but still "dynamic feeling" (as opposed to Java-ish) object system, Perl 6 has you covered there. I'd look at P6 as similar to Scala in that it mixes both OO and FP ideas, but with P6 leaning more towards the OO side than the FP side, with not as much type safety as Haskell/Scala/OCaml but with more type safety than, say, Clojure.

If you're familiar with another OO dynamic language like Perl 5, Python, or Ruby, you can probably get up to speed more quickly in P6 than Haskell, and you can gradually introduce more advanced P6 ideas as your ability grows.

But yeah, I'd still recommend you learn Haskell... and Erlang, and Lisp... and...

Re: Perl 6 developers will attempt to make a Version 1.0 release by Christmas 2015

#66
post #60

Earlier quoted context omitted.

I'm interested in why you removed "stagnate and die" from that quote. I have strong opinions that people in situations similar to mine had no intent of contributing to "stagnation" or "death". Quite the opposite. When the process of change and renewal is shut down or nobody contributes to it, everyone starts wandering off and the project dies. Certainly. I also think that a project which actively chases away contribu…

I think that the perl6 project is quite welcoming of contributors. So I'm honestly curious to know what happened to make you feel otherwise.

I've already written about that at length several times here and elsewhere.

Re: Perl 6 developers will attempt to make a Version 1.0 release by Christmas 2015

#67
post #58

Earlier quoted context omitted.

I'm the developer of the MoarVM JIT (but not the developer of the MoarVM bytecode specialisation framework, which is typically seen as part of the JIT). The weakness of Parrot VM was it's ambition - to be an efficient VM for all dynamic languages. This may have seemed possible in the past but recent work (i.e. v8, luajit2, etc) has invalidated that; it's much better (and much easier) to build a VM for a specific targ…

You say potato, I say "Parrot was designed to implement the semantics of both Perl 5 and Rakudo in the same process." You say "It's better to build a specialized VM", I say "Emscripten, Clojure, Niecza, Truffle, and Jakudo."

Well, that's a good point, really. The JVM and the CLR do run many (dynamic) languages quite efficiently. On the other hand, that is in no small part due to the man-centuries spent trying to optimise both the JVM JIT and the language-to-JVM compiler.

And as a counter-example, luajit2 was built by one man (mostly) over the course of a few years, and runs very efficiently indeed, in no small part due to the lua-specific choices that have been made.

So what I'm trying to say is that there is a second tradeoff, somewhere between programmer efficiency, runtime efficiency, and running time, and that MoarVM is making a better tradeoff for perl6 than parrot is.

Re: Perl 6 developers will attempt to make a Version 1.0 release by Christmas 2015

#68
post #60

Earlier quoted context omitted.

I'm interested in why you removed "stagnate and die" from that quote. I have strong opinions that people in situations similar to mine had no intent of contributing to "stagnation" or "death". Quite the opposite. When the process of change and renewal is shut down or nobody contributes to it, everyone starts wandering off and the project dies. Certainly. I also think that a project which actively chases away contribu…

I think that the perl6 project is quite welcoming of contributors. So I'm honestly curious to know what happened to make you feel otherwise.

Chromatic was very big with both Perl 6 and Parrot development a long time ago. My understanding of it, having followed both projects for close to a decade, is that it came down to what was the "right" choice for one project was not the "right" choice for the other, and the schism this caused as it happened a few times left some people soured. I think both sides had cause for their actions and have cause for their feelings, but I don't really think either party did anything wrong. Such is life, shit happens, it's not fair.

Chromatic may disagree more or less on some points above, but as someone who followed along from the outside, reading blog posts and IRC chats of both parties over years, that's how I interpreted it.

Re: Perl 6 developers will attempt to make a Version 1.0 release by Christmas 2015

#69

I'm a Perl 6 core developer (compiler, test suite, docs, design documents, infrastructure). Ask me anything :-)

Looking at the release as a whole, I'd be fascinated to hear what features have taken the most time and effort? What turned out to be much harder than expected?

Re: Perl 6 developers will attempt to make a Version 1.0 release by Christmas 2015

#70
post #7

If you want to have an idea of what makes Perl 6 compelling, check these slides that were submitted a few days ago, "Perl 6 for Mere Mortals" (which is also another talk at FOSDEM): https://news.ycombinator.com/item?id=8953368 I hate to repeat a comment of mine, but for the sake of emphasizing just how different Perl 6 is, here's a version of Fibonacci in Perl 6: subset NonNegativeInt of Int where * >= 0; proto fib (…

Why would I learn this rather than Haskell?

Why not learn both? Realistically speaking, though, it might be easier to land a job with Haskell than with Perl 6.
Post reply on HN