[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [elpa] master b7d8d3c 9/9: * fixtures/test/: Don't byte-compile
From: |
Stefan Monnier |
Subject: |
Re: [elpa] master b7d8d3c 9/9: * fixtures/test/: Don't byte-compile |
Date: |
Tue, 20 Dec 2016 09:53:23 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2.50 (gnu/linux) |
> 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