[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: replacing ldefs-boot.el

From: Phillip Lord
Subject: Re: replacing ldefs-boot.el
Date: Mon, 21 Nov 2016 22:03:15 +0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux)

Eli Zaretskii <address@hidden> writes:

>> From: address@hidden (Phillip Lord)
>> Cc: address@hidden
>> Date: Sun, 20 Nov 2016 21:28:49 +0000
>> This is a reasonable significant change in the bootstrap build, and
>> there may be implications that I have not foreseen. Hence it makes sense
>> to ask first.
> Then please describe the bootstrap and the normal build in detail,
> because I'm not sure I understood the implications by just looking at
> the diffs.

Currently, emacs builds like so (in f make syntax)-- 

temacs: *.c

bootstrap-emacs: temacs
      ## temacs loads ldefs-boot.el during loadup or it crashes

compile-first: bootstrap-emacs

loaddefs.el: compile-first
     ## now we generate loaddefs.el

Afterwards, we do:

temacs: *.c

bootstrap-emacs: temacs
      ## temacs loads ldefs-boot-manual.el and -auto.el during
      ## loadup or it crashes

loaddefs.el: bootstrap-emacs
     ## now we generate loaddefs.el

compile-first: loaddefs.el

So, loaddefs.el is available before compile-first happens.

> What are those additional files, and how and when they are
> generated?

ldefs-boot-auto.el is now autogenerated from a make target at top level.
It works but augmenting eval.c, so that when an autoload happens, Emacs
writes to system stdout the equivalent autoload form. A complete
bootstrap build will, therefore, print all the autoloads that are
actually used. There's some lisp in admin/ldefs-clean.el which removes
everything except these lisp forms.


 - we still have an autogenerated file in the repo, but it is very much
   smaller (160 lines vs 40k).


 - generating ldefs-boot-auto is a lot slower (i.e. cp loaddefs.el
   ldefs-boot.el vs a complete bootstrap build of Emacs).


 - to my testing there is negligable difference in build time.


reply via email to

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