From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Christoph Scholtes Newsgroups: gmane.emacs.devel Subject: Re: Emacs build times on Windows Date: Sat, 21 Apr 2012 06:05:42 -0600 Message-ID: <4F92A296.3000604@gmail.com> References: <4F922E92.8030200@gmail.com> <83vckth7ah.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1335009968 13331 80.91.229.3 (21 Apr 2012 12:06:08 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sat, 21 Apr 2012 12:06:08 +0000 (UTC) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Apr 21 14:06:05 2012 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 1SLZ4m-0006No-G0 for ged-emacs-devel@m.gmane.org; Sat, 21 Apr 2012 14:06:04 +0200 Original-Received: from localhost ([::1]:60997 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SLZ4l-0002Hg-QQ for ged-emacs-devel@m.gmane.org; Sat, 21 Apr 2012 08:06:03 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:55924) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SLZ4g-0002HL-AT for emacs-devel@gnu.org; Sat, 21 Apr 2012 08:06:02 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SLZ4b-0004FZ-QN for emacs-devel@gnu.org; Sat, 21 Apr 2012 08:05:57 -0400 Original-Received: from mail-iy0-f169.google.com ([209.85.210.169]:50195) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SLZ4V-0004Cm-0K; Sat, 21 Apr 2012 08:05:47 -0400 Original-Received: by iajr24 with SMTP id r24so18114860iaj.0 for ; Sat, 21 Apr 2012 05:05:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=FHSGnbT8v40JPquNcd9splwt6AHwkj8L58g3XCMDwz0=; b=RkZCLDYT1xhiPQYyjYZy5sjLknmgXx3Hms/iJksbqhcRRVi/hghFeHCsdGd7wdieRZ 7cWVGjB5CxWFm4VoKFIWpsFULK6j1wmVxiPDpP/mx8mZxUVvqK8putSeQQmmZYqm+eEV cAzpG5Xmx33VckTQrqgalKxdVbZn9ywoaP7hptpZhp+CBI98KghZsSlcdqD+d8pvlkTr dfITJJ6RvtlT22SSdTucVJCqt0Zz6TVLaC8jvLW9/MuhtNJF4v0caqvM76Qy1kNj9nmw PI1Yhv0o1RQ6QLNKkrkqTup5809bn7bbnuAR3WHJOkRjVEGht78nnmrDYKn2YAzRjcvb ASUQ== Original-Received: by 10.50.40.130 with SMTP id x2mr5519053igk.0.1335009943627; Sat, 21 Apr 2012 05:05:43 -0700 (PDT) Original-Received: from [192.168.1.2] (71-208-73-15.hlrn.qwest.net. [71.208.73.15]) by mx.google.com with ESMTPS id ew6sm2753033igc.6.2012.04.21.05.05.42 (version=SSLv3 cipher=OTHER); Sat, 21 Apr 2012 05:05:42 -0700 (PDT) User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120327 Thunderbird/11.0.1 In-Reply-To: <83vckth7ah.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.210.169 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:149901 Archived-At: Hi Eli, On 4/21/2012 1:29 AM, Eli Zaretskii wrote: > On my i7 desktop (4 hyper-threaded cores), it takes 9 minutes, if I > use the -j10 switch to Make. I suggest that you try -j6 in your > builds (if you use anything older than the current CVS of GNU Make, > you will also have to use the XMFLAGS="-j6" kludge as well, see > nt/INSTALL). A parallel build should be faster. Thanks. Does this work with mingw32-make also or do I have to use Cygwin (or MSYS?) to obtain gmake? I tried building with mingw32-make -j2 but it did not result in any significant speedup. > The extra build with a large PURESIZE is not the problem. Each one of > the 2 compilations of the Emacs sources takes 20 seconds on my machine > (using "make -j10"), which is negligibly short compared to the > compilation of Lisp files. ("make -j10 info" takes another 5 seconds, > but only on the trunk, where I recently made the 'info' target of > nt/makefile.w32-in more parallel-friendly.) On my system the extra PURESIZE build takes a lot longer than 20 seconds, but hopefully I can reduce that by using parallel compilation. > Very simple: the byte compilation on Posix platforms can run in > parallel, because it uses a generic .el.elc rule. By contrast, on > Windows we compile them sequentially, one after the other, because the > recipe says: > > compile-CMD: > # -for %%f in ($(lisp) $(WINS)) do for %%g in (%%f\*.elc) do @attrib -r %%g > for %%f in ($(COMPILE_FIRST)) do \ > $(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done %%f > for %%f in (. $(WINS)) do for %%g in (%%f/*.el) do \ > $(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done %%f/%%g > > IOW, we use a shell-level loop to compile the files one by one. > > So if you are looking for the place to significantly speed up the > bootstrap, the first place to look is to make the byte compilation use > a similar setup to what you see in lisp/Makefile.in. I see. I will look into that. Thanks. Christoph