[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Refactoring elisp compilation
From: |
Stefano Lattarini |
Subject: |
Re: Refactoring elisp compilation |
Date: |
Sat, 14 Jul 2012 23:33:02 +0200 |
On 07/14/2012 02:18 PM, Jack Kelly wrote:
> Hi automakers,
>
Hi Jack, thank you very much for the patch.
> I had a crack at refactoring the elisp compilation, getting rid of
> elisp-comp and compiling files via a suffix rule. Patch is attached.
>
> I am not submitting this for inclusion yet,
>
Still, because your patch seems promising (and keep passing the testsuite
both using serial and parallel make in the relevant test cases), I have
amended it for style issues (i.e., quoting 'like this' rather than
`like this', using a more standard format in the commit message, and other
trivialities), reformulated and extended the commit message a bit, and
pushed it to the new, rewindable (i.e., that can be amended and rewritten)
branch 'experimental/elisp-work'; this should help us to experiment more
freely. I've also added some improved testsuite coverage and several
follow-up patches there.
I will soon post the patch series in this thread, for reference and to
elicit reviews.
> I want to generate some
> discussion first. I have the following concerns:
>
> 1. I would like to add silent-rules support,
>
Me too, but since the lack of it wouldn't be a regression, that issue
can be tackled later.
> but it's not completely
> straightforward. The call to file_contents is buried within
> &am_install_var. I'm thinking of adding another option to
> am_install_var that adds a silent var to the file_contents call.
> Something like am_install_var( '-silent_var=FOO', ...), which would
> result in a call to define_verbose_tagvar('FOO') and AM_V_FOO =>
> verbose_flag('FOO') in the file_contents call.
>
Now that the automake from master enables support for silent rules
unconditionally, we might bypass preprocessing by automake and
encode something like this directly in lisp.am (untested!):
AM_V_ELISPCOMP = $(address@hidden@)
AM_V_ELISPCOMP_ = $(address@hidden@)
AM_V_ELISPCOMP_0 = @echo ECOMP $@;
.elc.el:
$(AM_V_ELISPCOMP) ...
We'll see.
> 2. If I implement (1) above, it's still not straightforward. The rules
> will be invoked even if $(EMACS) = "no", so the suffix rule guards
> against that, becoming a no-op if $(EMACS) = no. That will be
> rechecked by on every invocation of "make", for every file in
> $(ELCFILES).
>
I don't see how or where this would be a problem ... Am I missing
something?
> Perhaps an AM_CONDITIONAL in AM_PATH_LISPDIR is the way
> to fix this? Existing tests shoudn't break because they set EMACS=no
> either at configure time or in configure.ac.
>
> 3. On my Ubuntu system at least (and probably debian systems as well),
> each call to emacs puts out a few messages of the form "Loading
> 00debian-vars...". This isn't too bad, just unsightly. Any shell/elisp
> wizards have a suggestion?
>
I'm no elisp wizard (nor magician, conjurer, or juggler :-), so I'm
not able to help here, sorry. Maybe we could instruct emacs not to
load the system-wide startup file at all?
> 4. Instead of invoking emacs for all files at once, a new emacs is now
> started for each .el file. This might make incremental builds faster,
> one-time builds slower, both or neither.
>
It might certainly play nicer with "make -jN" (which I'm using more and
more on today's multi-core machines).
> Does anyone know of projects with a significant amount of elisp that
> I could test on?
>
Again I don't; sorry :-(
> Comments extremely welcome.
>
> -- Jack
Thanks,
Stefano
- Refactoring elisp compilation, Jack Kelly, 2012/07/14
- Re: Refactoring elisp compilation,
Stefano Lattarini <=
- [PATCH 0/7] More work on elisp support, Stefano Lattarini, 2012/07/14
- [PATCH 1/7] coverage: emacs lisp files in subdirectories, Stefano Lattarini, 2012/07/14
- [PATCH 2/7] coverage: elisp path contains $(srcdir) and $(builddir), Stefano Lattarini, 2012/07/14
- [PATCH 3/7] elisp: use suffix rules, get rid of 'elisp-comp' script (mostly a rewrite), Stefano Lattarini, 2012/07/14
- [PATCH 4/7] elisp: prefer $(builddir) files over $(srcdir) ones, Stefano Lattarini, 2012/07/14
- [PATCH 5/7] elisp: no need to "absolutize" $(srcdir) and $(builddir) ..., Stefano Lattarini, 2012/07/14
- Re: [PATCH 5/7] elisp: no need to "absolutize" $(srcdir) and $(builddir) ..., Jack Kelly, 2012/07/14
- Re: [PATCH 5/7] elisp: no need to "absolutize" $(srcdir) and $(builddir) ..., Stefano Lattarini, 2012/07/15
- [PATCH 7/7] elisp: support elisp files in subdirectories properly, Stefano Lattarini, 2012/07/14
- [PATCH 6/7] elisp: simplify suffix rules using emacs '-L' option, Stefano Lattarini, 2012/07/14