alma
alma copied to clipboard
ALgoloid with MAcros -- a language with Algol-family syntax where macros take center stage
Directly from [Python](https://docs.python.org/3.6/reference/compound_stmts.html#the-with-statement). The idea being that if you do ``` with getSomeObject() -> o { doSomethingWith(o); } ``` Then `o.enter()` runs before the block and `e.exit()` runs after the...
These 41 LoC: https://github.com/masak/alma/blob/7f3d9c76834894a9fb2b768218d5736ffd41350f/ven-walker/walker.alma#L1-L41 shouldn't be needed. If we could just get that information from the individual type objects, that would be much preferable. Rough sketch: you have a type...
Let's say someone wanted to implement a `Range` type in 007. (In a world where #32 is a fact, let's say.) ``` class Range { my minimum; my maximum; }...
* Start from one of the examples * As many times as you want, inject some random code that shouldn't change the meaning of the program. * Such as `if...
They are broken, according to their author. Probably the rename caused that?
Objective: to make sure the conscious-risks code (AKA "007's entire ecosystem") keeps on running even in the face of changes to the language. The two smaller modules should be no...
A lot of the energy in #214 is expended because sometimes we want to assign to something's underlying location. That issue finds a solution in an OO API, allowing us...
Haven't checked this, but I have a _feeling_ the following fails: ``` BEGIN my qs = []; macro moo() { my x; my q = quasi { say(x); }; qs.push(q);...
Because, as soon as we have modules/imports, and as soon as we have some kind of language-extending pragmas, they're going to be _in modules_, modules that we'll want to describe....
While we're still unsure of whether we want to write `walk` directly in Alma or first in Perl 6, these places would probably be good first customers: https://github.com/masak/alma/blob/a31aafc9db8be3a8915178c8dd36be633835d060/lib/Alma/Q.pm6#L728-L794 https://github.com/masak/alma/blob/a31aafc9db8be3a8915178c8dd36be633835d060/lib/Alma/Runtime.pm6#L297-L318 Seems...