Subject: bug#67568: closed (Re: bug#67568: Emacs master: Bug in byte compiler when there's an unused parameter.)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 03 Dec 2023 19:26:02 +0000

Your bug report

#67568: Emacs master: Bug in byte compiler when there's an unused parameter.

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
67568: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67568
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#67568: Emacs master: Bug in byte compiler when there's an unused parameter.
From: Stefan Monnier <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked], [email-masked], [email-masked]
Date: Sun, 03 Dec 2023 14:24:44 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

>> 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 <[email-masked]>
    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

Subject: Emacs master: Bug in byte compiler when there's an unused parameter.
From: Alan Mackenzie <[email-masked]>
To: [email-masked]
Date: Fri, 1 Dec 2023 12:49:52 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

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).