2014.24: Inlining, some more JIT, a bit of gtk and cairo.

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 🙂

3 thoughts on “2014.24: Inlining, some more JIT, a bit of gtk and cairo.

  1. WRT zip-latest, this sounds like actual “roundrobin” queueing, unlike Associative.roundrobin which I’ve always felt was a minced name without this behavior.

Got something to note?