Macros where you have to specify a var name are really clean. They have few hygiene issues, and work with both lexical and dynamic binding!
miniblog.
Related Posts
C# has an interesting concept of second-class macros called Source Generators: https://devblogs.microsoft.com/dotnet/introducing-c-source-generators/
You can generate additional code at build time, but you can't transform existing expressions (unlike normal macros), so it's more amenable to tooling.
Linux historically used magic numbers to recognise structs being used incorrectly with void pointers. These have been increasingly replaced with type-safe macros: https://lwn.net/SubscriberLink/915163/ba83480903b82cb8/
Some of the original files were unchanged from the 90s!
Are there any noteworthy lisp dialects that don't have macros?
Macros aren't obligatory, but I'm struggling to think of any good lisp examples that lack them.
