Re: triggers wishlist [emacsen add-on packages]
On Mon, Mar 31, 2008 at 10:31:36AM -0500, Steve Greenland wrote:
> On 30-Mar-08, 15:25 (CDT), Joey Hess <joeyh@debian.org> wrote:
> > dpkg in experimental supports triggers now, and in many cases trigger
> > support can be added to packages without creating a hard dependency on
> > a new version of dpkg.
> >
> > Things I want to see use triggers, in approximate priority order:
>
> The various emacsen-related packages seem to cause multiple re-compiles
> during a single install run. It's not terribly slow, but it's sort of
> annoying.
[cc'ing debian-emacsen so people is aware of this thread]
I am not sure triggers are the right tool here, byte-recompilation can be
enabled by any of package-with-lisp or emacs-package upgrade/install.
emacs packages have no way of knowing at build time which packages-with-lisp
are to be installed, so I am not sure which would be the right triggers.
However, if there is a clean way of using triggers for this I would be
happy to be corrected.
On the other hand the main problem is, as others have pointed out, due to
the noise produced by the lack of a -no-init-file opton. Same byte-compilation
is done twice as much, and sometimes is done just once.
In the meantime I have been experimenting with a different approach. I think
the multiple byte-compilation problem can also be addressed with minor
changes in current behavior, something as shown below in some sort of
pseudo-code. '+' stands for the additional stuff
----------------------------------------------------------------------
emacsen-remove: (Run from prerm)
remove elcdir and its contents
emacsen-install: (Run from postinst)
set -e
+ if -e elcdir/done
+ skip
+ else
create elcdir
Byte-compile files to elc dir
+ touch elcdir/done
+ fi
---------------------------------------------------------------------
So if byte-compilation succeeds a 'done' file is touched and its presence
can be used as a proof of that, so byte-compilation is not retried. On
package or emacs upgrade the elcdir is removed, so byte-complation is tried
again.
--
Agustin
Reply to: