From: Alan Mackenzie <acm@muc.de>
To: Stefan Monnier <monnier@IRO.UMontreal.CA>
Cc: emacs-devel@gnu.org
Subject: Re: build broken: no defun org-float-time. A workaround.
Date: Tue, 8 Sep 2009 18:17:35 +0000 [thread overview]
Message-ID: <20090908181735.GA11465@muc.de> (raw)
In-Reply-To: <jwvocpl9ydx.fsf-monnier+emacs@gnu.org>
Hi, everybody,
On Tue, Sep 08, 2009 at 12:48:50PM -0400, Stefan Monnier wrote:
> >> Always run `make bootstrap' if you don't want to deal with these issues.
> > That's horrible. It's very slow, and if the build breaks for any
> > other reason (careless commission), you haven't even got the bulk of
> > your old build left.
> The problem is that we don't have the necessary code right now to
> generate the needed dependency graph, so wile "cvs update; make" often
> works, it sometimes fails for lack of dependency info, in which case
> "make bootstrap" works around the problem.
How about this for a workaround? Before doing any byte compilation, you
scan the .../lisp directory for stale .elc files, and rename them all.
That way, the byte compiler is forced to load the new .el files in
response to `require', and the like. At the end of the process, you
either delete or unrename the stale files as appropriate.
Here's a script I've hacked together which does this. Is it easy to
implement this idea in the makefiles?
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#! /bin/bash
##############################################################################
#
# m a k e - e m a c s . s h
#
# Invoke make, having first renamed stale .elc files to prevent them being
# loaded spuriously by the byte compiler. Afterwards, delete or restore each
# renamed file appropriately.
#
# Call this script from the top level of an Emacs tree.
##############################################################################
OLD=ksiwrjcy
STALES=$(for f in `find . -name '*.el'` ; do
if [ -f ${f}c -a ${f}c -ot $f ] ; then echo ${f}c ; fi
done)
echo "Stale files: $STALES" >&2
sleep 3
echo
for f in $STALES ; do mv ${f}{,.$OLD} ; done
make
for f in $STALES ; do
if [ -f $f ]
then rm ${f}.$OLD
else mv ${f}{.$OLD,}
echo $f wasn\'t remade >&2
fi
done
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> Stefan
--
Alan Mackenzie (Nuremberg, Germany).
next prev parent reply other threads:[~2009-09-08 18:17 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-07 9:28 build broken: no defun org-float-time. Who's guilty, and what does he propose? Alan Mackenzie
2009-09-07 9:47 ` Andreas Schwab
2009-09-07 9:52 ` joakim
2009-09-07 10:09 ` Lennart Borgman
2009-09-07 11:37 ` joakim
2009-09-07 10:30 ` Jan D.
2009-09-07 17:42 ` Eli Zaretskii
2009-09-07 17:59 ` Ken Raeburn
2009-09-07 18:32 ` Drew Adams
2009-09-07 18:42 ` Lennart Borgman
2009-09-07 19:22 ` Ken Raeburn
2009-09-07 19:03 ` Glenn Morris
2009-09-07 19:20 ` Drew Adams
2009-09-07 20:08 ` Eli Zaretskii
2009-09-07 21:43 ` more reliable `make' Glenn Morris
2009-09-08 16:46 ` Stefan Monnier
2009-09-10 6:28 ` Glenn Morris
2009-09-10 13:37 ` Stefan Monnier
2009-09-07 20:59 ` build broken: no defun org-float-time. Who's guilty, and what does he propose? joakim
2009-09-07 21:39 ` Glenn Morris
2009-09-07 21:55 ` joakim
2009-09-07 21:13 ` Alan Mackenzie
2009-09-08 16:48 ` Stefan Monnier
2009-09-08 18:17 ` Alan Mackenzie [this message]
2009-09-08 19:08 ` build broken: no defun org-float-time. A workaround Ken Raeburn
2009-09-07 20:06 ` build broken: no defun org-float-time. Who's guilty, and what does he propose? Eli Zaretskii
2009-09-07 23:39 ` Ken Raeburn
2009-09-08 2:41 ` Stephen J. Turnbull
2009-09-08 3:20 ` Eli Zaretskii
2009-09-08 7:54 ` Ken Raeburn
2009-09-08 17:47 ` Eli Zaretskii
2009-09-08 18:32 ` Ken Raeburn
2009-09-08 17:01 ` Stefan Monnier
2009-09-08 17:51 ` Eli Zaretskii
2009-09-09 3:14 ` Stefan Monnier
2009-09-08 2:37 ` Stephen J. Turnbull
2009-09-08 3:14 ` Eli Zaretskii
2009-09-08 17:11 ` Stefan Monnier
2009-09-07 10:05 ` Miles Bader
2009-09-07 11:15 ` joakim
2009-09-07 13:35 ` Alan Mackenzie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090908181735.GA11465@muc.de \
--to=acm@muc.de \
--cc=emacs-devel@gnu.org \
--cc=monnier@IRO.UMontreal.CA \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.