2015.09: Highlights of the Week, and also native refs!

This week two independent people have worked on independent syntax highlighters: ashgti is working on a .tmbundle for perl6 so that we can have highlighted code on github again. at the same time, literal has made an incredible amount of improvements to the perl6 highlighter for vim. The performance has increased significantly, but the highlighting is also much more precise. The new highlighting code relies on a feature that’s been added in Vim 7.4, but if your vim is older, the makefile will strip the new features out for you. Many, many thanks go out to these two!

Bugs, bugs, bugs

I think I haven’t mentioned this for a long while, but usev6 has been continuously plowing through RT looking at bugs that need tests or have been fixed in the mean time and closing them. Of course, usev6 isn’t the only one, as Mouq did many bug fixes as well. Having a more reliable number in the “new” and “open” columns for the perl6 bug queue in RT is very helpful. So thanks!

JVM Interop improvements

psch made the marshalling used for calling into native java classes’ methods able to handle multi-dimensional arrays, so more stuff can be called now. Also, there’s a function that allows you to simply evaluate some Perl 6 code from java, so you can have some embedded Perl 6 code in a java program.

Native refs

jnthn has been busy porting the native reference support to the JVM, so that it could finally be merged yesterday. Not only is this a very important prerequisite for having native arrays work properly, but it also fixes a lot of annoying NYIs that you could encounter when using native variables and attributes for performance reasons, like using ++ or trying to assign to multiple slots in a Buf or having a native attribute “is rw” with an accessor automatically generated for you. In the future, our optimizer (both the static one in rakudo and the dynamic one in MoarVM) will learn to take advantage of these native references to hopefully generate much faster code!

Smaller bits

TimToady lets rakudo cope with “keywords” being used for custom stuff, like subs, methods and classes. Ever wanted to have a class called “class”? Well, I’m not saying you should, but if the need ever arises, now you can. Also, functions called “if”. Another place where this used to be troublesome were sub names like “not-foo” or “so-what”. These work now.

On top of that, “smart quotes” are now supported:

perl6 -e 'say “quoting” ~ ‘quoting’ ~ ‚quoting’ ~ „quoting”'
quotingquotingquotingquoting

The perl6 testers website has also seen some more work (by yours truly, actually!), which means that the list of recent reports is back and report pages now allow you to navigate to the corresponding distribution in the breadcrumb list. You can check out the “most recent reports” page here.

Also, japhb implemented IO::Path.resolve, so that we can handle paths with symlinks in them. Kudos!

There’s also a bit of sad news: The Perl Foundation was not accepted into GSoC this year. That’s especially sad as there were multiple interesting suggestions for projects to have that relate to Rakudo and MoarVM.

That’s all from me for this week, but of course we’re not giving up yet 😉 I heard from pmichaud that this week is the one he allocated time for GLR work in!

Got something to note?