2015.33: The Great List Refactor is picking up lots of steam!

Hello everyone!

It’s timotimo here, bringing you another one of those late weeklies you’ve probably been missing while lizmat was helping me out and delivering posts right on time! 😉

Over the last week, the Great List Refactor (GLR for short, or just “glr” when used for branch names) has been moved from a single gist jnthn has been experimenting in to the actual rakudo repository.

Checking out the “glr” branch of rakudo gives you a rakudo with a whole lot of Post-GLR Semantics already in place. There’s also a branch of roast (our spec test suite) called “glr” that’s already down to only 210 (out of 1047) test files with failures in them. That’s absolutely fantastic!

By visiting the perl6 IRC channel you’ll get the chance to have all code evaluations be evaluated once for pre-GLR rakudo and once for WIP-GLR rakudo (the bots camelia and GLRelia respectively), so you can check out differences between the Pre- and Post-GLR Semantics with ease.

The astonishing pace at which the GLR implementation has been progressing is only possible because so many people chipped in – some more, some less, but everyone’s contributions were worthwhile! After jnthn got the rakudo/glr branch to compiling the core setting completely and allowing everybody to test it and play around. Notably, commits landed from nine, moritz, JimmyZ, lizmat, skids, ugexe, hoelzro, perlpilot, and TimToady.

If you’ven’t been excited for the GLR yet, here’s a little benchmark jnthn ran for the “race” feature as implemented in the old GLR gist.

In the time before writing this post, laben also contributed patches to File::Find, Shell::Command and Panda. This brings Panda really close to being able to install packages again when using the glr branch. Zef, an alternative package manager works with both rakudo/nom and rakudo/glr.

Non-GLR related stuff

On a sleepless plane flight, jnthn implemented the supply block syntax (as well as an additional “react” block syntax) from his “changes and syntactic relief for S17” document in rakudo/nom (not yet merged into rakudo/glr). Here’s a simple example script that re-runs tests “whenever” test code or program code has changed.

In the ecosystem, jonathanstowe added Staticish (automatically and transparently turn a class into a singleton) and Audio::Convert::Samplerate (convert PCM audio data using libsamplerate).

On the documentation side of things, dha added the 5to6 documents he’d been working on for a bit. You can find these documents in the language section of doc.perl6.org. Lizmat documented supply-related methods, smls improved subtitles of type pages, and skids, carbin, stmuk and jonathanstowe added miscellaneous improvements.


  • brrt did two progress reports on the new JIT: “Inching Closer” and “Tiler Update“.
  • Aaron Baugher posted “Starting to Learn Regexes in Perl 6“, in which a simple playlist format with extra support for volume adjustment, audio track selection etc is parsed and then played back in random order.

Since I’m quite tired right now, I’ll end this week’s post here. See you next time, have a good one, and check out rakudo/glr if you want 🙂


2 thoughts on “2015.33: The Great List Refactor is picking up lots of steam!

    • I’m sorry, I meant to write an update long ago. Finally, a few days ago I actually wrote 9/10ths of an update, but then the whole text got lost and I got rather discouraged 😐

      Executive summary: The GLR is done, there was a “GMR” (Great Maps Refactor) to make the class hierarchy of Hashes, Enums, … a bit saner, MoarVM’s concurrency stuff has been made a whole lot stabler … stuff like that 🙂

Got something to note?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s