From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Robert Boyer Newsgroups: gmane.emacs.bugs Subject: bug#69480: Emacs Lisp needs, for its great 'native-compile', 'declare' and 'the' for fixnums and arrays. Date: Thu, 29 Feb 2024 13:40:14 -0600 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000e3abde06128a6fc0" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="19536"; mail-complaints-to="usenet@ciao.gmane.io" To: 69480@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Feb 29 20:41:57 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rfmI0-0004rH-Se for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 29 Feb 2024 20:41:57 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rfmHh-0006v7-SZ; Thu, 29 Feb 2024 14:41:37 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rfmHg-0006up-AN for bug-gnu-emacs@gnu.org; Thu, 29 Feb 2024 14:41:36 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rfmHg-0004ur-1x for bug-gnu-emacs@gnu.org; Thu, 29 Feb 2024 14:41:36 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rfmI6-0000VD-MC for bug-gnu-emacs@gnu.org; Thu, 29 Feb 2024 14:42:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Robert Boyer Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 29 Feb 2024 19:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 69480 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.17092356941891 (code B ref -1); Thu, 29 Feb 2024 19:42:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 29 Feb 2024 19:41:34 +0000 Original-Received: from localhost ([127.0.0.1]:35415 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rfmHd-0000UQ-9J for submit@debbugs.gnu.org; Thu, 29 Feb 2024 14:41:34 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:44024) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rfmHa-0000UE-Dv for submit@debbugs.gnu.org; Thu, 29 Feb 2024 14:41:32 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rfmH4-0006Ys-H8 for bug-gnu-emacs@gnu.org; Thu, 29 Feb 2024 14:40:59 -0500 Original-Received: from mail-ed1-x534.google.com ([2a00:1450:4864:20::534]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rfmH0-0004rJ-UG for bug-gnu-emacs@gnu.org; Thu, 29 Feb 2024 14:40:58 -0500 Original-Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-5658082d2c4so2015223a12.1 for ; Thu, 29 Feb 2024 11:40:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709235652; x=1709840452; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=EQ724KN8HnapreNYyw131IxSdNy1DAtQKhyS88WRpro=; b=h/qKBUGgRjDOiWzjTjS+cBk+C6paPCdwe9GPfUbGw1qOWJyeG7QVJjAH0nMY27hJTl DjLDJeyCvGriEBPbcbbjRAwQQBQkM1FEHfBaVaC7O+qzIE46bDkVacAZnz76R8kvegSs 9E70HQPTbJ3VaxzwzUJPdiqrokf3saP7uZ51R/xcg2oZuNyvyK+i1m45898wJrWwshTg B6QSmvdrpogsPABj7xkZslUQKvDIrrdAUl1jDfuYrnXEEiRy8XnsV0I3zK+Oz79GBKLk K7+KYNCfb91I1tMmIjD05yIwhB6EKDEnsd6k9cehgkgz3CnfrGnfpWYZ3aOeekVpgPqF c6Eg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709235652; x=1709840452; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=EQ724KN8HnapreNYyw131IxSdNy1DAtQKhyS88WRpro=; b=qeIljlq5cXDw4+6FI5JRXtp18NeKgUagMOwh636kiKIV0vvrLVbWDR+iK6bjfFVQtS G1ruCabArBBkPKzGMcXjtYzRBw5New2n8LuGUCpEL3a2EzhjsnAFFgkVBj3vONwdv8Nr k8MZBFx1Gy6iuxJ/I/dRKujgxmfYbiqxheDfQ0gzmLUxfCrtRCKMaJklu205Xw16grQe 1i9pT3SL8tB1QLgd/x2PS4RY11jQ9hEd5FXMeO72S1izdXxWNISRIYTfFa5oiDMdNqux /DYfHp4h5Bi+LsJhrfC5FAARQgce0YUCVmIUJE2PmZS6Wtw+ElK/pgu8jWRaglAceizQ fs3g== X-Gm-Message-State: AOJu0YwMR4873mUUZKddl+D/vN9TCXxgFQqKzazSXJw0FF4kpPCZQ5rr j1TeqkXWBfqA7AFECCEH+cge0SzCWEvHZcTDen7PRB5qOCUd31zdF+zHd6pGUtIIxBMwwAEsOZ4 h5Xt9yFqevGbAP8ya+q15WMrOo1CLKUk9BQQ= X-Google-Smtp-Source: AGHT+IFpR46Ok0AMYkqasg/S7e2PA5WjXLKiT12LC/NxA2ckjWE/MkFZbGwknMIQeQZTvK5Ad8OU6Q77zXbZ5hTBfhU= X-Received: by 2002:a05:6402:2156:b0:565:f9c1:d925 with SMTP id bq22-20020a056402215600b00565f9c1d925mr2080932edb.0.1709235652236; Thu, 29 Feb 2024 11:40:52 -0800 (PST) Received-SPF: pass client-ip=2a00:1450:4864:20::534; envelope-from=robertstephenboyer@gmail.com; helo=mail-ed1-x534.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:280806 Archived-At: --000000000000e3abde06128a6fc0 Content-Type: multipart/alternative; boundary="000000000000e3abdc06128a6fbe" --000000000000e3abdc06128a6fbe Content-Type: text/plain; charset="UTF-8" I show beyond all doubt how much Emacs Lisp needs, for its great 'native-compile', 'declare' and 'the' for fixnums and arrays. Why? 8X! If every time you aref a vector or increment a fixnum you have to check things, you are going to waste a lot of cpu time. A programmer NEEDS to be able to TELL the system things that should not be checked constantly. Imagine how slow one would be if he/she had to check that he/she was alive every heart beat. I have attached two files, eratosthenese.el and eratosthenese.lisp, the first coded in Emacs Lisp and the second in Common Lisp. In all that follows, I am running on a $100 Lenovo Chromebook. The Sieve of Eratosthenese is the second oldest algorithm I am aware of, the oldest being gcd. 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. So I used the timer on my trusty $130 moto g pure phone. 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. Q.E.D. Bob I attach stuff that I do not understand but that you may like. From: bob To: bug-gnu-emacs@gnu.org Subject: 28.2; Why Emacs Lisp needs declare and the for fixnums and arrays. --text follows this line-- In GNU Emacs 28.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.37, cairo version 1.16.0) of 2023-05-13, modified by Debian built on x86-ubc-01 Windowing system distributor 'The X.Org Foundation', version 11.0.12014000 System Description: Debian GNU/Linux 12 (bookworm) 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: Text Minor modes in effect: shell-dirtrack-mode: t display-time-mode: t tooltip-mode: t global-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 mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail thingatpt dabbrev misearch multi-isearch help-fns radix-tree cl-print debug backtrace find-func time-date compile text-property-search comp comp-cstr warnings rx cl-extra help-mode 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 rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils 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 178787 77633) (symbols 48 13676 66) (strings 32 42888 8138) (string-bytes 1 1386823) (vectors 16 26477) (vector-slots 8 100493063 154471) (floats 8 62 377) (intervals 56 2423 424) (buffers 992 31)) --000000000000e3abdc06128a6fbe Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I show beyond all doubt how much = Emacs Lisp needs, for its great 'native-compile',
'declare' and 'the' for fix= nums=C2=A0and arrays.
Why? 8X!

