GNU bug report logs - #69480
Emacs Lisp needs, for its great 'native-compile', 'declare' and 'the' for fixnums and arrays.

Previous Next

Package: emacs;

Reported by: Robert Boyer <robertstephenboyer <at> gmail.com>

Date: Thu, 29 Feb 2024 19:42:02 UTC

Severity: wishlist

Full log


View this message in rfc822 format

From: Robert Boyer <robertstephenboyer <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 69480 <at> debbugs.gnu.org
Subject: bug#69480: Emacs Lisp needs, for its great 'native-compile', 'declare' and 'the' for fixnums and arrays.
Date: Thu, 29 Feb 2024 14:54:46 -0600
[Message part 1 (text/plain, inline)]
> You use benchmark incorrectly.

Huh?  Here is the documentation.

benchmark is an interactive native-compiled Lisp function in ‘benchmark.el’.

(benchmark REPETITIONS FORM)

Print the time taken for REPETITIONS executions of FORM.
Interactively, REPETITIONS is taken from the prefix arg, and
the command prompts for the form to benchmark.
For non-interactive use see also ‘benchmark-run’ and
‘benchmark-run-compiled’.
FORM can also be a function in which case we measure the time it takes
to call it without any argument.

  Probably introduced at or before Emacs version 22.1.

 > And you should use benchmark-run instead, anyway.

Thanks for that.  I'll give it a try.

>  It takes 16.7 sec on my system.

All of my times come from using a $100 Lenovo Chromebook.  How much did
your machine
cost?

> Emacs Lisp will never be able to produce performance similar to SBCL, not
the way
> native compilation implemented in Emacs.

Wanna bet?  There are too many geniuses working on Emacs to let this chance
for 8X pass.

Thanks for your reply.  My message was inspired by something someone said
when I sent
in a much simpler demo of the same 8x point, saying that one needed to show
the difference  on
real code.  So I have done so, I hope everyone agrees. Who is more famous
than Eratosthenese?

Bob


On Thu, Feb 29, 2024 at 2:11 PM Eli Zaretskii <eliz <at> gnu.org> wrote:

> > From: Robert Boyer <robertstephenboyer <at> gmail.com>
> > 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.
>
[Message part 2 (text/html, inline)]

This bug report was last modified 165 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.