YSGRIFENNU CÔD YN GYMRAEG
Part of traveling the world as an Anglophone involves the uncomfortable realization that everyone else is better at learning your language than people like you are at learning theirs. It’s particularly obvious in the world of programming languages, where English-derived language and syntax rules the roost.
It’s always IF foo THEN bar, and never SI foo ALORS bar. It is now possible to do something akin to OS foo YNA bar though, because [Richard Hainsworth] has created y Ddraig (the Dragon), a programming language using Welsh language as syntax. (The Welsh double D, “Dd” is pronounced something like an English soft “th” as in “their”)
See full Hackaday article by Jenny List
German Perl/Raku Workshop
Date for your diary:
16-18 March 2026 add to your calendar
Heilandskirche, Berlin, Germany
Waclaw’s Corner
A debugging war story from implementing SSE client transport in Raku MCP SDK.
But / ^ / silently meaning something different from every other regex flavor on earth is a trap. It doesn’t warn. It doesn’t fail. It matches, successfully, matching nothing. A language where /foo bar/ doesn’t match “foo bar” has an onboarding cost, and that cost is paid in debugging sessions like this one.
The thread pool issue is subtler and arguably more interesting. It’s not a bug in Raku or Cro. It’s an emergent property of running a server and client in the same process when both rely on cooperative scheduling. The kind of thing that works fine in production (separate processes) and fails in tests (same process). The fix — Thread.start with .result instead of start with await — is the sort of incantation you’d never guess from the documentation.
Anton’s Corner
Every year on February 7th, math enthusiasts worldwide (should) consider celebrating Euler’s Day or E-day. Among Euler’s many gifts to the (currently known) mathematical universe is the ever-popular number e, the natural logarithm base that is basically the rock star of calculus, complex analysis, continuous growth models, compound interest, and (much) more. That irrational number shows up in places we might or might not expect. This blog post (notebook) explores some formulas and plots related to Euler’s constant, e.
Remark: The code of the fractal plots is Raku translation of the Wolfram Language code in the notebook “Celebrating Euler’s day: algorithms for derangements, branch cuts, and exponential fractals” by Ed Pegg.
[Ed. also has some very pretty pictures]
The Second Two
The second meeting was held on 7 February 2026 at 19:00 UTC. Apart from 4 Raku Steering Council members, up to 5 other people attended with a true worldwide spread: local times spanning from UTC-8 to UTC+11! Thank you all for your attendance and your feedback!
In the end, 2 issues were discussed within the allotted time (1 hour). Both had extensive discussions, but no immediate resoluton.
- Raku Classification System
- Function return types should also tell about the used assignment/container
The next meeting will be held at 21 February 2026 at 19:00 UTC (20:00 CET, 14:00 EST, 11:00 PST, 04:00 JST (22 Jan), 06:00 AEST (22 Jan)), and again at a one hour maximum. If not all of these issues have been resolved, they will be moved to a future meeting.
Since Jitsi is still working out so far, the next one will be held at the same URL: https://meet.jit.si/SpecificRosesEstablishAllegedly. The reason Jitsi was selected, is that it has proven to be working with minimal hassle for at least the Raku Steering Council meetings. As the only thing you need to be able to attend, is a modern browser, a camera, and a microphone. No further installation required.
Liz’s Corner
Elizabeth Mattijsen (lizmat) series now boasts 8 episodes on WHY RAKU GETS SHOUTY SOMETIMES:
- Cases of UPPER
- … 6 more parts …
- Tweak Build
Weekly Challenge
Weekly Challenge #360 is available for your enjoyment.
Raku Tips ‘n Tricks
This week, lizmat and voldenet caught my attention. I have used Raku’s implicit topic binding many times without fully appreciating the underlying mechanism.
# the default signature of a block binds the inner $_ to the outer $_
$_ = 3; { $_ = 4; }; say $_; #OUTPUT 4
# this is the mechanism for Raku to provide nice syntax such as...
$_ = 3; { .say }; #OUTPUT 3
$_ = 3 andthen { .say }; #OUTPUT 3
given 3 { .say } #OUTPUT 3
for ^3 { .say } #OUTPUT 0 1 2
$_ = 42; if 666 { .say } #OUTPUT 42
# look, ma, no braces...
$_ = 3 andthen .say; #OUTPUT 3
.say given 3; #OUTPUT 3
.say for ^3; #OUTPUT 0 1 2
Here’s a look under the hood, and a way to override the default binding if needed.
# we can use dd (Data::Dump) to look under the hood
dd { .say }
#OUTPUT -> ;; $_? is raw = OUTER::<$_> { #`(Block|4947074942896) ... }
# can this be overridden to not bind the topic?
# maybe can we use `-> {...}` signature syntax?
$_ = 3; -> { $_ = 4; }(); say $_; #OUTPUT 4 (nope)
# how about an explicit read-and-write `$_`?
$_ = 3; -> $_ is raw { $_ = 4; }(my $x); say $_; #OUTPUT 3 (yay)
# note that we need to use `()` to run the block in these cases
Your contribution is welcome, please make a gist and share via the #raku channel on IRC or Discord.
New Problem Solving Issues
New Doc & Web Pull Requests
- Clarify when BUILD applies default values to attributes David Schultz
- `routine elems`, `routine end` (prev had only method form) Eric Forste
- right-hand side cleanup Will Coleda
- Test that the glossary is sorted Will Coleda
- Add and reference new `."" operator` entry Márton Polgár
- more detail for variable declarators and scope Eric Forste
- Add .WHERE, .DEFINITE and .REPR to list of reserved methods David Schultz
- Lose mention of COMPOSE phaser Will Coleda
- Update modules setup for zef | fez Will Coleda
- Delete mistaken `().are` line Márton Polgár
- In List.rakudoc, clarify wording around the subroutine version of rotor David Schultz
- Fix return type of `match` method Márton Polgár
Core Developments
So far in 2026.01:
-
Improvements:
- Remove meaningless command-line argument “parsetrace” [cff551c8]
- Add infix + – / * candidates for mixed int / num [1b46f713]
- Make -MSIL cleaner by excluding any core BBs [c7e41bd8]
- Test .from-posix versus .from-posix-nanos [f95aefad]
- Add profiling opts (from NQP) [6f087b06]
- Treat .WHERE as a macro, just as .HOW and friends [a0a198dd]
- Give “macro” DEFINITE same treatment as WHO and friends [62927745]
- Give “macro” REPR same treatment as WHO and friends [971b2fa4]
-
Fixes:
- Fix roast test failure caused by 1b46f7135b7776e779 [fbb967b3]
- Rename Test’s exit-ok to exits-ok [24e6ff34]
- MoarVM alignment fix for GCC 15.1/OpenSuse Leap 16 [fb0142fe]
- Fix an inverted logic scenerio for $type_env [3babcc69]
-
RakuAST:
- Fixup handling of =numtable [fcc0e185]
- Allow for =table3 and friends in podification [f3ada07f]
- Prevent execution error if no RakuAST [d1a33cd7]
- Rename =restart to =counter [dc33497f]
- Make rakudoc2text also take a ::CompUnit [81ea8224]
Extracted from the latest Draft Changelog.
Meantime on The Socials
- Fastmail Donates USD 10,000 to The Perl and Raku Foundation by jbz
- @faxmodem made my week with goodies from #fosdem2026 by xcanehan
- localization can support education and digital inclusion for communities by Soeren Eberhardt
New Raku Modules
- mod-div-specs by Elizabeth Mattijsen
Updated Raku Modules
- LibXML::Writer, LibXML by David Warring
- Math::NumberTheory, LLM::Functions by Anton Antonov
- App::samaki by Brian Duggan
- IRC::Client by Elizabeth Mattijsen
- CRDT by Fernando Correa de Oliveira
- Term::Choose by Matthäus Kiem
- Template6 by Various Artistes
Winding down
Unicode, localisation, slangs – it is said that Raku is a braid of DSLs (Domain Specific Languages). There’s something about the democratisation of coding that comes with the gift of being able to code in one’s mother tongue that appeals – and it’s a thorny topic since once the world realises that they can do coding for fun or profit in their preferred language, then the hegemony of English coding will begin to fade.
Please keep staying safe and healthy, and keep up the good work! Even after week 54 of hopefully only 209.
~librasteve
