From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: esr@thyrsus.com (Eric S. Raymond) Newsgroups: gmane.emacs.devel Subject: Time to drop the pre-dump phase in the build? Date: Fri, 10 Jan 2014 14:15:30 -0500 (EST) Message-ID: <20140110191530.5772E38019B@snark.thyrsus.com> NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1389381468 24651 80.91.229.3 (10 Jan 2014 19:17:48 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 10 Jan 2014 19:17:48 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Jan 10 20:17:57 2014 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1W1hae-0002tD-J5 for ged-emacs-devel@m.gmane.org; Fri, 10 Jan 2014 20:17:56 +0100 Original-Received: from localhost ([::1]:58620 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W1hae-0000gA-4N for ged-emacs-devel@m.gmane.org; Fri, 10 Jan 2014 14:17:56 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:49539) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W1hYs-0006yI-72 for emacs-devel@gnu.org; Fri, 10 Jan 2014 14:16:10 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W1hYn-0002Fe-Dy for emacs-devel@gnu.org; Fri, 10 Jan 2014 14:16:06 -0500 Original-Received: from static-71-162-243-5.phlapa.fios.verizon.net ([71.162.243.5]:47767 helo=snark.thyrsus.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W1hYn-0002FR-9c for emacs-devel@gnu.org; Fri, 10 Jan 2014 14:16:01 -0500 Original-Received: by snark.thyrsus.com (Postfix, from userid 1000) id 5772E38019B; Fri, 10 Jan 2014 14:15:30 -0500 (EST) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 71.162.243.5 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:168033 Archived-At: 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?) -- Eric S. Raymond Every election is a sort of advance auction sale of stolen goods. -- H.L. Mencken