There’s been a lot of book activity in the Perl 6 world lately. Andrew Shitov announced his new book Perl 6 Deep Dive (preliminary table of contents). And Moritz Lenz also continued working on his “Parsing with Perl 6 Regexes and Grammars” book. To top it off this week, Zoffix Znet announced the Rakudo Book Project – a plan to write some Rakudo books (/r/perl and /r/perl6 comments).



Please check out his plans and support him in any way you can!

AlexDaniel++ for his second release

Aleks-Daniel Jakimenko-Aleksejev has done his second Rakudo compiler release! The announcement for Rakudo Perl 6 2017.09 shows quite a number of fixes and improvements again this month. Please note there are currently no plans for creating a Rakudo Star release for this compiler release.

London Perl Workshop – 25 November

Saturday 25 November will see another London Perl Workshop 2017. And yours truly would love to see a lot of Rakudo Perl 6 presentations there: so please submit your presentation. Hope to see you there!

New ThreadPoolScheduler implementation

Jonathan Worthington started work on a new thread pool scheduler (which got merged after the 2017.09 release because of possible ecosystem fallout). This implementation has separate general and timer queues with separate workers, and also introduces affinity queues, which are intended for cases where events will be fed into a Supply , and thus there’s no point having lots of threads competing over them only to immediately stumble over each other. The separate timer queue helps when timer events are being delayed, for example if a process is producing a load of output.

This implementation also adds a supervisor, which is where the smarts on how many threads to have in the pool will be put. For now, it is already smart enough to start a lot less threads than the previous scheduler when they obviously aren’t needed. This helps with memory consumption. And it can add more threads on demand when needed to break deadlocks. The default maximum number of threads has been raised to 64 , now that the scheduler does not start up the maximum number of threads even when they don’t have any work to do.

For debugging, the RAKUDO_SCHEDULER_DEBUG and RAKUDO_SCHEDULER_DEBUG_STATUS environment variables can be set.

This work has been kindly sponsored by the Vienna Perl Mongers.

Other Core Developments

These features made it to the 2017.09 compiler release.

Samantha McVey marked the .collate method, coll and unicmp infix functions as no longer experimental. The dynamic variable $*COLLATION , which allows you to configure the sort, will remain as experimental for now.

marked the method, and infix functions as no longer experimental. The dynamic variable , which allows you to configure the sort, will remain as experimental for now. Elizabeth Mattijsen made simple (one attribute) object creation about 25% faster, and reduced memory requirements for classes.

made simple (one attribute) object creation about faster, and reduced memory requirements for classes. Philippe Bruhat worked on .succ and .pred on enum s. This resulted in more attention to this subject, with the outcome a .WHICH on enum s that is O(1) .

worked on and on s. This resulted in more attention to this subject, with the outcome a on s that is . Timo Paulssen fixed a closure issue with permutations and combinations .

fixed a closure issue with and . Aleks-Daniel Jakimenko-Aleksejev fixed needless buffering in Test , causing test information not be updated continuously when running the test in a harness.

fixed needless buffering in , causing test information not be updated continuously when running the test in a harness. And quite a few smaller fixes and improvements.

Other blog posts

Meanwhile on Twitter

Meanwhile on StackOverflow

Meanwhile on perl6-users

Ecosystem Additions

Quite a nice catch this week!

IRC::Client::Plugin::Github by Patrick Spek .

. Brazilian::FederalDocuments by Paulo Henrique Rodrigues Pinheiro .

. Log::ZMQ by Gabriel Ash .

. Digest::SHA256::Native by Brian Duggan .

. MQ::Posix by Jonathan Stowe .

. Cro::TLS by Jonathan Worthington.

Winding down

Between the rain and the wind, quite a lot happened in the Rakudo Perl 6 world yet again. Sometimes we forget how many ways we found how not to make Perl 6. With that in mind, see you next week for more Rakudo Perl 6 goodies!