Subject: Re: bug#69480: Emacs Lisp needs, for its great 'native-compile', 'declare' and 'the' for fixnums and arrays.

From: Eli Zaretskii <[email-masked]>
Date: Thu, 29 Feb 2024 22:10:27 +0200

> From: Robert Boyer <[email-masked]>
> Date: Thu, 29 Feb 2024 13:40:14 -0600
> 
> Consider this form:
> 
> (progn (emacs-lisp-native-compile-and-load) (benchmark (build-sieve (expt 10 8)) 1))
> 
> First of all, 'benchmark' has an obvious bug because it reports a time of
> .000005 seconds.

You use benchmark incorrectly.  And you should use benchmark-run
instead, anyway.

> After finding the file eratosthenese.el, the evaluation of the form above
> takes 69 seconds in Emacs.
> 
> After entering SBCL and loading eratosthenese.lisp, (build-sieve (expt 10 8))
> takes 8 seconds.

It takes 16.7 sec on my system.

I see no bug here, native-compiled Emacs Lisp will never be able to
produce performance similar to SBCL, not the way native compilation is
implemented in Emacs.