If every time you aref a ve= ctor or increment a fixnum you have to check
things, you are going to wa= ste a lot of cpu time. A programmer NEEDS to be
able to TELL the system = things that should not be checked constantly. Imagine
how slow one would= be if he/she had to check that he/she was alive every
heart beat.
I have attached two files, eratosthenese.el and eratosthenese.lisp, thefirst coded in Emacs Lisp and the second in Common Lisp.

In all th= at follows, I am running on a $100 Lenovo Chromebook.

The Sieve of E= ratosthenese is the second oldest algorithm I am aware of, the
oldest be= ing gcd.

Consider this form:

(progn (emacs-lisp-native-compil= e-and-load) (benchmark (build-sieve (expt 10 8)) 1))

First of all, &= #39;benchmark' has an obvious bug because it reports a time of
.0000= 05 seconds.

So I used the timer on my trusty $130 moto g pure phone.=

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.

Q= .E.D.

Bob

I attach stuff that I do not understand but that yo= u may like.

From: bob <bob@penguin>
To: bug-gnu-emacs@gnu.org
Subjec= t: 28.2; Why Emacs Lisp needs declare and the for fixnums and arrays.
--= text follows this line--




In GNU Emacs 28.2 (build 1, x86= _64-pc-linux-gnu, GTK+ Version 3.24.37, cairo version 1.16.0)
=C2=A0of 2= 023-05-13, modified by Debian built on x86-ubc-01
Windowing system distr= ibutor 'The X.Org Foundation', version 11.0.12014000
System Desc= ription: Debian GNU/Linux 12 (bookworm)

