2020.04 Almost Springtime

Damian Conway is back from sabbatical: in the second week of March, they will be giving some very interesting courses in Switzerland: Presentation Skills courses, redesigned language-neutral versions of the “API Design”, “Better Coding Practices” courses and a free half-day seminar on Raku on 12 March!

Damian usually only comes to Europe once a year, so this is also the opportunity for other event organizers to organize an event around that period: it will be much easier to persuade Damian to come to such an event if they don’t have to travel halfway around the world!

New infrastructure sponsors

Roman Baumer has the pleasure to announce that the Raku community has two new infrastructure sponsors: DigitalOcean and AWS! They join Atikon, who have been supporting Raku for a long time already. It is thanks to these sponsors that the Raku community has an online presence! So a thank you is definitely in place!

FOSDEM 2020

Stuart J Mackintosh (chairperson of The Perl Foundation) invites everybody to come to FOSDEM this weekend. To visit this awesome Open Source event, but also to visit the Perl and Raku stand! They explain it all in a blog post titled Perl and Raku at FOSDEM 2020.

Think Raku

As already mentioned a few weeks ago, the updated Think Raku book by Laurent Rosenfeld is available from Green Tea Press. But not only that! Luis F. Uceta has completed the Spanish translation as well: Piensa Raku (download)!

Zeco

Tony O’Dell has been working on an alternate Raku module ecosystem based on zef. They introduce it in a blog post titled zef++ ecosystem. If you’re interested in contributing, please contact tony-o on any of the #raku IRC channels!

Firkin

p6steve (no offence intended) has returned to blogging with Raku: the firkin challenge. In it they describe the ongoing development process of the Physics::Measure module in the ecosystem, and its relation to beer (lots of it).

Renaming Progress

  • Elizabeth Mattijsen changed the internal name of the language implemented by Rakudo from “perl6” to “Raku”. This caused some ecosystem problems, that were easily fixed by some Pull Requests made by Alexander Kiryuhin.
  • Elizabeth Mattijsen also made the $*RAKU dynamic variable the leading runtime source of information about the language, and renamed the Perl class to Raku (the Perl class is now a subclass of the Raku class).

A story of collaboration

For some months Stefan Seifert has been working to improve Inline::Perl5, the module which integrates Perl code into Rakudo. In particular, they’ve been finding (and fixing) bugs exposed when running multiple Perl interpreters concurrently. The “big picture” here is that Rakudo could become a better choice than Perl’s own “ithreads” to orchestrate multiple CPU-bound Perl compute tasks.

Last year Stefan hit a bug in Perl’s IO module – loading IO​::Handle concurrently in multiple threads (each with their own interpreter) will cause compilation errors in other threads and in unrelated modules. They offered a patch to the Perl core code, which would have fixed this issue in future Perl releases.

Nicholas Clark (former Perl 5 maint pumpking) looked at this, figured that it wouldn’t be possible to backport it to existing Perl releases, and so started looking more closely at whether instead there was a way to patch the IO module to fix the thread race. The problematic C code there was introduced in 2011 to fix a bug (involving the combination of IO::Handle, <> and the open pragma). Nicholas found a different way to (ab)use the APIs to keep that bug fixed, whilst also avoiding the thread race, and tested on the few systems they had. But as IO is a rather important module, it needed further testing, so Ricardo Signes (former Perl 5 pumpking) uploaded a trial release to CPAN, so that the automated CPAN testers could give it a thorough check.

No problems were found, and that code is now on CPAN as IO 1.42, and hence you can now upgrade Perl all the way back to 5.8.1 to fix this bug, allowing that Perl version to be called for threaded applications from Rakudo.

Another nod to Raku

Mark Carter appears to be writing an interesting blog post every week. This week it was I became a #perl 5 programmer by mistake (/r/perl, Hacker News comments).

More from Yusuke Wada

Yusuke Wada also got inspired enough to write another blogs post: this week about Gradual Typing in Raku (Japanese).

RakuDist

Alexey Melezhik provides some updates on their RakuDist project, announcing support for different Rakudo versions.

Weekly Challenge

The Raku entries for Challenge #44:

Challenge #45 may be up for your perusal, but since Mohammad S Anwar is having some (unexpected) quality family time in India, it may take a little longer to actually arrive!

Core Developments

  • Peter du Marchie van Voorthuysen fixed an issue with comparing two Seq‘s using the eqv operator.
  • Elizabeth Mattijsen added a Str.Version coercer, so that you can now use Version(Str) in a signature to have an argument automatically coerced to a Version object. They also improved some error messages.
  • And some smaller fixes and improvements, mainly in preparation of the Rakudo 2020.01 compiler release.

Questions about Raku

Meanwhile on Twitter

Meanwhile on Facebook

If you’re interested in developments there, go to the Perl 6 group homepage.

Comments about Raku

New Raku Modules

Updated Raku Modules

Winding down

Alas, Alexander Kiryuhin is still putting the final touches on the 2020.01 Rakudo compiler release. And Jonathan Worthington is working on a Comma IDE release. Which means that next week, there will be a lot of news about new releases of the Raku Programming Language! And news about FOSDEM! See you then!

Leave a Reply

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