With a MoarVM, NQP and Rakudo™ merge (at 922 commits and 335 files changed by 16 contributors), the work on the new-disp branch that started about 18 months ago, was finally made mainstream. Special kudos to everybody who was involved in what was the biggest internal change since the MoarVM backend was initially conceived. Jonathan Worthington reports about in The new MoarVM dispatch mechanism is here! (/r/rakulang, Twitter comments).
The coming weeks will be used to iron out the sharp edges that some people that prefer to work bleeding edge, have reported. Many cases show performance improvements (such as the test-t benchmark now being 20% faster), while others are more or less the same. Some severe performance degradations have been tracked and fixed (at least temporarily).
Raku Infrastructure Volunteers
The Raku Steering Council has issued a Call for Raku Infrastructure Volunteers (/r/rakulang comments), noting that much of the essential Raku infrastructure is being run by individuals, causing a very low bus factor on these functionalities.
HacktoberFest 2021
It’s that time of the year again! The HacktoberFest allows you to support open source in the best way you can! And if you’re not interested in yet another T-shirt, you can have a tree planted in your name instead. How green is that? And if you’re a maintainer of an open source project: please don’t forget to mark the appropriate issues as a “HacktoberFest” issue, so that it will be easier for you to be helped!
Simon’s Corner
Simon Proctor returns with a blog post related to the Weekly Challenge: Why not reduction? (/r/rakulang comments).
Vadim’s Corner
Vadim Belman returns with a blog post about stashes and merging of symbols from several compunits in Merging Symbols Issue.
Weeklies
Weekly Challenge #133 is available for your perusal.
New Pull Requests
- Communicating the effective establishment of the Raku Foundation
- Clarify that
enum
iteration is unordered - Jit some ops that aren’t terribly hot, but do cause bails in a spesh log
- Jit some not so common ops
- Add
Cool.Version
coercer
Core Developments
Changes since the new-disp branch was merged:
- Jonathan Worthington
- fixed many issues related to mega-morphic call-sites (which initially introduced a severe performance penalty for those cases)
- fixed several memory leaks
- corrected a
libffi
/dyncall
discrepancy - fixed an issue with
role
punning - fixed an issue with
CALL-ME
methods in a role - fixed specifying type objects to indicate no callback given in
NativeCall
.
- Nicholas Clark fixed an issue with the
sp_assertparamcheck
andsp_bindcomplete
operators that were incorrectly being handled in the run loop (which oddly did not have any consequences on little endian systems, but caused very weird errors on big endian systems). - Daniel Green fixed several building issues with Continuous Integration tests, and insured that the JVM backend on NQP tested ok again after the new-disp merge.
- Vadim Belman introduced generic signature constraints, such as in
sub foo(::T, :&fn:(T)) {...}
, and made sure that signature constraints are shown inParameter.raku
. - Elizabeth Mattijsen fixed a problem in the suggestions for a “method not found” error and marked use of the
$*PERL
dynamic variable as deprecated.
Questions about Raku
- Checking if a
react
block is ready for business by Daniel Sockwell. - Raku module for getting image pixel RGB values by jddddddddddd.
- What’s native (i.e. high-machine-performance) hybrid development options by complyue.
- Flattening and itemized lists by Hanselmann.
- How do I use
raku -e
and-n
with multiple file glob by Gerard O’Neill. - Multis over methods by moon-chilled.
- How to implement a global exception handling in Cro Application by user13195651.
- Understanding the point of
supply
blocks (on-demand supplies) by Daniel Sockwell. - Can I copy a function with its current state? by Daniel Sockwell.
Meanwhile on Twitter
- #132.1 in a tweet by Markus Holzer.
- Very interesting by Michael Sumner.
- Announcing
Pod::Contents
by Siavash Askari Nasr. - Flashbacks by Alex Brown.
- Random thoughts by Simon Proctor.
- A Raku Matrix space by Siavash Askari Nasr.
- Announcing
Curry
by Siavash Askari Nasr. - Changing my ways by Marc Chantreux.
- Twenty seconds? by Marc Chantreux.
- All but four passed by Jonathan Stowe.
- #133.1 in a tweet by Markus Holzer.
- Customizing higher-order mathematical operators by Kang-min Liu.
- Similarity of attitude by Henri Sivonen.
- Talking to a bot by Gianni Ceccarelli.
- A love/hate relationship by Marc Chantreux.
- Powerful and convenient by Not Jack.
- Circling back by Brian Wisti.
Meanwhile on the mailing list
- What’re native (i.e. high-machine-performance) hybrid development options with Raku? by YueCompl.
- Can you suggest a beginner book? by Walt CH.
Comments about Raku
- Research into occasional participation by talexb.
- Multi paradigm by Samuel B. Chase.
- Nippy code snippets
- It didn’t help by Eric Mesa.
- A more helpful higher-level structure by John Siracusa.
- On null checking by Ralph Mellor.
New Raku modules
- Hash::str “provide a hash with native string keys” by Elizabeth Mattijsen.
- Pod::Contents “a module for getting Pod contents as a list or string” by Siavash Askari Nasr.
- Curry “module for currying functions” by Siavash Askari Nasr.
- Protobuf “Parse and manage Protobufs” by Brian Duggan.
Updated Raku Modules
- Data::Record, Kind::Subset::Parametric by Ben Davies.
- Hash::int, App::IRC::Log, Object::Trampoline, Object::Delayed by Elizabeth Mattijsen.
- Net::Ethereum by Konstantin Narkhov.
- PDF, PDF::Tags, PDF::Content by David Warring.
- SSH::LibSSH, Grammar::Profiler::Simple by Jonathan Worthington.
- Terminal::UI by Brian Duggan.
- Test::Async by Vadim Belman.
- DateTime::Timezones by Matthew Stuckwisch.
- zef by Nick Logan, Tony O’Dell.
- Audio::PortAudio, Audio::PortMIDI by Jonathan Stowe.
- Gnome::N, Gnome::Gtk3 by Marcel Timmerman.
Winding down
With apologies for the late delivery, but then again the past week had a lot to take in. A week with the culmination of 18 months of effort, a bunch of interesting new modules and some cool blog posts. Please check in again next week for more news about the Raku® Programming Language!