Subject: RE: [External] : Re: bug#47862: 26.3; (elisp) `Eval During Compile'

From: Drew Adams <[email-masked]>
Date: Sun, 18 Apr 2021 15:20:07 +0000

> Could we instead redefine "special form" to mean "any form that
> doesn't evaluate its arguments like a function does, no matter whether
> it's implemented in C or as an ELisp macro"? It normally doesn't
> matter for users how such forms are implemented.

No, please don't.  Both macro and special form have
established meanings in Emacs.

And neither necessarily does not evaluate its args.
It's incorrect to give the impression that that's
the case.

What's the case is that neither necessarily evals
its args - any or all of its args, and if it does
evaluate any args it doesn't necessarily eval them
in any particular order.

A macro should be referred to in the doc as a macro.
A special form isn't implemented as a macro, and it
should be referred to in the doc as a special form.

Beyond that, we should not be calling `foo' a macro
in some help (e.g. doc string) and calling it a
special form in other help (e.g. Elisp manual).