GNU bug report logs -
#69533
30.0.50; Wrong byte compilation of a certain apply syntax
Previous Next
Reported by: Michael Heerdegen <michael_heerdegen <at> web.de>
Date: Mon, 4 Mar 2024 01:52:02 UTC
Severity: normal
Found in version 30.0.50
Done: Mattias EngdegÄrd <mattias.engdegard <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #20 received at 69533 <at> debbugs.gnu.org (full text, mbox):
Michael Heerdegen [2024-03-04 06:13 +0100] wrote:
> Michael Heerdegen <bug-gnu-emacs <at> gnu.org> writes:
>
>> (byte-optimize-apply '(apply '(+ 1 2)))
>> ==> (funcall '(+ 1 2) '+ '1 '2) ; Ouch!
>
> I'm adding Mattias to the discussion - he had changed
> `byte-optimize-apply' after this new convention (which I find
> irritating, too) had been introduced.
Just curious: which convention are you referring to, and why do you say
it's new? AFAICT the only recent Emacs version which accepted
(apply '(+ 1 2)) without any complaint is Emacs 28.
> I guess since byte compilation of such forms is (at least partly)
> broken, not many people are actually using it.
FWIW, my guilty pleasure is using this calling convention with
a non-literal form, e.g.:
(define-advice foo (:around (&rest args) my-foo)
(with-something (apply args)))
This has always byte-compiled without issue.
Of course, I'm not married to this convention.
Thanks,
--
Basil
This bug report was last modified 1 year and 162 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.