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_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
unicmpinfix functions as no longer experimental. The dynamic variable
$*COLLATION, 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.
- Philippe Bruhat worked on
enums. This resulted in more attention to this subject, with the outcome a
enums that is
- Timo Paulssen fixed a closure issue with
- Aleks-Daniel Jakimenko-Aleksejev fixed needless buffering in
Test, 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
Bailador0.0.12 released and the
BailadorBook is progressing by Gábor Szabó.
- Getting Rakudo perl 6 on Raspberry Pi by Patrick Spek.
- The Hugest Feature of Rakudo Perl 6 by Herbert Breunung (Reddit comments).
- The Perl Conference in Amsterdam by Mihai Pop, Stefan Iloaie, Florentina Borse and Samuel Andras.
- Goto the Last Fifo by Wenzel P. P. Peppmeyer.
- Interesting regex challenge by readparse.
- The Siege Can Continue by Wenzel P. P. Peppmeyer.
- The sad state of foldcase and string comparisons by Reini Urban (Hacker News comments).
- Hi it’s me again, want to apologize by hlep.
- Code Golf Site with Rakudo Perl 6 Support! by JRaspass (Reddit comments).
MoarVMSpecializer Improvements Part 2: Planning by Jonathan Worthington.
- Funding Jonathan Worthington to work on Rakudo Perl 6 by Vienna.pm.
Meanwhile on Twitter
- Proofreading by authors by Moritz Lenz.
()()” is not a palindrome by Zoffix Znet.
&operator by Zoffix Znet.
Meanwhile on StackOverflow
- Empty match object is True? Interpolating
Set.one/all variables into regex by lisprogtor.
- Why does
will endbehave differently than
will leavein program-level scope? by Christopher Bottoms.
- Is there any way to deal with UNIX sockets in Rakudo Perl 6? by Ramillies.
- Special meaning of
<>and anonymous arrays inside regex by lisprogtor.
- Permutation match by lisprogtor.
Meanwhile on perl6-users
- stderr? by ToddAndMargo.
- Who called me? by ToddAndMargo.
- Program name and
::question by ToddAndMargo.
- What am I doing wrong here? by ToddAndMargo.
- Any “
note” without the “
say“? by ToddAndMargo.
- What is this things official name? by ToddAndMargo.
rwoptional parameters by Norman Gaywood.
- Offering my help with the Rakudo Perl 6
Text::Markdownmodule by JJ Merelo.
mkdirnot failing appropriately? by Norman Gaywood.
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.
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!