We had some great discussion in the pitch on declaration macros. One of the things we realized in the discussion is that there is a big difference between "freestanding" and "attached" macros. I've pulled some discussion of that difference into the updated proposed vision, and am opening up different topics for the two.
This thread is about "freestanding" macros, which is a generalization of expression macros. Examples include subsuming
#error, as well as introducing other code-generation facilities that aren't associated with any particular declaration.
Here is the full freestanding macros proposal. The prototype implementation is coming along but isn't really ready for much yet.