emacs-devel
[Top][All Lists]
Advanced

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

Re: bootstrap oddities: cvs vs. arch? Long pathnames?


From: Reiner Steib
Subject: Re: bootstrap oddities: cvs vs. arch? Long pathnames?
Date: Tue, 27 Apr 2004 20:03:41 +0200
User-agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3 (gnu/linux)

On Tue, Apr 27 2004, Richard Stallman wrote:

>       Therefore, I think the guess from your previous mail
>     probably is correct:
>
>     ,----[ <news:address@hidden> ]
>     | I'd think that the byte-compiler shouldn't trigger the VC machinery
>     | at all, but maybe it does, and nobody noticed it before.
>     `----
>
> Which VC machinery does the byte-compiler invoke?

Miles Bader reported bootstrap problems using his arch repository.
Bootstrapping worked when he made sure that `vc-arch.el' is compiled
first:

,----[ <news:address@hidden> ]
| Subject: Re: batch-bytecomp backtrace?
| Date: 18 Apr 2004 09:58:59 +0900
| Message-ID: <address@hidden>
| [...]
|
| BTW, the bootstrapping problem I'm having seems somehow related to
| `vc-arch.el' -- the file that won't compile _does_ compile if I make
| sure `vc-arch.el' has been compiled first:
`----

My bootstrap problems (also using Miles' arch repository) went away
when I renamed the ./{arch} directory (or when I did a "chmod u-rX
./{arch}") before "make bootstrap".  (The `{arch}' directory is
comparable to the `CVS' directories in CVS.)

,----[ <news:address@hidden> ]
| Subject: Re: Gnus 5.11 in Emacs CVS
| Date: Mon, 19 Apr 2004 18:23:03 -0400
| Message-ID: <address@hidden>
| [...]
| 
| Given that the problem I observed was related to `vc-arch.el', maybe
| the problem is that vc-arch is somehow getting invoked since the arch
| checkout is obviously an arch tree, and there's a bug in vc-arch.
| 
| I'd think that the byte-compiler shouldn't trigger the VC machinery at all,
| but maybe it does, and nobody noticed it before.
`----

Something triggers loading of `vc-arch.el' during the bootstrap process.
But not even the byte-compiler has to be called.  Even the following
command fails:

