Carl Mäsak

Results 229 issues of Carl Mäsak

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...

currently-needs-more-design

The phases being something like this: +-----+ +------+ +-----+ +--------+ +-------+ |parse||mk AST|->|CHECK|->|optimize|->|codegen| +-----+ +------+ +-----+ +--------+ +-------+ * Regular macros intercept the `mk AST` phase * `is parsed` macros...

documentation

This file is a contrived example, meant to highlight the fact that, even though eight lines of code are printed, only four macro calls are made. I have no idea...

Something like `H(50)` could be either a `prefix:` applied to a `50` (with superstitious parentheses), or a function call to a function `H` with one argument `50`. We kind of...

defect

We're talking about this situation, as seen in #214: quasi { {{{it}}} = {{{it}}} * 2; } The same comment in that issue also coins the *Single Evaluation Rule*: if...

enhancement

Very belatedly, I now think that `get`, `set`, and `has` should maybe all live on `Object` `Dict` instead, as static methods. The hand-wavy reason is that they are "infrastructure" (with...

Currently, `examples/swap.007` is implemented like this: ``` macro swap(a, b) { return quasi { my t = {{{a}}}; {{{a}}} = {{{b}}}; {{{b}}} = t; }; } ``` That's insufficient, because...

currently-needs-more-design
new feature

In a module, of course. :wink: (Added to #401.) ``` import syntax.stmt.goto; RETRY: my name = prompt("Enter your name: "); if !isValid(name) { goto RETRY; } ``` The extent of...

macro idea
currently-blocked
new feature

TravisCI is no longer freely (as-in-beer) available. Let's switch this project to GitHub actions, as we've done with [many](https://github.com/masak/bel/pull/279) [others](https://github.com/masak/taocp/pull/41).