GNU bug report logs -
#69249
bug in native-compile?
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Fri, 28 Feb 2025 19:24:07 -0800
with message-id <CADwFkmm-pvUCoLm4uocKNTXyKVZwz4FBNetW8jS5=H9d5CSV-w <at> mail.gmail.com>
and subject line Re: bug#69249: bug in native-compile?
has caused the debbugs.gnu.org bug report #69249,
regarding bug in native-compile?
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
69249: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=69249
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
Dear Emacs bug fixers,
Here is a report on what seems to me to be a bug in native-compile.
----------------------------------------------------------------------
;; Let us suppose that this is the file "compile-bug.el"
;; Invoking (native-compile "compile-bug.el") should work, I do believe.
;; However it fails and the error message is printed below.
;; It cannot be emphasized enough how serious this problem seems to me, Bob
;; Boyer, robertstephenboyer <at> gmail.com.
;; The reason it is so SERIOUS is that ANY Lisp compiler would need to be
;; delighted to see such a typing expression as
;; (declare (fixnum start end) (vector input scratch))
;; Why? BECAUSE it means that the compiler does not have to lay down code to
;; type check the type of start, end, input, and scratch!!!!
;; However, (native-compile "compile-bug.el") results in the following
error message:
;; Compiling file
/mnt/chromeos/GoogleDrive/MyDrive/Linux/working/compile-bug.el at Fri Feb
16 08:25:19 2024
;; compile-bug.el:2:45: Warning: Unknown defun property ‘fixnum’ in foo
;; compile-bug.el:2:45: Warning: Unknown defun property ‘vector’ in foo
(defun foo (start end input scratch)
(declare (fixnum start end) (vector input scratch))
(list start end input scratch))
;; foo works fine
;; Here is an example form for the invocation of foo:
;; (foo 1 2 (make-vector 3 4) (make-vector 5 6))
;; That form runs ok if it is running with foo interpreted.
;; (byte-compile 'foo) runs ok.
;; One can run the same form after byte-compiling and it runs ok.
;; However, (native-compile "compile-bug.el") fails with
;; the error report:
;; Compiling file
/mnt/chromeos/GoogleDrive/MyDrive/Linux/working/compile-bug.el at Fri Feb
16 08:35:04 2024
;; compile-bug.el:12:45: Warning: Unknown defun property ‘fixnum’ in foo
;; compile-bug.el:12:45: Warning: Unknown defun property ‘vector’ in foo
;; Let us suppose that this is the end of the file "compile-bug.el"
----------------------------------------------------------------------
Here is the rest of the info that I think that m-x report-emacs-bug was
trying
to enclose in my failed attempt to use m-x report-emacs-bug.
Configured using:
'configure --build x86_64-linux-gnu --prefix=/usr
--sharedstatedir=/var/lib --libexecdir=/usr/libexec
--localstatedir=/var/lib --infodir=/usr/share/info
--mandir=/usr/share/man --with-libsystemd --with-pop=yes
--enable-locallisppath=/etc/emacs:/usr/local/share/emacs/28.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/28.2/site-lisp:/usr/share/emacs/site-lisp
--with-sound=alsa --without-gconf --with-mailutils
--with-native-compilation --build x86_64-linux-gnu --prefix=/usr
--sharedstatedir=/var/lib --libexecdir=/usr/libexec
--localstatedir=/var/lib --infodir=/usr/share/info
--mandir=/usr/share/man --with-libsystemd --with-pop=yes
--enable-locallisppath=/etc/emacs:/usr/local/share/emacs/28.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/28.2/site-lisp:/usr/share/emacs/site-lisp
--with-sound=alsa --without-gconf --with-mailutils
--with-native-compilation --with-cairo --with-x=yes
--with-x-toolkit=gtk3 --with-toolkit-scroll-bars 'CFLAGS=-g -O2
-ffile-prefix-map=/build/emacs-mPr7Vr/emacs-28.2+1=.
-fstack-protector-strong -Wformat -Werror=format-security -Wall'
'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES
NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP 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: ELisp/d
Minor modes in effect:
shell-dirtrack-mode: t
display-time-mode: t
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-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 rfc822 mml mml-sec epa
derived epg rfc6068 epg-config gnus-util rmail rmail-loaddefs mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
mode-local autorevert filenotify descr-text eieio-opt speedbar ezimage
dframe shortdoc lpr apropos compile text-property-search comp comp-cstr
warnings rx cl-extra cl-print debug backtrace find-func help-fns
radix-tree help-mode thingatpt misearch multi-isearch time-date
cus-start etags fileloop generator xref project dired-aux cus-edit pp
cus-load wid-edit trace sh-script smie executable dired dired-loaddefs
cal-menu calendar cal-loaddefs ange-ftp shell pcomplete comint
ansi-color ring benchmark time face-remap finder-inf package browse-url
url url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map
url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib
iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode 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 lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax 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 emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face 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
native-compile emacs)
Memory information:
((conses 16 440800 29368)
(symbols 48 15229 0)
(strings 32 57747 2517)
(string-bytes 1 4555170)
(vectors 16 31666)
(vector-slots 8 931977 74485)
(floats 8 118 370)
(intervals 56 88945 28)
(buffers 992 36))
ReplyForward
Add reaction
[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:
>> ;; However, (native-compile "compile-bug.el") results in the following
>> error message:
>>
>> ;; Compiling file
>> /mnt/chromeos/GoogleDrive/MyDrive/Linux/working/compile-bug.el at Fri Feb
>> 16 08:25:19 2024
>> ;; compile-bug.el:2:45: Warning: Unknown defun property ‘fixnum’ in foo
>> ;; compile-bug.el:2:45: Warning: Unknown defun property ‘vector’ in foo
>
> First thing: these are not error messages! They're *warnings*!
>
> `batch-byte-compile` also gives those warnings, because ELisp does not
> know those declarations. The native compiler does support some type
> annotations, but they do not take this shape.
>
> I presume you took those from some other Lisp dialect, but that won't do
> you much good. Scheme is not Clojure is not Common Lisp is not ELisp ...
>
> BTW, A more recent Emacs would give you an additional warning:
>
> Warning: file has no ‘lexical-binding’ directive on its first line
>
> So, I see no bug. Did the resulting native-compile misbehave in
> any way? I presume you're worried about its performance.
> If so, do you have concrete code where you measured the performance and
> were disappointed and where you have good reasons to believe that type
> annotations would make a difference? If so, we'd be interested to see
> your code to try and improve our compiler.
It seems like the conclusion is that there is no bug here.
I'm therefore closing this bug report.
This bug report was last modified 82 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.