TIL eager macro expansion can mean very different things.
Rust macros must expand to valid code, so eager macro expansion allows illegal intermediate states: https://docs.rs/eager/0.1.0/eager/macro.eager.html#macro-expansions
Elisp macros are expanded at runtime unless expansion is eager:
miniblog.
Related Posts
Claude asked me a question today: was I looking for an Emacs plugin (because I was talking about elisp) or a Rust program (because I have configured Rust preferences)?
I'm really impressed, it's rare to see LLMs ask follow-up questions.
(I wanted Emacs in this case.)
tree-sitter-elisp now has basic support for syntax highlighting and generating tags! https://github.com/Wilfred/tree-sitter-elisp
It works surprisingly well and runs very quickly.
One weird consequence of having '() and nil being the same in elisp: the following function is legal:
(defun foo nil 1)
It kinda makes sense, but it does read strangely.

