GNU bug report logs -
#42919
27.1; Strange byte compile error with `cond' involving cons
Previous Next
Reported by: Ikumi Keita <ikumi <at> ikumi.que.jp>
Date: Tue, 18 Aug 2020 19:01:01 UTC
Severity: important
Tags: confirmed
Found in version 27.1
Done: Mattias Engdegård <mattiase <at> acm.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 42919 in the body.
You can then email your comments to 42919 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#42919
; Package
emacs
.
(Tue, 18 Aug 2020 19:01:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Ikumi Keita <ikumi <at> ikumi.que.jp>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Tue, 18 Aug 2020 19:01:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
I encountered a strange byte compile error with simple elisp code.
[How to reproduce]
1. Save the following file as /tmp/foo.el:
--- /tmp/foo.el ----------------------------
(defun xyz (arg)
(cond
; ((member '("image") arg) ; OK
; ((member '(rel "image") arg) ; OK
; ((remove '(rel . "image") arg) ; OK
; ((memq '(rel . "image") arg) ; NG
((member '(rel . "image") arg) ; NG
1)))
--------------------------------------------
2. emacs-27.1 -Q
3. M-x byte-compile-file /tmp/foo.el RET
4. Then byte compile fails with the following error:
Compiling file /tmp/foo.el at Wed Aug 19 03:38:06 2020
Entering directory ‘/tmp/’
foo.el:1:13:Error: Wrong type argument: listp, "image"
in *Compile-Log* buffer. I don't see foo.elc in /tmp after that.
Expected result is that byte compile finishes without error and foo.elc
is generated.
[Additional info]
a. As written in the above code, only cons (rel . "image") causes this
error. Both lists (rel "image") and ("image") are OK.
b. As written in the above code, both `member' and `memq' fail while
`remove' succeeds.
c. Emacs 26.3 works as expected.
Regards,
Ikumi Keita
In GNU Emacs 27.1 (build 1, x86_64-unknown-freebsd12.1, GTK+ Version 3.24.20)
of 2020-08-19 built on freebsd.vmware
Windowing system distributor 'The X.Org Foundation', version 11.0.12008000
System Description: 12.1-RELEASE-p8
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Compiling /tmp/foo.el... (xyz)
You can run the command ‘byte-compile-file’ with M-x by-c RET
Compiling /tmp/foo.el... (xyz)
Mark set
next-line: End of buffer [2 times]
Mark set
Making completion list...
Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND DBUS GSETTINGS GLIB NOTIFY KQUEUE ACL
GNUTLS LIBXML2 FREETYPE HARFBUZZ XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11
XDBE XIM MODULES THREADS JSON PDUMPER LCMS2 GMP
Important settings:
value of $EMACSLOADPATH: /home/keita/elisp:
value of $LANG: C
locale-coding-system: nil
Major mode: Emacs-Lisp
Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
buffer-read-only: t
line-number-mode: t
transient-mark-mode: t
Load-path shadows:
/home/keita/elisp/reftex-parse hides /home/keita/scr/emacs-27.1/lisp/textmodes/reftex-parse
Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
format-spec rfc822 mml easymenu mml-sec password-cache epa derived epg
epg-config gnus-util rmail rmail-loaddefs text-property-search seq gv
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils time-date subr-x cl-loaddefs cl-lib warnings byte-opt compile
comint ansi-color ring bytecomp byte-compile cconv tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win
x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads dbusbind kqueue lcms2 dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)
Memory information:
((conses 16 51013 10241)
(symbols 48 6580 1)
(strings 32 16915 1623)
(string-bytes 1 565681)
(vectors 16 10152)
(vector-slots 8 141502 12592)
(floats 8 25 119)
(intervals 56 304 125)
(buffers 1000 16))
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#42919
; Package
emacs
.
(Tue, 18 Aug 2020 22:46:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 42919 <at> debbugs.gnu.org (full text, mbox):
severity 42919 important
tags 42919 + confirmed
quit
Ikumi Keita <ikumi <at> ikumi.que.jp> writes:
> I encountered a strange byte compile error with simple elisp code.
>
> [How to reproduce]
> 1. Save the following file as /tmp/foo.el:
> --- /tmp/foo.el ----------------------------
> (defun xyz (arg)
> (cond
> ; ((member '("image") arg) ; OK
> ; ((member '(rel "image") arg) ; OK
> ; ((remove '(rel . "image") arg) ; OK
> ; ((memq '(rel . "image") arg) ; NG
> ((member '(rel . "image") arg) ; NG
> 1)))
> --------------------------------------------
> 2. emacs-27.1 -Q
> 3. M-x byte-compile-file /tmp/foo.el RET
> 4. Then byte compile fails with the following error:
> Compiling file /tmp/foo.el at Wed Aug 19 03:38:06 2020
> Entering directory ‘/tmp/’
> foo.el:1:13:Error: Wrong type argument: listp, "image"
> in *Compile-Log* buffer. I don't see foo.elc in /tmp after that.
> Expected result is that byte compile finishes without error and foo.elc
> is generated.
>
> [Additional info]
> a. As written in the above code, only cons (rel . "image") causes this
> error. Both lists (rel "image") and ("image") are OK.
> b. As written in the above code, both `member' and `memq' fail while
> `remove' succeeds.
> c. Emacs 26.3 works as expected.
Thanks, bisected to the following commit:
Compile list member functions in cond to switch (bug#36139)
36ab408207 2019-06-19 11:20:58 +0200
https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=36ab408207d7adf94fd1396922e0df38d746a948
--
Basil
Severity set to 'important' from 'normal'
Request was from
"Basil L. Contovounesios" <contovob <at> tcd.ie>
to
control <at> debbugs.gnu.org
.
(Tue, 18 Aug 2020 22:46:02 GMT)
Full text and
rfc822 format available.
Added tag(s) confirmed.
Request was from
"Basil L. Contovounesios" <contovob <at> tcd.ie>
to
control <at> debbugs.gnu.org
.
(Tue, 18 Aug 2020 22:46:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#42919
; Package
emacs
.
(Wed, 19 Aug 2020 09:16:01 GMT)
Full text and
rfc822 format available.
Message #15 received at 42919 <at> debbugs.gnu.org (full text, mbox):
Thank you for the excellent report! I know what is wrong; will fix immediately.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#42919
; Package
emacs
.
(Wed, 19 Aug 2020 13:30:02 GMT)
Full text and
rfc822 format available.
Message #18 received at 42919 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
I'm so sorry about this stupid error, and am very grateful that you found it.
Would you try this patch (applicable to Emacs 27.1)?
[0001-Fix-cond-jump-table-compilation-bug-42919.patch (application/octet-stream, attachment)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#42919
; Package
emacs
.
(Wed, 19 Aug 2020 13:58:02 GMT)
Full text and
rfc822 format available.
Message #21 received at 42919 <at> debbugs.gnu.org (full text, mbox):
Hi Mattias,
>>>>> Mattias Engdegård <mattiase <at> acm.org> writes:
> I'm so sorry about this stupid error, and am very grateful that you found it.
> Would you try this patch (applicable to Emacs 27.1)?
Thanks, it now runs as expected! :-)
Regards,
Ikumi Keita
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#42919
; Package
emacs
.
(Wed, 19 Aug 2020 14:42:01 GMT)
Full text and
rfc822 format available.
Message #24 received at 42919 <at> debbugs.gnu.org (full text, mbox):
19 aug. 2020 kl. 15.57 skrev Ikumi Keita <ikumi <at> ikumi.que.jp>:
> Thanks, it now runs as expected! :-)
Good with such a speedy confirmation! Since it will go into the release branch, I'll just wait for Stefan to say that it doesn't look completely bonkers before pushing.
Reply sent
to
Mattias Engdegård <mattiase <at> acm.org>
:
You have taken responsibility.
(Wed, 19 Aug 2020 17:20:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Ikumi Keita <ikumi <at> ikumi.que.jp>
:
bug acknowledged by developer.
(Wed, 19 Aug 2020 17:20:02 GMT)
Full text and
rfc822 format available.
Message #29 received at 42919-done <at> debbugs.gnu.org (full text, mbox):
Pushed to emacs-27; closing.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Thu, 17 Sep 2020 11:24:05 GMT)
Full text and
rfc822 format available.
This bug report was last modified 4 years and 335 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.