So last week Larry Wall made quite a splash when people noticed that the abstract to his talk at FOSDEM 2015 reads “[…] 2015 will be the year that Perl 6 officially launches for production use. […]”. I was taken by surprise as well – which caused this lovely excerpt from the irclog to be passed around on the ‘net – but now that I’ve had a bit of time to think about things, it really does make sense.

At APW2014 during the hackathon it was already rather clear that the main things missing for a “6.0.0” would be GLR, NSA and NFG; The Great List Refactor™, Native Shaped Arrays and Normalized Form Grapheme™. It would surprise me greatly if it took more than a year with the current amount of volunteer work we’ve got going on.

Another thing is that we’re looking for donations for a new community server to host infrastructure or backups thereof (irc logs, specs, panda metadata, …) and services (evalbot, ecosystem smoking, …). Please see moritz’ article for details if you’ve got money or hardware available that we could make use of!

Anyway, here’s The Week In Bullet Points™:

japhb merged the “stress” branch for perl6-bench. It lets us write tests that we expect to put some part of rakudo under so much stress that it may expose crash-bugs or similar stuff.

rurban fixed a GC bug in parrot that was preventing panda and some modules from working, thus making a Rakudo Star Parrot release possible again. Also, since the last parrot release, a bunch of tests stopped failing in the spec test suite. They had been fudged in the mean time, so in this status report they show up as “TODO passed”.

FROGGS built a Perl 6 slang “Tuxic” (as it was requested by [Tux]) that introduces optional whitespace between the name and parenthesis of a subroutine call.

raydiak made his Math::Symbolic module available on the ecosystem. AIUI the “Math::Symbolic” module of perl5 is extremely sophisticated; our version is not there yet, however.

ugexe built a module to output lists-of-lists as pretty ASCII tables. It’s called Text::Table::Simple.

I wrote a tool that turns text copy-pasted from MoarVM’s “spesh log” into a graphviz-rendered graph that shows control flow (grey arrows between instructions, dotted lines between Basic Blocks), data flow (black arrows between instructions), and related info (deoptimization, Frame Handler, and inlining annotations, Callsite info, …). IMO this makes it much easier to see optimization opportunities. In this particular graph I see — apart from the very obvious overuse of set — a register that gets written to twice in a row (r8(3)), a register that gets written to but apparently never read (r7(5)), and some spesh-to-graphviz bugs 🙂

Farabi6 (azawawi’s browser-based IDE) will now syntax-check your code as you type it and display syntax errors and other problems it finds right inside the code editor widget. Additionally, there’s an initial bit of support for debugging. You can step in, step out, and resume the script you’re writing and the code editor will highlight whatever piece of code is currently active and display partial output in the output tab, as well.

“cpandatesters” is now available at the domain http://testers.perl6.org/ – if you want to submit your own test reports, you can check out the branch “reporter” in panda and set the “PANDA_SUBMIT_TESTREPORTS” environment variable to some value. You can also smoke all ecosystem modules by running “panda –exclude=panda smoke”. Sadly, the openpipe instruction on Parrot doesn’t allow setting a working path and environment yet, so sending reports on Parrot is currently not supported.

lizmat has been working some more on paths, dir(), chdir semantics etc etc.

So what’s next?

FROGGS is improving openpipe on parrot, so that panda reports can work there (and so that the branch can be merged back into master)

On top of that, the “by author” list of cpandatesters is NYI 🙂

I’m looking to build a less bare API around SDL2 and make Cairo easier to integrate (if you can even call this “not easy” at all). Also, the SDL2::Raw binding doesn’t cover anywhere near enough ground for a full game.

And of course I’m always interested in improving performance across the board!

Of course there’s more cool stuff that can be put into farabi 🙂

masak and vendethiel have been passing interesting papers/articles/factoids back and forth about macro systems, so I’m excited to see what our system will end up looking like!

Also I’m hoping the recent announcement about Perl 6’s release in 2015 will bring in some more interested individuals for testing, module porting/development, feature requests, or just cheering us on 😉

See you next week!

– timotimo