Hey, timotimo here with another little Perl 6 update!
This time, I can announce an actual Rakudo Star release. FROGGS did the honors this time. The release announcement contains a few ChangeLog entries, but since the previous Star release was in 2014.04 there’s a whole lot of changes you’ll get to enjoy. If compiling the Rakudo Star stuff by yourself seems like too much of a hassle, hoelzro’s got you covered with his Docker image of Rakudo Star.
A few of the YAPC::EU videos have been uploaded to youtube. It seems like these are only the videos from one of the three rooms. None of the Perl 6 related talks happened in that room, though.
After the YAPC::EU, Ovid published a nice blogpost entitled “Try rakudobrew and play with concurrency”.
Other than that, a few things have happened since last week:
- nine continued work on the “embedding perl5 inside Perl 6” project. On tuesday he announced he could now use DBI inside perl5 inside rakudo. An important feature for making this work absolutely cleanly is still missing: DESTROY submethods on the Perl 6 side don’t get called by the GC yet, so you’d have to manually manage the Perl5 objects in your program.
- Jnthn implemented the mechanism to give objects a persistent WHICH when they are used as object keys. This feature is only available on MoarVM, though. On Parrot it is not necessary, as parrot’s GC doesn’t move objects. It will have to be implemented on the JVM backend at some point, though.
- Jnthn utilized the profiler he built recently to optimize the MATCH method in NQP, which gets called whenever a regex (for example, any token/regex/rule inside a Grammar) matches something and a Match object has to be created. They used to allocate a whole lot of Boxes that were immediately thrown away.
- jnthn and TimToady worked on making errors like using say without an argument happen at compile-time; it works for much more than just “say”, too!
- In order to further make matching faster, brrt and I implemented some more ops in the JIT that were blocking frames from being jitted (these include bindattrs_*, indexat and indexnat)
- lizmat invested a whole lot of time into many different WHICH methods (which are used to create keys for hashes and compare things for equivalence)
- lizmat also improved the performance of path-related operations and rakudo startup.
- TimToady implemented many cases of anonymous variables
- TimToady also started on an implementation of the plan method for lazy lists, which allows you to add a list to the end of a lazy list without forcing it to be eagerly evaluated.
- hoelzro put more work into the Pod documentation implementation of rakudo.
- nwc10 improved MoarVM’s compatibility with PowerPC (mostly endian-ness related changes that’d also apply to other architectures)
- carlin fixed a whole bunch of warnings clang would point out in MoarVM and added arc4random support on platforms that support it (like BSDs)
- carbin and vendethiel added Crypt::Reop and Sprockets respectively to the ecosystem.
- masak advocated (and finally implemented) a change to allow *..* as ranges (which mean the same thing as -Inf..Inf)
- there’s been work on the spec test suite by hoelzro, lizmat, TimToady, jnthn, masak, FROGGS, and Mouq
All in all it’s been a good week. A friend of mine lent me a book about x86 assembly and I’d love to learn what SSE has to offer and maybe implement a simple hacky prototype for arrays of int or num that can be used with SSE instructions or something …
Anyway. Hope you’ll have a nice week 🙂