Dan Kogai‘s contributions to Raku have not been many but were valued very much. After 10 years they returned and provided some nice additions to the Raku programming Language: first of all, support for hex-floats (floating point values expressed in hexadecimal format, optionally without loss of precision). So now you can say 0x1.5p+5 to get 42e0. Then Dan also implemented support for the %a and %A formats in sprintf, so now you can say sprintf("%a", 42) to get 0x1.5p+5! Admittedly 11 years later than Perl, but still!
Additionally, Dan has expanded on an idea first published in 2018: SION, a serialization format a little more expressive than JSON. And also implemented a SION support in a Raku module. Cool stuff!
Anton’s Corner
Anton Antonov wrote a blog post about their new WWW::OpenRouter module in: Raku API access to OpenRouter, giving access to the Unified Interface For LLMs.
Andrew’s Corner
Andrew Shitov wondered whether you could join an editor with a playground in a live manner. Check out their cool working space for the result (/r/rakulang)!
John’s Corner
John Haltiwanger elaborates on the use of -n command line argument in Raku in: Shelling in Raku: -ne is unequaled for log lines, the magic of $ (the anonymous state variable) and notes that it is to provide genuinely comprehensive explanations in blog posts about Raku!
Tim’s Corner
Tim Nelson provides the reasons to improve programming languages in an age of AI, in summary:
- Improve the language so that good solutions are short, checkable, and hard to get slightly wrong.
- Teach humans the new structures so they can specify, recognise, and insist on those solutions when AI drafts the code.
Weeklies
Weekly Challenge #386 is available for your perusal.
New Pull Requests
- Fix lookbehind for patterns that cannot be flipped
- RakuAST: Make using a Perl 5 regex a compile time error
- RakuAST: do not import EXPORTHOW from a loaded unit’s GLOBALish
Core Developments
- Daniel Green increased nursery size x 4, which apparently helps with performance at the expense of (hopefully) only a little more memory usage
- Neil Pang added Dragonfly BSD CI testing to MoarVM.
- Nick Logan fixed a register allocation issue in NQP, made
.splitand.transhonor capture markers, fixed a dispatch issue withsubsets, and fixed many, many other issues in both the legacy backend as well as on the RakuAST backend. - Dan Kogai added the
%a/%Aformats (for C99 hex float representation) tosprintf, and added support C99 hex float literals (such as0x1.8p+1). - Elizabeth Mattijsen removed the undocumented and deprecated
gethostnamesubroutine.
Meanwhile on BlueSky
- Not a fish by Wendy van Dijk.
Meanwhile on Mastodon
- Writing a gitlab/gitea alternative by Alexey.
- On MoarVM’s activation records by Timo Paulssen.
- Not a creature of the sea by Wendy van Dijk.
Meanwhile on the mailing list
- The Raku Foundation by Elizabeth Mattijsen.
Comments about Raku
- No RCRE anytime soon by GuB-42.
New Raku Modules
- NotoFonts-OT “Provides routines for using the Google Noto fonts in OpenType format” by Tom Browder.
- Syndicate “Syndication feed parser and generator” by Sasha Abbott.
- Email::MessageID “Generate world unique message-ids” by Elizabeth Mattijsen.
- Image::Draft::Review “Model and review constrained image-draft briefs with deterministic Raku checks” by Martyn Foster.
- SION “SION, a serialization format a little more expressive than JSON” by Dan Kogai.
- Compress::LZString “Compression using the lz-string algorithm” by Brian Duggan.
- Image::Reference::Audit “Audit multi-reference image briefs for missing roles and conflicting constraints” by Martyn Foster.
- Markdown::Lex “A total, streaming-tolerant Markdown lexer”, by Matt Doughty.
- MCP::Server::Tool::Ask “Ask-the-user tool for MCP::Server, built on server-side elicitation” by Matt Doughty.
- MCP::Server::Tool::FileSystem “Root-confined filesystem tools for MCP::Server” by Matt Doughty.
- LLM::Agent “A streaming agent loop” by Matt Doughty.
Updated Raku Modules
- Node::Ethereum::KeyStore::V3, Node::Ethereum::KZG, Bitcoin::Core::Secp256k1 by Konstantin Narkhov.
- GUI::Editors by Grizzly Smit.
- Sys::Hostname, DateTime::strftime, Testo, FINALIZER by Elizabeth Mattijsen.
- MCP::Server, JSONL, LLM::Chat, MCP::Client, MCP::Server::Tool::Shell, LLM::Data::Inference, LLM::Chat by Matt Doughty.
- App::samaki by Brian Duggan.
- Qwiratry by Tim Nelson.
- OpenSSL, Benchy, overload::constant, CompUnit::Util by Nick Logan.
- ORM::ActiveRecord by Greg Donald.
- PDF::Native by David Warring.
Winding down
Just another week with nice crop of blog posts, new/updated modules, core developments and a new data interchange format!
Please keep staying safe and healthy, and keep up the good work! Even after week 81 of hopefully only 209.
Meanwhile, still: Слава Україні! Героям слава!
If you like what I’m doing, committing to a small sponsorship would mean a great deal!
