Writing macros in lisp is straightforward, but providing good error message is much trickier. The Racket docs have an excellent discussion of writing a mylet macro with clear errors that reference which part is wrong: https://docs.racket-lang.org/syntax/stxparse-intro.html
miniblog.
Related Posts
Anthropic used Claude to write a C compiler in Rust (CCC). I've really enjoyed following the discussion.
The initial post shows how they wrote the harness with GCC as an oracle and a prompt specifying a design using SSA. The author has clear domain expertise.
https://www.anthropic.com/engineering/building-c-compiler
Futhark's design is deliberately trying to stay simple to keep long term design sustainable.
The author also has an interesting discussion of relative versus absolute paths in import syntax, and how relative paths can make local analysis easier.
Go has a wonderful, accessible discussion of how it does inlining today, the downsides, and the plans for 1.22: