Jonathan Worthington completed his four part blog about the MoarVM Specializer Improvements he did in the past 3 months, supported by a grant from the Perl Foundation. The four parts are:

Gathering Data

In which he explains the path towards the new spesh worker thread.

In which he explains the path towards the new worker thread. Optimization Planning

About the introduction of the planner of specializations.

About the introduction of the planner of specializations. Optimizing Code

About the different forms of specializations and the facts they are based upon.

About the different forms of specializations and the they are based upon. Argument Guards

About making sure that code execution will remain correct when any of the prerequisites for a given optimization change.

Required reading for anybody interested in the current and future inner workings of the Moar V irtual M achine!

Rakudo Star 2017.10 Released

Steve Mynott did all the hard work again and released Rakudo Star 2017.10, now available for download. Precompiled binaries for MacOS and Windows (64 bit) are also available.

Perl 6 Advent Calendar

Zoffix Znet reminds us that it is still possible to claim a slot in the Perl 6 Advent Calendar for this year. We’d like to hear from you! Your Advent Calendar Needs You! Just let us know!

No More Grants This Year

The Perl Foundation has run out of allocable funds for grants for this year. Your donation or a donation by your employer will allow for more grant work to be supported next year. So please give kindly, especially if you need to finish off budgets before the end of the year!

Core developments

Daniel Green improved the performance of a very specific case of concatenation of strings from O(n²) to O(1) . The reason: that specific case was used in a lot of benchmarks and the solution did not have any adverse effects on all other string concatenation.

improved the performance of a very specific case of concatenation of strings from to . The reason: that specific case was used in a lot of benchmarks and the solution did not have any adverse effects on all other string concatenation. Timo Paulssen fixed a segfault that would occur when trying to create a low level iterator on a type object. This bug was exposed by trying to do a .pick on an empty Bag or BagHash , which didn’t check for emptiness. That particular bug was fixed by Elizabeth Mattijsen . Who also made sure that safe signal s are now handled by the timer worker pool, which should make it less likely that your control-c will be lost in a barrage of general worker tasks.

fixed a segfault that would occur when trying to create a low level iterator on a type object. This bug was exposed by trying to do a on an empty or , which didn’t check for emptiness. That particular bug was fixed by . Who also made sure that safe s are now handled by the timer worker pool, which should make it less likely that your will be lost in a barrage of general worker tasks. Samantha McVey improved error reporting on situations in quoting, s/// and tr/// , when a starter would be followed by a combining code point. She also revived a two-year old nqp -branch which brings us + support for %b in sprintf (which made a lot of TODO tests pass!).

improved error reporting on situations in quoting, and , when a starter would be followed by a combining code point. She also revived a two-year old -branch which brings us support for in (which made a lot of TODO tests pass!). Christian Bartolomäus implemented nqp::getport on the JVM backend (which made a lot of IO::Socket::INET tests pass on that backend) as well as generally making sure none of the MoarVM backend related work busts building the JVM backend.

implemented on the backend (which made a lot of tests pass on that backend) as well as generally making sure none of the backend related work busts building the backend. Jonathan Worthington fixed a scoping issue on the CLOSE phaser.

fixed a scoping issue on the phaser. Elizabeth Mattijsen also made sure that OS thread exhaustion is more gracefully handled by $*SCHEDULER : if there are no more threads available, it will now only try once a second to create another OS thread (instead of trying this 100 times / second, which would leave less CPU for the other threads to complete their tasks).

also made sure that OS thread exhaustion is more gracefully handled by : if there are no more threads available, it will now only try once a second to create another OS thread (instead of trying this 100 times / second, which would leave less CPU for the other threads to complete their tasks). Nick Logan did some fixes and cleanups in Rakudo’s make test ing.

did some fixes and cleanups in Rakudo’s ing. Finally, Elizabeth Mattijsen continued to be carried away by work on Telemetry . Most important additions were an ad-hoc instrument that allows you to snap the state of a number of variables ( Telemetry::Instrument::AdHoc ), and an instrument that takes basic Thread usage data such as number of OS threads started / completed / aborted ( Telemetry::Instrument::Thread ).

continued to be carried away by work on . Most important additions were an ad-hoc instrument that allows you to snap the state of a number of variables ( ), and an instrument that takes basic usage data such as number of OS threads started / completed / aborted ( ). And many other fixes and improvements.

Other Blog Posts

Meanwhile on Twitter

Meanwhile on StackOverflow

Winding Down

It was a bit of a quiet week: nothing on perl6-users or on perlmonks . Which is also nice every now and then, as it makes the work of yours truly for the Perl 6 Weekly easier. The coming weekend will see the Rakudo 2017.11 compiler release with already more than 300 commits under its belt. The coming weekend will also see yours truly giving a one-hour “Introduction to Rakudo Perl 6” presentation at T-Dose (in Dutch), as well as a Perl stand with a lot of Rakudo Perl 6 books and goodies. Whether or not you will be able to attend, it seems wise to check in again next week for more Perl 6 related news 🙂