--- Begin Message ---
Subject: |
Emacs master: Bug in byte compiler when there's an unused parameter. |
Date: |
Fri, 1 Dec 2023 12:49:52 +0000 |
Hello, Emacs.
On a recent Emacs master:
(i) emacs -Q
(ii) In *scratch* enter the following:
(byte-compile (lambda (x) "doc" "foo"))
.
(iii) Enter C-u C-x C-e to evaluate the form. The result looks like:
#[257 "\300\207" [nil] 2 "doc
(fn X)"]
. This is incorrect. The only form in the constants vector is nil.
It should be "foo".
(iv) Note that this only happens with the unused parameter x. Without
it, the form compiles correctly.
--
Alan Mackenzie (Nuremberg, Germany).
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#67568: Emacs master: Bug in byte compiler when there's an unused parameter. |
Date: |
Sun, 03 Dec 2023 14:24:44 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
>> I'm wondering whether it should go to `emacs-29` or to `master`.
>> I'm leaning toward `emacs-29` because it's rather embarrassing (and
>> perplexing for the user) and the patch is simple.
>> Eli? Stefan?
> No objections from me.
It turns out the bug is not present in `emacs-29`, it was introduced on
master by:
commit f616edb4ccce5b9d60e3ff42806bd2131989cd1e
Author: Mattias EngdegÄrd <mattiase@acm.org>
Date: Mon Sep 25 14:40:11 2023 +0200
macroexp-parse-body: correct parsing of empty body (bug#66136)
* lisp/emacs-lisp/macroexp.el (macroexp-parse-body):
Return an empty body even when there are declarations present.
Previously, the last declaration was considered part of the body,
which is only correct if the input consists of a single string.
Reported by Jens Schmidt.
So I pushed a better fix, on master.
Stefan
--- End Message ---