In just over 7 months, the /r/rakulang subreddit has had more than 500 people join it. Although this is still a lot less than the 1631 people that joined the now closed /r/perl6 subreddit, that number was achieved in 8.5 years. It’s good to see interest in Raku growing!
Totally Natural
Herbert Breunung has written a multi-page article in a Heise Magazine special edition about programming languages (German), which apparently also includes an interview with Jonathan Worthington. It is behind a paywall, and supposedly you can get a free trial subscription, but yours truly has not been able to make that work.
Algebraic Data Types
Wim Vanderbauwhede, a former lambdacamel, has written an extensive blog post about using roles as algebraic data types in Raku. Specifically on how you can parameterize roles and mixin roles into other roles. You may find this article interesting if you are curious about functional-style static typing or if your would like an alternative to object-oriented programming.
Another Two
Wenzel P. P. Peppmeyer has written another two blog posts in the past week, each addressing some feature or quirk of the Raku Programming Language.
Easy CLI testing
Alexey Melezhik explains how you, as a Raku module author, simply need to add a .tomty
directory with Tomty scenarios to run, to test your CLI programs that your distribution provides. A great tool just got better!
Tips for working with hashes
Andrew Shitov elaborates on the different ways one can work with hashes in Raku, explaining that a Pair
can be considered a single element element Hash
, and that a list of Pair
s is not the same as a Hash
.
Weekly Challenge
The champion of the month of May is Shahed Nooshmand, known for their excellent Raku one-liner solutions! The entries for Challenge #63 that have Raku solutions:
- Weekly Challenge #63 by Luca Ferrari.
- The Last Rotation with Raku by Arne Sommer.
- Last Word and Rotate String by Laurent Rosenfeld.
- Weekly Challenge #63 by Javier Luque.
- Weekly Challenge #63 by Mohammad S Anwar.
- Weekly Challenge #63 by Shahed Nooshmand.
- “Drop the Mic” – Chopped and Screwed Remix by Colin Crain.
- Weekly Challenge #63 by Jaldhar H. Vyas.
Challenge #64 is up for your perusal!
Core Developments
- Daniel Green optimized some lexical name lookups in MoarVM, and fixed a potential issue with strings from filenames.
- Dave Lewis fixed
CStruct
handling of inlined attributes. - Tim Smith made sure that an exception in
NativeCall
does not destroy the name of the library in question. - Patrick Böker was finally allowed to merge all of the new Windows quoting changes, and continued to work on the Azure CI pipelining.
- Stefan Seifert fixed a number of issues with nested compilation (like having an
EVAL
inside aBEGIN
), specifically when precompiling modules. - Elizabeth Mattijsen made sure the REPL is started if there is one command-line argument “-” and STDIN is connected to the keyboard. And they made
Str.split(Regex)
up to 2x faster and stringification ofMatch
objects up to 20% faster. - And quite an impressive number of other fixes, optimisations, and improvements.
Questions about Raku
- Behaviour of require (static + dynamic) by jakar.
- How do I check if something is an elem of a
qw
? by Electric Coffee. - Warnings while building Rakudo in Windows by Suman Khanal.
- What’s the benefit of assigning non-scalars to scalars? by Electric Coffee.
- Equivalent of Java
StringBuffer
/StringBuilder
? by Konrad Bocheli. - No
zef
in Rakudo on MacOS by dominix_pf. - How does Raku deal with the diamond problem? by Electric Coffee.
- How do I take a reference to
new
? by Electric Coffee. - How to provide a non-slurpy array or named array from the command line? by acw.
- Why does direct binding of an
our &foo
not work, but indirecting via a dynamic lookup does? by jakar. - Alter how arguments are processed before they’re passed to sub
MAIN
by acw. - Loop Over Two Arrays In Parallel? by s-ro_mojosa.
- Check if all elements of list are prime by Lars Malmsteen.
- How to get the
Host
or :authority header in Cro when usingHTTP/2
by acw.
Meanwhile on Twitter
- Type coercion in
Signature
by Khalid Elboray. - Released yet? by Luke Champine.
- More quickly by Charles “👁” Sprickman.
- Crazy SEO by てらまこ.
- Also not true by Elizabeth Mattijsen.
- Trying
NativeCall
by Khalid Elboray. - A whole language by Tor E Hagemann.
- Hypers, Gathers, Loops by The Perl and Raku Conference.
- Missing
//
by Marc Chantreux. - Rod Logic by Salve J. Nilsen.
- Imperatively
gcd
by minus9d. - Signature of a Callable parameter by Khalid Elboray.
- No books yet? by 寿限無.
- Playing Around by Wim Vanderbauwhede.
- A game in 170 lines of Raku by JJ Merelo.
- Don’t understand the name change by LM Mayo.
Meanwhile on perl6-users
- Changing the name of a module by Richard Hainsworth.
Comments about Raku
- Seeking work by clarkema.
- Clearer with Raku regexes by Brad Gilbert.
- Poison Pills by perlfan.
- Don’t burn out by bobthecimmerian.
- Extending your make scripts by Alexey Melezhik.
- Second only to Lisp by draegtun.
- For
make
like tasks by Alexey Melezhik. - Least competition by Elizabeth Mattijsen.
- An eierlegendewollmilchsau by Reini Urban.
- Don’t want a split by pdimitar.
New Raku Modules
- Math::Libgsl::QuasiRandom by Fernando Santagata.
- Cmark by Khalid Elboray.
- JSON::simd by Curt Tilmes.
Updated Raku Modules
- Math::Libgsl::Constants by Fernando Santagata.
- DB, DB::SQLite by Curt Tilmes.
- Sparrowdo, Tomty, Sparrow6, Tomtit by Alexey Melezhik.
- IRC::Client::Plugin::DiceRolls, Grammar::DiceRolls by Patrick Spek.
- CSS by David Warring.
- Algorithm::AhoCorasick by Itsuki Toyota.
- Red by Fernando Correa de Oliveira.
- MongoDB by Marcel Timmerman.
Winding down
Sorry to bother you all again after only a week :-). Again a very nice batch of new and updated modules, blog posts and some very nice speedups. Keep healthy, keep safe and see you next week for yet another instalment of the Rakudo Weekly News!