Image: Het Torentje van Drienerlo (the ‘Little Tower of Drienerlo’) a 1979 artwork by Dutch artist Wim T. Schippers. This file is licensed under the Creative Commons Attribution 2.0 Netherlands license.
The Perl and Raku Conference
TPRC is happening very soon! If you haven’t registered, it’s not too late! We’d still love to see you in Greenville SC [USA] June 25-29; check out https://tprc.us/ for all the info. If you ARE coming, we can’t wait to see you! Join us for an arrival dinner on Thursday evening, June 25. We will meet in the lobby at 5:15 and walk to Chuy’s just across the parking lot.
We need Lightning Talks! We hope you are planning to join the fun. Go ahead and submit your lightning talk on the website. We will also accept lightning talk submissions after the conference begins, so go ahead and make your plan! We need volunteers! If you can help with set-up or registration desk, or any other tasks, please check in with us in the Palmetto room any time beginning Thursday, and we will be grateful to put your hands and mind to work!
And, for those of you who can’t come, we will miss you! Watch for our videos on our YouTube channel at https://youtube.com/@YAPCNA/videos/ once the conference is over.
The Raku Foundation
Anyone with an active interest in the success of Raku is welcome to Register their interest in membership of The Raku Foundation community – details of participation are being thrashed out by the newly appointed Executive Board and will be communicated in due course. [If you are reading the weekly, then this means you. -Ed.]
Rocky’s Corner
Rocky Linux has adopted Raku Sparky This guide explains how to install, configure, and run Sparky, so you can run the Rocky Linux Testing Team’s automated use-case tests against Rocky Linux. Checkout the Rocky docs for details…
Why Sparky and Sparrow for Rocky Linux testing?¶
The goal for testing is to have more test coverage of common use cases that the Rocky Testing Team can verify on new Rocky Linux releases (both major and point releases). Additionally, there are two other goals:
- As the tests can be rather simple Bash code, there is a desire for more system administrators to write automated tests about the things they care about. This provides a great opportunity for the Rocky Linux Community members to contribute to testing.
- The tests can be used to verify documentation. This provides the Documentation Team an opportunity to catch (as an example) package breakages in a piece of documentation, before a user finds it.
The Venn diagram overlap of OpenQA, Kickstart tests, and Sparky is fairly minimal. While the Testing Team had hopes to integrate most of the documentation into OpenQA or the Kickstart tests, the process was becoming complicated. Sparky provides an automation framework tool that is much easier for the Rocky Linux Community to contribute to.
Ralf’s Corner
Ralf Muschall has written some code to Decompose an integer into prime factors using Lenstra’s algorithm on Edwards curves
Weekly Challenge
Weekly Challenge #379 is available for your appraisal.
Raku Tips ‘n Tricks
In the last weeks TnT, we have looked at the . (dot) and ! (exclamation) twigils. Here’s a reminder using the . to make a class attribute $.name with read-write access:
class Person {
has $.name is rw;
}
my $p = Person.new;
$p.name = 'Alice';
say $p.name; # Alice
Then we showed how you can roll your own set /get accessors with multi s to get encapsulation with nearly that behaviour:
class Person {
has $!name;
multi method name { $!name }
multi method name($x) { $!name = $x }
}
my $p = Person.new;
$p.name: 'Alice';
say $p.name; # Alice
But note we had to alter $p.name= to $p.name: (the = assignment became : method call syntax with an argument) – what if you want exactly that assignment behaviour and you want encapsulation with custom accessors. If you really want to contort Raku OO like that, then use the underlying Proxy class to add FETCH/STORE:
class Person {
has $!name;
method name() is rw {
Proxy.new(
FETCH => { $!name },
STORE => -> $, $val { $!name = $val },
)
}
}
my $p = Person.new;
$p.name = 'Alice';
say $p.name; # Alice
As with everything in Raku, you can always dig deeper and find a way!
Your contribution is welcome, please make a gist and share via the #raku channel on IRC or Discord.
New Doc & Web Pull Requests
- Update 01-debugging.rakudoc by comborico1611
- Create LISP Guide to Raku by comborico1611
Comments about Raku
- Raku and its “surprisingly good lisp impression” by Steve Roe
- …separate types of bytestrings versus sequences of unicode codepoints.Fixed in Raku… by Elizabeth Mattijsen
- announcing the establishment of The Raku Foundation by Steve Roe
- I am just that kind of true weirdo who happens to like Raku by Samuel Chase
- Makes sense to split the foundation by montroser
New & Updated Modules
Winding down
Thanks to all those connected to the Raku project for registering your interest at https://raku.foundation – if you haven’t done that yet, please do and make your voice heard.
Please keep staying safe and healthy, and keep up the good work! Even after week 73 of hopefully only 209.
~librasteve