Configured using:
=C2=A0&= #39;configure --build x86_64-linux-gnu --prefix=3D/usr
=C2=A0--sharedsta= tedir=3D/var/lib --libexecdir=3D/usr/libexec
=C2=A0--localstatedir=3D/va= r/lib --infodir=3D/usr/share/info
=C2=A0--mandir=3D/usr/share/man --with= -libsystemd --with-pop=3Dyes
=C2=A0--enable-locallisppath=3D/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
=C2=A0--with-sound= =3Dalsa --without-gconf --with-mailutils
=C2=A0--with-native-compilation= --build x86_64-linux-gnu --prefix=3D/usr
=C2=A0--sharedstatedir=3D/var/= lib --libexecdir=3D/usr/libexec
=C2=A0--localstatedir=3D/var/lib --infod= ir=3D/usr/share/info
=C2=A0--mandir=3D/usr/share/man --with-libsystemd -= -with-pop=3Dyes
=C2=A0--enable-locallisppath=3D/etc/emacs:/usr/local/sha= re/emacs/28.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/2= 8.2/site-lisp:/usr/share/emacs/site-lisp
=C2=A0--with-sound=3Dalsa --wit= hout-gconf --with-mailutils
=C2=A0--with-native-compilation --with-cairo= --with-x=3Dyes
=C2=A0--with-x-toolkit=3Dgtk3 --with-toolkit-scroll-bars= 'CFLAGS=3D-g -O2
=C2=A0-ffile-prefix-map=3D/build/emacs-mPr7Vr/emac= s-28.2+1=3D.
=C2=A0-fstack-protector-strong -Wformat -Werror=3Dformat-se= curity -Wall'
=C2=A0'CPPFLAGS=3D-Wdate-time -D_FORTIFY_SOURCE=3D= 2' LDFLAGS=3D-Wl,-z,relro'

Configured features:
ACL CAIRO= DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS= 2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES
NATIVE_COMP NOTI= FY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF
TOOLKIT_SCROLL_BA= RS X11 XDBE XIM XPM GTK3 ZLIB

Important settings:
=C2=A0 value of= $LANG: en_US.UTF-8
=C2=A0 locale-coding-system: utf-8-unix

Major= mode: Text

Minor modes in effect:
=C2=A0 shell-dirtrack-mode: t<= br>=C2=A0 display-time-mode: t
=C2=A0 tooltip-mode: t
=C2=A0 global-e= ldoc-mode: t
=C2=A0 show-paren-mode: t
=C2=A0 electric-indent-mode: t=
=C2=A0 mouse-wheel-mode: t
=C2=A0 file-name-shadow-mode: t
=C2=A0= global-font-lock-mode: t
=C2=A0 font-lock-mode: t
=C2=A0 blink-curso= r-mode: t
=C2=A0 auto-composition-mode: t
=C2=A0 auto-encryption-mode= : t
=C2=A0 auto-compression-mode: t
=C2=A0 line-number-mode: t
=C2= =A0 transient-mark-mode: t

Load-path shadows:
None found.

= Features:
(shadow sort mail-extr emacsbug message rmc puny rfc822 mml mm= l-sec epa
derived epg rfc6068 epg-config gnus-util mm-decode mm-bodies m= m-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail thi= ngatpt
dabbrev misearch multi-isearch help-fns radix-tree cl-print debug=
backtrace find-func time-date compile text-property-search comp
comp= -cstr warnings rx cl-extra help-mode cus-start etags fileloop
generator = xref project dired-aux cus-edit pp cus-load wid-edit trace
sh-script smi= e executable dired dired-loaddefs cal-menu calendar
cal-loaddefs ange-ft= p shell pcomplete comint ansi-color ring benchmark
time rmail rmail-load= defs rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils 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 pas= sword-cache json subr-x map
url-vars seq byte-opt gv bytecomp byte-compi= le cconv cl-loaddefs cl-lib
iso-transl tooltip eldoc paren electric uniq= uify 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 t= abulated-list replace
newcomment text-mode lisp-mode prog-mode register = page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-b= ar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minib= uffer cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan t= hai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian = slovak czech
european ethiopic indian cyrillic chinese composite emoji-z= wj charscript
charprop case-table epa-hook jka-cmpr-hook help simple abb= rev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp= files
window text-properties overlay sha1 md5 base64 format env code-pa= ges
mule custom widget hashtable-print-readable backquote threads dbusbi= nd
inotify lcms2 dynamic-setting system-font-setting font-render-setting=
cairo move-toolbar gtk x-toolkit x multi-tty make-network-process
na= tive-compile emacs)

