GNU bug report logs -
#46812
28.0.50; [native-comp] (lambda (x) (if (= x 0.0) (floatp x) (error ""))) miscompiled
Previous Next
Reported by: Pip Cet <pipcet <at> gmail.com>
Date: Sat, 27 Feb 2021 13:54:01 UTC
Severity: normal
Found in version 28.0.50
Done: Andrea Corallo <akrl <at> sdf.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#46812: 28.0.50; [native-comp] (lambda (x) (if (= x 0.0) (floatp x) (error ""))) miscompiled
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 46812 <at> debbugs.gnu.org.
--
46812: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=46812
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs <at> gnu.org> writes:
> Pip Cet <pipcet <at> gmail.com> writes:
>
>> In *scratch*, evaluate
>>
>> (funcall (native-compile `(lambda (x) (if (= x 0.0) (floatp x) (error "")))) 0)
>
> Nice reproducer for a nice bug.
>
> This week-end I'm mostly off, will come back on this very quickly.
>
Here what was going on:
`=' was treated homogeneously with other equality operators and in the
'then' branch of:
(if (= x 0.0)
then
else)
we were assuming x being 0.0.
Indeed that's not correct as `=' has a more complex semantic allowing
mixed integer float comparisons; ex (= 0 0.0) is satisfied.
5bc08559e8 allow now fwprop to propagate `=' semantic hopefully
correctly, the patch adds also a bunch of tests to check for this.
Closing as the reproducer is passing here.
Thanks for reporting
Andrea
[Message part 3 (message/rfc822, inline)]
In *scratch*, evaluate
(funcall (native-compile `(lambda (x) (if (= x 0.0) (floatp x) (error "")))) 0)
Expected Result:
nil
Actual Result:
t
[Note that this depends on lexical binding being in effect]
In GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.24, cairo version 1.16.0)
of 2021-02-27 built
Repository revision: 42fc752a14b23be95f02b598930f13a96883d3a0
Repository branch: HEAD
Windowing system distributor 'The X.Org Foundation', version 11.0.12010000
System Description: Debian GNU/Linux bullseye/sid
Configured using:
'configure --with-native-compilation'
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LCMS2 LIBOTF LIBSELINUX LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY
PDUMPER PNG RSVG SOUND THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM
GTK3 ZLIB
Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Lisp Interaction
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
line-number-mode: t
transient-mark-mode: t
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg epg-config gnus-util rmail
rmail-loaddefs auth-source eieio eieio-core eieio-loaddefs
password-cache json map text-property-search 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
help-fns radix-tree cl-print debug backtrace find-func comp comp-cstr
warnings subr-x rx cl-seq cl-macs cl-extra help-mode easymenu seq
byte-opt gv cl-loaddefs cl-lib bytecomp byte-compile cconv iso-transl
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 button loaddefs faces cus-face pcase macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
cairo move-toolbar gtk x-toolkit x multi-tty make-network-process
nativecomp emacs)
Memory information:
((conses 16 94746 8286)
(symbols 48 8212 1)
(strings 32 25369 3647)
(string-bytes 1 846362)
(vectors 16 17343)
(vector-slots 8 322768 22051)
(floats 8 27 89)
(intervals 56 288 0)
(buffers 992 15))
This bug report was last modified 4 years and 134 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.