From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Andrea Corallo <akrl@sdf.org>
Cc: emacs-devel@gnu.org
Subject: Re: On elisp running native - deferred compilation
Date: Sat, 22 Feb 2020 09:19:27 -0500 [thread overview]
Message-ID: <jwvzhda3ebf.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <xjfsgj30vxl.fsf_-_@sdf.org> (Andrea Corallo's message of "Sat, 22 Feb 2020 10:15:50 +0000")
> 1- When an .elc is loaded when no .eln is present we load the .elc but
> we enqeue an async compilation using 'native-compile-async'. The async
> compilation queue is eaten by a configurable number of parallel
> processes.
> 2- When each compilation unit is finished compiling we substitute each
> byte-compiled function definition with the new one.
Sounds good.
I'll just mention that IMO, we should move towards a model where
compilation (byte or native or anything else) is performed more
transparently and systematically:
- Elisp source code is always compiled before being executed: currently
the semantics of loading a file allows the behavior to differ between
loading the .el and loading the .elc, whereas I think it should always
behave like loading a .elc.
The eager-macroexpansion introduced in Emacs-24 was a step in
that direction.
- Recompilation happens automatically (e.g. either because the source
Elisp file was modified or because the compiled code doesn't match the
currently running Emacs version).
This also suggests that compiled files should be "hidden" and include
some kind of version info.
Stefan
next prev parent reply other threads:[~2020-02-22 14:19 UTC|newest]
Thread overview: 197+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-28 6:54 On elisp running native Andrea Corallo
2019-11-28 11:31 ` Óscar Fuentes
2019-11-28 14:07 ` Andrea Corallo
2019-11-28 12:47 ` Lars Ingebrigtsen
2019-11-28 20:15 ` Andrea Corallo
2019-11-29 6:03 ` Lars Brinkhoff
2019-11-28 16:04 ` Stefan Monnier
2019-11-28 17:28 ` Andrea Corallo
2019-11-28 21:06 ` Stefan Monnier
2019-11-28 22:52 ` Andrea Corallo
2019-11-29 0:20 ` Eric Abrahamsen
2019-11-29 14:59 ` Andrea Corallo
2019-11-29 15:10 ` Eli Zaretskii
2019-11-29 15:30 ` Stefan Monnier
2019-12-01 10:34 ` Andrea Corallo
2019-12-01 15:27 ` Stefan Monnier
2019-11-29 16:43 ` Andrea Corallo
2019-11-29 19:26 ` Eli Zaretskii
2019-11-29 21:18 ` Andrea Corallo
2019-12-08 20:18 ` Andrea Corallo
2019-12-26 13:05 ` Andrea Corallo
2019-12-26 17:30 ` Eli Zaretskii
2019-12-26 18:14 ` Andrea Corallo
2019-12-26 20:37 ` Eli Zaretskii
2019-12-26 22:10 ` Andrea Corallo
2019-12-27 9:12 ` Eli Zaretskii
2019-12-27 10:46 ` Andrea Corallo
2019-12-27 14:03 ` Eli Zaretskii
2019-12-28 1:17 ` Richard Stallman
2019-12-28 7:50 ` Eli Zaretskii
2019-12-28 8:17 ` Andrea Corallo
2019-12-29 0:08 ` Richard Stallman
2019-12-29 9:29 ` Andrea Corallo
2019-12-28 13:07 ` Dmitry Gutov
2019-12-28 13:28 ` Eli Zaretskii
2019-12-28 19:56 ` Óscar Fuentes
2019-12-29 19:59 ` chad
2019-12-30 8:17 ` arthur miller
2019-12-30 14:09 ` Dmitry Gutov
2019-12-30 15:25 ` Eli Zaretskii
2019-12-30 22:03 ` arthur miller
2019-12-31 3:34 ` Eli Zaretskii
2019-12-30 13:56 ` Dmitry Gutov
2019-12-30 14:04 ` Juanma Barranquero
2019-12-30 8:47 ` Achim Gratz
2019-12-27 15:53 ` Stefan Monnier
2019-12-27 21:02 ` Andrea Corallo
2019-12-27 22:19 ` Stefan Monnier
2019-12-28 8:34 ` Eli Zaretskii
2019-12-28 8:56 ` Andrea Corallo
2019-12-28 10:06 ` Eli Zaretskii
2019-12-28 11:57 ` Andrea Corallo
2019-12-28 13:34 ` Eli Zaretskii
2019-12-28 14:35 ` Andrea Corallo
2019-12-28 18:38 ` Eli Zaretskii
2019-12-28 22:13 ` Andrea Corallo
2019-12-31 9:55 ` Andrea Corallo
2019-12-31 15:49 ` Eli Zaretskii
2020-02-24 23:21 ` Andrea Corallo
2020-02-25 6:14 ` yyoncho
2020-02-25 7:29 ` Eli Zaretskii
2020-02-25 12:59 ` Andrea Corallo
2020-02-28 4:34 ` Eli Zaretskii
2020-02-28 8:26 ` Andrea Corallo
2020-02-28 9:23 ` yyoncho
2020-04-26 12:00 ` Andrea Corallo
2020-04-27 4:41 ` yyoncho
2019-12-26 20:26 ` Stefan Monnier
2019-12-26 20:58 ` dick.r.chiang
2019-12-26 21:57 ` Andrea Corallo
2019-12-27 8:22 ` Eli Zaretskii
2019-12-27 10:49 ` Andrea Corallo
2019-12-28 16:10 ` dick.r.chiang
2019-12-28 17:31 ` Eli Zaretskii
2019-12-31 10:24 ` Andrea Corallo
2019-12-31 15:51 ` Eli Zaretskii
2019-12-31 16:21 ` Andrea Corallo
2019-12-31 16:47 ` Eli Zaretskii
2019-12-31 22:15 ` Óscar Fuentes
2020-01-01 12:41 ` Andrea Corallo
2020-01-01 15:14 ` Stefan Monnier
2020-01-01 18:42 ` Andrea Corallo
2020-01-02 7:55 ` arthur miller
2020-01-02 11:31 ` Andrea Corallo
2020-01-02 13:53 ` Eli Zaretskii
2020-01-04 18:17 ` Stefan Monnier
2020-01-05 1:33 ` Jean-Christophe Helary
2020-01-05 4:51 ` Stefan Monnier
2020-01-05 5:18 ` Jean-Christophe Helary
2020-01-05 6:36 ` Stefan Monnier
2020-01-02 13:47 ` Eli Zaretskii
2020-01-04 18:14 ` Stefan Monnier
2020-01-05 10:00 ` Andrea Corallo
2020-01-02 11:47 ` Andrea Corallo
2020-01-02 16:52 ` Ergus
2020-01-02 17:55 ` Andrea Corallo
2020-01-11 14:10 ` Andrea Corallo
2020-02-04 11:28 ` Andrea Corallo
2020-02-04 15:30 ` Eli Zaretskii
2020-02-04 18:39 ` Andrea Corallo
2020-02-04 18:58 ` Eli Zaretskii
2020-02-04 19:00 ` Paul Eggert
2020-02-04 20:30 ` Andrea Corallo
2020-02-05 10:15 ` Andrea Corallo
2020-02-05 14:24 ` Stefan Monnier
2020-02-15 9:29 ` Andrea Corallo
2020-02-16 18:18 ` Andrea Corallo
2020-02-22 10:15 ` On elisp running native - deferred compilation Andrea Corallo
2020-02-22 14:19 ` Stefan Monnier [this message]
2020-03-04 19:34 ` On elisp running native Andrea Corallo
2020-03-04 20:21 ` Michael Albinus
2020-03-04 22:16 ` Andrea Corallo
2020-03-05 19:33 ` Michael Albinus
2020-03-06 21:44 ` Andrea Corallo
2020-03-07 9:09 ` Michael Albinus
2020-03-07 9:33 ` Andrea Corallo
2020-03-07 9:41 ` Michael Albinus
[not found] ` <xjf36akjx8e.fsf@sdf.org>
[not found] ` <87y2sca2ex.fsf@gmx.de>
[not found] ` <xjfy2scigxn.fsf@sdf.org>
[not found] ` <xjftv30hytf.fsf@sdf.org>
2020-03-07 17:57 ` Michael Albinus
2020-03-07 18:49 ` Andrea Corallo
2020-03-07 18:54 ` Michael Albinus
2020-03-07 19:19 ` Andrea Corallo
2020-03-08 15:03 ` Andrea Corallo
2020-03-08 20:16 ` Michael Albinus
2020-03-08 20:55 ` Andrea Corallo
2020-03-08 21:09 ` Michael Albinus
2020-03-08 21:29 ` Andrea Corallo
2020-03-08 21:32 ` Michael Albinus
2020-03-08 21:37 ` Andrea Corallo
2020-03-05 10:54 ` Adam Porter
2020-03-05 12:43 ` Gong-Yi Liao 廖宮毅
2020-03-05 13:27 ` Andrea Corallo
2020-03-08 14:37 ` Gong-Yi Liao 廖宮毅
2020-03-08 15:13 ` Andrea Corallo
2020-03-15 19:00 ` Gong-Yi Liao 廖宮毅
2020-03-15 20:00 ` Andrea Corallo
2020-03-05 13:19 ` Andrea Corallo
2020-03-05 14:42 ` Adam Porter
2020-03-05 19:46 ` Andrea Corallo
2020-03-06 21:15 ` Adam Porter
2020-03-06 21:23 ` Adam Porter
2020-03-06 21:52 ` Andrea Corallo
2020-03-11 22:04 ` Andrea Corallo
2020-03-12 17:10 ` Adam Porter
2020-03-12 17:34 ` Stefan Monnier
2020-03-12 18:03 ` Andrea Corallo
2020-03-23 21:36 ` On elisp running native - Update7 Andrea Corallo
2020-03-24 2:59 ` Gong-Yi Liao 廖宮毅
2020-03-24 8:44 ` Andrea Corallo
2020-05-16 15:24 ` On elisp running native - Update 8 Andrea Corallo
2020-05-16 16:21 ` Eli Zaretskii
2020-05-16 20:44 ` Andrea Corallo
2020-05-16 18:22 ` Gregor Zattler
2020-05-16 19:59 ` Andrea Corallo
2020-05-17 5:26 ` Gregor Zattler
2020-06-14 13:23 ` On elisp running native - Update 9 Andrea Corallo
2020-06-14 17:23 ` arthur miller
2020-06-15 5:04 ` Gong-Yi Liao 廖宮毅
2020-06-15 7:41 ` Andrea Corallo
2020-06-17 23:54 ` Stefan Monnier
2020-06-18 6:55 ` Andrea Corallo
2020-07-16 20:00 ` On elisp running native - Update 10 Andrea Corallo via Emacs development discussions.
2020-08-17 18:43 ` On elisp running native - Update 11 Andrea Corallo via Emacs development discussions.
2020-08-18 5:13 ` Arthur Miller
2020-08-18 8:17 ` Andrea Corallo via Emacs development discussions.
2020-09-26 10:35 ` On elisp running native - Update 12 Andrea Corallo via Emacs development discussions.
2020-09-26 14:29 ` T.V Raman
2020-09-26 14:56 ` Andrea Corallo via Emacs development discussions.
2020-09-26 15:07 ` T.V Raman
2020-09-28 12:22 ` Lars Brinkhoff
2020-09-28 14:03 ` T.V Raman
2020-09-27 10:35 ` Arthur Miller
2020-09-27 18:28 ` Andrea Corallo via Emacs development discussions.
2020-09-27 18:30 ` Lars Ingebrigtsen
2020-09-27 20:39 ` T.V Raman
2020-09-27 22:10 ` Stefan Monnier
2020-09-28 6:06 ` Eli Zaretskii
2020-09-28 10:28 ` Andrea Corallo via Emacs development discussions.
2020-09-28 10:45 ` Eli Zaretskii
2020-09-28 11:02 ` Andrea Corallo via Emacs development discussions.
2020-09-27 20:37 ` T.V Raman
2020-09-28 14:10 ` Yuan Fu
2020-09-28 14:51 ` Andrea Corallo via Emacs development discussions.
2020-09-28 15:20 ` Yuan Fu
2020-09-28 15:32 ` Andrea Corallo via Emacs development discussions.
2020-09-28 15:19 ` Caio Henrique
2020-09-28 15:39 ` Andrea Corallo via Emacs development discussions.
2020-09-28 16:12 ` Caio Henrique
2020-09-28 17:21 ` Andrea Corallo via Emacs development discussions.
2021-01-01 18:37 ` On elisp running native - Update 13 Andrea Corallo via Emacs development discussions.
2021-01-01 20:07 ` tomas
2020-01-01 15:19 ` On elisp running native Óscar Fuentes
2020-01-01 18:48 ` Andrea Corallo
2020-01-01 14:59 ` Stefan Monnier
2020-03-15 14:21 ` Spenser Truex
2020-03-15 20:10 ` Andrea Corallo
2020-03-18 14:58 ` Lars Brinkhoff
2020-03-18 17:14 ` Andrea Corallo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=jwvzhda3ebf.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=akrl@sdf.org \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.