Exemplar Applications
I just posted a POLL over on Reddit, please do have your say.
Now that the new raku.org site is in place, I’m hoping we can use it to show potential converts (eg Python, Javascript, PHP, Go developers) how it can add more -Ofun to their lives. I hear that other PLs, in addition to focus core enhancements, have chosen a small number of exemplar apps to showcase the strengths of the language and to create a critical mass of code in certain applications. Please vote for the one you prefer…
Advent: Final Call, 2 Slots Remaining
Head on over to https://raku-advent.blog to see this year’s posts so far … thanks to all for the great contributions:
We already have 15 days under Santa’s belt with a further 7 posts lined up. So only 2 slots left. Don’t miss out and reserve your slot now for the festive fun at the authors.md page. All it takes to get on the schedule is to make a quick PR with your name and your proposed festive post title(s). Beginner, Intermediate or Genius level – your call.
I am picturing the Advent Calendar as a Raku Iterable – a Seq for example – everyday we will pull one and in the meantime, hopefully you will have stepped forward to claim a slot before we run out of material.
Raku Steering Group Update
John Haltiwanger (ab5tract) has accepted the invitation by the Raku Steering Council to become a member
Thanks to ab5tract for taking on this community role.
Weeklies
Weekly Challenge #352 is available for your enjoyment.
Raku Tips ‘n Tricks
Another Raku Snippet, shared at https://glot.io, caught my eye. Here’s the main gist of it:
#vector dot product
sub infix:<·>( @a, @b where @a.elems == @b.elems ) {
[+] @a >>*<< @b
}
#matrix multiplication
sub infix:<dot>( @a, @b where @a[0].elems == @b>>.[0].elems) {
my @b-transposed = [Z] @b;
@a.map( -> @r { @b-transposed.map( -> @c { @r · @c } ) })
}
my @a =
[1, 0, 1],
[2, 1, 1],
[0, 1, 1],
[1, 1, 2],
;
my @b =
[1, 2, 1],
[2, 3, 1],
[4, 2, 2],
;
say @a dot @b;
Although I would suggest the excellent Math::Matrix module (author – lichtkind) for production matrix work, this example shows how well the Raku syntax can express this operation in just a few lines of code.
Your contribution is welcome, please make a gist and share via the raku channel IRC or Discord.
New Pull Requests
- Add infix + – / * candidates for mixed int / num Elizabeth Mattijsen
- RakuAST: Default unnamed packages to `my` scope instead of `our` Patrick Böker
Core Developments
- unbreak the Rakudo build Patrick Böker
- Merge pull request #1840 from patrickbkr/moar-pty Patrick Böker
- Adapt to latest libuv changes in the PTY PR Patrick Böker
- Switch libuv to point to a temporary fork that includes the PTY PR Patrick Böker
- Fixup libuv with/without pty distinction Patrick Böker
- Fix over excessive memory allocation Patrick Böker
- Error out properly when no PTY impl is available Patrick Böker
- Start of differentiating libuv with PTY support and without Patrick Böker
- Finally get PTYs on Windows to work Patrick Böker
- Move pty stuff to libuv Patrick Böker
- Windows PTY: Do it ourselves Patrick Böker
- remove duplicate dep Patrick Böker
- Implement a pty-resize syscall Patrick Böker
- Do path resolution just as libuv does when spawning a PTY process Patrick Böker
- Implement setting the PTY initial window size Patrick Böker
- Fix abort on quick shutdown of client Patrick Böker
- FDs can have a higher than 999 number. Go for 5 digits Patrick Böker
- Simplify error handling a bit more Patrick Böker
- Improve error handling Patrick Böker
- Fix up a hang and an EIO error Patrick Böker
- WIP: Implement PTY support Patrick Böker
- Bump MoarVM to unbreak the Windows build Elizabeth Mattijsen
- Bump MoarVM to get PTY support implemented by patrickb++ Elizabeth Mattijsen
- RakuAST: introduce =restart RakuDoc directive Elizabeth Mattijsen
- Merge pull request #5651 from patrickbkr/pty Elizabeth Mattijsen
- Bump NQP to unbreak the Windows build Elizabeth Mattijsen
- Changes to only build the PTY spawn helper when necessary Patrick Böker
- fixes Patrick Böker
- Implement Proc::Async.resize-pty() Patrick Böker
- Implement setting the initial window size Patrick Böker
- Proc::Async PTY support Patrick Böker
- Bump NQP to get MoarVM PTY support implemented by patrickb++ Elizabeth Mattijsen
Questions About Raku
- How can I unconditionally evaluate two terms and return the first one evaluated? by darch
- Question about feed operator by reddit_clone
- interesting to have a role in Raku that you can add to types? by leobm
New Raku Modules
- L10N::AF by habere-et-dispertire
- Test::Time by Fernando Correa
Updated Raku Modules
- Rainbow by Patrick Böker
- Terminal::Widgets by Geoffrey Broadwell
- Rakudo::Options by Elizabeth Mattijsen
- Air by Steve Roe
- Gnome::N, Gnome::Gtk4 by Marcel Timmerman
- Markdown::Grammar, WWW::OpenAI, ML::AssociationRuleLearning by Anton Antonov
- Chess by grondilu
- File::Find by Various Artistes
- CSS::Writer, CSS::Specification, CSS::Properties, CSS::Module by David Warring
Winding down
Raku has O(10^3) community and (e.g.) Python has O(10^7) – maybe for 2026 we could aspire to double in size … it would mean 1000 recruits to do this which is just 0.01% of Python coders (similar for other languages). The challenge is how can we get an “attention, interest, dabble, remain” reinforcement loop going in the wider dev world?
Go on and join the fun with a festive Advent post. Go on, go on, go on.

Kudos to Patrick Böker for a massive set of commits to MOARVM.
Please keep staying safe and healthy, and keep up the good work! Even after week 48 of hopefully only 209.
Meanwhile, still: Слава Україні! Героям слава!
~librasteve