Memory information:
((conses 16 178787 77633)=
=C2=A0(symbols 48 13676 66)
=C2=A0(strings 32 42888 8138)
=C2=A0(= string-bytes 1 1386823)
=C2=A0(vectors 16 26477)
=C2=A0(vector-slots = 8 100493063 154471)
=C2=A0(floats 8 62 377)
=C2=A0(intervals 56 2423 = 424)
=C2=A0(buffers 992 31))

--000000000000e3abdc06128a6fbe-- --000000000000e3abde06128a6fc0 Content-Type: application/octet-stream; name="eratosthenes.el" Content-Disposition: attachment; filename="eratosthenes.el" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lt7mnnui0 Ozs7IFRoaXMgZmlsZSBlcmF0b3N0aGVuZXNlLmVsIHdhcyBjb2RlZCBieSBSb2JlcnQgQm95ZXIs Cjs7OyByb2JlcnN0ZXBoZW5ib3llckBnbWFpbC5jb20sIGluIDIwMjQsIGFuZCBpcyBwdWJsaWMg ZG9tYWluLgoKOzs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgQSBTaWV2ZSBvZiBFcmF0b3N0 aGVuZXNlCgo7OzsgQm9ybiBjLiAyNzYgQi4gQy4gaW4gTGlieWEsIEVyYXRvc3RoZW5lc2UgY2Fs Y3VsYXRlZCB0aGUgcmFkaXVzIG9mIHRoZSBFYXJ0aAo7OzsgYW5kIHdhcyB0aGUgbGlicmFyaWFu IG9mIEFsZXhhbmRyaWEuCgo7OzsgVGhlIGJ1aWxkIGEgc2lldmUgb2YgRXJhdG9zdGhlbmVzZSBv ZiBsZW5ndGggbiwgY2FsbCAoYnVpbGQtc2lldmUgbiksCjs7OyBhZnRlciB3aGljaCBpIGlzIHBy aW1lIGlmIGFuZCBvbmx5IGlmIChpcy1hLXByaW1lIGkpLgoKOzs7IChidWlsZC1zaWV2ZSAoZXhw dCAxMCA4KSkgdGFrZXMgMTYwMCBzZWNvbmRzIHRvIGV4ZWN1dGUuCgooZGVmdmFyIHRlc3QtZm9y bSAnKHByb2duIChlbWFjcy1saXNwLW5hdGl2ZS1jb21waWxlLWFuZC1sb2FkKSAoYmVuY2htYXJr IChidWlsZC1zaWV2ZSAoZXhwdCAxMCA4KSkgMSkpKQoKKGNsLWRlY2xhaW0gKG9wdGltaXplIChz YWZldHkgMCkgKHNwZWVkIDMpIChkZWJ1ZyAwKSAoc3BhY2UgMCkpKQoKKGRlZnZhciAqc2lldmUt bGVuZ3RoKiAwKQoKKHNldHEgKnNpZXZlLWxlbmd0aCogMCkKCihkZWZ2YXIgKnNpZXZlKiAobWFr ZS12ZWN0b3IgMSAwKSkKCihzZXRxICpzaWV2ZSogKG1ha2UtdmVjdG9yIDEgMCkpCgooY2wtZGVm dW4gYnVpbGQtc2lldmUgKG4pCiAgIkFmdGVyIGV4ZWN1dGluZyAoYnVpbGQtc2lldmUgbiksIGlm IGogaXMgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIGxlc3MgdGhhbgogICAqc2lldmUtbGVuZ3RoKiwg dGhlbiBqIGlzIHByaW1lIDwtPiAoaXMtYS1wcmltZSBqKS4iCiAgKHNldHEgKnNpZXZlKiAobWFr ZS12ZWN0b3IgbiAwKSkKICAoc2V0cSAqc2lldmUtbGVuZ3RoKiBuKQogIDs7IE5laXRoZXIgMCBu b3IgMSBpcyBwcmltZS4KICAoc2V0ZiAoYXJlZiAqc2lldmUqIDApIDEpCiAgKHNldGYgKGFyZWYg KnNpZXZlKiAxKSAxKQogIDs7IExvb3AgdGhyb3VnaCBhIGZyb20gMCBiZWxvdyBsLiBJZiB5b3Ug ZW5jb3VudGVyIGEgMCBhdCBmaWxlIHBvc2l0aW9uCiAgOzsgaSwgdGhlbiAnMSBvdXQnIGFsbCB0 aGUgc3Vic2VxdWVudCBtdWx0aXBsZXMgb2YgaS4KICAoY2wtbG9vcCBmb3IgaSBmcm9tIDIgYmVs b3cgKnNpZXZlLWxlbmd0aCogZG8KICAgICAgICAgICAoY29uZCAoKGVxbCAwIChhcmVmICpzaWV2 ZSogaSkpCiAgICAgICAgICAgICAgICAgIChjbC1sb29wIGZvciBqIGZyb20gKGFzaCBpIDEpIGJl bG93ICpzaWV2ZS1sZW5ndGgqIGJ5IGkKICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8gKHNl dGYgKGFyZWYgKnNpZXZlKiBqKSAxKSkpKSkpCgooY2wtZGVmdW4gdGVzdC1zaWV2ZSAobikKICAo Y29uZCAoKG5vdCAoPCBuICpzaWV2ZS1sZW5ndGgqKSkgKGVycm9yICJuIGlzIHRvbyBiaWcuIikp KQogIChjbC1sb29wIGZvciBpIGZyb20gMiB0byBuIGRvCiAgICAgICAgICAgKGxldCAoKG51bWJl ci1vZi1kaXZpc29ycyAoY2wtbG9vcCBmb3IgaiBmcm9tIDIgdG8gaSB3aGVuIChlcWwgMCAoJSBp IGopKSBjb3VudCAxKSkpCiAgICAgICAgICAgICAoY29uZCAoKGVxbCAoYXJlZiAqc2lldmUqIGkp IDEpCiAgICAgICAgICAgICAgICAgICAgKGNvbmQgKChub3QgKDwgMSBudW1iZXItb2YtZGl2aXNv cnMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IgImJhZCBhdCAlcy4iIGkpKSkp CiAgICAgICAgICAgICAgICAgICAoKGVxbCAoYXJlZiAqc2lldmUqIGkpIDApCiAgICAgICAgICAg ICAgICAgICAgKGNvbmQgKChub3QgKGVxbCAxIG51bWJlci1vZi1kaXZpc29ycykpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgIChlcnJvciAiYmFkIGF0ICVzLiIgaSkpKSkKICAgICAgICAgICAg ICAgICAgICh0IChlcnJvciAicmlkaWN1bG91cyIpKSkpKQogICdvaykKCihkZWZ1biBpcy1hLXBy aW1lIChuKQogIChjb25kICgoZXFsIDAgKGFyZWYgKnNpZXZlKiAwKSkKICAgICAgICAgKGVycm9y ICJJdCBsb29rcyBsaWtlIChidWlsZC1zaWV2ZSkgaGFzIG5vdCBiZWVuIHJ1bi4iKSkpCiAgKGNv bmQgKCg8IG4gKnNpZXZlLWxlbmd0aCopCiAgICAgICAgIChlcWwgMCAoYXJlZiAqc2lldmUqIG4p KSkKICAgICAgICAodCAoZXJyb3IgIm5lZWQgYSBiaWdnZXIgc2lldmUiKSkpKQoKDAo7OzsgTG9j YWwgVmFyaWFibGVzOiA7OzsKOzs7IG1vZGU6IEVtYWNzLUxpc3AgOzs7Cjs7OyBjb2Rpbmc6IHV0 Zi04ICAgIDs7Owo7OzsgRW5kOiAgICAgICAgICAgICA7OzsK --000000000000e3abde06128a6fc0 Content-Type: application/x-lisp; name="eratosthenes.lisp" Content-Disposition: attachment; filename="eratosthenes.lisp" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lt7mo3271 I3wKClRoaXMgZmlsZSBlcmF0b3N0aGVuZXNlLmxpc3Agd2FzIGNvZGVkIGJ5IFJvYmVydCBCb3ll ciwKcm9iZXJzdGVwaGVuYm95ZXJAZ21haWwuY29tLCBpbiAyMDI0LCBhbmQgaXMgcHVibGljIGRv bWFpbi4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgQSBTaWV2ZSBvZiBFcmF0b3N0aGVuZXNl ClRoaXMgZmlsZSBpcwoKICBodHRwczovL2RyaXZlLmdvb2dsZS5jb20vZmlsZS9kLzFXYTdjY29C a2dUbEFhZG1tUFBlLUJuS2R1NDVWUTQ0ai92aWV3P3VzcD1zaGFyaW5nCgpCb3JuIGMuIDI3NiBC LiBDLiBpbiBMaWJ5YSwgRXJhdG9zdGhlbmVzZSBjYWxjdWxhdGVkIHRoZSByYWRpdXMgb2YgdGhl IEVhcnRoCmFuZCB3YXMgdGhlIGxpYnJhcmlhbiBvZiBBbGV4YW5kcmlhLgoKVG8gYnVpbGQgYSBz aWV2ZSBpbnZva2UgKGJ1aWxkLXNpZXZlIG4pLiBUaGVuIGlmIGogaXMgYSBub25uZWdhdGl2ZSBp bnRlZ2VyCmxlc3MgdGhhbiBuLCB0aGVuIGogaXMgcHJpbWUgaWYgYW5kIG9ueSBpZiAoaXMtYS1w cmltZSBqKS4KCkluIFNCQ0wsIGl0IHRha2VzIGFib3V0IDE2MDAgc2Vjb25kcyB0byBleGVjdXRl IChidWlsZC1zaWV2ZSAoZXhwdCAxMCAxMCkpLgpidXQgb25seSAxMDkgc2Vjb25kcyBmb3IgKGJ1 aWxkLXNpZXZlIChleHB0IDEwIDkpKS4KKGJ1aWxkLXNpZXZlIChleHB0IDEwIDEwKSBzZWVtcyBp bXBvc3NpYmxlIG9uIG15ICQxMDAgTGVub3ZvIENocm9tZWJvb2sKYmVjYXVzZSBvZiBtZW1vcnkg aXNzdWVzIEkgd2lsbCBwcm9iYWJseSBuZXZlciBmdWxseSB1bmRlcnN0YW5kLgoKfCMKCihkZWNs YWltIChvcHRpbWl6ZSAoc2FmZXR5IDApIChzcGVlZCAzKSAoZGVidWcgMCkgKHNwYWNlIDApKSkK Cihmb3JtYXQgdCAifiVOb3RlOiBMb2FkaW5nIHZlcnNpb24gMTAxIG9mIGVyYXRvc3RoZW5lcy5s aXNwLiIpCgooZGVmdmFyICpzaWV2ZS1sZW5ndGgqKQoKKGRlY2xhaW0gKGludGVnZXIgKnNpZXZl LWxlbmd0aCopKQoKKGRlZnZhciAqc2lldmUqKQoKKGRlY2xhaW0gKHR5cGUgKGFycmF5IChpbnRl Z2VyIDAgMSkgKCopKSkpCgooZGVmdW4gYnVpbGQtc2lldmUgKG4pCiAgIkFmdGVyIGV4ZWN1dGlu ZyAoYnVpbGQtc2lldmUpLCBpZiBqIGlzIGEgbm9ubmVnYXRpdmUgaW50ZWdlciBsZXNzIHRoYW4K ICAqc2lldmUtbGVuZ3RoKiwgdGhlbiBqIGlzIHByaW1lIDwtPiAoaXMtYS1wcmltZSBqKS4iCiAg KGRlY2xhcmUgKGZpeG51bSBuKSkKICAoc2V0cSAqc2lldmUtbGVuZ3RoKiBuKQogIChzZXRxICpz aWV2ZSogKG1ha2UtYXJyYXkgKnNpZXZlLWxlbmd0aCogOmVsZW1lbnQtdHlwZSAnKGludGVnZXIg MCAxKSkpCiAgKGxldCAoKGEgKnNpZXZlKikgKGwgbikpCiAgICAoZGVjbGFyZSAodHlwZSAoYXJy YXkgKGludGVnZXIgMCAxKSAoKikpIGEpIChmaXhudW0gbCkpCiAgICA7OyBOZWl0aGVyIDAgbm9y IDEgaXMgcHJpbWUuCiAgICAoc2V0ZiAoYXJlZiBhIDApIDEpCiAgICAoc2V0ZiAoYXJlZiBhIDEp IDEpCiAgICA7OyBMb29wIHRocm91Z2ggYSBmcm9tIDAgYmVsb3cgbC4gSWYgeW91IGVuY291bnRl ciBhIDAgYXQgZmlsZSBwb3NpdGlvbgogICAgOzsgaSwgdGhlbiAnMSBvdXQnIGFsbCB0aGUgc3Vi c2VxdWVudCBtdWx0aXBsZXMgb2YgaS4KICAgIChsb29wIGZvciBpIGZpeG51bSBmcm9tIDIgYmVs b3cgbCBkbwogICAgICAgICAgKGNvbmQgKChlcWwgMCAoYXJlZiBhIGkpKQogICAgICAgICAgICAg ICAgIChsb29wIGZvciBqIGZpeG51bSBmcm9tICh0aGUgZml4bnVtIChhc2ggaSAxKSkgYnkgaSBi ZWxvdyBsCiAgICAgICAgICAgICAgICAgICAgICAgZG8gKHNldGYgKGFyZWYgYSBqKSAxKSkpKSkp KQoKKGRlZnVuIHRlc3Qtc2lldmUgKG4pCiAgKGRlY2xhcmUgKGZpeG51bSBuKSkKICAoY29uZCAo KG5vdCAoPCBuICpzaWV2ZS1sZW5ndGgqKSkgKGVycm9yICJuIGlzIHRvbyBiaWcuIikpKQogIChs b29wIGZvciBpIGZpeG51bSBmcm9tIDIgdG8gbiBkbwogICAgICAgIChsZXQgKChudW1iZXItb2Yt ZGl2aXNvcnMgKGxvb3AgZm9yIGogZml4bnVtIGZyb20gMiB0byBpIHdoZW4gKGVxbCAwIChyZW0g aSBqKSkgY291bnQgMSkpKQogICAgICAgICAgKGRlY2xhcmUgKGZpeG51bSBudW1iZXItb2YtZGl2 aXNvcnMpKQogICAgICAgICAgKGNvbmQgKChlcWwgKGFyZWYgKnNpZXZlKiBpKSAxKQogICAgICAg ICAgICAgICAgIChjb25kICgobm90ICg8IDEgbnVtYmVyLW9mLWRpdmlzb3JzKSkKICAgICAgICAg ICAgICAgICAgICAgICAgKGVycm9yICJiYWQgYXQgfnMuIiBpKSkpKQogICAgICAgICAgICAgICAg KChlcWwgKGFyZWYgKnNpZXZlKiBpKSAwKQogICAgICAgICAgICAgICAgIChjb25kICgobm90IChl cWwgMSBudW1iZXItb2YtZGl2aXNvcnMpKQogICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3Ig ImJhZCBhdCB+cy4iIGkpKSkpCiAgICAgICAgICAgICAgICAodCAoZXJyb3IgInJpZGljdWxvdXMi KSkpKSkKICAnb2spCgooZGVmdW4gaXMtYS1wcmltZSAobikKICAoY29uZCAoKGVxbCAwIChhcmVm ICpzaWV2ZSogMCkpCiAgICAgICAgIChlcnJvciAiSXQgbG9va3MgbGlrZSAoYnVpbGQtc2lldmUp IGhhcyBub3QgYmVlbiBydW4uIikpKQogIChjb25kICgoPCBuICpzaWV2ZS1sZW5ndGgqKQogICAg ICAgICAoZXFsIDAgKGFyZWYgKnNpZXZlKiBuKSkpCiAgICAgICAgKHQgKGVycm9yICJuZWVkIGEg YmlnZ2VyIHNpZXZlIikpKSkKCgooZm9ybWF0IHQgIn4lTm90ZTogRmluaXNoZWQgbG9hZGluZyBl cmF0b3N0aGVuZXMubGlzcCIpCgwKOzs7IExvY2FsIFZhcmlhYmxlczogOzs7Cjs7OyBtb2RlOiBM aXNwICAgICAgIDs7Owo7OzsgY29kaW5nOiB1dGYtOCAgICA7OzsKOzs7IEVuZDogICAgICAgICAg ICAgOzs7Cg== --000000000000e3abde06128a6fc0--