From: Drew Adams <drew.adams@oracle.com>
To: John Wiegley <jwiegley@gmail.com>
Cc: Alan Mackenzie <acm@muc.de>,
20241@debbugs.gnu.org,
Artur Malabarba <bruce.connor.am@gmail.com>
Subject: bug#20241: 25.0.50; `setq' with only one argument
Date: Wed, 25 Nov 2015 11:22:31 -0800 (PST) [thread overview]
Message-ID: <6802dd57-972f-4053-b044-597592a74ba3@default> (raw)
In-Reply-To: <m2a8q1gaq1.fsf@newartisans.com>
> > 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.
I think we are agreeing, unless I'm missing something (?).
In the case of `funcall', which is a function, the byte-compiler
could conceivably, in some cases, point out a syntax error that
a missing FUNCTION arg is required for `funcall'.
It could not point that out in all cases. For example:
(apply #'funcall (some-sexp)), might end up applying `funcall' to
(). But in many cases it could find syntax errors of this kind.
`setq' is not a function (you cannot pass `setq' to `apply'), so
it is generally easier to check its syntax.
Whatever problems the byte-compiler finds and reports are welcome,
but the mere fact of reporting problems does not obviate the need
for runtime errors when incorrect syntax is used.
And certainly byte-compilation should not try to "correct" code
(any more than the interpreter should) by, for example, implicitly
providing a nil arg for `setq'. That's just plain wrong, IMO.
next prev parent reply other threads:[~2015-11-25 19:22 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-01 14:53 bug#20241: 25.0.50; `setq' with only one argument Drew Adams
2015-04-01 16:41 ` Stefan Monnier
[not found] ` <mailman.3138.1427900048.31049.bug-gnu-emacs@gnu.org>
2015-11-23 14:31 ` Alan Mackenzie
2015-11-23 18:44 ` Glenn Morris
2015-11-23 18:54 ` Glenn Morris
2015-11-23 22:05 ` John Wiegley
2015-11-23 19:31 ` Alan Mackenzie
2015-11-24 11:32 ` Alan Mackenzie
2015-11-24 17:38 ` Glenn Morris
2015-11-24 18:04 ` Alan Mackenzie
2015-11-24 19:26 ` Artur Malabarba
2015-11-24 21:09 ` Alan Mackenzie
2015-11-25 1:46 ` John Wiegley
2015-11-25 9:41 ` Alan Mackenzie
2015-11-25 10:36 ` Artur Malabarba
2015-11-25 11:07 ` Alan Mackenzie
2015-11-25 11:13 ` Artur Malabarba
2015-11-25 11:28 ` Alan Mackenzie
2015-11-25 15:18 ` Drew Adams
2015-11-25 15:40 ` Alan Mackenzie
2015-11-25 16:27 ` Drew Adams
2015-11-25 17:22 ` Alan Mackenzie
2015-11-25 18:28 ` Drew Adams
2015-11-25 19:06 ` John Wiegley
2015-11-25 19:21 ` John Mastro
2015-11-25 19:22 ` Drew Adams [this message]
2015-11-25 19:34 ` Artur Malabarba
2015-11-25 19:40 ` John Wiegley
2015-11-25 20:20 ` Artur Malabarba
2015-11-25 20:37 ` John Wiegley
2015-11-26 11:07 ` Alan Mackenzie
2015-11-25 20:58 ` Alan Mackenzie
2015-11-25 21:19 ` Drew Adams
2015-11-25 21:52 ` John Wiegley
2015-11-26 0:21 ` Johan Bockgård
2015-11-26 8:58 ` Andreas Schwab
2015-11-26 12:06 ` Alan Mackenzie
2015-11-26 16:38 ` Artur Malabarba
2015-11-26 21:19 ` Alan Mackenzie
2015-11-27 0:07 ` Artur Malabarba
2015-11-25 13:11 ` Nicolas Richard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6802dd57-972f-4053-b044-597592a74ba3@default \
--to=drew.adams@oracle.com \
--cc=20241@debbugs.gnu.org \
--cc=acm@muc.de \
--cc=bruce.connor.am@gmail.com \
--cc=jwiegley@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.