[Top][All Lists]

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

Re: Bootstrap deleted DOC-nnn file

From: Stephen J. Turnbull
Subject: Re: Bootstrap deleted DOC-nnn file
Date: Sat, 11 May 2013 12:09:57 +0900

chad writes:
 > On 10 May 2013, at 15:08, Richard Stallman <address@hidden> wrote:

 > > However, it is a bad thing to delete the old executables too.
 > > It is sometimes useful to compare behavior of the new version
 > > with the old version.  There is no need to delete them,
 > > so let the user decide.

 > [The ns port] uses a relocatable install, so the entirety of emacs
 > lives inside a single emacs-only directory tree (Emacs.app). This
 > makes multiple versions very easy to manage, and I keep at least
 > two independent emacsen around at all times. It's saved me more
 > than once.

Richard, I agree with you that it would be nice to have access to the
DOC file, but I think that might best be served by tweaking the DOC-
file-finding routine to look for its DOC first, then a DOC of a later
build, then a DOC of the same version, and finally any DOC at all.  Of
course due to the way DOC files are indexed you still might lose, but
it's worth a try.  Fuzz the index a bit and search "near" the baked-in
index for the entry when you don't have an exact match.

Another fallback would be to do a find-function if the DOC file
doesn't exist or you can't find the docstring in the DOC file.

A third is to embed the DOC file in the executable, with an option to
keep it separate for users who need a slimmer executable (with modern
OS technology, are there any? :)

For the executable, I think you are in a small minority that isn't
best served by Chad's solution of a relocatable install.  True, it
involves extra effort and time to "make install", but you're already
doing a bootstrap.  In heavy hack-build-test cycles, one doesn't do a
"make clean" even, let alone a "make bootstrap-clean".  No problem
there, it's only when you have an expensive "make bootstrap" that you
want to precede it with "make install".

I don't know if the content-finding code that is used by the ns build
is generalized to all Emacs builds, but if it is you can get
relocatable builds for free.  If not, it's not that hard (and Mike
Sperber did it for XEmacs, I imagine he'd be willing to discuss the
fine points that caused him pain).

A final point: In the case of "the old version", I'm pretty sure you
mean "the last version I built", which probably will still work.  Most
of us, however, have substantial churn in our libraries due to distro
updates, and my experience is that old executables typically have a
lifetime of about 1-3 months (normally due to a security patch to
libpng, but who's counting? ;-) After that the executable won't load
anyway, unless statically linked.  Almost nobody does that anymore.
So cleaning up old versions is a harmless convenience for most
developers.  (I suppose you could do a "keep last N versions" the way
the traditional Emacs backup-versioning code does.)

reply via email to

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