unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: esr@thyrsus.com (Eric S. Raymond)
To: emacs-devel@gnu.org
Subject: Time to drop the pre-dump phase in the build?
Date: Fri, 10 Jan 2014 14:15:30 -0500 (EST)	[thread overview]
Message-ID: <20140110191530.5772E38019B@snark.thyrsus.com> (raw)

My current transition task is still tag cleanup and signing. I'll
report on that shortly.

I had some off-list conversation with one of our lurkers about
tag cleaning. During it he made an interestingly radical suggestion:
Maybe it's time to stop pre-dumping compiled Lisp into the Emacs build.

While this made sense as a performance hack back in the day, hardware
(most relevantly disk I/O) is much, *much* faster now.  And SSDs are
making access to disk not much slower than main memory. Compilation
on demand might be fast enough today.

There are good reasons to think about dropping this technique:

(1) It makes cross-build of Emacs a pain in the ass.

(2) Even in the non-crossbuild case, it requires a whole lot of
    build-system hair we could otherwise do without.

(3) Back when I last looked at it (admittedly a long time ago) 
    the dump code was both the largest single source of porting
    problems and a serious attractor of crash bugs.  

(4) We're presently buying some startup speed at the cost of a larger
    minimum working set.  I don't *know* that this is a bad trade
    under modern cache hierarchies, but I think the question deserves
    examination.

If anybody wants to own this problem, comparative benchmarking seems
like a good place to start.  That is, hard numbers about the 
actual performance effects of pre-dumping.  That'd head off a
lot of arguments, anyway.

(Why, yes.  I *do* enjoy shaking up peoples' long-held assumptions.
This wasn't obvious already?)
-- 
		<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>

Every election is a sort of advance auction sale of stolen goods. 
	-- H.L. Mencken 



             reply	other threads:[~2014-01-10 19:15 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-10 19:15 Eric S. Raymond [this message]
2014-01-10 19:49 ` Time to drop the pre-dump phase in the build? Eli Zaretskii
2014-01-11  6:16   ` Paul Eggert
2014-01-11  7:17   ` Richard Stallman
2014-01-12  0:16     ` Nix
2014-01-12  3:48       ` Eli Zaretskii
2014-01-12  3:53         ` Eric S. Raymond
2014-01-11  7:17   ` Richard Stallman
2014-01-10 19:51 ` Stefan Monnier
2014-01-10 20:09   ` Eric S. Raymond
2014-01-10 20:13   ` Eli Zaretskii
2014-01-10 20:20 ` Barry Warsaw
2014-01-10 20:30   ` Eli Zaretskii
2014-01-10 21:06     ` Barry Warsaw
2014-01-10 22:19 ` Daniel Colascione
2014-01-10 22:58   ` David Kastrup
2014-01-11  0:05     ` Daniel Colascione
2014-01-10 23:23   ` Stefan Monnier
2014-01-11  0:07     ` Daniel Colascione
2014-01-11  2:58       ` Stefan Monnier
2014-01-11  3:37         ` Daniel Colascione
2014-01-11  5:13           ` Stefan Monnier
2014-01-11  5:30             ` Daniel Colascione
2014-01-11 16:14           ` Stephen J. Turnbull
2014-01-11 20:13     ` Glenn Morris

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140110191530.5772E38019B@snark.thyrsus.com \
    --to=esr@thyrsus.com \
    --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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).