GNU bug report logs - #77550
Regression in macroexpand from a4ec9ca (April 1)

Previous Next

Package: emacs;

Reported by: Ship Mints <shipmints <at> gmail.com>

Date: Sat, 5 Apr 2025 13:25:02 UTC

Severity: normal

Done: Sean Whitton <spwhitton <at> spwhitton.name>

To reply to this bug, email your comments to 77550 AT debbugs.gnu.org.
There is no need to reopen the bug first.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#77550; Package emacs. (Sat, 05 Apr 2025 13:25:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ship Mints <shipmints <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 05 Apr 2025 13:25:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ship Mints <shipmints <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Cc: Daniel Mendler <mail <at> daniel-mendler.de>
Subject: Regression in macroexpand from a4ec9ca (April 1)
Date: Sat, 5 Apr 2025 09:23:41 -0400
[Message part 1 (text/plain, inline)]
Below found in the wild expanding a macro from Daniel's marginalia package.

Emacs 30
(macroexpand-all '(foo bar)) -> (foo bar)
(macroexpand-all '((foo) bar)) -> ((foo) bar)

master
(macroexpand-all '(foo bar)) -> (foo bar)
(macroexpand-all '((foo) bar)) -> signals an error

Debugger entered--Lisp error: (wrong-type-argument symbolp (foo))
  signal(wrong-type-argument (symbolp (foo)))
  function-get((foo) compiler-macro)

Whether this is an intended or unintended consequence, I can't say, not
being a macro expert.

-Stephane (and Daniel)
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#77550; Package emacs. (Sat, 05 Apr 2025 13:46:02 GMT) Full text and rfc822 format available.

Message #8 received at 77550 <at> debbugs.gnu.org (full text, mbox):

From: Daniel Mendler <mail <at> daniel-mendler.de>
To: Ship Mints <shipmints <at> gmail.com>
Cc: 77550 <at> debbugs.gnu.org
Subject: Re: bug#77550: Regression in macroexpand from a4ec9ca (April 1)
Date: Sat, 05 Apr 2025 15:45:16 +0200
Ship Mints <shipmints <at> gmail.com> writes:

> Below found in the wild expanding a macro from Daniel's marginalia package.
>
> Emacs 30
> (macroexpand-all '(foo bar)) -> (foo bar)
> (macroexpand-all '((foo) bar)) -> ((foo) bar)
>
> master
> (macroexpand-all '(foo bar)) -> (foo bar)
> (macroexpand-all '((foo) bar)) -> signals an error
>
> Debugger entered--Lisp error: (wrong-type-argument symbolp (foo))
>   signal(wrong-type-argument (symbolp (foo)))
>   function-get((foo) compiler-macro)
>
> Whether this is an intended or unintended consequence, I can't say, not
> being a macro expert.
>
> -Stephane (and Daniel)

To give some context - `function-get' and `function-put' have recently
been changed to signal an error on non-symbol arguments in commit
4ec9ca12969018cdf15b8cc713b3ba054326f99 by Stefan Kangas. The problem is
that the macro expander calls `function-get' on arbitrary values in
function position.

Daniel




Reply sent to Sean Whitton <spwhitton <at> spwhitton.name>:
You have taken responsibility. (Sat, 05 Apr 2025 23:33:01 GMT) Full text and rfc822 format available.

Notification sent to Ship Mints <shipmints <at> gmail.com>:
bug acknowledged by developer. (Sat, 05 Apr 2025 23:33:02 GMT) Full text and rfc822 format available.

Message #13 received at 77550-done <at> debbugs.gnu.org (full text, mbox):

From: Sean Whitton <spwhitton <at> spwhitton.name>
To: Ship Mints <shipmints <at> gmail.com>, Alan Mackenzie <acm <at> muc.de>
Cc: Daniel Mendler <mail <at> daniel-mendler.de>, 77550-done <at> debbugs.gnu.org
Subject: Re: bug#77550: Regression in macroexpand from a4ec9ca (April 1)
Date: Sun, 06 Apr 2025 07:32:15 +0800
Hello,

Thanks to Alan for the fix -- installed.

-- 
Sean Whitton




This bug report was last modified 7 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.