2017.38 Color Me Booked

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).
Butterflies Galore!
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.
  • Elizabeth Mattijsen made simple (one attribute) object creation about 25% faster, and reduced memory requirements for classes.
  • Philippe Bruhat worked on .succ and .pred on enums. This resulted in more attention to this subject, with the outcome a .WHICH on enums that is O(1).
  • Timo Paulssen fixed a closure issue with permutations and combinations.
  • 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

Meanwhile on Twitter

Meanwhile on StackOverflow

Meanwhile on perl6-users

Ecosystem Additions

Quite a nice catch this week!

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!

Advertisements

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