The Perl 6 Team at Edument has been quietly working on remote debug support for MoarVM, the most developed backend for Rakudo Perl 6. Jonathan Worthington describes in a blog post (Reddit comments) why and how this new feature came to be, and how stable it is. The current set of features at least include:

Suspending and resuming all threads, or individual threads.

Getting stack traces of suspended threads.

Setting breakpoints and getting notified if they are hit (and, optionally, suspending execution).

Reading the lexical variables of a callframe, object attributes, array and hash elements.

Timo Paulssen has been working on the Perl 6 language part of the remote debugger: App::MoarVM::Debug , which currently is still a little rough around the edges, but since it is an ecosystem module, can be updated / fixed / improved without needing a Rakudo Perl 6 compiler release!

Truly exciting times for Perl 6 core developers, and everybody else who is getting their work done using Rakudo Perl 6!

Rakudo Compiler Release 2018.03

Samantha McVey created the 2018.03 MoarVM release, and Aleks-Daniel Jakimenko-Aleksejev used that as a cue to do the 2018.03 Rakudo Compiler Release. Which Claudio Ramirez then took as a cue to create new Linux packages. Good work all around again! Only one release to go before the next Rakudo Star release!

Javascript backend progress

Paweł Murias reports on the progress he’s made on the Javascript backend for Rakudo Perl 6: a lot of refactoring to make it more compatible with the MoarVM and JVM backends. Making precompilation work while being able to introspect the original source code, e.g. when an execution error occurs. Some of the work is now unearthing bugs on other backends, which is always a good thing!

Other Core Developments

Ticket status of past week.

All of these fixes made it to the 2018.03 release, unless otherwise noted.

Samantha McVey added proper support for replacements in decodestream for windows1251/2 .

added proper support for replacements in decodestream for . Daniel Green added many, many more JIT-templates for better JITting of nqp::ops.

added many, many more JIT-templates for better JITting of nqp::ops. Timo Paulssen created the initial version of the new remote debugging support for MoarVM over the past months, and he continued development / debugging the past week.

created the initial version of the new remote debugging support for MoarVM over the past months, and he continued development / debugging the past week. Stefan Seifert made sure that precompiled files using NativeCall no longer contain absolute paths: this should make packaging of Rakudo Perl 6 easier for Linux distributors, such as openSUSE. He also made NQP module builds reproducible. This means it can now much more easily be packaged (some distributions require reproducible builds), but it also means that simple rebuilds (without source changes) will no longer lead to “ Missing or wrong version of dependency ” messages (this did not make it to the 2018.03 release).

made sure that precompiled files using no longer contain absolute paths: this should make packaging of Rakudo Perl 6 easier for Linux distributors, such as openSUSE. He also made NQP module builds reproducible. This means it can now much more easily be packaged (some distributions require reproducible builds), but it also means that simple rebuilds (without source changes) will no longer lead to “ ” messages (this did not make it to the 2018.03 release). Elizabeth Mattijsen focused on some general improvements that would help in the serial pre- and post-processing of hyper and race .

focused on some general improvements that would help in the serial pre- and post-processing of and . Jonathan Worthington fixed a pesky spesh bug related to how the first argument to a Block was incorrectly considered to be constant (the invocant if the Block happens to be a Method ). He also made sure that samewith can never be inlined.

fixed a pesky spesh bug related to how the first argument to a was incorrectly considered to be constant (the invocant if the happens to be a ). He also made sure that can never be inlined. Will Coleda worked on indentation in pod tables.

worked on indentation in tables. Zoffix Znet fixed many, many bugs and release blockers. He e.g. fixed the discrepancy between say and note with regards to the handling of Junction s.

Other Blog Posts

Meanwhile on Twitter

Meanwhile on StackOverflow

Meanwhile on FaceBook

Man-page-like documentation for Perl 6? by Andrew Berg.

Perl 6 in comments

Subclassing and parameterizing grammars by b2gills.

Backward compatible syntax by bmn__.

Completely different language by smcl.

Changed much less by bhaak.

Hygienic macros by kamaal.

Indirect influences by lispm.

More readable pattern matching by dash2.

Perl 6 Modules

It’s been a while since Perl 6 CPAN modules (now at 1064 distributions) were mentioned in the Perl 6 Weekly. From now on yours truly will be reporting on new and updated Perl 6 modules. To catch up, here’s a list of 68 new Perl 6 modules uploaded to CPAN in 2018:

The following 29 Perl 6 modules have been updated at least once in 2018:

PDF::Font::Loader by David Warring .

. JSON::Fast by Timo Paulssen .

. Dist::Helper by Patrick Spek .

. Verge::RPC::Client by Harris Brakmic .

. App::Assixt by Patrick Spek .

. PDF::Class by David Warring .

. IO::Path::Dirstack by Patrick Spek .

. CPAN::Uploader::Tiny by Shoichi Kaji .

. Acme::Test::Module by Shoichi Kaji .

. App::Mi6 by Shoichi Kaji .

. HTTP::Tinyish by Shoichi Kaji .

. App::Platform by Jarkko Haapalainen .

. Sparrowdo by Alexey Melezhik .

. SQL::Lexer by Douglas Schrag .

. IO::Socket::Async::SSL by Jonathan Worthington .

. Terminal::Table by Loren Zhang .

. Inline::Perl5 by Stefan Seifert .

. Auth::Scram by Marcel Timmerman .

. Cro::Core by Jonathan Worthington .

. Cro by Jonathan Worthington .

. Cro::HTTP by Jonathan Worthington .

. Cro::TLS by Jonathan Worthington .

. Cro::WebSocket by Jonathan Worthington .

. Cro::ZeroMQ by Jonathan Worthington .

. Music::Engine by Sam Gillespie .

. MeCab by Itsuki Toyota .

. Font::FreeType by David Warring .

. HTML::Canvas by David Warring .

. CommonMark by Jeff Goff .

. Hash::Merge by Patrick Spek.

Winding Down

Wow. What a week! Hope this wasn’t too overwhelming / boring for the reader. Sometimes less is more. Don’t worry, I don’t think we will beat the number of uploads of the past 11 weeks in the coming week. So the module listing will be a lot smaller in the next Perl 6 Weekly. Or will it? Only one way to find out. See you next week! 🙂