Alma is a small language created as a testbed for Perl 6 macros. Its goal as a language is to inform the implementation of macros in Perl 6, by means of being a faster-moving code base and easier to iterate on towards good solutions.
Rakudo already contains a rudimentary implementation of macros, but at this point the most mature macro implementation for Perl 6 is embodied in Alma.
Alma was previously known as "007", in reference to the "Q" data structure which represents program fragments.
If you're just planning to be a Alma end user, zef
is the recommended way to
install Alma:
zef install alma
(If you want to install from source, see the documentation.)
Now this should work:
$ alma -e='say("OH HAI")'
OH HAI
$ alma examples/format.alma
abracadabra
foo{1}bar
Alma is currently in development.
The explicit goal is to reach some level of feature completeness for macros in Alma, and then to backport that solution to Rakudo.
- Documentation (🔧 under construction 🔧 )
- examples/ directory
- The Roadmap outlines short- and long-term goals of the Alma project
To learn more about macros:
- Hague grant application: Implementation of Macros in Rakudo
- Macros progress report: after a long break
- Macros: what the FAQ are they?
To learn more about Alma:
- Double oh seven blog post
- Has it been three years? blog post
- This README.md used to contain a pastiche of the cold open in Casino Royale (2006), which was entertaining for some and confusing for others