* A target that's even more bootstrap? @ 2019-06-18 11:22 Lars Ingebrigtsen 2019-06-18 12:16 ` Andreas Schwab ` (2 more replies) 0 siblings, 3 replies; 59+ messages in thread From: Lars Ingebrigtsen @ 2019-06-18 11:22 UTC (permalink / raw) To: emacs-devel Unless I'm reading the makefile wrong, there's no target there to say "remove all compiler artefacts and then recompile"? There's bootstrap-clean and extraclean, but if you run those, "make" no longer works and you have to use "sh autogen.sh; ./configure" manually... (And if you run bootstrap-clean/extraclean in the wrong order, you're left with a lot of non-cleaned-up files, so it's rather confusing.) Would it be an idea to have a target like "full-bootstrap" that does these things for you in the correct order? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-18 11:22 A target that's even more bootstrap? Lars Ingebrigtsen @ 2019-06-18 12:16 ` Andreas Schwab 2019-06-18 12:27 ` Lars Ingebrigtsen 2019-06-18 12:53 ` Phillip Lord 2019-06-18 15:53 ` Eli Zaretskii 2 siblings, 1 reply; 59+ messages in thread From: Andreas Schwab @ 2019-06-18 12:16 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel On Jun 18 2019, Lars Ingebrigtsen <larsi@gnus.org> wrote: > Unless I'm reading the makefile wrong, there's no target there to say > "remove all compiler artefacts and then recompile"? make bootstrap? Andreas. -- Andreas Schwab, SUSE Labs, schwab@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different." ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-18 12:16 ` Andreas Schwab @ 2019-06-18 12:27 ` Lars Ingebrigtsen 0 siblings, 0 replies; 59+ messages in thread From: Lars Ingebrigtsen @ 2019-06-18 12:27 UTC (permalink / raw) To: Andreas Schwab; +Cc: emacs-devel Andreas Schwab <schwab@suse.de> writes: > On Jun 18 2019, Lars Ingebrigtsen <larsi@gnus.org> wrote: > >> Unless I'm reading the makefile wrong, there's no target there to say >> "remove all compiler artefacts and then recompile"? > > make bootstrap? No, that neglects to remove dozens of generated files. Only extraclean will remove those, apparently. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-18 11:22 A target that's even more bootstrap? Lars Ingebrigtsen 2019-06-18 12:16 ` Andreas Schwab @ 2019-06-18 12:53 ` Phillip Lord 2019-06-18 13:20 ` Stefan Monnier 2019-06-18 16:03 ` Eli Zaretskii 2019-06-18 15:53 ` Eli Zaretskii 2 siblings, 2 replies; 59+ messages in thread From: Phillip Lord @ 2019-06-18 12:53 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel Lars Ingebrigtsen <larsi@gnus.org> writes: > Unless I'm reading the makefile wrong, there's no target there to say > "remove all compiler artefacts and then recompile"? > > There's bootstrap-clean and extraclean, but if you run those, "make" no > longer works and you have to use "sh autogen.sh; ./configure" > manually... (And if you run bootstrap-clean/extraclean in the wrong > order, you're left with a lot of non-cleaned-up files, so it's rather > confusing.) > > Would it be an idea to have a target like "full-bootstrap" that does > these things for you in the correct order? Perhaps it is worth considering the opposite approach. Currently, we have mostlyclean clean distclean maintainer-clean extraclean bootstrap-clean The the irregular hyphenation is a bit odd. But, in addition, I would guess that many of these levels (maintainer-clean, extraclean and bootstrap-clean) are really only there to save time; with parallel builds and faster machines I wonder how many of these are actually needed. If I understand it, distclean is most severe. So, why not ditch everything other than distclean and clean? Phil ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-18 12:53 ` Phillip Lord @ 2019-06-18 13:20 ` Stefan Monnier 2019-06-18 13:28 ` Lars Ingebrigtsen 2019-06-18 16:03 ` Eli Zaretskii 1 sibling, 1 reply; 59+ messages in thread From: Stefan Monnier @ 2019-06-18 13:20 UTC (permalink / raw) To: emacs-devel > Perhaps it is worth considering the opposite approach. Currently, we > have > > mostlyclean > clean > distclean > maintainer-clean > extraclean > bootstrap-clean FWIW, my main problem with the above is that their name doesn't actually say what they do, so I never know which one to use. I find those names unusually obscure. > The the irregular hyphenation is a bit odd. But, in addition, I would > guess that many of these levels (maintainer-clean, extraclean and > bootstrap-clean) are really only there to save time; with parallel > builds and faster machines I wonder how many of these are > actually needed. FWIW none of my machines have gotten any faster over the last 10 years. Stefan ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-18 13:20 ` Stefan Monnier @ 2019-06-18 13:28 ` Lars Ingebrigtsen 0 siblings, 0 replies; 59+ messages in thread From: Lars Ingebrigtsen @ 2019-06-18 13:28 UTC (permalink / raw) To: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: > FWIW, my main problem with the above is that their name doesn't actually > say what they do, so I never know which one to use. > I find those names unusually obscure. Yeah, me too. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-18 12:53 ` Phillip Lord 2019-06-18 13:20 ` Stefan Monnier @ 2019-06-18 16:03 ` Eli Zaretskii 2019-06-19 9:29 ` Phillip Lord 2019-06-19 13:15 ` Lars Ingebrigtsen 1 sibling, 2 replies; 59+ messages in thread From: Eli Zaretskii @ 2019-06-18 16:03 UTC (permalink / raw) To: Phillip Lord; +Cc: larsi, emacs-devel > From: phillip.lord@russet.org.uk (Phillip Lord) > Date: Tue, 18 Jun 2019 13:53:02 +0100 > Cc: emacs-devel@gnu.org > > mostlyclean > clean > distclean > maintainer-clean > extraclean > bootstrap-clean > > The the irregular hyphenation is a bit odd. clean, distclean, mostlyclean, and maintainer-clean are from the GNU Coding Standards (GCS). Many projects have extraclean. So this is tradition of sorts. > But, in addition, I would guess that many of these levels > (maintainer-clean, extraclean and bootstrap-clean) are really only > there to save time; with parallel builds and faster machines I > wonder how many of these are actually needed. AFAIK, the issue at hand is not the speed, the issue is to know what generated files get deleted. Some builds require a specific target from this list to be run before the build. For example, if you weant to reconfigure from scratch, you want distclean. > If I understand it, distclean is most severe. So, why not ditch > everything other than distclean and clean? Because the GCS says otherwise? ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-18 16:03 ` Eli Zaretskii @ 2019-06-19 9:29 ` Phillip Lord 2019-06-19 15:21 ` Eli Zaretskii 2019-06-19 13:15 ` Lars Ingebrigtsen 1 sibling, 1 reply; 59+ messages in thread From: Phillip Lord @ 2019-06-19 9:29 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> From: phillip.lord@russet.org.uk (Phillip Lord) >> Date: Tue, 18 Jun 2019 13:53:02 +0100 >> Cc: emacs-devel@gnu.org >> >> mostlyclean >> clean >> distclean >> maintainer-clean >> extraclean >> bootstrap-clean >> >> The the irregular hyphenation is a bit odd. > > clean, distclean, mostlyclean, and maintainer-clean are from the GNU > Coding Standards (GCS). Many projects have extraclean. So this is > tradition of sorts. > >> But, in addition, I would guess that many of these levels >> (maintainer-clean, extraclean and bootstrap-clean) are really only >> there to save time; with parallel builds and faster machines I >> wonder how many of these are actually needed. > > AFAIK, the issue at hand is not the speed, the issue is to know what > generated files get deleted. Some builds require a specific target > from this list to be run before the build. For example, if you weant > to reconfigure from scratch, you want distclean. > >> If I understand it, distclean is most severe. So, why not ditch >> everything other than distclean and clean? > > Because the GCS says otherwise? The GCS differentiate between "clean" and "mostlyclean" with "may". So, mostlyclean and clean could be the same. The only difference that is needed between "distclean" and "maintainer-clean" is that former needs to delete configure while the latter doesn't (AFAICT, doesn't need anything else to generate configure). extraclean isn't required and but could be the same as maintainer-clean. And bootstrap-clean is also not required -- it could be maintainer-clean. So, it could be made simpler. But, alas, the inconsistent hyphenation is part of the GCS, so guess we are stuffed there. Phil ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 9:29 ` Phillip Lord @ 2019-06-19 15:21 ` Eli Zaretskii 0 siblings, 0 replies; 59+ messages in thread From: Eli Zaretskii @ 2019-06-19 15:21 UTC (permalink / raw) To: Phillip Lord; +Cc: larsi, emacs-devel > From: phillip.lord@russet.org.uk (Phillip Lord) > Cc: larsi@gnus.org, emacs-devel@gnu.org > Date: Wed, 19 Jun 2019 10:29:41 +0100 > > >> If I understand it, distclean is most severe. So, why not ditch > >> everything other than distclean and clean? > > > > Because the GCS says otherwise? > > The GCS differentiate between "clean" and "mostlyclean" with "may". So, > mostlyclean and clean could be the same. They could do the same, but you asked about ditching them, not about making them do the same. > extraclean isn't required and but could be the same as > maintainer-clean. No, I think they should be separate, if only because maintainer-clean is useful on its own right. ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-18 16:03 ` Eli Zaretskii 2019-06-19 9:29 ` Phillip Lord @ 2019-06-19 13:15 ` Lars Ingebrigtsen 2019-06-19 14:00 ` Andreas Schwab 2019-06-19 15:28 ` Eli Zaretskii 1 sibling, 2 replies; 59+ messages in thread From: Lars Ingebrigtsen @ 2019-06-19 13:15 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel, Phillip Lord Eli Zaretskii <eliz@gnu.org> writes: > AFAIK, the issue at hand is not the speed, the issue is to know what > generated files get deleted. Some builds require a specific target > from this list to be run before the build. For example, if you weant > to reconfigure from scratch, you want distclean. distclean does not remove the generated charset map files or the .elc files. But it does delete the .o files. Very confusing. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 13:15 ` Lars Ingebrigtsen @ 2019-06-19 14:00 ` Andreas Schwab 2019-06-19 15:28 ` Eli Zaretskii 1 sibling, 0 replies; 59+ messages in thread From: Andreas Schwab @ 2019-06-19 14:00 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Eli Zaretskii, Phillip Lord, emacs-devel On Jun 19 2019, Lars Ingebrigtsen <larsi@gnus.org> wrote: > distclean does not remove the generated charset map files or the .elc > files. But it does delete the .o files. Very confusing. distclean must not remove distributed files. Andreas. -- Andreas Schwab, SUSE Labs, schwab@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different." ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 13:15 ` Lars Ingebrigtsen 2019-06-19 14:00 ` Andreas Schwab @ 2019-06-19 15:28 ` Eli Zaretskii 2019-06-19 15:32 ` Lars Ingebrigtsen 1 sibling, 1 reply; 59+ messages in thread From: Eli Zaretskii @ 2019-06-19 15:28 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel, phillip.lord > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: phillip.lord@russet.org.uk (Phillip Lord), emacs-devel@gnu.org > Date: Wed, 19 Jun 2019 15:15:31 +0200 > > Eli Zaretskii <eliz@gnu.org> writes: > > > AFAIK, the issue at hand is not the speed, the issue is to know what > > generated files get deleted. Some builds require a specific target > > from this list to be run before the build. For example, if you weant > > to reconfigure from scratch, you want distclean. > > distclean does not remove the generated charset map files or the .elc > files. But it does delete the .o files. Very confusing. Why is this confusing? distclean brings you to the state you are in after unpacking a release tarball (a.k.a. "distribution"). The tarball definitely includes the generated charset map files, so distclean does its job correctly in this case. The description of distclean in the top-level Makefile.in says as much; if you think the text there is not clear enough, we can improve it. ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 15:28 ` Eli Zaretskii @ 2019-06-19 15:32 ` Lars Ingebrigtsen 0 siblings, 0 replies; 59+ messages in thread From: Lars Ingebrigtsen @ 2019-06-19 15:32 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel, phillip.lord Eli Zaretskii <eliz@gnu.org> writes: >> > AFAIK, the issue at hand is not the speed, the issue is to know what >> > generated files get deleted. Some builds require a specific target >> > from this list to be run before the build. For example, if you weant >> > to reconfigure from scratch, you want distclean. >> >> distclean does not remove the generated charset map files or the .elc >> files. But it does delete the .o files. Very confusing. > > Why is this confusing? distclean brings you to the state you are in > after unpacking a release tarball (a.k.a. "distribution"). The > tarball definitely includes the generated charset map files, so > distclean does its job correctly in this case. The description of > distclean in the top-level Makefile.in says as much; if you think the > text there is not clear enough, we can improve it. The confusing bit (for me) was that you said "if you want to reconfigure from scratch". :-) It's not very a very scratchey target. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-18 11:22 A target that's even more bootstrap? Lars Ingebrigtsen 2019-06-18 12:16 ` Andreas Schwab 2019-06-18 12:53 ` Phillip Lord @ 2019-06-18 15:53 ` Eli Zaretskii 2019-06-18 15:58 ` Lars Ingebrigtsen 2 siblings, 1 reply; 59+ messages in thread From: Eli Zaretskii @ 2019-06-18 15:53 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Date: Tue, 18 Jun 2019 13:22:02 +0200 > > Unless I'm reading the makefile wrong, there's no target there to say > "remove all compiler artefacts and then recompile"? > > There's bootstrap-clean and extraclean, but if you run those, "make" no > longer works and you have to use "sh autogen.sh; ./configure" > manually... (And if you run bootstrap-clean/extraclean in the wrong > order, you're left with a lot of non-cleaned-up files, so it's rather > confusing.) > > Would it be an idea to have a target like "full-bootstrap" that does > these things for you in the correct order? The top-level Makefile.in documents what each of these targets does, so "make extraclean" is supposed to be it. If it falls short, we should fix it. I see no problem with the need to run autogen.sh and the configure script: this target is supposed to get you into the state identical to a fresh checkout, so you do have to start with autogen.sh. ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-18 15:53 ` Eli Zaretskii @ 2019-06-18 15:58 ` Lars Ingebrigtsen 2019-06-18 16:54 ` Eli Zaretskii 2019-06-18 17:47 ` Andy Moreton 0 siblings, 2 replies; 59+ messages in thread From: Lars Ingebrigtsen @ 2019-06-18 15:58 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > I see no problem with the need to run autogen.sh and the configure > script: this target is supposed to get you into the state identical to > a fresh checkout, so you do have to start with autogen.sh. No, after a fresh checkout you can just say "make" and it figures everything out by itself (on Linux, at least). -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-18 15:58 ` Lars Ingebrigtsen @ 2019-06-18 16:54 ` Eli Zaretskii 2019-06-18 17:47 ` Andy Moreton 1 sibling, 0 replies; 59+ messages in thread From: Eli Zaretskii @ 2019-06-18 16:54 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: emacs-devel@gnu.org > Date: Tue, 18 Jun 2019 17:58:02 +0200 > > Eli Zaretskii <eliz@gnu.org> writes: > > > I see no problem with the need to run autogen.sh and the configure > > script: this target is supposed to get you into the state identical to > > a fresh checkout, so you do have to start with autogen.sh. > > No, after a fresh checkout you can just say "make" and it figures > everything out by itself (on Linux, at least). Then we have yet another bug to be fixed in "extraclean". ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-18 15:58 ` Lars Ingebrigtsen 2019-06-18 16:54 ` Eli Zaretskii @ 2019-06-18 17:47 ` Andy Moreton 2019-06-18 19:22 ` Óscar Fuentes 1 sibling, 1 reply; 59+ messages in thread From: Andy Moreton @ 2019-06-18 17:47 UTC (permalink / raw) To: emacs-devel On Tue 18 Jun 2019, Lars Ingebrigtsen wrote: > Eli Zaretskii <eliz@gnu.org> writes: > >> I see no problem with the need to run autogen.sh and the configure >> script: this target is supposed to get you into the state identical to >> a fresh checkout, so you do have to start with autogen.sh. > > No, after a fresh checkout you can just say "make" and it figures > everything out by itself (on Linux, at least). ...but not if you want an out of tree build (which should be the default so nothing modifes the source tree). AndyM ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-18 17:47 ` Andy Moreton @ 2019-06-18 19:22 ` Óscar Fuentes 2019-06-19 4:32 ` Elias Mårtenson 2019-06-19 12:33 ` Andy Moreton 0 siblings, 2 replies; 59+ messages in thread From: Óscar Fuentes @ 2019-06-18 19:22 UTC (permalink / raw) To: emacs-devel Andy Moreton <andrewjmoreton@gmail.com> writes: >> No, after a fresh checkout you can just say "make" and it figures >> everything out by itself (on Linux, at least). > > ...but not if you want an out of tree build (which should be the default > so nothing modifes the source tree). In Emacs, out of tree builds are peculiar because they put build products in the source tree (.elc files). ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-18 19:22 ` Óscar Fuentes @ 2019-06-19 4:32 ` Elias Mårtenson 2019-06-19 5:29 ` Teemu Likonen 2019-06-19 11:53 ` Lars Ingebrigtsen 2019-06-19 12:33 ` Andy Moreton 1 sibling, 2 replies; 59+ messages in thread From: Elias Mårtenson @ 2019-06-19 4:32 UTC (permalink / raw) To: Óscar Fuentes; +Cc: emacs-devel [-- Attachment #1: Type: text/plain, Size: 720 bytes --] On Wed, 19 Jun 2019 at 03:24, Óscar Fuentes <ofv@wanadoo.es> wrote: > Andy Moreton <andrewjmoreton@gmail.com> writes: > > >> No, after a fresh checkout you can just say "make" and it figures > >> everything out by itself (on Linux, at least). > > > > ...but not if you want an out of tree build (which should be the default > > so nothing modifes the source tree). > > In Emacs, out of tree builds are peculiar because they put build > products in the source tree (.elc files). > Whenever I rebuild, I do: rm -fr * git reset --hard ./autogen.sh I've resorted to doing that every time I rebuild a new version, as all other options have at one point or another caused issues. Regards, Elias [-- Attachment #2: Type: text/html, Size: 1374 bytes --] ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 4:32 ` Elias Mårtenson @ 2019-06-19 5:29 ` Teemu Likonen 2019-06-19 15:12 ` Eli Zaretskii 2019-06-19 11:53 ` Lars Ingebrigtsen 1 sibling, 1 reply; 59+ messages in thread From: Teemu Likonen @ 2019-06-19 5:29 UTC (permalink / raw) To: Elias Mårtenson; +Cc: Óscar Fuentes, emacs-devel [-- Attachment #1: Type: text/plain, Size: 330 bytes --] Elias Mårtenson [2019-06-19 12:32:11+08:00] wrote: > Whenever I rebuild, I do: > > rm -fr * > git reset --hard Probably the same but a bit less violent is "git clean -fdx" (maybe first with "--dry-run"). -- /// Teemu Likonen <https://github.com/tlikonen> // // PGP: 4E1055DC84E9DFF613D78557719D69D324539450 /// [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --] ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 5:29 ` Teemu Likonen @ 2019-06-19 15:12 ` Eli Zaretskii 2019-06-19 20:06 ` Juanma Barranquero 0 siblings, 1 reply; 59+ messages in thread From: Eli Zaretskii @ 2019-06-19 15:12 UTC (permalink / raw) To: Teemu Likonen; +Cc: ofv, lokedhs, emacs-devel > From: Teemu Likonen <tlikonen@iki.fi> > Date: Wed, 19 Jun 2019 08:29:08 +0300 > Cc: Óscar Fuentes <ofv@wanadoo.es>, emacs-devel@gnu.org > > > Whenever I rebuild, I do: > > > > rm -fr * > > git reset --hard > > Probably the same but a bit less violent is "git clean -fdx" (maybe > first with "--dry-run"). These targets need to do their job even when Git is not around, or the source tree has no history data, so we cannot rely on Git for this matter. ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 15:12 ` Eli Zaretskii @ 2019-06-19 20:06 ` Juanma Barranquero 2019-06-19 20:19 ` Lars Ingebrigtsen ` (2 more replies) 0 siblings, 3 replies; 59+ messages in thread From: Juanma Barranquero @ 2019-06-19 20:06 UTC (permalink / raw) To: Eli Zaretskii Cc: Óscar Fuentes, Teemu Likonen, lokedhs, Emacs developers On Wed, Jun 19, 2019 at 5:14 PM Eli Zaretskii <eliz@gnu.org> wrote: > > > From: Teemu Likonen <tlikonen@iki.fi> > > Probably the same but a bit less violent is "git clean -fdx" (maybe > > first with "--dry-run"). > > These targets need to do their job even when Git is not around, or the > source tree has no history data, so we cannot rely on Git for this > matter. Still, it should be possible to use "git clean -fdx" (or perhaps -fdX) if we detect we're in a git checkout and git's available, and default to target-jumping around the makefiles otherwise. ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 20:06 ` Juanma Barranquero @ 2019-06-19 20:19 ` Lars Ingebrigtsen 2019-06-19 20:26 ` Óscar Fuentes 2019-06-20 2:30 ` Eli Zaretskii 2 siblings, 0 replies; 59+ messages in thread From: Lars Ingebrigtsen @ 2019-06-19 20:19 UTC (permalink / raw) To: Juanma Barranquero Cc: Óscar Fuentes, Eli Zaretskii, Teemu Likonen, lokedhs, Emacs developers Juanma Barranquero <lekktu@gmail.com> writes: > Still, it should be possible to use "git clean -fdx" (or perhaps -fdX) > if we detect we're in a git checkout and git's available, and default > to target-jumping around the makefiles otherwise. A sort of "make git-checkout-clean" or something... In the past, some of the most difficult build error situations to get out of have been the result of rearranging some build code, and then the new code choking on some build artefacts from the previous setups. The Makefiles in these cases didn't know about these old build artefacts, so they didn't delete them. In that case, a git-based "blow out" target would help. Of course, a different solution would be to have the "extraclean" bits of the makefile still know about these old artefacts... But then it's a question of how many years should we still do an "rm -f some-dir" on something that's not there. I guess we could mark these bits with, like, "OBSOLETE DIR SINCE 23.2". -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 20:06 ` Juanma Barranquero 2019-06-19 20:19 ` Lars Ingebrigtsen @ 2019-06-19 20:26 ` Óscar Fuentes 2019-06-20 2:30 ` Eli Zaretskii 2 siblings, 0 replies; 59+ messages in thread From: Óscar Fuentes @ 2019-06-19 20:26 UTC (permalink / raw) To: emacs-devel Juanma Barranquero <lekktu@gmail.com> writes: > Still, it should be possible to use "git clean -fdx" (or perhaps -fdX) > if we detect we're in a git checkout and git's available, and default > to target-jumping around the makefiles otherwise. -fdx is dangerous as you risk losing work on unchecked files. -fdX looks better. ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 20:06 ` Juanma Barranquero 2019-06-19 20:19 ` Lars Ingebrigtsen 2019-06-19 20:26 ` Óscar Fuentes @ 2019-06-20 2:30 ` Eli Zaretskii 2 siblings, 0 replies; 59+ messages in thread From: Eli Zaretskii @ 2019-06-20 2:30 UTC (permalink / raw) To: Juanma Barranquero; +Cc: ofv, tlikonen, lokedhs, emacs-devel > From: Juanma Barranquero <lekktu@gmail.com> > Date: Wed, 19 Jun 2019 22:06:34 +0200 > Cc: Teemu Likonen <tlikonen@iki.fi>, Óscar Fuentes <ofv@wanadoo.es>, > lokedhs@gmail.com, Emacs developers <emacs-devel@gnu.org> > > > > Probably the same but a bit less violent is "git clean -fdx" (maybe > > > first with "--dry-run"). > > > > These targets need to do their job even when Git is not around, or the > > source tree has no history data, so we cannot rely on Git for this > > matter. > > Still, it should be possible to use "git clean -fdx" (or perhaps -fdX) > if we detect we're in a git checkout and git's available, and default > to target-jumping around the makefiles otherwise. There should be no need for that, as we ought to know which generated files should be removed. And using Git runs the risk of deleting files unrelated to the build that the user may wish to keep. ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 4:32 ` Elias Mårtenson 2019-06-19 5:29 ` Teemu Likonen @ 2019-06-19 11:53 ` Lars Ingebrigtsen 1 sibling, 0 replies; 59+ messages in thread From: Lars Ingebrigtsen @ 2019-06-19 11:53 UTC (permalink / raw) To: Elias Mårtenson; +Cc: Óscar Fuentes, emacs-devel Elias Mårtenson <lokedhs@gmail.com> writes: > Whenever I rebuild, I do: > > rm -fr * > git reset --hard > ./autogen.sh > > I've resorted to doing that every time I rebuild a new version, as all other > options have at one point or another caused issues. Yeah, it's a pain. If you pull down a fresh "git clone" of Emacs, it always works, but if you've done a "git pull" for a while, you invariably end up in a situation where none of the sanctioned methods for building Emacs works and most users seem to just remove the entire tree and pull down a new copy. Which is slow and annoying. Relying on git to get to a clean state (like you're doing here) sounds like a possible idea. Perhaps a target that removes all non-tracked files? However, that sounds rather destructive: The user may have other stuff in there, and having a target that's that dangerous is perhaps overkill... -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-18 19:22 ` Óscar Fuentes 2019-06-19 4:32 ` Elias Mårtenson @ 2019-06-19 12:33 ` Andy Moreton 2019-06-19 12:45 ` Óscar Fuentes 1 sibling, 1 reply; 59+ messages in thread From: Andy Moreton @ 2019-06-19 12:33 UTC (permalink / raw) To: emacs-devel On Tue 18 Jun 2019, Óscar Fuentes wrote: > Andy Moreton <andrewjmoreton@gmail.com> writes: > >>> No, after a fresh checkout you can just say "make" and it figures >>> everything out by itself (on Linux, at least). >> >> ...but not if you want an out of tree build (which should be the default >> so nothing modifes the source tree). > > In Emacs, out of tree builds are peculiar because they put build > products in the source tree (.elc files). Exactly my point - that should not happen. The .elc files should go in <builddir>/lisp and not in the source tree. AndyM ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 12:33 ` Andy Moreton @ 2019-06-19 12:45 ` Óscar Fuentes 2019-06-19 13:35 ` Juanma Barranquero 2019-06-19 15:29 ` Phillip Lord 0 siblings, 2 replies; 59+ messages in thread From: Óscar Fuentes @ 2019-06-19 12:45 UTC (permalink / raw) To: emacs-devel Andy Moreton <andrewjmoreton@gmail.com> writes: >> In Emacs, out of tree builds are peculiar because they put build >> products in the source tree (.elc files). > > Exactly my point - that should not happen. The .elc files should go in > <builddir>/lisp and not in the source tree. I argued about this point on the past to no avail. Some hackers here find this feature convenient for their workflow. ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 12:45 ` Óscar Fuentes @ 2019-06-19 13:35 ` Juanma Barranquero 2019-06-19 13:46 ` Lars Ingebrigtsen 2019-06-19 15:29 ` Phillip Lord 1 sibling, 1 reply; 59+ messages in thread From: Juanma Barranquero @ 2019-06-19 13:35 UTC (permalink / raw) To: Óscar Fuentes; +Cc: Emacs developers On Wed, Jun 19, 2019 at 2:52 PM Óscar Fuentes <ofv@wanadoo.es> wrote: > > Andy Moreton <andrewjmoreton@gmail.com> writes: > > Exactly my point - that should not happen. The .elc files should go in > > <builddir>/lisp and not in the source tree. > > I argued about this point on the past to no avail. Some hackers here > find this feature convenient for their workflow. I only build in place, and never (ever) install. ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 13:35 ` Juanma Barranquero @ 2019-06-19 13:46 ` Lars Ingebrigtsen 2019-06-19 15:34 ` Eli Zaretskii 0 siblings, 1 reply; 59+ messages in thread From: Lars Ingebrigtsen @ 2019-06-19 13:46 UTC (permalink / raw) To: Emacs developers After some experimentation, this seems to be what's required to make Emacs really recompile everything, OKURI-NASI and all: make extraclean; sh autogen.sh; ./configure; make -j8 bootstrap If I leave out the ./configure, make bootstrap won't delete the .elc files (!), but this means running configure twice (since bootstrap always does that). -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 13:46 ` Lars Ingebrigtsen @ 2019-06-19 15:34 ` Eli Zaretskii 2019-06-19 15:43 ` Lars Ingebrigtsen 0 siblings, 1 reply; 59+ messages in thread From: Eli Zaretskii @ 2019-06-19 15:34 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Date: Wed, 19 Jun 2019 15:46:34 +0200 > > After some experimentation, this seems to be what's required to make > Emacs really recompile everything, OKURI-NASI and all: > > make extraclean; sh autogen.sh; ./configure; make -j8 bootstrap Let's fix "make extraclean" so that it does everything that is needed to get you to the same state as after a fresh checkout/clone. That's what that target is for. Can you tell what it fails to do that requires to run autogen.sh? ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 15:34 ` Eli Zaretskii @ 2019-06-19 15:43 ` Lars Ingebrigtsen 2019-06-19 15:48 ` Eli Zaretskii 0 siblings, 1 reply; 59+ messages in thread From: Lars Ingebrigtsen @ 2019-06-19 15:43 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > Let's fix "make extraclean" so that it does everything that is needed > to get you to the same state as after a fresh checkout/clone. That's > what that target is for. > > Can you tell what it fails to do that requires to run autogen.sh? OK, there were more failure modes here than I was aware of... make extraclean bootstrap just plain fails, ending with rm -f config-tmp-* rm -f ./*~ \#* make -C src bootstrap-clean make[1]: Entering directory '/home/larsi/src/emacs/trunk/src' make[1]: *** No rule to make target 'bootstrap-clean'. Stop. make[1]: Leaving directory '/home/larsi/src/emacs/trunk/src' Makefile:891: recipe for target 'src_bootstrap-clean' failed make: *** [src_bootstrap-clean] Error 2 make extraclean; make bootstrap does not fail, but extraclean does not remove the .elc files, and whatever it does also stops "make bootstrap" from removing the .elc files, which is rather surprising. Running the autogen.sh; ./configure in between these two makes enables bootstrap to delete the .elc files. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 15:43 ` Lars Ingebrigtsen @ 2019-06-19 15:48 ` Eli Zaretskii 2019-06-19 16:12 ` Lars Ingebrigtsen 0 siblings, 1 reply; 59+ messages in thread From: Eli Zaretskii @ 2019-06-19 15:48 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: emacs-devel@gnu.org > Date: Wed, 19 Jun 2019 17:43:41 +0200 > > > Can you tell what it fails to do that requires to run autogen.sh? > > OK, there were more failure modes here than I was aware of... > > make extraclean bootstrap > > just plain fails, ending with > > rm -f config-tmp-* > rm -f ./*~ \#* > make -C src bootstrap-clean > make[1]: Entering directory '/home/larsi/src/emacs/trunk/src' > make[1]: *** No rule to make target 'bootstrap-clean'. Stop. > make[1]: Leaving directory '/home/larsi/src/emacs/trunk/src' > Makefile:891: recipe for target 'src_bootstrap-clean' failed > make: *** [src_bootstrap-clean] Error 2 > > make extraclean; make bootstrap > > does not fail, but extraclean does not remove the .elc files, and > whatever it does also stops "make bootstrap" from removing the .elc > files, which is rather surprising. > > Running the autogen.sh; ./configure in between these two makes enables > bootstrap to delete the .elc files. We should need to do only this: make extraclean make There should be no need to say "make bootstrap", precisely as it isn't needed in a freshly cloned repository. So I understand one thing extraclean doesn't do is remove the *.elc files; let's add that. What else? ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 15:48 ` Eli Zaretskii @ 2019-06-19 16:12 ` Lars Ingebrigtsen 2019-06-19 17:03 ` Eli Zaretskii 0 siblings, 1 reply; 59+ messages in thread From: Lars Ingebrigtsen @ 2019-06-19 16:12 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel [-- Attachment #1: Type: text/plain, Size: 1304 bytes --] Eli Zaretskii <eliz@gnu.org> writes: > We should need to do only this: > > make extraclean > make > > There should be no need to say "make bootstrap", precisely as it isn't > needed in a freshly cloned repository. Sounds good. > So I understand one thing extraclean doesn't do is remove the *.elc > files; let's add that. What else? I'm comparing a fresh clone with what's in the repo after a make; make extraclean. I've made a summary first and include the full list as an attachment. diff --unified /tmp/fresh /tmp/extra | grep "^\\+" | grep -v /.git/ > /tmp/diff +./info +./info/ebrowse.info +./info/efaq-w32.info [etc] +./aclocal.m4 +./src/TAGS +./src/config.in +./etc/refcards/emacsver.tex +./lib/inttypes.h +./lib/dtotimespec.o +./lib/time_rz.o +./lib/stdint.h +./lib/qcopy-acl.o +./lib/utimens.o +./lib/sha512.o +./lib/save-cwd.o +./lib/deps +./lib/deps/dtoastr.d +./lib/deps/copy-file-range.d +./lib/deps/allocator.d [etc] +./lib/time.h +./lib/regex.o +./lib/filevercmp.o [etc] +./lisp/custom.elc +./lisp/xt-mouse.elc +./lisp/speedbar.elc [etc] +./admin/unidata/uvs.elc +./admin/unidata/unidata.txt +./admin/unidata/unidata-gen.elc +./configure +./doc/emacs/emacsver.texi -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no [-- Attachment #2: diff --] [-- Type: application/octet-stream, Size: 45738 bytes --] +++ /tmp/extra 2019-06-19 18:09:22.896324132 +0200 +./info +./info/ebrowse.info +./info/efaq-w32.info +./info/octave-mode.info +./info/flymake.info +./info/smtpmail.info +./info/wisent.info +./info/forms.info +./info/semantic.info +./info/mh-e.info +./info/remember.info +./info/ido.info +./info/reftex.info +./info/calc.info +./info/mairix-el.info +./info/org.info +./info/dbus.info +./info/htmlfontify.info +./info/autotype.info +./info/sieve.info +./info/emacs-gnutls.info +./info/rcirc.info +./info/erc.info +./info/idlwave.info +./info/epa.info +./info/pgg.info +./info/pcl-cvs.info +./info/dir +./info/info.info +./info/eudc.info +./info/ede.info +./info/ses.info +./info/vhdl-mode.info +./info/widget.info +./info/vip.info +./info/efaq.info +./info/bovine.info +./info/dired-x.info +./info/sc.info +./info/srecode.info +./info/cl.info +./info/emacs-mime.info +./info/auth.info +./info/newsticker.info +./info/woman.info +./info/nxml-mode.info +./info/elisp.info +./info/emacs.info +./info/eieio.info +./info/ediff.info +./info/ccmode.info +./info/url.info +./info/eww.info +./info/todo-mode.info +./info/eintr.info +./info/gnus.info +./info/edt.info +./info/message.info +./info/ert.info +./info/tramp.info +./info/eshell.info +./info/speedbar.info +./info/viper.info +./info/sasl.info +./info/ada-mode.info +./aclocal.m4 +./src/TAGS +./src/config.in +./etc/refcards/emacsver.tex +./lib/inttypes.h +./lib/dtotimespec.o +./lib/time_rz.o +./lib/stdint.h +./lib/qcopy-acl.o +./lib/utimens.o +./lib/sha512.o +./lib/save-cwd.o +./lib/deps +./lib/deps/dtoastr.d +./lib/deps/copy-file-range.d +./lib/deps/allocator.d +./lib/deps/timespec.d +./lib/deps/fsusage.d +./lib/deps/gettime.d +./lib/deps/time_rz.d +./lib/deps/regex.d +./lib/deps/acl-internal.d +./lib/deps/filevercmp.d +./lib/deps/get-permissions.d +./lib/deps/u64.d +./lib/deps/unistd.d +./lib/deps/careadlinkat.d +./lib/deps/timespec-add.d +./lib/deps/md5.d +./lib/deps/dtotimespec.d +./lib/deps/qcopy-acl.d +./lib/deps/filemode.d +./lib/deps/nstrftime.d +./lib/deps/c-strcasecmp.d +./lib/deps/openat-die.d +./lib/deps/utimens.d +./lib/deps/count-one-bits.d +./lib/deps/sha1.d +./lib/deps/acl-errno-valid.d +./lib/deps/c-strncasecmp.d +./lib/deps/sha512.d +./lib/deps/timespec-sub.d +./lib/deps/set-permissions.d +./lib/deps/explicit_bzero.d +./lib/deps/fingerprint.d +./lib/deps/count-leading-zeros.d +./lib/deps/binary-io.d +./lib/deps/sig2str.d +./lib/deps/save-cwd.d +./lib/deps/fcntl.d +./lib/deps/tempname.d +./lib/deps/count-trailing-zeros.d +./lib/deps/stat-time.d +./lib/deps/pipe2.d +./lib/deps/close-stream.d +./lib/deps/sha256.d +./lib/deps/c-ctype.d +./lib/time.h +./lib/regex.o +./lib/filevercmp.o +./lib/unistd.h +./lib/fcntl.o +./lib/nstrftime.o +./lib/c-strncasecmp.o +./lib/count-trailing-zeros.o +./lib/fcntl.h +./lib/stdlib.h +./lib/u64.o +./lib/binary-io.o +./lib/acl-internal.o +./lib/get-permissions.o +./lib/signal.h +./lib/allocator.o +./lib/fingerprint.o +./lib/md5.o +./lib/timespec-sub.o +./lib/fsusage.o +./lib/dtoastr.o +./lib/acl-errno-valid.o +./lib/pipe2.o +./lib/dirent.h +./lib/c-strcasecmp.o +./lib/filemode.o +./lib/timespec-add.o +./lib/tempname.o +./lib/c-ctype.o +./lib/copy-file-range.o +./lib/limits.h +./lib/stdio.h +./lib/count-leading-zeros.o +./lib/openat-die.o +./lib/sys +./lib/sys/select.h +./lib/sys/time.h +./lib/sys/stat.h +./lib/sys/types.h +./lib/stat-time.o +./lib/explicit_bzero.o +./lib/sha1.o +./lib/timespec.o +./lib/string.h +./lib/careadlinkat.o +./lib/sig2str.o +./lib/unistd.o +./lib/sha256.o +./lib/close-stream.o +./lib/alloca.h +./lib/set-permissions.o +./lib/libgnu.a +./lib/gettime.o +./lib/count-one-bits.o +./lisp/custom.elc +./lisp/xt-mouse.elc +./lisp/speedbar.elc +./lisp/comint.elc +./lisp/ehelp.elc +./lisp/saveplace.elc +./lisp/select.elc +./lisp/hexl.elc +./lisp/xml.elc +./lisp/pcmpl-rpm.elc +./lisp/ps-def.elc +./lisp/simple.elc +./lisp/mpc.elc +./lisp/cus-dep.elc +./lisp/pcmpl-x.elc +./lisp/startup.elc +./lisp/profiler.elc +./lisp/strokes.elc +./lisp/isearchb.elc +./lisp/obarray.elc +./lisp/generic-x.elc +./lisp/minibuf-eldef.elc +./lisp/password-cache.elc +./lisp/jit-lock.elc +./lisp/case-table.elc +./lisp/array.elc +./lisp/info-look.elc +./lisp/wid-browse.elc +./lisp/xwidget.elc +./lisp/htmlfontify.elc +./lisp/scroll-lock.elc +./lisp/version.elc +./lisp/format-spec.elc +./lisp/find-lisp.elc +./lisp/newcomment.elc +./lisp/tool-bar.elc +./lisp/fringe.elc +./lisp/ebuff-menu.elc +./lisp/align.elc +./lisp/dos-vars.elc +./lisp/epa-file.elc +./lisp/ffap.elc +./lisp/play/spook.elc +./lisp/play/gamegrid.elc +./lisp/play/solitaire.elc +./lisp/play/zone.elc +./lisp/play/doctor.elc +./lisp/play/pong.elc +./lisp/play/fortune.elc +./lisp/play/mpuz.elc +./lisp/play/dissociate.elc +./lisp/play/bubbles.elc +./lisp/play/studly.elc +./lisp/play/blackbox.elc +./lisp/play/gametree.elc +./lisp/play/hanoi.elc +./lisp/play/gomoku.elc +./lisp/play/snake.elc +./lisp/play/morse.elc +./lisp/play/animate.elc +./lisp/play/decipher.elc +./lisp/play/cookie1.elc +./lisp/play/life.elc +./lisp/play/dunnet.elc +./lisp/play/5x5.elc +./lisp/play/handwrite.elc +./lisp/play/tetris.elc +./lisp/mwheel.elc +./lisp/linum.elc +./lisp/cdl.elc +./lisp/autoarg.elc +./lisp/find-dired.elc +./lisp/image/gravatar.elc +./lisp/image/compface.elc +./lisp/informat.elc +./lisp/windmove.elc +./lisp/calc/calc-menu.elc +./lisp/calc/calc-vec.elc +./lisp/calc/calc-undo.elc +./lisp/calc/calc-rewr.elc +./lisp/calc/calc-ext.elc +./lisp/calc/calc-yank.elc +./lisp/calc/calc-macs.elc +./lisp/calc/calccomp.elc +./lisp/calc/calc-units.elc +./lisp/calc/calc.elc +./lisp/calc/calc-frac.elc +./lisp/calc/calc-loaddefs.el +./lisp/calc/calc-map.elc +./lisp/calc/calcalg2.elc +./lisp/calc/calc-lang.elc +./lisp/calc/calc-incom.elc +./lisp/calc/calc-help.elc +./lisp/calc/calc-mtx.elc +./lisp/calc/calc-store.elc +./lisp/calc/calc-rules.elc +./lisp/calc/calc-keypd.elc +./lisp/calc/calc-embed.elc +./lisp/calc/calcsel2.elc +./lisp/calc/calc-alg.elc +./lisp/calc/calc-stuff.elc +./lisp/calc/calc-bin.elc +./lisp/calc/calc-stat.elc +./lisp/calc/calc-sel.elc +./lisp/calc/calc-cplx.elc +./lisp/calc/calc-arith.elc +./lisp/calc/calcalg3.elc +./lisp/calc/calc-mode.elc +./lisp/calc/calc-forms.elc +./lisp/calc/calc-poly.elc +./lisp/calc/calc-misc.elc +./lisp/calc/calc-aent.elc +./lisp/calc/calc-funcs.elc +./lisp/calc/calc-trail.elc +./lisp/calc/calc-math.elc +./lisp/calc/calc-fin.elc +./lisp/calc/calc-nlfit.elc +./lisp/calc/calc-prog.elc +./lisp/calc/calc-comb.elc +./lisp/calc/calc-graph.elc +./lisp/ido.elc +./lisp/ibuffer-loaddefs.el +./lisp/dframe.elc +./lisp/pixel-scroll.elc +./lisp/ibuf-macs.elc +./lisp/paren.elc +./lisp/time-stamp.elc +./lisp/epg.elc +./lisp/hex-util.elc +./lisp/subr.elc +./lisp/calendar/cal-loaddefs.el~ +./lisp/calendar/diary-lib.elc +./lisp/calendar/appt.elc +./lisp/calendar/cal-persia.elc +./lisp/calendar/cal-islam.elc +./lisp/calendar/todo-mode.elc +./lisp/calendar/cal-mayan.elc +./lisp/calendar/parse-time.elc +./lisp/calendar/cal-tex.elc +./lisp/calendar/cal-menu.elc +./lisp/calendar/cal-french.elc +./lisp/calendar/hol-loaddefs.el +./lisp/calendar/cal-loaddefs.el +./lisp/calendar/cal-bahai.elc +./lisp/calendar/cal-x.elc +./lisp/calendar/cal-iso.elc +./lisp/calendar/calendar.elc +./lisp/calendar/icalendar.elc +./lisp/calendar/diary-loaddefs.el +./lisp/calendar/hol-loaddefs.el~ +./lisp/calendar/cal-julian.elc +./lisp/calendar/cal-china.elc +./lisp/calendar/cal-coptic.elc +./lisp/calendar/time-date.elc +./lisp/calendar/solar.elc +./lisp/calendar/diary-loaddefs.el~ +./lisp/calendar/cal-hebrew.elc +./lisp/calendar/lunar.elc +./lisp/calendar/timeclock.elc +./lisp/calendar/holidays.elc +./lisp/calendar/cal-dst.elc +./lisp/calendar/cal-move.elc +./lisp/calendar/cal-html.elc +./lisp/battery.elc +./lisp/files-x.elc +./lisp/tooltip.elc +./lisp/woman.elc +./lisp/term/linux.elc +./lisp/term/internal.elc +./lisp/term/konsole.elc +./lisp/term/rxvt.elc +./lisp/term/tvi970.elc +./lisp/term/w32-win.elc +./lisp/term/lk201.elc +./lisp/term/AT386.elc +./lisp/term/screen.elc +./lisp/term/x-win.elc +./lisp/term/sun.elc +./lisp/term/pc-win.elc +./lisp/term/tty-colors.elc +./lisp/term/vt200.elc +./lisp/term/cygwin.elc +./lisp/term/ns-win.elc +./lisp/term/vt100.elc +./lisp/term/xterm.elc +./lisp/term/common-win.elc +./lisp/term/iris-ansi.elc +./lisp/term/w32console.elc +./lisp/term/news.elc +./lisp/term/tmux.elc +./lisp/term/wyse50.elc +./lisp/term/bobcat.elc +./lisp/avoid.elc +./lisp/epa.elc +./lisp/apropos.elc +./lisp/filenotify.elc +./lisp/ls-lisp.elc +./lisp/savehist.elc +./lisp/ezimage.elc +./lisp/face-remap.elc +./lisp/image-file.elc +./lisp/type-break.elc +./lisp/term.elc +./lisp/iimage.elc +./lisp/epa-mail.elc +./lisp/subdirs.el +./lisp/pcmpl-unix.elc +./lisp/composite.elc +./lisp/env.elc +./lisp/info-xref.elc +./lisp/loaddefs.el~ +./lisp/display-fill-column-indicator.elc +./lisp/image-dired.elc +./lisp/w32-fns.elc +./lisp/emacs-lisp/generator.elc +./lisp/emacs-lisp/derived.elc +./lisp/emacs-lisp/bytecomp.elc +./lisp/emacs-lisp/re-builder.elc +./lisp/emacs-lisp/lisp-mode.elc +./lisp/emacs-lisp/checkdoc.elc +./lisp/emacs-lisp/backquote.elc +./lisp/emacs-lisp/easymenu.elc +./lisp/emacs-lisp/smie.elc +./lisp/emacs-lisp/faceup.elc +./lisp/emacs-lisp/elint.elc +./lisp/emacs-lisp/cursor-sensor.elc +./lisp/emacs-lisp/float-sup.elc +./lisp/emacs-lisp/benchmark.elc +./lisp/emacs-lisp/unsafep.elc +./lisp/emacs-lisp/tcover-unsafep.elc +./lisp/emacs-lisp/eieio-loaddefs.el +./lisp/emacs-lisp/package.elc +./lisp/emacs-lisp/tq.elc +./lisp/emacs-lisp/ewoc.elc +./lisp/emacs-lisp/syntax.elc +./lisp/emacs-lisp/let-alist.elc +./lisp/emacs-lisp/easy-mmode.elc +./lisp/emacs-lisp/subr-x.elc +./lisp/emacs-lisp/chart.elc +./lisp/emacs-lisp/backtrace.elc +./lisp/emacs-lisp/cl-indent.elc +./lisp/emacs-lisp/rmc.elc +./lisp/emacs-lisp/eldoc.elc +./lisp/emacs-lisp/cl.elc +./lisp/emacs-lisp/regexp-opt.elc +./lisp/emacs-lisp/elp.elc +./lisp/emacs-lisp/eieio-datadebug.elc +./lisp/emacs-lisp/eieio-custom.elc +./lisp/emacs-lisp/bindat.elc +./lisp/emacs-lisp/cl-extra.elc +./lisp/emacs-lisp/timer-list.elc +./lisp/emacs-lisp/byte-run.elc +./lisp/emacs-lisp/macroexp.elc +./lisp/emacs-lisp/lisp-mnt.elc +./lisp/emacs-lisp/testcover.elc +./lisp/emacs-lisp/radix-tree.elc +./lisp/emacs-lisp/cl-loaddefs.el +./lisp/emacs-lisp/cl-preloaded.elc +./lisp/emacs-lisp/ert-x.elc +./lisp/emacs-lisp/eieio-core.elc +./lisp/emacs-lisp/disass.elc +./lisp/emacs-lisp/lisp.elc +./lisp/emacs-lisp/debug.elc +./lisp/emacs-lisp/warnings.elc +./lisp/emacs-lisp/cl-generic.elc +./lisp/emacs-lisp/nadvice.elc +./lisp/emacs-lisp/ert.elc +./lisp/emacs-lisp/cl-macs.elc +./lisp/emacs-lisp/eieio-opt.elc +./lisp/emacs-lisp/package-x.elc +./lisp/emacs-lisp/tcover-ses.elc +./lisp/emacs-lisp/cconv.elc +./lisp/emacs-lisp/autoload.elc +./lisp/emacs-lisp/text-property-search.elc +./lisp/emacs-lisp/ring.elc +./lisp/emacs-lisp/eieio-loaddefs.el~ +./lisp/emacs-lisp/eieio-compat.elc +./lisp/emacs-lisp/seq.elc +./lisp/emacs-lisp/cl-print.elc +./lisp/emacs-lisp/gv.elc +./lisp/emacs-lisp/helper.elc +./lisp/emacs-lisp/timer.elc +./lisp/emacs-lisp/cl-lib.elc +./lisp/emacs-lisp/cl-seq.elc +./lisp/emacs-lisp/generic.elc +./lisp/emacs-lisp/avl-tree.elc +./lisp/emacs-lisp/copyright.elc +./lisp/emacs-lisp/pp.elc +./lisp/emacs-lisp/pcase.elc +./lisp/emacs-lisp/find-func.elc +./lisp/emacs-lisp/thunk.elc +./lisp/emacs-lisp/inline.elc +./lisp/emacs-lisp/advice.elc +./lisp/emacs-lisp/shadow.elc +./lisp/emacs-lisp/eieio-speedbar.elc +./lisp/emacs-lisp/tabulated-list.elc +./lisp/emacs-lisp/byte-opt.elc +./lisp/emacs-lisp/edebug.elc +./lisp/emacs-lisp/map.elc +./lisp/emacs-lisp/eieio-base.elc +./lisp/emacs-lisp/check-declare.elc +./lisp/emacs-lisp/eieio.elc +./lisp/emacs-lisp/map-ynp.elc +./lisp/emacs-lisp/trace.elc +./lisp/emacs-lisp/rx.elc +./lisp/emacs-lisp/regi.elc +./lisp/emacs-lisp/crm.elc +./lisp/dos-w32.elc +./lisp/indent.elc +./lisp/sort.elc +./lisp/autorevert.elc +./lisp/repeat.elc +./lisp/button.elc +./lisp/notifications.elc +./lisp/image.elc +./lisp/obsolete/pc-mode.elc +./lisp/obsolete/bruce.elc +./lisp/obsolete/cl-compat.elc +./lisp/obsolete/vc-arch.elc +./lisp/obsolete/lucid.elc +./lisp/obsolete/pgg-parse.elc +./lisp/obsolete/s-region.elc +./lisp/obsolete/landmark.elc +./lisp/obsolete/old-emacs-lock.elc +./lisp/obsolete/mouse-sel.elc +./lisp/obsolete/xesam.elc +./lisp/obsolete/gulp.elc +./lisp/obsolete/ws-mode.elc +./lisp/obsolete/yow.elc +./lisp/obsolete/info-edit.elc +./lisp/obsolete/pgg-pgp5.elc +./lisp/obsolete/starttls.elc +./lisp/obsolete/mailpost.elc +./lisp/obsolete/tpu-extras.elc +./lisp/obsolete/vip.elc +./lisp/obsolete/terminal.elc +./lisp/obsolete/crisp.elc +./lisp/obsolete/pgg-gpg.elc +./lisp/obsolete/eudcb-ph.elc +./lisp/obsolete/tpu-edt.elc +./lisp/obsolete/iswitchb.elc +./lisp/obsolete/assoc.elc +./lisp/obsolete/pgg-pgp.elc +./lisp/obsolete/meese.elc +./lisp/obsolete/pgg-def.elc +./lisp/obsolete/lmenu.elc +./lisp/obsolete/otodo-mode.elc +./lisp/obsolete/tpu-mapper.elc +./lisp/obsolete/rcompile.elc +./lisp/obsolete/html2text.elc +./lisp/obsolete/sup-mouse.elc +./lisp/obsolete/lazy-lock.elc +./lisp/obsolete/vi.elc +./lisp/obsolete/cust-print.elc +./lisp/obsolete/abbrevlist.elc +./lisp/obsolete/patcomp.elc +./lisp/obsolete/fast-lock.elc +./lisp/obsolete/gs.elc +./lisp/obsolete/tls.elc +./lisp/obsolete/sregex.elc +./lisp/obsolete/pc-select.elc +./lisp/obsolete/levents.elc +./lisp/obsolete/cc-compat.elc +./lisp/obsolete/old-whitespace.elc +./lisp/obsolete/ledit.elc +./lisp/obsolete/erc-hecomplete.elc +./lisp/obsolete/pgg.elc +./lisp/obsolete/complete.elc +./lisp/obsolete/longlines.elc +./lisp/hilit-chg.elc +./lisp/epg-config.elc +./lisp/kermit.elc +./lisp/widget.elc +./lisp/uniquify.elc +./lisp/thumbs.elc +./lisp/find-cmd.elc +./lisp/image-mode.elc +./lisp/ses.elc +./lisp/dired-x.elc +./lisp/finder-inf.el +./lisp/shadowfile.elc +./lisp/winner.elc +./lisp/ibuf-ext.elc +./lisp/double.elc +./lisp/vt-control.elc +./lisp/cus-load.el +./lisp/faces.elc +./lisp/msb.elc +./lisp/language/utf-8-lang.elc +./lisp/language/lao.elc +./lisp/language/khmer.elc +./lisp/language/china-util.elc +./lisp/language/vietnamese.elc +./lisp/language/czech.elc +./lisp/language/pinyin.elc +./lisp/language/romanian.elc +./lisp/language/tibetan.elc +./lisp/language/cham.elc +./lisp/language/korean.elc +./lisp/language/slovak.elc +./lisp/language/georgian.elc +./lisp/language/tai-viet.elc +./lisp/language/tibet-util.elc +./lisp/language/ethio-util.elc +./lisp/language/japanese.elc +./lisp/language/ind-util.elc +./lisp/language/chinese.elc +./lisp/language/thai-util.elc +./lisp/language/hanja-util.elc +./lisp/language/pinyin.el +./lisp/language/thai.elc +./lisp/language/tv-util.elc +./lisp/language/japan-util.elc +./lisp/language/sinhala.elc +./lisp/language/korea-util.elc +./lisp/language/ethiopic.elc +./lisp/language/burmese.elc +./lisp/language/english.elc +./lisp/language/indian.elc +./lisp/language/thai-word.elc +./lisp/language/greek.elc +./lisp/language/misc-lang.elc +./lisp/language/cyrillic.elc +./lisp/language/lao-util.elc +./lisp/language/cyril-util.elc +./lisp/language/viet-util.elc +./lisp/language/hebrew.elc +./lisp/language/european.elc +./lisp/xdg.elc +./lisp/dynamic-setting.elc +./lisp/hippie-exp.elc +./lisp/pcmpl-cvs.elc +./lisp/makesum.elc +./lisp/info.elc +./lisp/wid-edit.elc +./lisp/cus-edit.elc +./lisp/icomplete.elc +./lisp/svg.elc +./lisp/help-mode.elc +./lisp/emacs-lock.elc +./lisp/electric.elc +./lisp/progmodes/xscheme.elc +./lisp/progmodes/idlw-shell.elc +./lisp/progmodes/elisp-mode.elc +./lisp/progmodes/sh-script.elc +./lisp/progmodes/modula2.elc +./lisp/progmodes/idlwave.elc +./lisp/progmodes/pascal.elc +./lisp/progmodes/grep.elc +./lisp/progmodes/autoconf.elc +./lisp/progmodes/ada-prj.elc +./lisp/progmodes/ps-mode.elc +./lisp/progmodes/antlr-mode.elc +./lisp/progmodes/cperl-mode.elc +./lisp/progmodes/scheme.elc +./lisp/progmodes/python.elc +./lisp/progmodes/mixal-mode.elc +./lisp/progmodes/hideshow.elc +./lisp/progmodes/prog-mode.elc +./lisp/progmodes/bat-mode.elc +./lisp/progmodes/which-func.elc +./lisp/progmodes/ebnf-ebx.elc +./lisp/progmodes/compile.elc +./lisp/progmodes/cc-styles.elc +./lisp/progmodes/octave.elc +./lisp/progmodes/ebnf-otz.elc +./lisp/progmodes/ruby-mode.elc +./lisp/progmodes/asm-mode.elc +./lisp/progmodes/glasses.elc +./lisp/progmodes/tcl.elc +./lisp/progmodes/ada-stmt.elc +./lisp/progmodes/ebnf-dtd.elc +./lisp/progmodes/cwarn.elc +./lisp/progmodes/cc-defs.elc +./lisp/progmodes/js.elc +./lisp/progmodes/prolog.elc +./lisp/progmodes/cc-langs.elc +./lisp/progmodes/f90.elc +./lisp/progmodes/cc-mode.elc +./lisp/progmodes/ada-xref.elc +./lisp/progmodes/cc-cmds.elc +./lisp/progmodes/cc-bytecomp.elc +./lisp/progmodes/perl-mode.elc +./lisp/progmodes/make-mode.elc +./lisp/progmodes/ebnf2ps.elc +./lisp/progmodes/cc-awk.elc +./lisp/progmodes/idlw-toolbar.elc +./lisp/progmodes/flymake-proc.elc +./lisp/progmodes/bug-reference.elc +./lisp/progmodes/fortran.elc +./lisp/progmodes/ebnf-yac.elc +./lisp/progmodes/subword.elc +./lisp/progmodes/ebrowse.elc +./lisp/progmodes/vera-mode.elc +./lisp/progmodes/idlw-complete-structtag.elc +./lisp/progmodes/cc-engine.elc +./lisp/progmodes/ebnf-abn.elc +./lisp/progmodes/cc-fonts.elc +./lisp/progmodes/cc-align.elc +./lisp/progmodes/opascal.elc +./lisp/progmodes/cc-menus.elc +./lisp/progmodes/gdb-mi.elc +./lisp/progmodes/m4-mode.elc +./lisp/progmodes/dcl-mode.elc +./lisp/progmodes/flymake.elc +./lisp/progmodes/flymake-cc.elc +./lisp/progmodes/vhdl-mode.elc +./lisp/progmodes/ebnf-iso.elc +./lisp/progmodes/xref.elc +./lisp/progmodes/hideif.elc +./lisp/progmodes/icon.elc +./lisp/progmodes/ld-script.elc +./lisp/progmodes/cc-vars.elc +./lisp/progmodes/ada-mode.elc +./lisp/progmodes/sql.elc +./lisp/progmodes/executable.elc +./lisp/progmodes/gud.elc +./lisp/progmodes/mantemp.elc +./lisp/progmodes/inf-lisp.elc +./lisp/progmodes/cfengine.elc +./lisp/progmodes/cpp.elc +./lisp/progmodes/idlw-help.elc +./lisp/progmodes/cc-guess.elc +./lisp/progmodes/meta-mode.elc +./lisp/progmodes/simula.elc +./lisp/progmodes/verilog-mode.elc +./lisp/progmodes/cmacexp.elc +./lisp/progmodes/ebnf-bnf.elc +./lisp/progmodes/project.elc +./lisp/progmodes/etags.elc +./lisp/ruler-mode.elc +./lisp/expand.elc +./lisp/doc-view.elc +./lisp/mail/mail-hist.elc +./lisp/mail/rmailsort.elc +./lisp/mail/mail-parse.elc +./lisp/mail/reporter.elc +./lisp/mail/uce.elc +./lisp/mail/binhex.elc +./lisp/mail/rfc2045.elc +./lisp/mail/footnote.elc +./lisp/mail/mailalias.elc +./lisp/mail/rmailout.elc +./lisp/mail/rmail-loaddefs.el +./lisp/mail/rmail-spam-filter.elc +./lisp/mail/hashcash.elc +./lisp/mail/rmail.elc +./lisp/mail/mailclient.elc +./lisp/mail/emacsbug.elc +./lisp/mail/qp.elc +./lisp/mail/rmailsum.elc +./lisp/mail/rmailkwd.elc +./lisp/mail/undigest.elc +./lisp/mail/mail-prsvr.elc +./lisp/mail/rmailmsc.elc +./lisp/mail/uudecode.elc +./lisp/mail/flow-fill.elc +./lisp/mail/rfc2047.elc +./lisp/mail/yenc.elc +./lisp/mail/mspools.elc +./lisp/mail/rfc2231.elc +./lisp/mail/mail-extr.elc +./lisp/mail/mailabbrev.elc +./lisp/mail/sendmail.elc +./lisp/mail/ietf-drums.elc +./lisp/mail/rfc822.elc +./lisp/mail/metamail.elc +./lisp/mail/rmailedit.elc +./lisp/mail/smtpmail.elc +./lisp/mail/supercite.elc +./lisp/mail/mailheader.elc +./lisp/mail/unrmail.elc +./lisp/mail/rfc2368.elc +./lisp/mail/rmailmm.elc +./lisp/mail/feedmail.elc +./lisp/mail/mail-utils.elc +./lisp/url/url-ldap.elc +./lisp/url/url-ns.elc +./lisp/url/url-file.elc +./lisp/url/url-dired.elc +./lisp/url/url-tramp.elc +./lisp/url/url-gw.elc +./lisp/url/url-http.elc +./lisp/url/url-cache.elc +./lisp/url/url-about.elc +./lisp/url/url-proxy.elc +./lisp/url/url-ftp.elc +./lisp/url/url-history.elc +./lisp/url/url-nfs.elc +./lisp/url/url-handlers.elc +./lisp/url/url-auth.elc +./lisp/url/url-mailto.elc +./lisp/url/url-news.elc +./lisp/url/url-domsuf.elc +./lisp/url/url-imap.elc +./lisp/url/url-expand.elc +./lisp/url/url-cookie.elc +./lisp/url/url.elc +./lisp/url/url-methods.elc +./lisp/url/url-vars.elc +./lisp/url/url-dav.elc +./lisp/url/url-parse.elc +./lisp/url/url-misc.elc +./lisp/url/url-future.elc +./lisp/url/url-queue.elc +./lisp/url/url-privacy.elc +./lisp/url/url-irc.elc +./lisp/url/url-cid.elc +./lisp/url/url-util.elc +./lisp/disp-table.elc +./lisp/dom.elc +./lisp/x-dnd.elc +./lisp/misearch.elc +./lisp/delim-col.elc +./lisp/bindings.elc +./lisp/color.elc +./lisp/mb-depth.elc +./lisp/mh-e/mh-loaddefs.el~ +./lisp/mh-e/mh-folder.elc +./lisp/mh-e/mh-inc.elc +./lisp/mh-e/mh-show.elc +./lisp/mh-e/mh-search.elc +./lisp/mh-e/mh-e.elc +./lisp/mh-e/mh-buffers.elc +./lisp/mh-e/mh-speed.elc +./lisp/mh-e/mh-tool-bar.elc +./lisp/mh-e/mh-thread.elc +./lisp/mh-e/mh-gnus.elc +./lisp/mh-e/mh-mime.elc +./lisp/mh-e/mh-utils.elc +./lisp/mh-e/mh-xface.elc +./lisp/mh-e/mh-funcs.elc +./lisp/mh-e/mh-seq.elc +./lisp/mh-e/mh-loaddefs.el +./lisp/mh-e/mh-letter.elc +./lisp/mh-e/mh-junk.elc +./lisp/mh-e/mh-alias.elc +./lisp/mh-e/mh-print.elc +./lisp/mh-e/mh-comp.elc +./lisp/mh-e/mh-identity.elc +./lisp/mh-e/mh-scan.elc +./lisp/mh-e/mh-limit.elc +./lisp/mh-e/mh-compat.elc +./lisp/register.elc +./lisp/proced.elc +./lisp/flow-ctrl.elc +./lisp/bs.elc +./lisp/kmacro.elc +./lisp/find-file.elc +./lisp/elec-pair.elc +./lisp/hl-line.elc +./lisp/json.elc +./lisp/fileloop.elc +./lisp/view.elc +./lisp/rtree.elc +./lisp/gnus/gnus-kill.elc +./lisp/gnus/nnbabyl.elc +./lisp/gnus/nnmairix.elc +./lisp/gnus/gnus-picon.elc +./lisp/gnus/spam-wash.elc +./lisp/gnus/nnmbox.elc +./lisp/gnus/nnnil.elc +./lisp/gnus/gnus-fun.elc +./lisp/gnus/gmm-utils.elc +./lisp/gnus/legacy-gnus-agent.elc +./lisp/gnus/gnus-demon.elc +./lisp/gnus/gnus-cus.elc +./lisp/gnus/gnus-topic.elc +./lisp/gnus/mml2015.elc +./lisp/gnus/gnus-util.elc +./lisp/gnus/gnus-group.elc +./lisp/gnus/nnheader.elc +./lisp/gnus/mm-extern.elc +./lisp/gnus/gnus-spec.elc +./lisp/gnus/gnus-sieve.elc +./lisp/gnus/deuglify.elc +./lisp/gnus/gnus-salt.elc +./lisp/gnus/spam-stat.elc +./lisp/gnus/nnweb.elc +./lisp/gnus/nngateway.elc +./lisp/gnus/gnus-delay.elc +./lisp/gnus/nndiary.elc +./lisp/gnus/gnus-undo.elc +./lisp/gnus/mml-smime.elc +./lisp/gnus/gnus.elc +./lisp/gnus/gnus-cite.elc +./lisp/gnus/gnus-logic.elc +./lisp/gnus/gnus-bcklg.elc +./lisp/gnus/nnagent.elc +./lisp/gnus/gnus-rfc1843.elc +./lisp/gnus/gnus-diary.elc +./lisp/gnus/gnus-eform.elc +./lisp/gnus/nnmaildir.elc +./lisp/gnus/gnus-cache.elc +./lisp/gnus/nnml.elc +./lisp/gnus/gnus-icalendar.elc +./lisp/gnus/mail-source.elc +./lisp/gnus/nnrss.elc +./lisp/gnus/mm-uu.elc +./lisp/gnus/gnus-agent.elc +./lisp/gnus/nnregistry.elc +./lisp/gnus/nndir.elc +./lisp/gnus/smime.elc +./lisp/gnus/gnus-srvr.elc +./lisp/gnus/mm-bodies.elc +./lisp/gnus/nndoc.elc +./lisp/gnus/gnus-sum.elc +./lisp/gnus/gnus-draft.elc +./lisp/gnus/nnfolder.elc +./lisp/gnus/mm-encode.elc +./lisp/gnus/nnoo.elc +./lisp/gnus/mm-archive.elc +./lisp/gnus/gnus-gravatar.elc +./lisp/gnus/gnus-ml.elc +./lisp/gnus/gnus-msg.elc +./lisp/gnus/gssapi.elc +./lisp/gnus/gnus-art.elc +./lisp/gnus/nnspool.elc +./lisp/gnus/nnmail.elc +./lisp/gnus/spam.elc +./lisp/gnus/smiley.elc +./lisp/gnus/gnus-bookmark.elc +./lisp/gnus/nntp.elc +./lisp/gnus/mml-sec.elc +./lisp/gnus/gnus-cloud.elc +./lisp/gnus/nnmh.elc +./lisp/gnus/gnus-range.elc +./lisp/gnus/mml.elc +./lisp/gnus/nndraft.elc +./lisp/gnus/gnus-registry.elc +./lisp/gnus/mml1991.elc +./lisp/gnus/gnus-mh.elc +./lisp/gnus/spam-report.elc +./lisp/gnus/gnus-notifications.elc +./lisp/gnus/mm-decode.elc +./lisp/gnus/gnus-win.elc +./lisp/gnus/canlock.elc +./lisp/gnus/nnir.elc +./lisp/gnus/score-mode.elc +./lisp/gnus/nnimap.elc +./lisp/gnus/gnus-vm.elc +./lisp/gnus/gnus-score.elc +./lisp/gnus/gnus-int.elc +./lisp/gnus/gnus-uu.elc +./lisp/gnus/gnus-mlspl.elc +./lisp/gnus/nnvirtual.elc +./lisp/gnus/gnus-html.elc +./lisp/gnus/mm-view.elc +./lisp/gnus/message.elc +./lisp/gnus/gnus-async.elc +./lisp/gnus/nneething.elc +./lisp/gnus/mm-url.elc +./lisp/gnus/gnus-dired.elc +./lisp/gnus/gnus-dup.elc +./lisp/gnus/gnus-start.elc +./lisp/gnus/mm-util.elc +./lisp/gnus/mm-partial.elc +./lisp/font-core.elc +./lisp/scroll-bar.elc +./lisp/frameset.elc +./lisp/autoinsert.elc +./lisp/loaddefs.el +./lisp/format.elc +./lisp/cus-start.elc +./lisp/cmuscheme.elc +./lisp/elide-head.elc +./lisp/cedet/semantic/db-ref.elc +./lisp/cedet/semantic/decorate/mode.elc +./lisp/cedet/semantic/decorate/include.elc +./lisp/cedet/semantic/db-find.elc +./lisp/cedet/semantic/java.elc +./lisp/cedet/semantic/ede-grammar.elc +./lisp/cedet/semantic/ia.elc +./lisp/cedet/semantic/bovine/c-by.elc +./lisp/cedet/semantic/bovine/make.elc +./lisp/cedet/semantic/bovine/scm-by.elc +./lisp/cedet/semantic/bovine/el.elc +./lisp/cedet/semantic/bovine/scm.elc +./lisp/cedet/semantic/bovine/debug.elc +./lisp/cedet/semantic/bovine/gcc.elc +./lisp/cedet/semantic/bovine/grammar.elc +./lisp/cedet/semantic/bovine/c.elc +./lisp/cedet/semantic/bovine/make-by.elc +./lisp/cedet/semantic/html.elc +./lisp/cedet/semantic/db-typecache.elc +./lisp/cedet/semantic/db-ebrowse.elc +./lisp/cedet/semantic/db-el.elc +./lisp/cedet/semantic/chart.elc +./lisp/cedet/semantic/tag-write.elc +./lisp/cedet/semantic/doc.elc +./lisp/cedet/semantic/loaddefs.el~ +./lisp/cedet/semantic/db-javascript.elc +./lisp/cedet/semantic/sort.elc +./lisp/cedet/semantic/tag-file.elc +./lisp/cedet/semantic/texi.elc +./lisp/cedet/semantic/util-modes.elc +./lisp/cedet/semantic/db-file.elc +./lisp/cedet/semantic/tag.elc +./lisp/cedet/semantic/lex.elc +./lisp/cedet/semantic/edit.elc +./lisp/cedet/semantic/sb.elc +./lisp/cedet/semantic/debug.elc +./lisp/cedet/semantic/find.elc +./lisp/cedet/semantic/ia-sb.elc +./lisp/cedet/semantic/loaddefs.el +./lisp/cedet/semantic/format.elc +./lisp/cedet/semantic/imenu.elc +./lisp/cedet/semantic/tag-ls.elc +./lisp/cedet/semantic/analyze.elc +./lisp/cedet/semantic/lex-spp.elc +./lisp/cedet/semantic/util.elc +./lisp/cedet/semantic/db-mode.elc +./lisp/cedet/semantic/dep.elc +./lisp/cedet/semantic/ctxt.elc +./lisp/cedet/semantic/idle.elc +./lisp/cedet/semantic/db.elc +./lisp/cedet/semantic/grammar.elc +./lisp/cedet/semantic/symref.elc +./lisp/cedet/semantic/bovine.elc +./lisp/cedet/semantic/db-global.elc +./lisp/cedet/semantic/wisent.elc +./lisp/cedet/semantic/grammar-wy.elc +./lisp/cedet/semantic/scope.elc +./lisp/cedet/semantic/fw.elc +./lisp/cedet/semantic/senator.elc +./lisp/cedet/semantic/decorate.elc +./lisp/cedet/semantic/mru-bookmark.elc +./lisp/cedet/semantic/analyze/debug.elc +./lisp/cedet/semantic/analyze/fcn.elc +./lisp/cedet/semantic/analyze/refs.elc +./lisp/cedet/semantic/analyze/complete.elc +./lisp/cedet/semantic/db-debug.elc +./lisp/cedet/semantic/complete.elc +./lisp/cedet/semantic/wisent/comp.elc +./lisp/cedet/semantic/wisent/python-wy.el~ +./lisp/cedet/semantic/wisent/python.elc +./lisp/cedet/semantic/wisent/java-tags.elc +./lisp/cedet/semantic/wisent/js-wy.elc +./lisp/cedet/semantic/wisent/javascript.elc +./lisp/cedet/semantic/wisent/grammar.elc +./lisp/cedet/semantic/wisent/wisent.elc +./lisp/cedet/semantic/wisent/js-wy.el~ +./lisp/cedet/semantic/wisent/python-wy.elc +./lisp/cedet/semantic/wisent/javat-wy.elc +./lisp/cedet/semantic/symref/filter.elc +./lisp/cedet/semantic/symref/grep.elc +./lisp/cedet/semantic/symref/list.elc +./lisp/cedet/semantic/symref/idutils.elc +./lisp/cedet/semantic/symref/cscope.elc +./lisp/cedet/semantic/symref/global.elc +./lisp/cedet/cedet.elc +./lisp/cedet/cedet-global.elc +./lisp/cedet/srecode.elc +./lisp/cedet/pulse.elc +./lisp/cedet/srecode/expandproto.elc +./lisp/cedet/srecode/java.elc +./lisp/cedet/srecode/fields.elc +./lisp/cedet/srecode/dictionary.elc +./lisp/cedet/srecode/insert.elc +./lisp/cedet/srecode/compile.elc +./lisp/cedet/srecode/table.elc +./lisp/cedet/srecode/el.elc +./lisp/cedet/srecode/extract.elc +./lisp/cedet/srecode/texi.elc +./lisp/cedet/srecode/srt.elc +./lisp/cedet/srecode/document.elc +./lisp/cedet/srecode/mode.elc +./lisp/cedet/srecode/filters.elc +./lisp/cedet/srecode/find.elc +./lisp/cedet/srecode/srt-wy.elc +./lisp/cedet/srecode/loaddefs.el +./lisp/cedet/srecode/semantic.elc +./lisp/cedet/srecode/template.elc +./lisp/cedet/srecode/ctxt.elc +./lisp/cedet/srecode/cpp.elc +./lisp/cedet/srecode/map.elc +./lisp/cedet/srecode/getset.elc +./lisp/cedet/srecode/srt-mode.elc +./lisp/cedet/srecode/args.elc +./lisp/cedet/cedet-idutils.elc +./lisp/cedet/data-debug.elc +./lisp/cedet/mode-local.elc +./lisp/cedet/cedet-cscope.elc +./lisp/cedet/cedet-files.elc +./lisp/cedet/ede/custom.elc +./lisp/cedet/ede/speedbar.elc +./lisp/cedet/ede/linux.elc +./lisp/cedet/ede/simple.elc +./lisp/cedet/ede/make.elc +./lisp/cedet/ede/proj-archive.elc +./lisp/cedet/ede/source.elc +./lisp/cedet/ede/proj-scheme.elc +./lisp/cedet/ede/proj.elc +./lisp/cedet/ede/proj-obj.elc +./lisp/cedet/ede/pconf.elc +./lisp/cedet/ede/detect.elc +./lisp/cedet/ede/cpp-root.elc +./lisp/cedet/ede/srecode.elc +./lisp/cedet/ede/base.elc +./lisp/cedet/ede/makefile-edit.elc +./lisp/cedet/ede/system.elc +./lisp/cedet/ede/pmake.elc +./lisp/cedet/ede/proj-shared.elc +./lisp/cedet/ede/emacs.elc +./lisp/cedet/ede/loaddefs.el +./lisp/cedet/ede/auto.elc +./lisp/cedet/ede/proj-prog.elc +./lisp/cedet/ede/proj-comp.elc +./lisp/cedet/ede/proj-elisp.elc +./lisp/cedet/ede/shell.elc +./lisp/cedet/ede/autoconf-edit.elc +./lisp/cedet/ede/util.elc +./lisp/cedet/ede/dired.elc +./lisp/cedet/ede/proj-info.elc +./lisp/cedet/ede/files.elc +./lisp/cedet/ede/project-am.elc +./lisp/cedet/ede/generic.elc +./lisp/cedet/ede/locate.elc +./lisp/cedet/ede/config.elc +./lisp/cedet/ede/proj-aux.elc +./lisp/cedet/ede/proj-misc.elc +./lisp/cedet/semantic.elc +./lisp/cedet/ede.elc +./lisp/cedet/inversion.elc +./lisp/shell.elc +./lisp/net/tramp-sh.elc +./lisp/net/rlogin.elc +./lisp/net/dbus.elc +./lisp/net/tramp-cmds.elc +./lisp/net/newst-ticker.elc +./lisp/net/tramp-compat.elc +./lisp/net/eudcb-bbdb.elc +./lisp/net/mairix.elc +./lisp/net/quickurl.elc +./lisp/net/pop3.elc +./lisp/net/sasl-ntlm.elc +./lisp/net/tramp.elc +./lisp/net/sieve.elc +./lisp/net/newst-plainview.elc +./lisp/net/goto-addr.elc +./lisp/net/sieve-manage.elc +./lisp/net/network-stream.elc +./lisp/net/eudcb-mab.elc +./lisp/net/sasl-digest.elc +./lisp/net/netrc.elc +./lisp/net/eudcb-ldap.elc +./lisp/net/newsticker.elc +./lisp/net/tramp-integration.elc +./lisp/net/tramp-ftp.elc +./lisp/net/mailcap.elc +./lisp/net/puny.elc +./lisp/net/tramp-adb.elc +./lisp/net/trampver.elc +./lisp/net/eww.elc +./lisp/net/rcirc.elc +./lisp/net/rfc2104.elc +./lisp/net/ldap.elc +./lisp/net/net-utils.elc +./lisp/net/eudc-export.elc +./lisp/net/socks.elc +./lisp/net/shr-color.elc +./lisp/net/ange-ftp.elc +./lisp/net/tramp-uu.elc +./lisp/net/sasl-scram-rfc.elc +./lisp/net/soap-inspect.elc +./lisp/net/newst-backend.elc +./lisp/net/telnet.elc +./lisp/net/tramp-loaddefs.el~ +./lisp/net/soap-client.elc +./lisp/net/nsm.elc +./lisp/net/tramp-smb.elc +./lisp/net/tramp-archive.elc +./lisp/net/gnutls.elc +./lisp/net/tramp-sudoedit.elc +./lisp/net/eudc-bob.elc +./lisp/net/sasl.elc +./lisp/net/sasl-cram.elc +./lisp/net/snmp-mode.elc +./lisp/net/imap.elc +./lisp/net/webjump.elc +./lisp/net/tramp-rclone.elc +./lisp/net/zeroconf.elc +./lisp/net/hmac-def.elc +./lisp/net/eudc-vars.elc +./lisp/net/eudc-hotlist.elc +./lisp/net/hmac-md5.elc +./lisp/net/eudc.elc +./lisp/net/browse-url.elc +./lisp/net/tramp-cache.elc +./lisp/net/dns.elc +./lisp/net/dig.elc +./lisp/net/tramp-gvfs.elc +./lisp/net/newst-reader.elc +./lisp/net/tramp-loaddefs.el +./lisp/net/sieve-mode.elc +./lisp/net/ntlm.elc +./lisp/net/secrets.elc +./lisp/net/shr.elc +./lisp/net/newst-treeview.elc +./lisp/timezone.elc +./lisp/imenu.elc +./lisp/tempo.elc +./lisp/macros.elc +./lisp/thread.elc +./lisp/recentf.elc +./lisp/ps-samp.elc +./lisp/ecomplete.elc +./lisp/time.elc +./lisp/userlock.elc +./lisp/ps-print-loaddefs.el +./lisp/loadhist.elc +./lisp/printing.elc +./lisp/reposition.elc +./lisp/sb-image.elc +./lisp/help.elc +./lisp/ansi-color.elc +./lisp/dired-loaddefs.el +./lisp/tar-mode.elc +./lisp/minibuffer.elc +./lisp/completion.elc +./lisp/font-lock.elc +./lisp/facemenu.elc +./lisp/man.elc +./lisp/tutorial.elc +./lisp/ps-print.elc +./lisp/nxml/nxml-ns.elc +./lisp/nxml/rng-uri.elc +./lisp/nxml/nxml-rap.elc +./lisp/nxml/rng-parse.elc +./lisp/nxml/nxml-outln.elc +./lisp/nxml/xmltok.elc +./lisp/nxml/rng-dt.elc +./lisp/nxml/nxml-parse.elc +./lisp/nxml/nxml-mode.elc +./lisp/nxml/rng-valid.elc +./lisp/nxml/rng-pttrn.elc +./lisp/nxml/rng-nxml.elc +./lisp/nxml/rng-util.elc +./lisp/nxml/nxml-enc.elc +./lisp/nxml/rng-cmpct.elc +./lisp/nxml/rng-match.elc +./lisp/nxml/nxml-util.elc +./lisp/nxml/rng-xsd.elc +./lisp/nxml/nxml-maint.elc +./lisp/nxml/rng-loc.elc +./lisp/nxml/xsd-regexp.elc +./lisp/nxml/rng-maint.elc +./lisp/descr-text.elc +./lisp/dired.elc +./lisp/ibuffer.elc +./lisp/dnd.elc +./lisp/frame.elc +./lisp/help-at-pt.elc +./lisp/vcursor.elc +./lisp/filesets.elc +./lisp/emulation/viper-macs.elc +./lisp/emulation/edt-lk201.elc +./lisp/emulation/cua-gmrk.elc +./lisp/emulation/edt-pc.elc +./lisp/emulation/viper-mous.elc +./lisp/emulation/viper-ex.elc +./lisp/emulation/edt-vt100.elc +./lisp/emulation/viper-cmd.elc +./lisp/emulation/edt-mapper.elc +./lisp/emulation/viper.elc +./lisp/emulation/edt.elc +./lisp/emulation/viper-keym.elc +./lisp/emulation/viper-init.elc +./lisp/emulation/cua-rect.elc +./lisp/emulation/cua-base.elc +./lisp/emulation/keypad.elc +./lisp/emulation/viper-util.elc +./lisp/reveal.elc +./lisp/tree-widget.elc +./lisp/midnight.elc +./lisp/allout.elc +./lisp/files.elc +./lisp/erc/erc-join.elc +./lisp/erc/erc-ezbounce.elc +./lisp/erc/erc-pcomplete.elc +./lisp/erc/erc-truncate.elc +./lisp/erc/erc-services.elc +./lisp/erc/erc-lang.elc +./lisp/erc/erc-fill.elc +./lisp/erc/erc-netsplit.elc +./lisp/erc/erc-dcc.elc +./lisp/erc/erc-list.elc +./lisp/erc/erc-page.elc +./lisp/erc/erc-desktop-notifications.elc +./lisp/erc/erc-imenu.elc +./lisp/erc/erc-backend.elc +./lisp/erc/erc-capab.elc +./lisp/erc/erc-spelling.elc +./lisp/erc/erc-log.elc +./lisp/erc/erc-autoaway.elc +./lisp/erc/erc-sound.elc +./lisp/erc/erc-networks.elc +./lisp/erc/erc-goodies.elc +./lisp/erc/erc.elc +./lisp/erc/erc-match.elc +./lisp/erc/erc-notify.elc +./lisp/erc/erc-compat.elc +./lisp/erc/erc-xdcc.elc +./lisp/erc/erc-loaddefs.el~ +./lisp/erc/erc-replace.elc +./lisp/erc/erc-stamp.elc +./lisp/erc/erc-ibuffer.elc +./lisp/erc/erc-ring.elc +./lisp/erc/erc-loaddefs.el +./lisp/erc/erc-speedbar.elc +./lisp/erc/erc-button.elc +./lisp/erc/erc-menu.elc +./lisp/erc/erc-track.elc +./lisp/erc/erc-identd.elc +./lisp/novice.elc +./lisp/hi-lock.elc +./lisp/foldout.elc +./lisp/lpr.elc +./lisp/dos-fns.elc +./lisp/whitespace.elc +./lisp/ps-bdf.elc +./lisp/chistory.elc +./lisp/edmacro.elc +./lisp/registry.elc +./lisp/textmodes/texinfo.elc +./lisp/textmodes/reftex-sel.elc +./lisp/textmodes/rst.elc +./lisp/textmodes/two-column.elc +./lisp/textmodes/sgml-mode.elc +./lisp/textmodes/conf-mode.elc +./lisp/textmodes/fill.elc +./lisp/textmodes/artist.elc +./lisp/textmodes/reftex-cite.elc +./lisp/textmodes/picture.elc +./lisp/textmodes/bibtex.elc +./lisp/textmodes/text-mode.elc +./lisp/textmodes/tildify.elc +./lisp/textmodes/table.elc +./lisp/textmodes/underline.elc +./lisp/textmodes/bibtex-style.elc +./lisp/textmodes/reftex-auc.elc +./lisp/textmodes/tex-mode.elc +./lisp/textmodes/reftex-loaddefs.el +./lisp/textmodes/reftex-ref.elc +./lisp/textmodes/reftex-index.elc +./lisp/textmodes/makeinfo.elc +./lisp/textmodes/nroff-mode.elc +./lisp/textmodes/reftex-dcr.elc +./lisp/textmodes/paragraphs.elc +./lisp/textmodes/less-css-mode.elc +./lisp/textmodes/texinfmt.elc +./lisp/textmodes/refer.elc +./lisp/textmodes/dns-mode.elc +./lisp/textmodes/enriched.elc +./lisp/textmodes/mhtml-mode.elc +./lisp/textmodes/page.elc +./lisp/textmodes/css-mode.elc +./lisp/textmodes/reftex-toc.elc +./lisp/textmodes/reftex-global.elc +./lisp/textmodes/remember.elc +./lisp/textmodes/reftex.elc +./lisp/textmodes/refbib.elc +./lisp/textmodes/page-ext.elc +./lisp/textmodes/flyspell.elc +./lisp/textmodes/bib-mode.elc +./lisp/textmodes/po.elc +./lisp/textmodes/refill.elc +./lisp/textmodes/ispell.elc +./lisp/textmodes/texnfo-upd.elc +./lisp/textmodes/reftex-vars.elc +./lisp/textmodes/reftex-parse.elc +./lisp/delsel.elc +./lisp/abbrev.elc +./lisp/mouse-copy.elc +./lisp/desktop.elc +./lisp/epa-dired.elc +./lisp/menu-bar.elc +./lisp/wdired.elc +./lisp/outline.elc +./lisp/plstore.elc +./lisp/dired-aux.elc +./lisp/rfn-eshadow.elc +./lisp/follow.elc +./lisp/scroll-all.elc +./lisp/master.elc +./lisp/htmlfontify-loaddefs.el +./lisp/cus-theme.elc +./lisp/ps-mule.elc +./lisp/ielm.elc +./lisp/dabbrev.elc +./lisp/auth-source.elc +./lisp/misc.elc +./lisp/help-macro.elc +./lisp/server.elc +./lisp/thingatpt.elc +./lisp/display-line-numbers.elc +./lisp/epa-hook.elc +./lisp/jka-compr.elc +./lisp/vc/vc-hg.elc +./lisp/vc/vc-hooks.elc +./lisp/vc/ediff-mult.elc +./lisp/vc/ediff-merg.elc +./lisp/vc/pcvs-util.elc +./lisp/vc/vc-bzr.elc +./lisp/vc/vc-src.elc +./lisp/vc/vc-dir.elc +./lisp/vc/ediff-wind.elc +./lisp/vc/vc-mtn.elc +./lisp/vc/pcvs-info.elc +./lisp/vc/pcvs-defs.elc +./lisp/vc/cvs-status.elc +./lisp/vc/vc-filewise.elc +./lisp/vc/pcvs.elc +./lisp/vc/diff.elc +./lisp/vc/vc-dispatcher.elc +./lisp/vc/vc-annotate.elc +./lisp/vc/ediff-ptch.elc +./lisp/vc/ediff-vers.elc +./lisp/vc/log-edit.elc +./lisp/vc/log-view.elc +./lisp/vc/vc.elc +./lisp/vc/ediff.elc +./lisp/vc/emerge.elc +./lisp/vc/add-log.elc +./lisp/vc/diff-mode.elc +./lisp/vc/vc-git.elc +./lisp/vc/vc-rcs.elc +./lisp/vc/vc-cvs.elc +./lisp/vc/ediff-init.elc +./lisp/vc/compare-w.elc +./lisp/vc/ediff-diff.elc +./lisp/vc/vc-svn.elc +./lisp/vc/vc-sccs.elc +./lisp/vc/smerge-mode.elc +./lisp/vc/ediff-hook.elc +./lisp/vc/ediff-help.elc +./lisp/vc/ediff-util.elc +./lisp/vc/pcvs-parse.elc +./lisp/vc/vc-dav.elc +./lisp/leim/leim-list.el +./lisp/leim/quail/4Corner.elc +./lisp/leim/quail/latin-post.elc +./lisp/leim/quail/ETZY.el +./lisp/leim/quail/tsang-cns.el +./lisp/leim/quail/CTLau.el +./lisp/leim/quail/symbol-ksc.elc +./lisp/leim/quail/arabic.elc +./lisp/leim/quail/lao.elc +./lisp/leim/quail/CTLau-b5.el +./lisp/leim/quail/Punct.el +./lisp/leim/quail/ZOZY.elc +./lisp/leim/quail/tsang-b5.elc +./lisp/leim/quail/tsang-b5.el +./lisp/leim/quail/QJ-b5.elc +./lisp/leim/quail/czech.elc +./lisp/leim/quail/programmer-dvorak.elc +./lisp/leim/quail/CTLau-b5.elc +./lisp/leim/quail/cyril-jis.elc +./lisp/leim/quail/rfc1345.elc +./lisp/leim/quail/ARRAY30.el +./lisp/leim/quail/ipa.elc +./lisp/leim/quail/ipa-praat.elc +./lisp/leim/quail/quick-cns.elc +./lisp/leim/quail/tibetan.elc +./lisp/leim/quail/tsang-cns.elc +./lisp/leim/quail/py-punct.elc +./lisp/leim/quail/uni-input.elc +./lisp/leim/quail/SW.elc +./lisp/leim/quail/sgml-input.elc +./lisp/leim/quail/slovak.elc +./lisp/leim/quail/hanja3.elc +./lisp/leim/quail/QJ.elc +./lisp/leim/quail/georgian.elc +./lisp/leim/quail/croatian.elc +./lisp/leim/quail/sisheng.elc +./lisp/leim/quail/latin-alt.elc +./lisp/leim/quail/PY-b5.el +./lisp/leim/quail/PY.elc +./lisp/leim/quail/TONEPY.el +./lisp/leim/quail/japanese.elc +./lisp/leim/quail/PY-b5.elc +./lisp/leim/quail/tamil-dvorak.elc +./lisp/leim/quail/quick-b5.elc +./lisp/leim/quail/hanja-jis.elc +./lisp/leim/quail/ETZY.elc +./lisp/leim/quail/Punct-b5.elc +./lisp/leim/quail/SW.el +./lisp/leim/quail/quick-cns.el +./lisp/leim/quail/vnvni.elc +./lisp/leim/quail/welsh.elc +./lisp/leim/quail/ZOZY.el +./lisp/leim/quail/Punct-b5.el +./lisp/leim/quail/thai.elc +./lisp/leim/quail/4Corner.el +./lisp/leim/quail/vntelex.elc +./lisp/leim/quail/TONEPY.elc +./lisp/leim/quail/ethiopic.elc +./lisp/leim/quail/ARRAY30.elc +./lisp/leim/quail/CTLau.elc +./lisp/leim/quail/PY.el +./lisp/leim/quail/indian.elc +./lisp/leim/quail/hanja.elc +./lisp/leim/quail/CCDOSPY.el +./lisp/leim/quail/quick-b5.el +./lisp/leim/quail/greek.elc +./lisp/leim/quail/hangul.elc +./lisp/leim/quail/latin-pre.elc +./lisp/leim/quail/latin-ltx.elc +./lisp/leim/quail/QJ.el +./lisp/leim/quail/persian.elc +./lisp/leim/quail/lrt.elc +./lisp/leim/quail/viqr.elc +./lisp/leim/quail/sami.elc +./lisp/leim/quail/cyrillic.elc +./lisp/leim/quail/Punct.elc +./lisp/leim/quail/CCDOSPY.elc +./lisp/leim/quail/hebrew.elc +./lisp/leim/quail/ECDICT.el +./lisp/leim/quail/ECDICT.elc +./lisp/leim/quail/pypunct-b5.elc +./lisp/leim/quail/ZIRANMA.el +./lisp/leim/quail/ZIRANMA.elc +./lisp/leim/quail/QJ-b5.el +./lisp/locate.elc +./lisp/pcmpl-linux.elc +./lisp/echistory.elc +./lisp/talk.elc +./lisp/forms.elc +./lisp/calculator.elc +./lisp/international/utf-7.elc +./lisp/international/ja-dic-utl.elc +./lisp/international/iso-cvt.elc +./lisp/international/cp51932.elc +./lisp/international/isearch-x.elc +./lisp/international/robin.elc +./lisp/international/eucjp-ms.elc +./lisp/international/ogonek.elc +./lisp/international/kinsoku.elc +./lisp/international/ja-dic-cnv.elc +./lisp/international/iso-ascii.elc +./lisp/international/mule-cmds.elc +./lisp/international/mule-conf.elc +./lisp/international/ccl.elc +./lisp/international/quail.elc +./lisp/international/latin1-disp.elc +./lisp/international/fontset.elc +./lisp/international/mule-util.elc +./lisp/international/utf7.elc +./lisp/international/characters.elc +./lisp/international/latexenc.elc +./lisp/international/iso-transl.elc +./lisp/international/titdic-cnv.elc +./lisp/international/rfc1843.elc +./lisp/international/mule-diag.elc +./lisp/international/mule.elc +./lisp/international/ucs-normalize.elc +./lisp/international/kkc.elc +./lisp/bookmark.elc +./lisp/auth-source-pass.elc +./lisp/pcmpl-gnu.elc +./lisp/allout-widgets.elc +./lisp/pcomplete.elc +./lisp/md4.elc +./lisp/jsonrpc.elc +./lisp/t-mouse.elc +./lisp/jka-cmpr-hook.elc +./lisp/eshell/em-alias.elc +./lisp/eshell/em-banner.elc +./lisp/eshell/em-basic.elc +./lisp/eshell/em-term.elc +./lisp/eshell/esh-proc.elc +./lisp/eshell/em-dirs.elc +./lisp/eshell/esh-opt.elc +./lisp/eshell/esh-cmd.elc +./lisp/eshell/em-cmpl.elc +./lisp/eshell/esh-ext.elc +./lisp/eshell/em-pred.elc +./lisp/eshell/em-glob.elc +./lisp/eshell/esh-mode.elc +./lisp/eshell/esh-util.elc +./lisp/eshell/esh-var.elc +./lisp/eshell/em-xtra.elc +./lisp/eshell/esh-module.elc +./lisp/eshell/em-prompt.elc +./lisp/eshell/em-smart.elc +./lisp/eshell/esh-groups.el +./lisp/eshell/em-script.elc +./lisp/eshell/esh-arg.elc +./lisp/eshell/em-unix.elc +./lisp/eshell/em-tramp.elc +./lisp/eshell/eshell.elc +./lisp/eshell/esh-io.elc +./lisp/eshell/em-ls.elc +./lisp/eshell/em-rebind.elc +./lisp/eshell/em-hist.elc +./lisp/tabify.elc +./lisp/org/org-plot.elc +./lisp/org/ob-hledger.elc +./lisp/org/ob-stan.elc +./lisp/org/ob-eval.elc +./lisp/org/ox.elc +./lisp/org/org-loaddefs.el +./lisp/org/org-ctags.elc +./lisp/org/ox-ascii.elc +./lisp/org/org-pcomplete.elc +./lisp/org/ob-fortran.elc +./lisp/org/ob-shen.elc +./lisp/org/org-macs.elc +./lisp/org/ob-scheme.elc +./lisp/org/ox-org.elc +./lisp/org/org-faces.elc +./lisp/org/ob-sass.elc +./lisp/org/ob-sqlite.elc +./lisp/org/ox-md.elc +./lisp/org/ox-texinfo.elc +./lisp/org/org-protocol.elc +./lisp/org/ob-mscgen.elc +./lisp/org/ox-latex.elc +./lisp/org/org-datetree.elc +./lisp/org/ob-lob.elc +./lisp/org/ob-org.elc +./lisp/org/ob-groovy.elc +./lisp/org/ob-python.elc +./lisp/org/ob-awk.elc +./lisp/org/org-entities.elc +./lisp/org/ob-keys.elc +./lisp/org/org-mouse.elc +./lisp/org/ob-js.elc +./lisp/org/ob-core.elc +./lisp/org/ox-odt.elc +./lisp/org/ox-icalendar.elc +./lisp/org/ob-sql.elc +./lisp/org/ob-java.elc +./lisp/org/ob-perl.elc +./lisp/org/ob-gnuplot.elc +./lisp/org/ob.elc +./lisp/org/org-colview.elc +./lisp/org/ob-tangle.elc +./lisp/org/org-capture.elc +./lisp/org/ob-maxima.elc +./lisp/org/ob-ocaml.elc +./lisp/org/ob-css.elc +./lisp/org/org-footnote.elc +./lisp/org/ob-coq.elc +./lisp/org/ob-sed.elc +./lisp/org/org-habit.elc +./lisp/org/ob-ruby.elc +./lisp/org/org-duration.elc +./lisp/org/ob-screen.elc +./lisp/org/org-agenda.elc +./lisp/org/org-irc.elc +./lisp/org/ob-octave.elc +./lisp/org/org-w3m.elc +./lisp/org/org-indent.elc +./lisp/org/ob-lilypond.elc +./lisp/org/ob-processing.elc +./lisp/org/org-eshell.elc +./lisp/org/org-list.elc +./lisp/org/org-src.elc +./lisp/org/ob-abc.elc +./lisp/org/ob-ref.elc +./lisp/org/org-element.elc +./lisp/org/ob-J.elc +./lisp/org/org-feed.elc +./lisp/org/ob-ditaa.elc +./lisp/org/org-archive.elc +./lisp/org/ob-forth.elc +./lisp/org/ob-plantuml.elc +./lisp/org/ob-C.elc +./lisp/org/org-docview.elc +./lisp/org/ob-ledger.elc +./lisp/org/ob-exp.elc +./lisp/org/org-attach.elc +./lisp/org/ox-beamer.elc +./lisp/org/ob-ebnf.elc +./lisp/org/org-lint.elc +./lisp/org/ob-shell.elc +./lisp/org/org-clock.elc +./lisp/org/ob-dot.elc +./lisp/org/ob-lisp.elc +./lisp/org/org-compat.elc +./lisp/org/ob-latex.elc +./lisp/org/ox-publish.elc +./lisp/org/org-timer.elc +./lisp/org/org-bibtex.elc +./lisp/org/ob-vala.elc +./lisp/org/ob-comint.elc +./lisp/org/org-bbdb.elc +./lisp/org/ox-man.elc +./lisp/org/org-id.elc +./lisp/org/org-info.elc +./lisp/org/org-rmail.elc +./lisp/org/ob-lua.elc +./lisp/org/org-crypt.elc +./lisp/org/org.elc +./lisp/org/org-gnus.elc +./lisp/org/org-mhe.elc +./lisp/org/org-mobile.elc +./lisp/org/ob-table.elc +./lisp/org/ob-asymptote.elc +./lisp/org/ob-haskell.elc +./lisp/org/org-table.elc +./lisp/org/org-eww.elc +./lisp/org/ob-picolisp.elc +./lisp/org/ob-calc.elc +./lisp/org/ox-html.elc +./lisp/org/ob-R.elc +./lisp/org/org-inlinetask.elc +./lisp/org/ob-emacs-lisp.elc +./lisp/org/org-macro.elc +./lisp/org/ob-io.elc +./lisp/org/ob-makefile.elc +./lisp/org/ob-matlab.elc +./lisp/org/ob-clojure.elc +./lisp/rect.elc +./lisp/hfy-cmap.elc +./lisp/tmm.elc +./lisp/mouse-drag.elc +./lisp/char-fold.elc +./lisp/vt100-led.elc +./lisp/w32-vars.elc +./lisp/replace.elc +./lisp/dirtrack.elc +./lisp/rot13.elc +./lisp/buff-menu.elc +./lisp/skeleton.elc +./lisp/mouse.elc +./lisp/arc-mode.elc +./lisp/finder.elc +./lisp/soundex.elc +./lisp/window.elc +./lisp/cus-face.elc +./lisp/help-fns.elc +./lisp/filecache.elc +./lisp/isearch.elc +./admin/unidata/uvs.elc +./admin/unidata/unidata.txt +./admin/unidata/unidata-gen.elc +./configure +./doc/emacs/emacsver.texi ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 16:12 ` Lars Ingebrigtsen @ 2019-06-19 17:03 ` Eli Zaretskii 2019-06-19 17:29 ` Lars Ingebrigtsen 0 siblings, 1 reply; 59+ messages in thread From: Eli Zaretskii @ 2019-06-19 17:03 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: emacs-devel@gnu.org > Date: Wed, 19 Jun 2019 18:12:07 +0200 > > > So I understand one thing extraclean doesn't do is remove the *.elc > > files; let's add that. What else? > > I'm comparing a fresh clone with what's in the repo after a make; make > extraclean. I've made a summary first and include the full list as an > attachment. > > diff --unified /tmp/fresh /tmp/extra | grep "^\\+" | grep -v /.git/ > /tmp/diff Thanks. So if you delete all of these, then a simple "make" performs a full bootstrap, just like in a fresh checkout? If so, all we need is add to extraclean the commands to delete these files (I guess to the respective Makefile.in files in the subdirectories). And then Bob will be our uncle again. ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 17:03 ` Eli Zaretskii @ 2019-06-19 17:29 ` Lars Ingebrigtsen 2019-06-19 18:18 ` Eli Zaretskii 0 siblings, 1 reply; 59+ messages in thread From: Lars Ingebrigtsen @ 2019-06-19 17:29 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > So if you delete all of these, then a simple "make" performs a full > bootstrap, just like in a fresh checkout? If so, all we need is add > to extraclean the commands to delete these files (I guess to the > respective Makefile.in files in the subdirectories). And then Bob > will be our uncle again. Yup; I tried make; make extraclean; "rm all the files in the list" and then make and everything worked as it's supposed to -- it looked very much like a build from a fresh check-out. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 17:29 ` Lars Ingebrigtsen @ 2019-06-19 18:18 ` Eli Zaretskii 2019-06-20 11:32 ` Lars Ingebrigtsen 0 siblings, 1 reply; 59+ messages in thread From: Eli Zaretskii @ 2019-06-19 18:18 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: emacs-devel@gnu.org > Date: Wed, 19 Jun 2019 19:29:37 +0200 > > Eli Zaretskii <eliz@gnu.org> writes: > > > So if you delete all of these, then a simple "make" performs a full > > bootstrap, just like in a fresh checkout? If so, all we need is add > > to extraclean the commands to delete these files (I guess to the > > respective Makefile.in files in the subdirectories). And then Bob > > will be our uncle again. > > Yup; I tried > > make; make extraclean; "rm all the files in the list" > > and then > > make > > and everything worked as it's supposed to -- it looked very much like a > build from a fresh check-out. Great, thanks. What's left is to update every Makefile.in with its share of files to delete in the extraclean target. ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 18:18 ` Eli Zaretskii @ 2019-06-20 11:32 ` Lars Ingebrigtsen 2019-06-20 13:06 ` Eli Zaretskii 0 siblings, 1 reply; 59+ messages in thread From: Lars Ingebrigtsen @ 2019-06-20 11:32 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > Great, thanks. What's left is to update every Makefile.in with its > share of files to delete in the extraclean target. With the patch below, the only remaining files (not in a clean check-out) are: +./info +./src/config.in +./lib/sys +./configure Should the ./configure file also be deleted by extraclean? If I remove src/config.in, then the subsequent "make" after "make extraclean" fails with config.status: error: cannot find input file: `src/config.in' GNUmakefile:72: recipe for target 'Makefile' failed and I have to run autogen.sh again... The two directories +./info +./lib/sys perhaps don't matter, and I'd rather not do an rm -rf on a directory... diff --git a/Makefile.in b/Makefile.in index 21362a9196..26463cec64 100644 --- a/Makefile.in +++ b/Makefile.in @@ -933,14 +933,15 @@ maintainer-clean: bootstrap-clean $(maintainer_clean_dirs: ### Note that we abuse this in some subdirectories (eg leim), ### to delete some generated files that are slow to rebuild. extraclean_dirs = ${NTDIR} lib-src src leim \ - admin/charsets admin/grammars admin/unidata + admin/charsets admin/grammars admin/unidata lisp lib $(foreach dir,$(extraclean_dirs),$(eval $(call submake_template,$(dir),extraclean))) extraclean: $(extraclean_dirs:=_extraclean) ${top_maintainer_clean} - -rm -f config-tmp-* - -rm -f ./*~ \#* + -rm -f config-tmp-* aclocal.m4 + -rm -f ./*~ \#* etc/refcards/emacsver.tex doc/emacs/emacsver.texi + -rm -f ${infodir}/*.info ${infodir}/dir # The src subdir knows how to do the right thing # even when the build directory and source dir are different. diff --git a/admin/unidata/Makefile.in b/admin/unidata/Makefile.in index 31efba0227..a522b0c3aa 100644 --- a/admin/unidata/Makefile.in +++ b/admin/unidata/Makefile.in @@ -116,6 +116,6 @@ maintainer-clean: ## Do not remove these files, even in a bootstrap, because they rarely ## change and it slows down bootstrap (a tiny bit). ## Cf leim/ja-dic (which is much slower). -extraclean: +extraclean: distclean rm -f ${top_srcdir}/src/macuvs.h ${unidir}/charscript.el* rm -f ${unifiles} ${unidir}/charprop.el diff --git a/leim/Makefile.in b/leim/Makefile.in index 4307d50087..d5619d9c67 100644 --- a/leim/Makefile.in +++ b/leim/Makefile.in @@ -159,7 +159,7 @@ maintainer-clean: ## We do not delete ja-dic, even in a bootstrap, because it rarely ## changes and is slow to regenerate. -extraclean: +extraclean: bootstrap-clean rm -rf ${leimdir}/ja-dic ### Makefile.in ends here diff --git a/lib/Makefile.in b/lib/Makefile.in index ac32c7070f..bf9b01f143 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -126,6 +126,8 @@ distclean bootstrap-clean: rm -fr $(DEPDIR) maintainer-clean: distclean rm -f TAGS gnulib.mk +extraclean: distclean + .PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/lisp/Makefile.in b/lisp/Makefile.in index 9bcd5a8824..6d37884c7e 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in @@ -453,7 +453,7 @@ $(CAL_DIR)/hol-loaddefs.el: --eval "(setq generated-autoload-file (expand-file-name (unmsys--file-name \"$@\")))" \ -f batch-update-autoloads $(CAL_DIR) -.PHONY: bootstrap-clean distclean maintainer-clean +.PHONY: bootstrap-clean distclean maintainer-clean extraclean bootstrap-clean: find $(lisp) -name '*.elc' $(FIND_DELETE) @@ -465,6 +465,8 @@ distclean: maintainer-clean: distclean bootstrap-clean rm -f TAGS +extraclean: bootstrap-clean distclean + .PHONY: check-declare check-declare: diff --git a/src/Makefile.in b/src/Makefile.in index 02a1a2c4cf..44c22ef5de 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -723,7 +723,7 @@ maintainer-clean: versionclean: -rm -f emacs$(EXEEXT) emacs-*.*.*[0-9]$(EXEEXT) ../etc/DOC* extraclean: distclean - -rm -f ./*~ \#* + -rm -f ./*~ \#* TAGS ETAGS = ../lib-src/etags${EXEEXT} -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply related [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-20 11:32 ` Lars Ingebrigtsen @ 2019-06-20 13:06 ` Eli Zaretskii 2019-06-20 14:23 ` Lars Ingebrigtsen 0 siblings, 1 reply; 59+ messages in thread From: Eli Zaretskii @ 2019-06-20 13:06 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Date: Thu, 20 Jun 2019 13:32:28 +0200 > Cc: emacs-devel@gnu.org > > With the patch below, the only remaining files (not in a clean > check-out) are: > > +./info > +./src/config.in > +./lib/sys > +./configure > > Should the ./configure file also be deleted by extraclean? Yes, I think so. > If I remove src/config.in, then the subsequent "make" after "make > extraclean" fails with > > config.status: error: cannot find input file: `src/config.in' > GNUmakefile:72: recipe for target 'Makefile' failed > > and I have to run autogen.sh again... How is this different from doing the same in a fresh checkout? is this because the configure script wasn't removed, or for some other reason? > The two directories > > +./info > +./lib/sys > > perhaps don't matter, and I'd rather not do an rm -rf on a directory... Are these directories empty? ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-20 13:06 ` Eli Zaretskii @ 2019-06-20 14:23 ` Lars Ingebrigtsen 2019-06-20 15:10 ` Lars Ingebrigtsen 2019-06-20 16:23 ` Eli Zaretskii 0 siblings, 2 replies; 59+ messages in thread From: Lars Ingebrigtsen @ 2019-06-20 14:23 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> If I remove src/config.in, then the subsequent "make" after "make >> extraclean" fails with >> >> config.status: error: cannot find input file: `src/config.in' >> GNUmakefile:72: recipe for target 'Makefile' failed >> >> and I have to run autogen.sh again... > > How is this different from doing the same in a fresh checkout? is > this because the configure script wasn't removed, or for some other > reason? Yes, indeed. If I remove both configure and src/config.in in extraclean, the subsequent "make" works fine. >> The two directories >> >> +./info >> +./lib/sys >> >> perhaps don't matter, and I'd rather not do an rm -rf on a directory... > > Are these directories empty? They will normally be empty, but the user may have put a file there... I could do check for whether they're empty, and if they are, I do an rmdir on them? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-20 14:23 ` Lars Ingebrigtsen @ 2019-06-20 15:10 ` Lars Ingebrigtsen 2019-06-20 16:29 ` Eli Zaretskii 2019-06-20 16:23 ` Eli Zaretskii 1 sibling, 1 reply; 59+ messages in thread From: Lars Ingebrigtsen @ 2019-06-20 15:10 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel I've now checked in the changes, and extraclean now removes all the files and directories that aren't in a fresh checkout, as far as I can tell. But there's one confusing thing: There's an old rule in there that deletes the src/macuvs.h file, which is a checked-out file, so until you say "make" again, you get: removed src/macuvs.h from git. It's re-generated by the build process, but is this how it's supposed to be? It's removed by extraclean in admin/unidata/Makefile.in, and it's been like that for many years. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-20 15:10 ` Lars Ingebrigtsen @ 2019-06-20 16:29 ` Eli Zaretskii 2019-06-21 10:51 ` Lars Ingebrigtsen 0 siblings, 1 reply; 59+ messages in thread From: Eli Zaretskii @ 2019-06-20 16:29 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: emacs-devel@gnu.org > Date: Thu, 20 Jun 2019 17:10:10 +0200 > > I've now checked in the changes, and extraclean now removes all the > files and directories that aren't in a fresh checkout, as far as I can > tell. > > But there's one confusing thing: There's an old rule in there that > deletes the src/macuvs.h file, which is a checked-out file, so until you > say "make" again, you get: > > removed src/macuvs.h > > from git. > > It's re-generated by the build process, but is this how it's supposed to > be? It's removed by extraclean in admin/unidata/Makefile.in, and it's > been like that for many years. I don't see this as a catastrophe. If the user does this inside a repository, they can "git checkout src/macuvs.h", if they don't intend running a full build. And if they do run a full build, the file will be recreated. And in a tree that is not a repository, removing the file is not a problem at all. We could refrain from removing it, but then users who want to regenerate it anew, perhaps because its dependencies changed, will have hard time figuring out what exactly to do. So I think this is not a problem. Perhaps we should have a comment in admin/unidata/Makefile.in describing the issue. ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-20 16:29 ` Eli Zaretskii @ 2019-06-21 10:51 ` Lars Ingebrigtsen 2019-06-21 22:03 ` Paul Eggert 0 siblings, 1 reply; 59+ messages in thread From: Lars Ingebrigtsen @ 2019-06-21 10:51 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Paul Eggert, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > I don't see this as a catastrophe. If the user does this inside a > repository, they can "git checkout src/macuvs.h", if they don't intend > running a full build. And if they do run a full build, the file will > be recreated. And in a tree that is not a repository, removing the > file is not a problem at all. I just wondered whether the inclusion of the file is a bug, or the removal of the file was a bug... We do include some generated files in git, like lisp/cedet/semantic/grammar-wy.el. But that's because we can't (re)generate it without having it. :-) (wisent uses its own machinery to parse its .wy files, from which this is generated, so it's a chicken or egg problem.) But Emacs does generate the macuvs.h file just fine, so it just seemed odd to me and I wondered whether anybody could remember why it's this way... I had a look in both the file itself: /* This file was automatically generated from admin/unidata/IVD_Sequences.txt by the script admin/unidata/uvs.el */ and the file that generates the file, but I couldn't see any explanation. Here's the commit that added the generation of the file (and the removal of the file in extraclean), but it didn't remove the file from git. Paul, do you remember the logic behind this? commit cf2f54c4e3d8adb26e3f4b8e9e51364165877444 Author: Paul Eggert <eggert@cs.ucla.edu> Date: Mon May 26 08:48:28 2014 -0700 Include sources used to create macuvs.h. * admin/unidata/IVD_Sequences.txt: New file. * admin/unidata/Makefile.in (${top_srcdir}/src/macuvs.h): New rule. (all): Build it. (extraclean): Remove it. * admin/unidata/README: Mention BidiMirroring.txt and IVD_Sequences.txt. * admin/unidata/copyright.html: Update to current version from Unicode Consortium. * admin/unidata/uvs.el: Rename from admin/mac/uvs.el. (uvs-print-table-ivd): Output a header in the form that unidata-gen.el generates. * lisp/international/README: Refer to the Unicode Terms of Use rather than copying it bodily here, as that simplifies maintenance. * src/Makefile.in ($(srcdir)/macuvs.h): New rule. * src/macuvs.h: Use automatically-generated header. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 59+ messages in thread
* A target that's even more bootstrap? 2019-06-21 10:51 ` Lars Ingebrigtsen @ 2019-06-21 22:03 ` Paul Eggert 2019-06-23 2:48 ` Richard Stallman 0 siblings, 1 reply; 59+ messages in thread From: Paul Eggert @ 2019-06-21 22:03 UTC (permalink / raw) To: Lars Ingebrigtsen, Eli Zaretskii; +Cc: emacs-devel [-- Attachment #1: Type: text/plain, Size: 1037 bytes --] On 6/21/19 3:51 AM, Lars Ingebrigtsen wrote: > Here's the commit that added the generation of the file (and the removal > of the file in extraclean), but it didn't remove the file from git. > Paul, do you remember the logic behind this? > > commit cf2f54c4e3d8adb26e3f4b8e9e51364165877444 The motivation for that commit was to support the GNU idea that we should ship source code instead of generated code; in this case macuvs.h was being generated from IVD_Sequences.txt, a file that was not part of the repository and not shipped, contrary to the GNU ideal. The email thread prompting that commit is rooted here: https://lists.gnu.org/r/emacs-devel/2014-05/msg00427.html In that commit I wasn't attempting to also follow the principle that we shouldn't commit sources that can be generated automatically by standard maintainer tools. In hindsight I should have done that as well, and removed src/macuvs.h from the repository while I was at it. I just now attempted to fix this by installing the attached patch into master. [-- Attachment #2: 0001-Remove-src-macuvs.h-from-Git-repository.txt.tz --] [-- Type: application/octet-stream, Size: 88444 bytes --] ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-21 22:03 ` Paul Eggert @ 2019-06-23 2:48 ` Richard Stallman 0 siblings, 0 replies; 59+ messages in thread From: Richard Stallman @ 2019-06-23 2:48 UTC (permalink / raw) To: Paul Eggert; +Cc: larsi, eliz, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] Perhaps Mac users should write some other code to generate macuvs.h, not using Lisp, so that it can be generated at build time without causing any hassle. In the mean time, we don't need to be rigid about excluding that file. Let's leave macuvs.h in the distribution. -- Dr Richard Stallman President, Free Software Foundation (https://gnu.org, https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-20 14:23 ` Lars Ingebrigtsen 2019-06-20 15:10 ` Lars Ingebrigtsen @ 2019-06-20 16:23 ` Eli Zaretskii 2019-06-20 16:27 ` Lars Ingebrigtsen 1 sibling, 1 reply; 59+ messages in thread From: Eli Zaretskii @ 2019-06-20 16:23 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: emacs-devel@gnu.org > Date: Thu, 20 Jun 2019 16:23:14 +0200 > > > How is this different from doing the same in a fresh checkout? is > > this because the configure script wasn't removed, or for some other > > reason? > > Yes, indeed. If I remove both configure and src/config.in in > extraclean, the subsequent "make" works fine. OK, so that's the solution, right? > >> +./info > >> +./lib/sys > >> > >> perhaps don't matter, and I'd rather not do an rm -rf on a directory... > > > > Are these directories empty? > > They will normally be empty, but the user may have put a file there... > > I could do check for whether they're empty, and if they are, I do an > rmdir on them? I don't think you need to do that, as their mere existence shouldn't matter for this purpose. (If it does, someone will complain and will describe the situation when it does matter.) Thanks. ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-20 16:23 ` Eli Zaretskii @ 2019-06-20 16:27 ` Lars Ingebrigtsen 2019-06-20 16:46 ` Eli Zaretskii 0 siblings, 1 reply; 59+ messages in thread From: Lars Ingebrigtsen @ 2019-06-20 16:27 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> Yes, indeed. If I remove both configure and src/config.in in >> extraclean, the subsequent "make" works fine. > > OK, so that's the solution, right? Yup. >> >> +./info >> >> +./lib/sys >> >> >> >> perhaps don't matter, and I'd rather not do an rm -rf on a directory... >> > >> > Are these directories empty? >> >> They will normally be empty, but the user may have put a file there... >> >> I could do check for whether they're empty, and if they are, I do an >> rmdir on them? > > I don't think you need to do that, as their mere existence shouldn't > matter for this purpose. (If it does, someone will complain and will > describe the situation when it does matter.) I've already checked in a solution where it checks for the directory and deletes it... However, I'm not sure whether the solution works everywhere. It's: [ -d info ] && rmdir --ignore-fail-on-non-empty info If that's non-supported syntax, we can just delete the line and let the directory live on. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-20 16:27 ` Lars Ingebrigtsen @ 2019-06-20 16:46 ` Eli Zaretskii 2019-06-20 16:47 ` Lars Ingebrigtsen 0 siblings, 1 reply; 59+ messages in thread From: Eli Zaretskii @ 2019-06-20 16:46 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: emacs-devel > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: emacs-devel@gnu.org > Date: Thu, 20 Jun 2019 18:27:40 +0200 > > [ -d info ] && rmdir --ignore-fail-on-non-empty info > > If that's non-supported syntax, we can just delete the line and let the > directory live on. I don't think it's portable enough. AFAIK, it's specific to GNU rmdir. ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-20 16:46 ` Eli Zaretskii @ 2019-06-20 16:47 ` Lars Ingebrigtsen 2019-06-20 18:24 ` Paul Eggert 0 siblings, 1 reply; 59+ messages in thread From: Lars Ingebrigtsen @ 2019-06-20 16:47 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > I don't think it's portable enough. AFAIK, it's specific to GNU > rmdir. OK; I'm removing it... -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-20 16:47 ` Lars Ingebrigtsen @ 2019-06-20 18:24 ` Paul Eggert 0 siblings, 0 replies; 59+ messages in thread From: Paul Eggert @ 2019-06-20 18:24 UTC (permalink / raw) To: emacs-devel [-- Attachment #1: Type: text/plain, Size: 162 bytes --] >> I don't think it's portable enough. AFAIK, it's specific to GNU >> rmdir. >> Yes, and there's a simple and portable way to do it; I installed the attached. [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-Fix-extraclean-in-a-different-way-for-info-lib-sys.patch --] [-- Type: text/x-patch; name="0001-Fix-extraclean-in-a-different-way-for-info-lib-sys.patch", Size: 1460 bytes --] From c626e5fc76785897a6c9c9e9863838244e091e4b Mon Sep 17 00:00:00 2001 From: Paul Eggert <eggert@cs.ucla.edu> Date: Thu, 20 Jun 2019 11:18:14 -0700 Subject: [PATCH] Fix extraclean in a different way for info+lib/sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Makefile.in (extraclean): * lib/Makefile.in (extraclean): Use rmdir but suppress any error indication. That way, ‘make extraclean’ will remove the directory if it’s empty, and successfully do nothing otherwise. --- Makefile.in | 1 + lib/Makefile.in | 1 + 2 files changed, 2 insertions(+) diff --git a/Makefile.in b/Makefile.in index c829ca29bd..aa11e6b0b7 100644 --- a/Makefile.in +++ b/Makefile.in @@ -942,6 +942,7 @@ extraclean: $(extraclean_dirs: -rm -f config-tmp-* aclocal.m4 configure -rm -f ./*~ \#* etc/refcards/emacsver.tex doc/emacs/emacsver.texi -rm -f info/*.info info/dir + -rmdir info 2>/dev/null # The src subdir knows how to do the right thing # even when the build directory and source dir are different. diff --git a/lib/Makefile.in b/lib/Makefile.in index bf9b01f143..1973452b22 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -127,6 +127,7 @@ distclean bootstrap-clean: maintainer-clean: distclean rm -f TAGS gnulib.mk extraclean: distclean + -rmdir sys 2>/dev/null .PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean -- 2.21.0 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 12:45 ` Óscar Fuentes 2019-06-19 13:35 ` Juanma Barranquero @ 2019-06-19 15:29 ` Phillip Lord 2019-06-19 15:59 ` Óscar Fuentes 1 sibling, 1 reply; 59+ messages in thread From: Phillip Lord @ 2019-06-19 15:29 UTC (permalink / raw) To: Óscar Fuentes; +Cc: emacs-devel Óscar Fuentes <ofv@wanadoo.es> writes: > Andy Moreton <andrewjmoreton@gmail.com> writes: > >>> In Emacs, out of tree builds are peculiar because they put build >>> products in the source tree (.elc files). >> >> Exactly my point - that should not happen. The .elc files should go in >> <builddir>/lisp and not in the source tree. > > I argued about this point on the past to no avail. Some hackers here > find this feature convenient for their workflow. It does have an advantage when I build for Windows, for example. I have to build twice (i686, x86_64), so I do out of source builds. But byte-compilation happens only once. I guess the reason for it is that the source distribution, actually includes the (non-source) elc files. The same is true for configure which is also generated in source. Phil ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 15:29 ` Phillip Lord @ 2019-06-19 15:59 ` Óscar Fuentes 2019-06-19 16:18 ` Stefan Monnier 0 siblings, 1 reply; 59+ messages in thread From: Óscar Fuentes @ 2019-06-19 15:59 UTC (permalink / raw) To: emacs-devel phillip.lord@russet.org.uk (Phillip Lord) writes: > Óscar Fuentes <ofv@wanadoo.es> writes: > >> Andy Moreton <andrewjmoreton@gmail.com> writes: >> >>>> In Emacs, out of tree builds are peculiar because they put build >>>> products in the source tree (.elc files). >>> >>> Exactly my point - that should not happen. The .elc files should go in >>> <builddir>/lisp and not in the source tree. >> >> I argued about this point on the past to no avail. Some hackers here >> find this feature convenient for their workflow. > > It does have an advantage when I build for Windows, for example. I have > to build twice (i686, x86_64), so I do out of source builds. But > byte-compilation happens only once. > > I guess the reason for it is that the source distribution, actually > includes the (non-source) elc files. The same is true for configure > which is also generated in source. The reason for this practice was explained to me time ago and it is related to your case (two or more out-of-tree builds, reuse .elc) Emacs falsely pretends to support out-of-tree builds. Having an option for the frankenbuild is fine, even if it defaults to on, but doing it inconditionally is not, moreover when you can't rely on the build system to do the right thing when a .el or somesuch changes (hence the need for `make bootstrap' or "git -fdx" after pulling or while bisecting). ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 15:59 ` Óscar Fuentes @ 2019-06-19 16:18 ` Stefan Monnier 2019-06-19 16:35 ` Óscar Fuentes 2019-06-20 13:49 ` Phillip Lord 0 siblings, 2 replies; 59+ messages in thread From: Stefan Monnier @ 2019-06-19 16:18 UTC (permalink / raw) To: emacs-devel > The reason for this practice was explained to me time ago and it is > related to your case (two or more out-of-tree builds, reuse .elc) No, the reason for this is that it was designed for the case where you build from a tarball rather than from a Git clone (AFAIK it was designed before I wrote the "bootstrap" code which made it possible to build Emacs without having all the .elc files pre-built, i.e. before we started using CVS). Stefan ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 16:18 ` Stefan Monnier @ 2019-06-19 16:35 ` Óscar Fuentes 2019-06-19 17:03 ` Out of tree builds [was Re: A target that's even more bootstrap?] Glenn Morris 2019-06-19 17:13 ` A target that's even more bootstrap? Stefan Monnier 2019-06-20 13:49 ` Phillip Lord 1 sibling, 2 replies; 59+ messages in thread From: Óscar Fuentes @ 2019-06-19 16:35 UTC (permalink / raw) To: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >> The reason for this practice was explained to me time ago and it is >> related to your case (two or more out-of-tree builds, reuse .elc) > > No, the reason for this is that it was designed for the case where you > build from a tarball rather than from a Git clone (AFAIK it was > designed before I wrote the "bootstrap" code which made it possible to build > Emacs without having all the .elc files pre-built, i.e. before we > started using CVS). I asked to move those .elc files to the build directory and some hackers explained why doing that would inconvenience them. The reason why it was implemented is unknown to me, but IIRC support for out-of-tree builds are a relatively recent development in Emacs, much more modern than the transition to CVS. So the .elc files were on the source directory from the beginning because there was no possibility for an out-of-tree build. ^ permalink raw reply [flat|nested] 59+ messages in thread
* Out of tree builds [was Re: A target that's even more bootstrap?] 2019-06-19 16:35 ` Óscar Fuentes @ 2019-06-19 17:03 ` Glenn Morris 2019-06-19 17:30 ` Óscar Fuentes 2019-06-19 17:13 ` A target that's even more bootstrap? Stefan Monnier 1 sibling, 1 reply; 59+ messages in thread From: Glenn Morris @ 2019-06-19 17:03 UTC (permalink / raw) To: ofv; +Cc: emacs-devel Óscar Fuentes wrote: > I asked to move those .elc files to the build directory You were told that patches were welcome. Ref https://lists.gnu.org/r/emacs-devel/2014-01/msg00976.html https://lists.gnu.org/r/emacs-devel/2014-01/msg00954.html ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: Out of tree builds [was Re: A target that's even more bootstrap?] 2019-06-19 17:03 ` Out of tree builds [was Re: A target that's even more bootstrap?] Glenn Morris @ 2019-06-19 17:30 ` Óscar Fuentes 0 siblings, 0 replies; 59+ messages in thread From: Óscar Fuentes @ 2019-06-19 17:30 UTC (permalink / raw) To: emacs-devel Glenn Morris <rgm@gnu.org> writes: > Óscar Fuentes wrote: > >> I asked to move those .elc files to the build directory > > You were told that patches were welcome. Ref > https://lists.gnu.org/r/emacs-devel/2014-01/msg00976.html > https://lists.gnu.org/r/emacs-devel/2014-01/msg00954.html Fair enough. Teaching Emacs about the out-of-tree .elc files sounds doable. As for the required modifications to the build system... ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 16:35 ` Óscar Fuentes 2019-06-19 17:03 ` Out of tree builds [was Re: A target that's even more bootstrap?] Glenn Morris @ 2019-06-19 17:13 ` Stefan Monnier 2019-06-19 17:43 ` Óscar Fuentes 1 sibling, 1 reply; 59+ messages in thread From: Stefan Monnier @ 2019-06-19 17:13 UTC (permalink / raw) To: emacs-devel > I asked to move those .elc files to the build directory and some hackers > explained why doing that would inconvenience them. Of course, people have learned to appreciate some of the quirks. > The reason why it was implemented is unknown to me, but IIRC support > for out-of-tree builds are a relatively recent development in Emacs, > much more modern than the transition to CVS. Hmm... maybe my memory is faulty, but I seem to remember it working back in the Emacs-19 days. Stefan ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 17:13 ` A target that's even more bootstrap? Stefan Monnier @ 2019-06-19 17:43 ` Óscar Fuentes 0 siblings, 0 replies; 59+ messages in thread From: Óscar Fuentes @ 2019-06-19 17:43 UTC (permalink / raw) To: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >> The reason why it was implemented is unknown to me, but IIRC support >> for out-of-tree builds are a relatively recent development in Emacs, >> much more modern than the transition to CVS. > > Hmm... maybe my memory is faulty, but I seem to remember it working > back in the Emacs-19 days. Probably I'm confusing the old MSWindows build system that was obsoleted when Eli ported the traditional system to MSYS. ^ permalink raw reply [flat|nested] 59+ messages in thread
* Re: A target that's even more bootstrap? 2019-06-19 16:18 ` Stefan Monnier 2019-06-19 16:35 ` Óscar Fuentes @ 2019-06-20 13:49 ` Phillip Lord 1 sibling, 0 replies; 59+ messages in thread From: Phillip Lord @ 2019-06-20 13:49 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >> The reason for this practice was explained to me time ago and it is >> related to your case (two or more out-of-tree builds, reuse .elc) > > No, the reason for this is that it was designed for the case where you > build from a tarball rather than from a Git clone (AFAIK it was > designed before I wrote the "bootstrap" code which made it possible to build > Emacs without having all the .elc files pre-built, i.e. before we > started using CVS). Perhaps removing the *elc files from the source distribution needs to be considered, given that it's possible to do without and that most peoples machines have got faster. The build would be slower clearly; a quick try suggests twice the time. 2min after make distclean 4min 30 after make distclean; find . -name "*elc" -delete Or alternatively, 2 minutes more. Phil ^ permalink raw reply [flat|nested] 59+ messages in thread
end of thread, other threads:[~2019-06-23 2:48 UTC | newest] Thread overview: 59+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-06-18 11:22 A target that's even more bootstrap? Lars Ingebrigtsen 2019-06-18 12:16 ` Andreas Schwab 2019-06-18 12:27 ` Lars Ingebrigtsen 2019-06-18 12:53 ` Phillip Lord 2019-06-18 13:20 ` Stefan Monnier 2019-06-18 13:28 ` Lars Ingebrigtsen 2019-06-18 16:03 ` Eli Zaretskii 2019-06-19 9:29 ` Phillip Lord 2019-06-19 15:21 ` Eli Zaretskii 2019-06-19 13:15 ` Lars Ingebrigtsen 2019-06-19 14:00 ` Andreas Schwab 2019-06-19 15:28 ` Eli Zaretskii 2019-06-19 15:32 ` Lars Ingebrigtsen 2019-06-18 15:53 ` Eli Zaretskii 2019-06-18 15:58 ` Lars Ingebrigtsen 2019-06-18 16:54 ` Eli Zaretskii 2019-06-18 17:47 ` Andy Moreton 2019-06-18 19:22 ` Óscar Fuentes 2019-06-19 4:32 ` Elias Mårtenson 2019-06-19 5:29 ` Teemu Likonen 2019-06-19 15:12 ` Eli Zaretskii 2019-06-19 20:06 ` Juanma Barranquero 2019-06-19 20:19 ` Lars Ingebrigtsen 2019-06-19 20:26 ` Óscar Fuentes 2019-06-20 2:30 ` Eli Zaretskii 2019-06-19 11:53 ` Lars Ingebrigtsen 2019-06-19 12:33 ` Andy Moreton 2019-06-19 12:45 ` Óscar Fuentes 2019-06-19 13:35 ` Juanma Barranquero 2019-06-19 13:46 ` Lars Ingebrigtsen 2019-06-19 15:34 ` Eli Zaretskii 2019-06-19 15:43 ` Lars Ingebrigtsen 2019-06-19 15:48 ` Eli Zaretskii 2019-06-19 16:12 ` Lars Ingebrigtsen 2019-06-19 17:03 ` Eli Zaretskii 2019-06-19 17:29 ` Lars Ingebrigtsen 2019-06-19 18:18 ` Eli Zaretskii 2019-06-20 11:32 ` Lars Ingebrigtsen 2019-06-20 13:06 ` Eli Zaretskii 2019-06-20 14:23 ` Lars Ingebrigtsen 2019-06-20 15:10 ` Lars Ingebrigtsen 2019-06-20 16:29 ` Eli Zaretskii 2019-06-21 10:51 ` Lars Ingebrigtsen 2019-06-21 22:03 ` Paul Eggert 2019-06-23 2:48 ` Richard Stallman 2019-06-20 16:23 ` Eli Zaretskii 2019-06-20 16:27 ` Lars Ingebrigtsen 2019-06-20 16:46 ` Eli Zaretskii 2019-06-20 16:47 ` Lars Ingebrigtsen 2019-06-20 18:24 ` Paul Eggert 2019-06-19 15:29 ` Phillip Lord 2019-06-19 15:59 ` Óscar Fuentes 2019-06-19 16:18 ` Stefan Monnier 2019-06-19 16:35 ` Óscar Fuentes 2019-06-19 17:03 ` Out of tree builds [was Re: A target that's even more bootstrap?] Glenn Morris 2019-06-19 17:30 ` Óscar Fuentes 2019-06-19 17:13 ` A target that's even more bootstrap? Stefan Monnier 2019-06-19 17:43 ` Óscar Fuentes 2019-06-20 13:49 ` Phillip Lord
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.