Subject: bug#20241: 25.0.50; `setq' with only one argument

From: John Wiegley <[email-masked]>
Date: Wed, 25 Nov 2015 11:06:30 -0800

>>>>> Drew Adams <[email-masked]> writes:

> My preference for the compiler is to (a) let you know there are syntax
> problems, and where they are, and (b) generate code that acts the same as
> the interpreted code: in this case, raise a runtime error.

Let's take a different case as a behavorial example:

  The code: (funcall)

  Interpreted: Raises an error: eval: Wrong number of arguments: funcall, 0

  Byte-compilation: No warnings or errors printed.

  Loading of .elc: Raises an error: load: Wrong number of arguments: funcall, 0

I think that we should be consistent in our behavior. Mis-using Emacs Lisp is
not a reason to fail to byte-compile, even if it is a reason for it to fail to
evaluate or load.

A separate argument could be made that bad code shouldn't compile, but that's
orthogonal to this discussion, and too big a pill to swallow for 25.1.

John