2026.25 Dutch Art

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:

  1. 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.
  2. 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

Comments about Raku

New & Updated Modules

Taking a gap week.

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

Leave a comment