This week, there was a Rakudo release (not Rakudo *, which is the distribution that contains the compiler and a bunch of modules) and for someone who usually runs the latest master branch code, seeing the change log is always pretty neat.
Over the weekend the YAPC::EU 2014 happened in Sofia, Bulgaria. There were a few Perl 6 talks as well as lightning talks. I heard the video recordings will be up in “a matter of weeks” … Jnthn did a talk on concurrency and a talk on Rakudo performance advances, in which he revealed he’s been working on a profiler in secret. That was a pretty “wow” moment for pretty much all of the Perl 6 community! There was also a talk by masak about goto and why it’s awesome (no, really) and a cute little lightning talk. On top of that, there were talks by lizmat and lichtkind and a lightning talk by nine, who showed embedding a perl5 interpreter inside Rakudo and embedding Python code inside that. Nifty!
Sadly, I missed many of the talks, so I’ll be patiently (or impatiently) waiting for the recordings to be published.
Anyway, here’s your summarized list of changes during that week:
- TimToady continued work on making our lazy lists less costly in eager context, like making the xx operator many times faster, so it’s now useful for filling very big arrays or lists with some initial values.
- Some more performance tuning happened to the X operator (especially for ranges, which you’d idiomatically use to replace a nested for loop to go over 2D coordinates, for example), and the combinations and permutations methods. More is very likely to come soon!
- Together with brrt, I implemented spesh’d operations as well as jit output for the boolification of iterators; If we already know we’ve created an iterator from an Array or from a Hash, we don’t have to check if the iterator is an array or hash iterator every single time we boolify. And since loops over arrays and hashes in NQP usually end up as a while loop that checks the iterator it creates for its truth value, this ought to show up in a bunch of hot loops.
- A huge change (which I mentioned above already) is the profiler that got added to MoarVM. You can just run your perl6 or nqp code with –profile or –profile-compilation and get a nice little html output that you can comfortably browse through. Neat!
- hoelzro and sergot have been working some more on making HTTP::UserAgent style things better/more pleasant/more powerful/more extensible/…
This list is already it, but especially the profiler item is a huge thing. Many of our devs were attending the YAPC::EU event, so they have been watching talks and socializing instead of coding all day and night.
Another thing is, that it’s always quite a bit of work to prepare the release, make sure the test suite remains clean, have your release candidate tarballs tested by enough people, … – I’m glad to say that Coke did a wonderful job this month. I’m hopeful we’ll see a new Rakudo Star release this month, as problems between Parrot and Rakudo that prevented last month’s release have been worked on in the mean time.
Of course, with rakudobrew being readily available as a simple way to install panda (our package manager) for you, the need for a Rakudo Star release is not really that big if you’re willing to put a few minutes rather than a few seconds of work into getting a running Perl 6 compiler.
Another thing: Google Summer of Code is now over and the evaluations have been sent in. Both brrt and sergot have passed and we are extremely pleased with how both projects have turned out so far. In addition, we’ll see more contributions from brrt and sergot in the future 🙂
Finally, if you’re as impatient as I am, you can have a look at different slide sets that were presented at YAPC::EU.
- Adventures in Perl 6 Asynchrony by jnthn
- Rakudo and MoarVM Performance Advances also by jnthn
- C-Day is Coming by lizmat
- Perl 6 in Context by lichtkind
Anyway, that’s it for today. Hope you’ll have a nice week 🙂