From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: [elpa] master b7d8d3c 9/9: * fixtures/test/: Don't byte-compile Date: Tue, 20 Dec 2016 09:53:23 -0500 Message-ID: References: <20160805013757.31623.20092@vcs.savannah.gnu.org> <20160805013758.9B5BB2201A4@vcs.savannah.gnu.org> <357c3d56-6fe1-fcd1-8403-eaab95ab9af8@gmail.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1482245626 20729 195.159.176.226 (20 Dec 2016 14:53:46 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 20 Dec 2016 14:53:46 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2.50 (gnu/linux) Cc: emacs-devel To: Jackson Ray Hamilton Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Dec 20 15:53:39 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cJLnN-0003pK-8B for ged-emacs-devel@m.gmane.org; Tue, 20 Dec 2016 15:53:37 +0100 Original-Received: from localhost ([::1]:51758 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cJLnR-0000O2-C5 for ged-emacs-devel@m.gmane.org; Tue, 20 Dec 2016 09:53:41 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:45490) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cJLnG-0000Ku-VP for emacs-devel@gnu.org; Tue, 20 Dec 2016 09:53:34 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cJLnD-00040c-09 for emacs-devel@gnu.org; Tue, 20 Dec 2016 09:53:31 -0500 Original-Received: from pruche.dit.umontreal.ca ([132.204.246.22]:50181) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cJLnC-00040X-Rw for emacs-devel@gnu.org; Tue, 20 Dec 2016 09:53:26 -0500 Original-Received: from ceviche.home (lechon.iro.umontreal.ca [132.204.27.242]) by pruche.dit.umontreal.ca (8.14.7/8.14.1) with ESMTP id uBKErOZV017196; Tue, 20 Dec 2016 09:53:24 -0500 Original-Received: by ceviche.home (Postfix, from userid 20848) id E1F636626E; Tue, 20 Dec 2016 09:53:23 -0500 (EST) In-Reply-To: (Jackson Ray Hamilton's message of "Mon, 19 Dec 2016 22:04:23 -0800") X-NAI-Spam-Flag: NO X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0 X-NAI-Spam-Rules: 2 Rules triggered EDT_SA_DN_PASS=0, RV5894=0 X-NAI-Spam-Version: 2.3.0.9418 : core <5894> : inlines <5587> : streams <1725481> : uri <2343955> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 132.204.246.22 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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" Xref: news.gmane.org gmane.emacs.devel:210660 Archived-At: > Sorry, I didn't even notice the slowdown; I see now that it went from > 0.9s to 1.9s on my machine. > > The first attached patch is simple and speeds it up to 1.65s. > > The second attached patch sort of re-implements what tar would do, using > sh case, but it's more complex. It clocks in at 1.35s after that. [ If we can use `tar` it seems better, indeed. BTW we need to be careful to try and make it difficult for a committer to elpa.git to get access to elpa.gnu.org via this script (I'm thinking of a commit that adds files with names that contain funny chars like space, ;, etc...). ] But they both restrict the .el files to be in the top-level directory, and the source of the problem that lead to this discussion is that I want to byte-compile also those files that are inside sub-directories (even though we don't currently do that). I think we could optimize the code in other ways: - currently `make` is invoked twice (once recursively to build `elcs`), so this computation of included_els is performed twice. I'd be great to get rid of this redundancy. - only use `tar` if there is a .elpaignore, and just use something like $(wildcard *.el */*.el */*/*.el) in the other case. - only check .elpaignore for *changes*. I.e. cache the previous computation somehow. One way is to only check .elpaignore for those files which don't have a corresponding .elc. Stefan