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

Previous Next

Package: emacs;

Reported by: Daniel Mendler <mail <at> daniel-mendler.de>

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

Severity: normal

Done: Daniel Mendler <mail <at> daniel-mendler.de>

To reply to this bug, email your comments to 77551 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#77551; Package emacs. (Sat, 05 Apr 2025 13:40:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Daniel Mendler <mail <at> daniel-mendler.de>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 05 Apr 2025 13:40:03 GMT) Full text and rfc822 format available.

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

From: Daniel Mendler <mail <at> daniel-mendler.de>
To: Ship Mints <shipmints <at> gmail.com>
Cc: bug-gnu-emacs <at> gnu.org, Stefan Kangas <stefankangas <at> gmail.com>,
 Stefan Monnier <monnier <at> iro.umontreal.ca>
Subject: Re: Regression in macroexpand from a4ec9ca (April 1)
Date: Sat, 05 Apr 2025 15:39:04 +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.

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 Daniel Mendler <mail <at> daniel-mendler.de>:
You have taken responsibility. (Sat, 05 Apr 2025 13:51:01 GMT) Full text and rfc822 format available.

Notification sent to Daniel Mendler <mail <at> daniel-mendler.de>:
bug acknowledged by developer. (Sat, 05 Apr 2025 13:51:02 GMT) Full text and rfc822 format available.

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

From: Daniel Mendler <mail <at> daniel-mendler.de>
To: 77551-done <at> debbugs.gnu.org
Subject: Re: bug#77551: Regression in macroexpand from a4ec9ca (April 1)
Date: Sat, 05 Apr 2025 15:50:06 +0200
Daniel Mendler <mail <at> daniel-mendler.de> writes:

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

The second bug report has been created accidentally. Closing. See
bug#77550 instead.

Daniel




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.