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

From: Robert Boyer <[email-masked]>
Date: Thu, 29 Feb 2024 15:04:15 -0600

benchmark-run-compiled reported the same sorry time to *Messages* on:

(progn (emacs-lisp-native-compile-and-load) (benchmark-run-compiled
(build-sieve (expt 10 8))))

(68.42455689 1 1.1884078129999995)

On Thu, Feb 29, 2024 at 2:11 PM Eli Zaretskii <[email-masked]> wrote:

> > 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.
>