Wow, this week I’ve even done some stuff! I’ven’t been active in the source code for a while, so it felt quite refreshing. Here’s all (well, at least some of) the nice things that have turned up over the last 6 days:
- jnthn has merged the “inline” branch of MoarVM that adds the ability to inline simple bytecode segments into their caller’s bytecode, thus getting rid of a nice chunk of invocation cost. Sadly, it currently bails out if it sees exception handlers or “return” handlers, which is extremely common in actual Perl 6 code. Thus, the improvements are mostly visible in NQP code.
- I added a few more methods to the cairo binding and started on the GtkDrawingArea class for the gtk3 binding. There’s a whole lot of stuff involved before enough stuff is in place to make cairo-based animations work well.
- I also implemented a Supply combinator called “zip-latest”. It will generate a tuple (or apply your custom sub) every time a new value comes in from any of the supplies, as opposed to the “zip” combinator that waits for all Supplies to have a new value available.
- lizmat did a whole bunch of commits related to CompUnitRepo and friends. It’ll be exciting to see the whole potential of the infrastructure used, for example applications bundled with all their dependencies in a single executable file and other kinds of things.
- brrt continued his GSoC work on the MoarVM Just In Time Compiler. The current piece of code that’s being used as an example is running the following subroutine in a loop:
sub foo() { nqp::say("OH HAI"); return 12 - 6; }
The JIT compiler turns the whole function directly into runnable machine code, which at the very least eliminates the interpreter overhead.
- Chirag Agrawal and Reini Urban have pushed more work in their optimization efforts for write barriers. Reini reports a 2-4% performance improvement in the NQP test suite after annotating all the 6model classes correctly. This work is part of the Parrot 6.5.0 release (planned for tomorrow). In addition, rakudo-parrot is going to pass all spectests again (when a pull request is applied). Cool stuff!
- dwarring could be considered on a roll, as he’s continuously writing spectests for the Perl 6 Advent Calendar of the past years 🙂
- Kamil Kułaga added a utility program for Lacuna Expanse written in Perl 6 to the ecosystem.
- Michal Jurosz added a simple templating library for Perl 6 to the ecosystem.
That’s it from me for this week’s post. I hope your week is productive and pleasant 🙂
gtk3 binding for Perl 6 ?
Yes, you can find it here: https://github.com/perl6/gtk-simple/
WRT zip-latest, this sounds like actual “roundrobin” queueing, unlike Associative.roundrobin which I’ve always felt was a minced name without this behavior.