This is late, and it seems like this proposal should have an official revision, but for posterity:
- What is your evaluation of the proposal?
nil
, as this proposal has far reaching impact that is impossible to assess without full development flow integration.
-1 as proposed due to no guarantee of said flow integration. As is, this proposal seems to introduce APIs that are rather hard to build and impossible to debug.
- Is the problem being addressed significant enough to warrant a change to Swift?
Given the motivation for the proposal seems to be "we should have expression macros", it, of course, addresses that problem. However, the larger, implicit issue of, some expressions can't be built in Swift may or may not be a problem. It doesn't seem to be a problem, per se. At most it's a missing feature with a variety of solutions. I would say some types of expressions are probably desirable to be expressed directly in code, but not all, so all I can say here is "maybe, ".
There are probably better solutions for the vast majority of examples provided in this thread, including more limited versions of compile time evaluation.
- Does this proposal fit well with the feel and direction of Swift?
In that result builders are precedent for enabling special language modes in Swift, perhaps, but overall I don't think macros fit well in Swift's previously espoused goals, at least at a high level. Given a macro's rather impenetrable nature, especially now, they're basically magic that can be introduced from any package. Is progressive disclosure really just "accept the magic until you want to learn about it"?
- If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?
I haven't used modern macros from Rust. I still have nightmares about Obj-C codebases that used C macros extensively. These are different and much better in many ways, but worse in others (textual macros were easily inspectable and could be reasoned about, if only because macro authors needed to reason about them in the same way).
- How much effort did you put into your review? A glance, a quick reading, or an in-depth study?
Can't say I have expertise here but I did try to read the pitch and proposal and tried the example repo. It was largely inscrutable given there's no documentation and no tooling help, as well as no debugger, so it doesn't seem super useful for anyone who isn't already intimately familiar with SwiftSyntax.