,----
| $ (cd lisp; ../src/bootstrap-emacs -batch --no-site-file NON-EXISTENT-FILE)
| Lisp nesting exceeds max-lisp-eval-depth
`----

To avoid loading `vc-arch.el', I added `--eval "(provide 'vc-arch)"'
to the command line.  Maybe this helps to trace down, why `vc-arch.el'
is loaded:

$ (cd lisp; ../src/bootstrap-emacs -batch --no-site-file \
  --eval '(setq debug-on-error t byte-compile-debug t)' \
  --eval "(provide 'vc-arch)" NON-EXISTENT-FILE)

I get the following backtrace (with an empty file instead of a
non-existent, I get the same backtrace):

--8<---------------cut here---------------start------------->8---
  (progn (let (...) (cond ... ... ...)))
  (if (stringp file) (progn (let ... ...)))
  (when (stringp file) (let (...) (cond ... ... ...)))
  
vc-backend("/home/dept/ste/src/links/emacs/arch-HEAD/emacs/lisp/NON-EXISTENT-FILE")
  (let ((backend ...)) (if backend (vc-call-backend backend ...)))
  vc-file-not-found-hook()
  run-hook-with-args-until-success(vc-file-not-found-hook)
  (or (run-hook-with-args-until-success (quote find-file-not-found-functions)) 
(setq error t))
  (condition-case nil (insert-file-contents filename t) (file-error (when ... 
... ...) (or ... ...)))
  (if rawfile (condition-case nil (insert-file-contents-literally filename t) 
(file-error ... ...)) (condition-case nil (insert-file-contents filename t) 
(file-error ... ...)))
  (save-current-buffer (set-buffer buf) (kill-local-variable (quote 
find-file-literally)) (kill-local-variable (quote buffer-file-coding-system)) 
(kill-local-variable (quote cursor-type)) (erase-buffer) (and (default-value 
...) (not rawfile) (set-buffer-multibyte t)) (if rawfile (condition-case nil 
... ...) (condition-case nil ... ...)) (if (equal filename buffer-file-name) 
(setq buffer-file-truename truename) (setq buffer-file-truename ...)) (setq 
buffer-file-number number) (and (eq system-type ...) (let ... ... ...) (setq 
buffer-file-name buffer-file-truename)) (if find-file-visit-truename (setq 
buffer-file-name ...)) (setq default-directory (file-name-directory 
buffer-file-name)) (and (not ...) (progn ... ...)) (if rawfile (progn ... ... 
... ...) (after-find-file error ...)) (current-buffer))
  (with-current-buffer buf (kill-local-variable (quote find-file-literally)) 
(kill-local-variable (quote buffer-file-coding-system)) (kill-local-variable 
(quote cursor-type)) (erase-buffer) (and (default-value ...) (not rawfile) 
(set-buffer-multibyte t)) (if rawfile (condition-case nil ... ...) 
(condition-case nil ... ...)) (if (equal filename buffer-file-name) (setq 
buffer-file-truename truename) (setq buffer-file-truename ...)) (setq 
buffer-file-number number) (and (eq system-type ...) (let ... ... ...) (setq 
buffer-file-name buffer-file-truename)) (if find-file-visit-truename (setq 
buffer-file-name ...)) (setq default-directory (file-name-directory 
buffer-file-name)) (and (not ...) (progn ... ...)) (if rawfile (progn ... ... 
... ...) (after-find-file error ...)) (current-buffer))
  (let ((inhibit-read-only t) error) (with-current-buffer buf 
(kill-local-variable ...) (kill-local-variable ...) (kill-local-variable ...) 
(erase-buffer) (and ... ... ...) (if rawfile ... ...) (if ... ... ...) (setq 
buffer-file-number number) (and ... ... ...) (if find-file-visit-truename ...) 
(setq default-directory ...) (and ... ...) (if rawfile ... ...) 
(current-buffer)))
  find-file-noselect-1(#<buffer NON-EXISTENT-FILE> 
"~/src/links/emacs/arch-HEAD/emacs/lisp/NON-EXISTENT-FILE" nil nil 
"/import/Archive/8.2-RPM-Groups/Productivity/Editors/Emacs/emacs/arch-HEAD/emacs/lisp/NON-EXISTENT-FILE"
 nil)
  (if buf (progn (or nowarn ... ...) (with-current-buffer buf ... ...) buf) 
(setq buf (create-file-buffer filename)) (set-buffer-major-mode buf) 
(find-file-noselect-1 buf filename nowarn rawfile truename number))
  (let* ((buf ...) (truename ...) (attributes ...) (number ...) (other ...)) 
(if other (progn ... ...)) (when (and large-file-warning-threshold ... ... ... 
...) (error "Aborted")) (if buf (progn ... ... buf) (setq buf ...) 
(set-buffer-major-mode buf) (find-file-noselect-1 buf filename nowarn rawfile 
truename number)))
  (if (and wildcards find-file-wildcards (not ...) (string-match "[[*?]" 
filename)) (let (... ...) (if ... ... ...)) (let* (... ... ... ... ...) (if 
other ...) (when ... ...) (if buf ... ... ... ...)))
  (if (file-directory-p filename) (or (and find-file-run-dired ...) (error "%s 
is a directory" filename)) (if (and wildcards find-file-wildcards ... ...) (let 
... ...) (let* ... ... ... ...)))
  
find-file-noselect("/home/dept/ste/src/links/emacs/arch-HEAD/emacs/lisp/NON-EXISTENT-FILE"
 nil nil nil)
  (let ((value ...)) (if (listp value) (mapcar ... ...) (switch-to-buffer 
value)))
  
find-file("/home/dept/ste/src/links/emacs/arch-HEAD/emacs/lisp/NON-EXISTENT-FILE")
  (setq first-file-buffer (find-file file))
  (if (= file-count 1) (setq first-file-buffer (find-file file)) 
(find-file-other-window file))
  (let ((file ...)) (if (= file-count 1) (setq first-file-buffer ...) 
(find-file-other-window file)))
  (progn (if (string-match "\\`-" argi) (error "Unknown option `%s'" argi)) 
(setq file-count (1+ file-count)) (let (...) (if ... ... ...)) (or (zerop line) 
(goto-line line)) (setq line 0) (unless (< column 1) (move-to-column ...)) 
(setq column 0))
  (if (not did-hook) (progn (if ... ...) (setq file-count ...) (let ... ...) 
(or ... ...) (setq line 0) (unless ... ...) (setq column 0)))
  (let ((hooks command-line-functions) (did-hook nil)) (while (and hooks ...) 
(setq hooks ...)) (if (not did-hook) (progn ... ... ... ... ... ... ...)))
  (cond ((setq tem ...) (if argval ... ...)) ((equal argi "-no-splash") (setq 
inhibit-startup-message t)) ((member argi ...) (setq tem ...) (if ... ... ...)) 
((member argi ...) (eval ...)) ((member argi ...) (setq tem ...) (push ... 
extra-load-path)) ((member argi ...) (let* ... ... ...)) ((equal argi 
"-insert") (setq tem ...) (or ... ...) (insert-file-contents ...)) ((equal argi 
"-kill") (kill-emacs t)) ((string-match "^\\+[0-9]+\\'" argi) (setq line ...)) 
((string-match "^\\+\\([0-9]+\\):\\([0-9]+\\)\\'" argi) (setq line ... column 
...)) ((setq tem ...) (setq command-line-args-left ...)) ((member argi ...) 
(setq tem ...) (unless ... ...) (setq file-count ...) (let ... ...) (or ... 
...) (setq line 0) (unless ... ...) (setq column 0)) ((equal argi "--") (setq 
just-files t)) (t (let ... ... ...)))
  (let* ((argi ...) (orig-argi argi) argval completion) (setq 
command-line-args-left (cdr command-line-args-left)) (if just-files (setq argi 
"") (when ... ...) (if ... ... ...) (if ... ... ...)) (cond (... ...) (... ...) 
(... ... ...) (... ...) (... ... ...) (... ...) (... ... ... ...) (... ...) 
(... ...) (... ...) (... ...) (... ... ... ... ... ... ... ... ...) (... ...) 
(t ...)))
  (while command-line-args-left (let* (... ... argval completion) (setq 
command-line-args-left ...) (if just-files ... ... ... ...) (cond ... ... ... 
... ... ... ... ... ... ... ... ... ... ...)))
  (let ((dir command-line-default-directory) (file-count 0) first-file-buffer 
tem extra-load-path just-files (longopts ...) (line 0) (column 0)) (dolist (tem 
command-line-x-option-alist) (if ... ...)) (while command-line-args-left (let* 
... ... ... ...)) (when extra-load-path (setq load-path ...)) (and (> 
file-count 2) (not noninteractive) (not inhibit-startup-buffer-menu) (or ... 
...)))
  (progn (let (... ... first-file-buffer tem extra-load-path just-files ... ... 
...) (dolist ... ...) (while command-line-args-left ...) (when extra-load-path 
...) (and ... ... ... ...)))
  (if command-line-args-left (progn (let ... ... ... ... ...)))
  (when command-line-args-left (let (... ... first-file-buffer tem 
extra-load-path just-files ... ... ...) (dolist ... ...) (while 
command-line-args-left ...) (when extra-load-path ...) (and ... ... ... ...)))
  command-line-1(("--eval" "(setq debug-on-error t byte-compile-debug t)" 
"--eval" "(provide 'vc-arch)" "NON-EXISTENT-FILE"))
  command-line()
  (unwind-protect (command-line) (setq default-directory (abbreviate-file-name 
default-directory)) (or auto-save-list-file-name (and 
auto-save-list-file-prefix ...)) (unless inhibit-startup-hooks (run-hooks ...) 
(and term-setup-hook ...)) (when (or frame-initial-frame ...) (if ... ...) (if 
... ...)) (if (fboundp ...) (font-menu-add-default)) (and window-setup-hook 
(run-hooks ...)) (or menubar-bindings-done (if ... ...)))
  (let ((menubar-bindings-done nil)) (unwind-protect (command-line) (setq 
default-directory ...) (or auto-save-list-file-name ...) (unless 
inhibit-startup-hooks ... ...) (when ... ... ...) (if ... ...) (and 
window-setup-hook ...) (or menubar-bindings-done ...)))
  (if command-line-processed (message "Back to top level.") (setq 
command-line-processed t) (let (...) (save-excursion ... ...)) (put (quote 
user-full-name) (quote standard-value) (list ...)) (if (equal ... 0) (setq 
backup-by-copying-when-mismatch t)) (let (... new) (while tail ... ... ... 
...)) (if (not ...) (progn ...)) (setq default-directory (abbreviate-file-name 
default-directory)) (let (...) (unwind-protect ... ... ... ... ... ... ... 
...)))
  normal-top-level()
--8<---------------cut here---------------end--------------->8---

Bye, Reiner.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo--- PGP key available via WWW   http://rsteib.home.pages.de/




reply via email to

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