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!
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
- Daniel Green 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.
- Stefan Seifert made sure that precompiled files using
NativeCallno 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).
- Elizabeth Mattijsen focused on some general improvements that would help in the serial pre- and post-processing of
- Jonathan Worthington fixed a pesky spesh bug related to how the first argument to a
Blockwas incorrectly considered to be constant (the invocant if the
Blockhappens to be a
Method). He also made sure that
samewithcan never be inlined.
- Will Coleda worked on indentation in
- Zoffix Znet fixed many, many bugs and release blockers. He e.g. fixed the discrepancy between
notewith regards to the handling of
Other Blog Posts
- What is Perl 6 to Perl? by A. Sinan Unur (Reddit comments).
- Coercion types in signatures don’t work and won’t for awhile by brian d foy (Reddit comments).
- Use pre-built
Appveyorby brian d foy.
- Use pre-built
Travis CIby brian d foy.
- Pick and Choose (Part 1½) by 0racle.
- Pick and Choose (Part 2) by 0racle.
- HTTP Requests by TeemoNunuRaka.
- Unicode Operators by TeemoNunuRaka.
- Perl 6 usage in China? by shinobicl (Reddit comments).
Meanwhile on Twitter
- AppVeyor on Linux by brian d foy.
- Looking forward to the German Perl Workshop by Jonathan Worthington.
- Happy Pi Day by Zoffix Znet.
- Hitch-Hiker’s Guide To Perl 6 by Jeff Goff.
- Github Issues vs RT Tracker by Zoffix Znet.
- 1-time Glitch? by Zoffix Znet.
Meanwhile on StackOverflow
- What are all the Unicode properties a character will match? by brian d foy.
- How can I test if a method is defined in a class? by brian d foy.
- How can I convert a
Intonly when it represents an integer? by brian d foy.
- The use of flip-flop operator by ohmycloudy.
- Error message:
Malformed UTF-8 in blockby Eugene Barsky.
- Assigning values to attributes in the
BUILDphaser for an object by JJ Merelo.
- Assignment to parameter by user6189164.
- Running self-feeding
Channels by JJ Merelo.
Meanwhile on FaceBook
- Man-page-like documentation for Perl 6? by Andrew Berg.
Perl 6 in comments
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:
- Sparky::Plugin::Notify::Telegram by Sergey Chukh.
- Magento by Sam Morrison.
- epoll by Curt Tilmes.
- DB::Pg by Curt Tilmes.
- Test::HTTP::Server by Simon Proctor.
- Terminal::Getpass by Itsuki Toyota.
- Sparrowform by Alexey Melezhik.
- Geo::Ellipsoid by Tom Browder.
- Algorithm::GooglePolylineEncoding by Simon Proctor.
- Supply::Timeout by Варяник Алексей.
- Term::termios by Itsuki Toyota.
- Result by Sam Gillespie.
- Seq::PreFetch by Sam Gillespie.
- Slang::Predicate by Sam Gillespie.
- Serialise::Map by Sam Gillespie.
- IRC::Client::Plugin::UrlTitle by Patrick Spek.
- PowerNap by Sam Gillespie.
- Math::Curves by Sam Gillespie.
- ScaleVec by Sam Gillespie.
- IRC::Client::Plugin::Ignore by Patrick Spek.
- Net::LibIDN2 by Ben Davies.
- Concurrent::Stack by Jonathan Worthington.
- Concurrent::Queue by Jonathan Worthington.
- JSON::Hjson by Takumi Akiyama.
- IRC::Client::Plugin::NickServ by Patrick Spek.
- Concurrent::Trie by Jonathan Worthington.
- Munge by Curt Tilmes.
- Perl6::Tidy by Jeff Goff.
- AWS::Session by Sterling Hanenkamp.
- HTTP::Request::FormData by Sterling Hanenkamp.
- MoarVM::Remote by Timo Paulssen.
- ANTLR4::Grammar by Jeff Goff.
- Algorithm::Evolutionary::Simple by JJ Merelo.
- Sub::Name, List::Util, Scalar::Util, Sub::Util,
P5tie, Tie::Array, Tie::Hash, Tie::StdArray, Tie::StdHash, Sys::Hostname, P5times, P5pack, P5each, P5caller, P5lcfirst, P5ucfirst, P5ref, P5oct, P5hex, P5chomp, P5chop, P5chr, P5ord, P5quotemeta, P5index, P5rindex, P5length, P5substr, P5lc, P5fc, P5uc, P5-X, P5study, P5sleep and P5reverse. All available in the P5built-ins bundle, by Elizabeth Mattijsen for the CPAN Butterfly Plan.
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.
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! 🙂