This week, more work has been poured into MoarVM’s specializer. Here’s the complete list:
- jnthn merged the “spesh_trace” branch that teaches the specializer about lexicals and adds a “logging” step to the specialization process.
- locating the corresponding object and ID from serialization contexts had quadratic time complexity, causing any recent addition to the setting (routines, classes, methods, constants) to bump up compilation time more and more. The complexity is now linear instead.
- with lots of guidance from jnthn, I implemented more specializations and also improved the code-gen of small integer constants in the bytecode.
- nwc10 has been building MoarVM, nqp, and rakudo on different architectures and did lots of patching to make sure it’s at least somewhat portable; it now works on ARMv6, only fails a nativecall test on PowerPC and due to trouble from libatomicops it doesn’t work on SPARC yet. Given access to MIPS hardware and a development toolkit, he could probably make that work, too. All portability work has been done on top of Linux.
- the key attribute of Pair is now immutable, since it should be very clear that you can’t use them as lvalues when returned from a hash, for example.
- brrt has written his first blog post for the GSoC project in which he briefly discusses what DynASM is.
- tadzik has improved “steroids”, his game development framework, and built a space invaders game on top of it.
- lizmat has continued her work on supplies and the corresponding tests.
- lizmat also fixed slices from arrays and hashes that used to return empty lists instead of nothing when an element didn’t exist.
- dwarring has continued adding advent calendar tests to the test suite.
- the database table that FROGGS needs for indexing Perl 6 modules on CPAN is now in place, so he can start work on the indexer.
- FROGGS also continued work on loop labels. They pass their tests on Parrot so far and with adjustments to follow moving objects (due to the garbage collector) on the JVM and MoarVM they should work on those two backends, too. And there will be more tests. FROGGS expects the work to be merged by next monday.
- During the coming week, there’ll be the PLPW, and two days later the CZPW. On these two events, FROGGS, masak, jnthn, lizmat, woolfy, tadzik, and lichtkind are going to present about Perl 6 related topics.
So in the coming week there’ll be news for cpan, probably even more performance work (the information gathered by the logging stage is not used for terribly much yet), loop labels, and who knows what else.
Looking forward to it!
Have a lovely week, esteemed readers 🙂