emacs-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]