RakuAST Project Final Grant Report
Fri, 18-Apr-2025 by
Saif Ahmed
edit post
Stefan ( [niner](https://github.com/niner) ) has now come to a conclusion of his efforts with [RakuAST](https://news.perlfoundation.org/post/sseifert-rakuas-apr2024). This mammoth task started previously by [Jonathan Worthington](https://jnthn.net/). In the time since his award of the grant, he has made 823 commits to RakuAST, and his overall contribution to Raku in the past couple of years is second only to the very prolific [Elizabeth Mattijsen](https://github.com/lizmat). His contributions can be viewed on [github](https://github.com/rakudo/rakudo/commits?author=niner). It is impossible to describe all his activity with this project, and I imagine it will have taken much more than the 200 hours he had thought it would take in his original application. His [commentary](https://niner.name/blog/rakuast_grant_report/index.html) on the project is available on his own [blog pages](https://niner.name/blog) which also contains other interesting stuff. A summary of key activities can be extracted from [Rakudo Weekly Blogs](https://rakudoweekly.blog/blog-feed/) by Elizabeth, and these are shamelessly reproduced in reverse chronological order with links to the original blog pages, as they are representative of the vast scope of his work : -
#### [2025-12](https://rakudoweekly.blog/2025/03/25/2025-12-red-on-rakuast/)
Stefan Seifert basically concluded [his] work on the Raku bootstrap, with the number of test-files passing equalling the number of passing test-files in the non-bootstrapped Rakudo.
The number of passing test-files with the new Raku grammar are now 141/153 (make test +0) and 1299/1345 (make spectest +20).
#### [2025-11](https://rakudoweekly.blog/2025/03/17/2025-11-cuddlies-for-sale/)
Stefan Seifert fixed a potential segfault in generating object IDs, and an issue with signatures containing multiple slurpies, and an issue with the will trait.
Stefan Seifert started focusing on bootstrapping the new Raku grammar from scratch (whereas until now it assumed there was a working Raku available) as opposed to try fixing errors in roast. This work is available in a branch as of this writing, and the number of passing spectest files in this fully bootstrapped implementation of the Raku Programming Language is now already 1228 (out of 1345, as opposed to 1279 in the non-bootstrapped version). Another major step forward to making RakuAST mainstream!
Stefan Seifert also fixed quite a few issues (and that’s an understatement!) in the non-bootstrapped RakuAST as well.
#### [2025-10](https://rakudoweekly.blog/2025/03/10/2025-10-final-cfp-week/)
Stefan Seifert continued working on RakuAST. The most significant fixes:
* BEGIN time call for non-simple constructs
* support for %?RESOURCES and $?DISTRIBUTION
* blocks as defaults for parameters
* many attribute and package stub issues
* added several warnings
* and many smaller fixes!
#### [2025-09]( https://rakudoweekly.blog/2025/03/03/2025-09-counting-down/)
Stefan Seifert continued working on RakuAST. The most significant fixes:
* operators / terms defined as variables
* return with pair syntax
* several variable visibility issues at BEGIN time
* fixes to ss/// and S//
* several (sub-)signature and generics issues
* binding attributes in method arguments
* several issues related to categoricals
* support <|c> and <|w> assertions in regexes
* several return issues / return value issues
* progress in making require work
* and many, many, many more smaller fixes!
#### [2025-08](https://rakudoweekly.blog/2025/02/24/2025-08-starting-an-avalanche/)
Stefan Seifert continued working on RakuAST. The most significant fixes:
* non-trivial lazy loops
* allow declaration of $_ in loops and other loop related fixes
* handling labels with loop structures
* a large number of regex related features, such as fixing LTM (Longest Token Match) matching and interpolation of attributes in regexes
* exceptions thrown in CHECK phasers
* support added for tr/// and TR///
* better handling of subroutine stubs
* and many, many more smaller fixes!
#### [2025-07](https://rakudoweekly.blog/2025/02/17/2025-07-unexpected-quora/)
* pointy blocks with loop modifiers
* quite a lot of (nested) thunk / block related issues
* post constraints on non-subset type parameters
* exceptions in .ACCEPTS at compile time
* fixed implicits such &?ROUTINE in methods
* fixed labels on lazy loops
* several regex related issues
* and many more smaller fixes!
#### [2024-36](https://rakudoweekly.blog/2024/09/02/2024-36-on-top/)
Stefan Seifert continued working on RakuAST and fixed some more issues with the phasers, multi-part named roles, language versions, where clauses on subsets and much more!
#### [2024-35](https://rakudoweekly.blog/2024/08/26/2024-35-cro-%f0%9f%92%8d-htmx/)
Stefan Seifert continued working on RakuAST and fixed issues with the will trait, CHECK phasers, the use variables pragma, multi regexes and much more!
#### [2024-34](https://rakudoweekly.blog/2024/08/19/2024-34-steaming-ahead/)
Stefan Seifert continued working on RakuAST and produced more than 50 commits, fixing all of the remaining S03 tests and other issues.
#### [2024-33](https://rakudoweekly.blog/2024/08/12/2024-33-p6c-ending/)
Stefan Seifert changed the behaviour of throws-like (for the better) in light of compilation errors.
Stefan Seifert continued working on RakuAST, fixing: error messages, operator properties on custom operators, several meta-operator and hypering issues, dispatch using .?, .+ and .*, adverbs on infixes, and more.
#### [2024-32](https://rakudoweekly.blog/2024/08/05/2024-32-de-python/)
Stefan Seifert returned to RakuAST development and completed the work on the branch that took a new approach to compile time actions (really a GBR aka Great BEGIN Refactor). A branch that was started by Jonathan Worthington over a year ago. Stefan continued from there by fixing use fatal.
Comments (0)