alma
alma copied to clipboard
ALgoloid with MAcros -- a language with Algol-family syntax where macros take center stage
Consider this code: ``` my rows = [ ["food", "pie"], ["food", "lasagna"], ["food", "soup"], ["philosophy", "existentialism"], ["philosophy", "stoicism"], ]; for rows -> row { my category = row[0]; my name...
I see no need for an `our` declarator in 007 — we went a different path with modules and exports — but `state` would be quite useful, to indicate that...
I'm thinking of a loop like this: my dataStructure = ...; my stillChanging = True; while stillChanging { stillChanging = False; # ...logic... if ... { dataStructure = ...; stillChanging...
[Hacker News wants unquotes](https://news.ycombinator.com/item?id=10326221). We happily oblige. ## Unquotes in expressions Whenever the parser is ready to parse a term, it should also expect an unquote. ``` quasi { say("Mr...
I've concluded that Python has this one exactly right. $ python3 Python 3.4.3 (default, Nov 17 2016, 01:08:31) >>> class D: ... def foo(self): ... print("Hi, I'm object {}".format(self)) ......
Unquotes aren't a type of AST node. They're a type of nothing, an un-thing, a nonexistence, like [Dementors](http://www.hpmor.com/chapter/45) or [The Nothing](https://en.wikipedia.org/wiki/The_Neverending_Story) or [whatever's outside the wall in Mario Kart](https://steve-yegge.blogspot.com/2008/12/programmers-view-of-universe-part-2.html). The...
Just realized in #567 that `unquote` (the alternative `{{{ }}}` syntax) supports nested unquotes, and that we don't have test coverage for that _at all_. We should add at least...
I was just reading details of [how Istanbul.js instruments source code to emit coverage information on a side channel](https://github.com/istanbuljs/istanbuljs/blob/1b52fe750d1f800c34dbff168614c0c73bd76026/packages/istanbul-lib-instrument/src/visitor.js), and it's pretty fascinating. (That file details how to go through...
Haxe's way of [injecting fields into classes](https://haxe.org/manual/macro-type-building.html) at class building time reminded me of a thing I was wondering about years ago, but never opened an issue for: if you...
The phases being something like this: +-----+ +------+ +-----+ +--------+ +-------+ |parse||mk AST|->|CHECK|->|optimize|->|codegen| +-----+ +------+ +-----+ +--------+ +-------+ * Regular macros intercept the `mk AST` phase * `is parsed` macros...