2017.46 Spesh Explained

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.
  • Optimization Planning
    About the introduction of the planner of specializations.
  • Optimizing Code
    About the different forms of specializations and the facts 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 Virtual Machine!

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.
  • 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 signals 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.
  • 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!).
  • 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.
  • Jonathan Worthington fixed a scoping issue on the CLOSE 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).
  • Nick Logan did some fixes and cleanups in Rakudo’s make testing.
  • 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).
  • 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 🙂


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 )

Google photo

You are commenting using your Google 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 )

Connecting to %s