[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bootstrap (was: Emacs-diffs digest, Vol 1 #508 - 12 msgs)
From: |
Stefan Monnier |
Subject: |
bootstrap (was: Emacs-diffs digest, Vol 1 #508 - 12 msgs) |
Date: |
Tue, 26 Mar 2002 10:31:27 -0500 |
> I think we should do something to avoid the warning in the bootstrap
> case, then. Users who don't know these details might become spooked by
> the warning, especially if they were used to get a fatal error with the
> same language before.
An alternative is to just do
(if ...bootstrapping...
(setq purify-flag nil))
at the beginning of loadup.el.
> > PS: I almost got bootstrapping to work without a `bootstrap-emacs'
> > executable (by byte-compiling with `temacs' instead)
> > but hit a problem where `temacs -batch' freezes in call-process:
> > the problem is that the SIGCHLD handler is not installed in that
> > case (probably because it might introduce problems when we dump).
>
> Yes, I think that's the reason why signals aren't caught.
>
> > As for why `call-process' is called: vc.el does
> > (eval-when-compile (require 'ediff-util)) and ediff-util.el
> > ends up loading all the ediff*.el files (also from within
> > `eval-when-compile' clauses) and ediff-ptch.el runs patch with a few
> > different args to determine the default value of a config variable.
>
> We could prevent this by binding some special variables during bootstrap, no?
As I said I'd rather have less bootstrap-specific code than more, so it
doesn't sound like an attractive solution. Other solutions are:
- create `eval-only-when-compile' since the (require 'ediff-util) is only
done to get rid of some compiler warnings (it doesn't provide any
macros used by vc.el as far as I can tell).
- check !noninteractive||initialized in call-process and return nil
without running any program otherwise (since the SIGCHLD handler
is not installed).
- check !noninteractive||initialized in call-process and install
the SIGCHLD handler if the check fails.
Obviously the first solution is the only one that's really
non-bootstrap-specific.
Stefan