alma
alma copied to clipboard
ALgoloid with MAcros -- a language with Algol-family syntax where macros take center stage
Even in the 007 test suite, we have a couple of text-based tests that could be AST-based if only there were a good enough AST format for Perl 6. I...
In the action method `term:identifier`, there's this wonderful piece of code: ``` my $name = $.Str; if !$*runtime.declared($name) { my $frame = $*runtime.current-frame; $*parser.postpone: sub checking-postdeclared { my $value =...
I'm thinking we first do this one behind a feature flag, then (when we have modules) as a pragma that flips on the feature flag, and finally as a pure-007...
Last time I looked at Rust, they had a `try!` macro for this, but now they have [a `?` postfix operator](https://doc.rust-lang.org/edition-guide/rust-2018/error-handling-and-panics/the-question-mark-operator-for-easier-error-handling.html); if "postfix" isn't stretching the terminology a bit here....
I would like to be able to provide `next`, `last`, and `redo` in loops as statement macros. But I would also like the underlying mechanism that they lean upon to...
It's a [stage 2 proposal](https://github.com/tc39/proposal-record-tuple/) that introduces the syntaxes `#[...]` and `#{ ... }` for deeply immutable containers, that are only allowed to recursively contain primitives, records, and tuples.
Let's try to make a dent in syntax macros [as envisioned here](https://gist.github.com/masak/13210c51f034f931af0c#syntax-macros). By implementing this bit, 007 would have something macro-wise that Perl 6 definitely doesn't have yet! I was...
`loop` as in Perl 6's keyword: loop { # forever # ... } loop (my i = 0; i < 100; i = i + 1) { # looping like...
I keep coming up with new simple-ish macros to define. This one would also be an excellent specimen in `examples/`, and not too far-fetched in the short term, either. I...
Can't believe I haven't been missing this one in 007 yet. We follow Perl 6's semantics for this one, that is, the operator is _list associative_, _short-circuiting_, and iff _exactly_...