eval-when-compile a special form (primitive in C), or a macro?
According to the elisp manual,
C-h S eval-when-compile RET,
Special Form: eval-when-compile body...
But according to
C-h f eval-when-compile RET,
eval-when-compile is a Lisp macro in ‘byte-run.el’
I'm trying to understand the difference between
eval-and-compile. They have identical macro definitions in byte-run.el, but since the manual says they're special forms, rather than macros, I suspect there's something I'm missing.