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 newspesh
worker thread. - Optimization Planning
About the introduction of the planner of specializations. - Optimizing Code
About the different forms of specializations and thefacts
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²)
toO(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 emptyBag
orBagHash
, which didn’t check for emptiness. That particular bug was fixed by Elizabeth Mattijsen. Who also made sure that safesignal
s are now handled by the timer worker pool, which should make it less likely that yourcontrol-c
will be lost in a barrage of general worker tasks. - Samantha McVey improved error reporting on situations in quoting,
s///
andtr///
, when a starter would be followed by a combining code point. She also revived a two-year oldnqp
-branch which brings us+
support for%b
insprintf
(which made a lot of TODO tests pass!). - Christian Bartolomäus implemented
nqp::getport
on theJVM
backend (which made a lot ofIO::Socket::INET
tests pass on that backend) as well as generally making sure none of theMoarVM
backend related work busts building theJVM
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 test
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 basicThread
usage data such as number of OS threads started / completed / aborted (Telemetry::Instrument::Thread
). - And many other fixes and improvements.
Other Blog Posts
- YAPC::Russia 2017 by Viacheslav Tykhanovskyi.
- What should I learn: Pumpking Perl 5 or Rakudo Perl 6? by ink_on_my_face.
- Interview with Damian Conway by Pramod Shashidhara (Reddit comments).
- Having trouble with grammars in Rakudo Perl 6 by st33znson.
- Rakudo Perl 6 Killer App Kickstarter by flebber.
Meanwhile on Twitter
- Community is the richest part by Tommy Stanton.
- Deep Dive on
perl6book.com
by Moritz Lenz. - Maybe in November by Moritz Lenz.
- Newly added Alpine Rakudo pkgs can shrink Docker images significantly by Claudio Ramirez.
Meanwhile on StackOverflow
.precomp…repo-id
subfolder in working folder by Eugene Barsky..trans
with keys longer than one symbol by Eugene Barsky.- Calling a module subroutine using a fully qualified name by Håkon Hægland.
- use module inside other module by Arimaafan.
- How to put a sub inside a
regex
? by Eugene Barsky. - Passing
regex
es as arguments by Eugene Barsky. - Building a
regex
withsub
by Eugene Barsky. - Is there a
pdf
file of all the Rakudo Perl 6 language docs fromperl6.org
? by lisprogtor. - How to refer to previously matched items in a
grammar
? by Håkon Hægland. - Combining
regex
es using a loop by Eugene Barsky. - How to pipe a string to process’
STDIN
? by Håkon Hægland.
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 🙂