unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* sh.exe needed to bootstrap on Windows?
@ 2007-07-16  9:10 Juanma Barranquero
  2007-07-16 19:15 ` Eli Zaretskii
  2007-07-16 22:47 ` Eli Zaretskii
  0 siblings, 2 replies; 30+ messages in thread
From: Juanma Barranquero @ 2007-07-16  9:10 UTC (permalink / raw)
  To: emacs-devel

I'm getting this error while bootstrapping on Windows XP (I have not
changed anything in the toolset setup):

Saving file c:/emacs/HEAD/lisp/loaddefs.el...
Loading c:/emacs/HEAD/lisp/vc-cvs.el (source)...
Searching for program: no such file or directory, sh.exe
make[1]: *** [autoloads] Error -1

             Juanma

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-16  9:10 sh.exe needed to bootstrap on Windows? Juanma Barranquero
@ 2007-07-16 19:15 ` Eli Zaretskii
  2007-07-16 19:54   ` Juanma Barranquero
  2007-07-16 22:47 ` Eli Zaretskii
  1 sibling, 1 reply; 30+ messages in thread
From: Eli Zaretskii @ 2007-07-16 19:15 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: emacs-devel

> Date: Mon, 16 Jul 2007 11:10:50 +0200
> From: "Juanma Barranquero" <lekktu@gmail.com>
> 
> I'm getting this error while bootstrapping on Windows XP (I have not
> changed anything in the toolset setup):
> 
> Saving file c:/emacs/HEAD/lisp/loaddefs.el...
> Loading c:/emacs/HEAD/lisp/vc-cvs.el (source)...
> Searching for program: no such file or directory, sh.exe
> make[1]: *** [autoloads] Error -1

Did you clean the directory before bootstrapping? is it possible that
stale *.elc files are lying around?

If this doesn't help, please run this command under a debugger, put a
breakpoint where this error message is printed (in callproc.c and
process.c), and show the backtrace when one of these breakpoints
breaks.

Thanks.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-16 19:15 ` Eli Zaretskii
@ 2007-07-16 19:54   ` Juanma Barranquero
  2007-07-16 20:19     ` Eli Zaretskii
  0 siblings, 1 reply; 30+ messages in thread
From: Juanma Barranquero @ 2007-07-16 19:54 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

On 7/16/07, Eli Zaretskii <eliz@gnu.org> wrote:

> Did you clean the directory before bootstrapping?

Yes. Before bootstrapping I do

  make realclean          # in nt/
  make maintainer-clean   # in leim/, lispintro/, lispref/, man/
  make distclean          # in src/

> is it possible that
> stale *.elc files are lying around?

No.

> If this doesn't help, please run this command under a debugger, put a
> breakpoint where this error message is printed (in callproc.c and
> process.c), and show the backtrace when one of these breakpoints
> breaks.

Will try.

             Juanma

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-16 19:54   ` Juanma Barranquero
@ 2007-07-16 20:19     ` Eli Zaretskii
  2007-07-16 20:28       ` Juanma Barranquero
                         ` (2 more replies)
  0 siblings, 3 replies; 30+ messages in thread
From: Eli Zaretskii @ 2007-07-16 20:19 UTC (permalink / raw)
  To: Juanma Barranquero, Dan Nicolaescu; +Cc: emacs-devel

> Date: Mon, 16 Jul 2007 21:54:25 +0200
> From: "Juanma Barranquero" <lekktu@gmail.com>
> Cc: emacs-devel@gnu.org
> 
> > If this doesn't help, please run this command under a debugger, put a
> > breakpoint where this error message is printed (in callproc.c and
> > process.c), and show the backtrace when one of these breakpoints
> > breaks.
> 
> Will try.

Okay, I can reproduce this myself, except that in my case it complains
about cmdproxy, like someone else already reported today.  I can
understand why it doesn't find cmdproxy: it's the first pass of
bootstrap, so no binary is yet built except bootstrap-emacs.  But why
does it fail to find sh.exe in your case?  Do you even have sh.exe?
(I do, but I renamed it for this test, because I thought you were
running without sh.exe.)

I think the problem happens because of this change:

    2007-07-16  Dan Nicolaescu  <dann@ics.uci.edu>

	    * vc-hooks.el (vc-handled-backends): Move BZR later in the list.

Dan, can you explain why this change was made?

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-16 20:19     ` Eli Zaretskii
@ 2007-07-16 20:28       ` Juanma Barranquero
  2007-07-16 20:46         ` Eli Zaretskii
  2007-07-16 20:34       ` Dan Nicolaescu
  2007-07-17  7:56       ` Jason Rumney
  2 siblings, 1 reply; 30+ messages in thread
From: Juanma Barranquero @ 2007-07-16 20:28 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Dan Nicolaescu, emacs-devel

On 7/16/07, Eli Zaretskii <eliz@gnu.org> wrote:
> But why
> does it fail to find sh.exe in your case?  Do you even have sh.exe?

Not in the path, no.

Perhaps some tool tries to run sh?

             Juanma

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-16 20:19     ` Eli Zaretskii
  2007-07-16 20:28       ` Juanma Barranquero
@ 2007-07-16 20:34       ` Dan Nicolaescu
  2007-07-17  7:56       ` Jason Rumney
  2 siblings, 0 replies; 30+ messages in thread
From: Dan Nicolaescu @ 2007-07-16 20:34 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Juanma Barranquero, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

  > > Date: Mon, 16 Jul 2007 21:54:25 +0200
  > > From: "Juanma Barranquero" <lekktu@gmail.com>
  > > Cc: emacs-devel@gnu.org
  > > 
  > > > If this doesn't help, please run this command under a debugger, put a
  > > > breakpoint where this error message is printed (in callproc.c and
  > > > process.c), and show the backtrace when one of these breakpoints
  > > > breaks.
  > > 
  > > Will try.
  > 
  > Okay, I can reproduce this myself, except that in my case it complains
  > about cmdproxy, like someone else already reported today.  I can
  > understand why it doesn't find cmdproxy: it's the first pass of
  > bootstrap, so no binary is yet built except bootstrap-emacs.  But why
  > does it fail to find sh.exe in your case?  Do you even have sh.exe?
  > (I do, but I renamed it for this test, because I thought you were
  > running without sh.exe.)
  > 
  > I think the problem happens because of this change:
  > 
  >     2007-07-16  Dan Nicolaescu  <dann@ics.uci.edu>
  > 
  > 	    * vc-hooks.el (vc-handled-backends): Move BZR later in the list.
  > 
  > Dan, can you explain why this change was made?

See the comment below that code:

  ;; BZR, HG, Arch and MCVS come last because they are per-tree rather
  ;; than per-dir.

The idea is that for these VC backends the version control info is
present in one place in the tree, not in each subdir. So VC has to
look up the directory tree to find it.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-16 20:28       ` Juanma Barranquero
@ 2007-07-16 20:46         ` Eli Zaretskii
  2007-07-16 21:01           ` Dan Nicolaescu
  0 siblings, 1 reply; 30+ messages in thread
From: Eli Zaretskii @ 2007-07-16 20:46 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: emacs-devel

> Date: Mon, 16 Jul 2007 22:28:22 +0200
> From: "Juanma Barranquero" <lekktu@gmail.com>
> Cc: "Dan Nicolaescu" <dann@ics.uci.edu>, emacs-devel@gnu.org
> 
> On 7/16/07, Eli Zaretskii <eliz@gnu.org> wrote:
> > But why
> > does it fail to find sh.exe in your case?  Do you even have sh.exe?
> 
> Not in the path, no.
> 
> Perhaps some tool tries to run sh?

What I see is that Emacs runs shell-command-to-string from vc-bzr.el:

  (defun vc-bzr-version ()
    "Return a three-numeric element list with components of the bzr version.
  This is of the form (X Y Z) for revision X.Y.Z.  The elements are zero
  if running `vc-bzr-program' doesn't produce the expected output."
    (or vc-bzr-version
	(setq vc-bzr-version
	      (let ((s (shell-command-to-string
			(concat (shell-quote-argument vc-bzr-program)
				" --version"))))
		(if (string-match "\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)$" s)
		    (list (string-to-number (match-string 1 s))
			  (string-to-number (match-string 2 s))
			  (string-to-number (match-string 3 s)))
		  '(0 0 0))))))

And, since in the absence of sh.exe Emacs sets SHELL to cmdproxy, this
is what Emacs looks for.  The problem is, bootstrap did not yet create
cmdproxy at this point.

The call to vc-bzr-version comes from vc-before-save which is called
when Emacs is about to save loaddefs.el that it
generated. vc-before-save calls vc-backend, which calls
vc-call-backend, which calls vc-find-backend-function, and that winds
up in vc-bzr, presumably because it tries every possible backend in
sequence.

Can you see whether in your case the backtrace points to the same
problem (i.e. shell-command-to-string called by vc-bzr)?  If so, could
you please try to find out why on your machine Emacs is looking for
sh.exe?

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-16 20:46         ` Eli Zaretskii
@ 2007-07-16 21:01           ` Dan Nicolaescu
  2007-07-16 21:19             ` Eli Zaretskii
  0 siblings, 1 reply; 30+ messages in thread
From: Dan Nicolaescu @ 2007-07-16 21:01 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Juanma Barranquero, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

  > > Date: Mon, 16 Jul 2007 22:28:22 +0200
  > > From: "Juanma Barranquero" <lekktu@gmail.com>
  > > Cc: "Dan Nicolaescu" <dann@ics.uci.edu>, emacs-devel@gnu.org
  > > 
  > > On 7/16/07, Eli Zaretskii <eliz@gnu.org> wrote:
  > > > But why
  > > > does it fail to find sh.exe in your case?  Do you even have sh.exe?
  > > 
  > > Not in the path, no.
  > > 
  > > Perhaps some tool tries to run sh?
  > 
  > What I see is that Emacs runs shell-command-to-string from vc-bzr.el:

  >   (defun vc-bzr-version ()
  >     "Return a three-numeric element list with components of the bzr version.
  >   This is of the form (X Y Z) for revision X.Y.Z.  The elements are zero
  >   if running `vc-bzr-program' doesn't produce the expected output."
  >     (or vc-bzr-version
  > 	(setq vc-bzr-version
  > 	      (let ((s (shell-command-to-string
  > 			(concat (shell-quote-argument vc-bzr-program)
  > 				" --version"))))
  > 		(if (string-match "\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)$" s)
  > 		    (list (string-to-number (match-string 1 s))
  > 			  (string-to-number (match-string 2 s))
  > 			  (string-to-number (match-string 3 s)))
  > 		  '(0 0 0))))))

What calls this function? It seems that it can be called when
vc-bzr.el is loaded, but why is vc-bzr loaded? I assume you don't use
bzr for emacs...

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-16 21:01           ` Dan Nicolaescu
@ 2007-07-16 21:19             ` Eli Zaretskii
  2007-07-16 21:30               ` Dan Nicolaescu
  0 siblings, 1 reply; 30+ messages in thread
From: Eli Zaretskii @ 2007-07-16 21:19 UTC (permalink / raw)
  To: Dan Nicolaescu; +Cc: lekktu, emacs-devel

> Cc: "Juanma Barranquero" <lekktu@gmail.com>, emacs-devel@gnu.org
> From: Dan Nicolaescu <dann@ics.uci.edu>
> Date: Mon, 16 Jul 2007 14:01:16 -0700
> 
>   > 	(setq vc-bzr-version
>   > 	      (let ((s (shell-command-to-string
>   > 			(concat (shell-quote-argument vc-bzr-program)
>   > 				" --version"))))
>   > 		(if (string-match "\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)$" s)
>   > 		    (list (string-to-number (match-string 1 s))
>   > 			  (string-to-number (match-string 2 s))
>   > 			  (string-to-number (match-string 3 s)))
>   > 		  '(0 0 0))))))
> 
> What calls this function? It seems that it can be called when
> vc-bzr.el is loaded, but why is vc-bzr loaded? I assume you don't use
> bzr for emacs...

No, I don't use bzr.  I didn't actually step through the code, but it
looks to me that this part of vc-hooks.el:vc-registered:

      ;; There is no file name handler.
      ;; Try vc-BACKEND-registered for each handled BACKEND.
      (catch 'found
	(let ((backend (vc-file-getprop file 'vc-backend)))
	  (mapcar
	   (lambda (b)
	     (and (vc-call-backend b 'registered file)
		  (vc-file-setprop file 'vc-backend b)
		  (throw 'found t)))
	   (if (or (not backend) (eq backend 'none))
	       vc-handled-backends
	     (cons backend vc-handled-backends))))

Tries every backend in sight until it finds one.  Am I missing
something?

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-16 21:19             ` Eli Zaretskii
@ 2007-07-16 21:30               ` Dan Nicolaescu
  2007-07-16 22:01                 ` Eli Zaretskii
  0 siblings, 1 reply; 30+ messages in thread
From: Dan Nicolaescu @ 2007-07-16 21:30 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: lekktu, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

  > > Cc: "Juanma Barranquero" <lekktu@gmail.com>, emacs-devel@gnu.org
  > > From: Dan Nicolaescu <dann@ics.uci.edu>
  > > Date: Mon, 16 Jul 2007 14:01:16 -0700
  > > 
  > >   > 	(setq vc-bzr-version
  > >   > 	      (let ((s (shell-command-to-string
  > >   > 			(concat (shell-quote-argument vc-bzr-program)
  > >   > 				" --version"))))
  > >   > 		(if (string-match "\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)$" s)
  > >   > 		    (list (string-to-number (match-string 1 s))
  > >   > 			  (string-to-number (match-string 2 s))
  > >   > 			  (string-to-number (match-string 3 s)))
  > >   > 		  '(0 0 0))))))
  > > 
  > > What calls this function? It seems that it can be called when
  > > vc-bzr.el is loaded, but why is vc-bzr loaded? I assume you don't use
  > > bzr for emacs...
  > 
  > No, I don't use bzr.  I didn't actually step through the code, but it
  > looks to me that this part of vc-hooks.el:vc-registered:
  > 
  >       ;; There is no file name handler.
  >       ;; Try vc-BACKEND-registered for each handled BACKEND.
  >       (catch 'found
  > 	(let ((backend (vc-file-getprop file 'vc-backend)))
  > 	  (mapcar
  > 	   (lambda (b)
  > 	     (and (vc-call-backend b 'registered file)
  > 		  (vc-file-setprop file 'vc-backend b)
  > 		  (throw 'found t)))
  > 	   (if (or (not backend) (eq backend 'none))
  > 	       vc-handled-backends
  > 	     (cons backend vc-handled-backends))))
  > 
  > Tries every backend in sight until it finds one.  

That is fine.

  > Am I missing something?

Don't know, vc-BACKEND-registered should be an autoloaded function
that should not cause vc-BACKEND.el to be loaded.  So this code should
not be the cause of vc-bzr.el being loaded.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-16 21:30               ` Dan Nicolaescu
@ 2007-07-16 22:01                 ` Eli Zaretskii
  2007-07-16 22:40                   ` Dan Nicolaescu
  0 siblings, 1 reply; 30+ messages in thread
From: Eli Zaretskii @ 2007-07-16 22:01 UTC (permalink / raw)
  To: Dan Nicolaescu; +Cc: lekktu, emacs-devel

> Cc: lekktu@gmail.com, emacs-devel@gnu.org
> From: Dan Nicolaescu <dann@ics.uci.edu>
> Date: Mon, 16 Jul 2007 14:30:32 -0700
> 
>   > 	(let ((backend (vc-file-getprop file 'vc-backend)))
>   > 	  (mapcar
>   > 	   (lambda (b)
>   > 	     (and (vc-call-backend b 'registered file)
>   > 		  (vc-file-setprop file 'vc-backend b)
>   > 		  (throw 'found t)))
>   > 	   (if (or (not backend) (eq backend 'none))
>   > 	       vc-handled-backends
>   > 	     (cons backend vc-handled-backends))))
>   > 
>   > Tries every backend in sight until it finds one.  
> 
> That is fine.
> 
>   > Am I missing something?
> 
> Don't know, vc-BACKEND-registered should be an autoloaded function
> that should not cause vc-BACKEND.el to be loaded.  So this code should
> not be the cause of vc-bzr.el being loaded.

But this is a mapcar that goes over vc-handled-backends, which
includes bzr.  So eventually, it will call

	       (vc-call-backend 'bzr file 'vc-backend)

which will load vc-bzr.el.  Am I right?

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-16 22:01                 ` Eli Zaretskii
@ 2007-07-16 22:40                   ` Dan Nicolaescu
  2007-07-16 22:44                     ` Eli Zaretskii
  0 siblings, 1 reply; 30+ messages in thread
From: Dan Nicolaescu @ 2007-07-16 22:40 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: lekktu, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

  > > Cc: lekktu@gmail.com, emacs-devel@gnu.org
  > > From: Dan Nicolaescu <dann@ics.uci.edu>
  > > Date: Mon, 16 Jul 2007 14:30:32 -0700
  > > 
  > >   > 	(let ((backend (vc-file-getprop file 'vc-backend)))
  > >   > 	  (mapcar
  > >   > 	   (lambda (b)
  > >   > 	     (and (vc-call-backend b 'registered file)
  > >   > 		  (vc-file-setprop file 'vc-backend b)
  > >   > 		  (throw 'found t)))
  > >   > 	   (if (or (not backend) (eq backend 'none))
  > >   > 	       vc-handled-backends
  > >   > 	     (cons backend vc-handled-backends))))
  > >   > 
  > >   > Tries every backend in sight until it finds one.  
  > > 
  > > That is fine.
  > > 
  > >   > Am I missing something?
  > > 
  > > Don't know, vc-BACKEND-registered should be an autoloaded function
  > > that should not cause vc-BACKEND.el to be loaded.  So this code should
  > > not be the cause of vc-bzr.el being loaded.
  > 
  > But this is a mapcar that goes over vc-handled-backends, which
  > includes bzr.  So eventually, it will call
  > 
  > 	       (vc-call-backend 'bzr file 'vc-backend)
  > 
  > which will load vc-bzr.el.  Am I right?

I don't think so, it will call: (vc-call-backend 'BZR 'registered file) => it will
call vc-bzr-registered (which is autoloaded and it should return
false...). 

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-16 22:40                   ` Dan Nicolaescu
@ 2007-07-16 22:44                     ` Eli Zaretskii
  2007-07-16 22:53                       ` Dan Nicolaescu
  0 siblings, 1 reply; 30+ messages in thread
From: Eli Zaretskii @ 2007-07-16 22:44 UTC (permalink / raw)
  To: Dan Nicolaescu; +Cc: lekktu, emacs-devel

> Cc: lekktu@gmail.com, emacs-devel@gnu.org
> From: Dan Nicolaescu <dann@ics.uci.edu>
> Date: Mon, 16 Jul 2007 15:40:57 -0700
> 
> I don't think so, it will call: (vc-call-backend 'BZR 'registered file) => it will
> call vc-bzr-registered (which is autoloaded and it should return
> false...). 

This happens when we generate and save loaddefs.el during bootstrap.
Could it be that is it not autoloaded at that time?

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-16  9:10 sh.exe needed to bootstrap on Windows? Juanma Barranquero
  2007-07-16 19:15 ` Eli Zaretskii
@ 2007-07-16 22:47 ` Eli Zaretskii
  2007-07-17 10:07   ` Juanma Barranquero
  1 sibling, 1 reply; 30+ messages in thread
From: Eli Zaretskii @ 2007-07-16 22:47 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: emacs-devel

> Date: Mon, 16 Jul 2007 11:10:50 +0200
> From: "Juanma Barranquero" <lekktu@gmail.com>
> 
> I'm getting this error while bootstrapping on Windows XP (I have not
> changed anything in the toolset setup):
> 
> Saving file c:/emacs/HEAD/lisp/loaddefs.el...
> Loading c:/emacs/HEAD/lisp/vc-cvs.el (source)...
> Searching for program: no such file or directory, sh.exe
> make[1]: *** [autoloads] Error -1

I fixed this for what I saw on my system: missing cmdproxy.  I still
don't understand why it looks for sh.exe on your system, but maybe the
fix is good for that as well.  I tested on my system both with and
without sh.exe, and the bootstrap succeeded in both cases.  Please try
on yours.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-16 22:44                     ` Eli Zaretskii
@ 2007-07-16 22:53                       ` Dan Nicolaescu
  2007-07-17  3:15                         ` Eli Zaretskii
  0 siblings, 1 reply; 30+ messages in thread
From: Dan Nicolaescu @ 2007-07-16 22:53 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: lekktu, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

  > > Cc: lekktu@gmail.com, emacs-devel@gnu.org
  > > From: Dan Nicolaescu <dann@ics.uci.edu>
  > > Date: Mon, 16 Jul 2007 15:40:57 -0700
  > > 
  > > I don't think so, it will call: (vc-call-backend 'BZR 'registered file) => it will
  > > call vc-bzr-registered (which is autoloaded and it should return
  > > false...). 
  > 
  > This happens when we generate and save loaddefs.el during bootstrap.
  > Could it be that is it not autoloaded at that time?

I don't know. What I also don't understand is why would my change make
any difference. vc-bzr-registered would be called anyway given that
loaddefs.el is not managed by any version control system...

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-16 22:53                       ` Dan Nicolaescu
@ 2007-07-17  3:15                         ` Eli Zaretskii
  0 siblings, 0 replies; 30+ messages in thread
From: Eli Zaretskii @ 2007-07-17  3:15 UTC (permalink / raw)
  To: Dan Nicolaescu; +Cc: lekktu, emacs-devel

> Cc: lekktu@gmail.com, emacs-devel@gnu.org
> From: Dan Nicolaescu <dann@ics.uci.edu>
> Date: Mon, 16 Jul 2007 15:53:30 -0700
> 
> What I also don't understand is why would my change make
> any difference.

I am no longer sure it's your change.  I myself didn't try
bootstrapping for a long time, certainly not without sh.exe.  So it's
possible that no one tried to bootstrap on Windows since Stefan added
bzr support 4 days ago.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-16 20:19     ` Eli Zaretskii
  2007-07-16 20:28       ` Juanma Barranquero
  2007-07-16 20:34       ` Dan Nicolaescu
@ 2007-07-17  7:56       ` Jason Rumney
  2007-07-17  8:43         ` Dan Nicolaescu
  2007-07-17 11:26         ` Eli Zaretskii
  2 siblings, 2 replies; 30+ messages in thread
From: Jason Rumney @ 2007-07-17  7:56 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Juanma Barranquero, Dan Nicolaescu, emacs-devel

Eli Zaretskii wrote:
> I think the problem happens because of this change:
>
>     2007-07-16  Dan Nicolaescu  <dann@ics.uci.edu>
>
> 	    * vc-hooks.el (vc-handled-backends): Move BZR later in the list.
>
> Dan, can you explain why this change was made?
>   


Why would reordering a list inside a defcustom, or updating the :version
property of that defcustom (which I don't think should have been done,
unless the previous :version property was a mistake) cause the shell to
be invoked when byte compiling?

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-17  7:56       ` Jason Rumney
@ 2007-07-17  8:43         ` Dan Nicolaescu
  2007-07-17 11:26         ` Eli Zaretskii
  1 sibling, 0 replies; 30+ messages in thread
From: Dan Nicolaescu @ 2007-07-17  8:43 UTC (permalink / raw)
  To: Jason Rumney; +Cc: Juanma Barranquero, Eli Zaretskii, emacs-devel

Jason Rumney <jasonr@gnu.org> writes:

  > or updating the :version property of that defcustom (which I don't
  > think should have been done, unless the previous :version property
  > was a mistake)

Why do you think that? The docs for :version say this:

:version
        VALUE should be a string specifying that the variable was
        first introduced, or its default value was changed, in Emacs version VERSION.
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The default value has changed, 2 new values have been added to
vc-handled-backends since 22.1: BZR and HG

(Let me remind you that the point of :version is so that the user can
do M-x customize-changed VERSION_NO RET and find out what changed in
emacs since VERSION_NO )

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-16 22:47 ` Eli Zaretskii
@ 2007-07-17 10:07   ` Juanma Barranquero
  2007-07-17 10:33     ` Eli Zaretskii
  0 siblings, 1 reply; 30+ messages in thread
From: Juanma Barranquero @ 2007-07-17 10:07 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

On 7/17/07, Eli Zaretskii <eliz@gnu.org> wrote:

> I still
> don't understand why it looks for sh.exe on your system, but maybe the
> fix is good for that as well.

It's good on my work system. I'll try at home tonight.

             Juanma

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-17 10:07   ` Juanma Barranquero
@ 2007-07-17 10:33     ` Eli Zaretskii
  0 siblings, 0 replies; 30+ messages in thread
From: Eli Zaretskii @ 2007-07-17 10:33 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: emacs-devel

> Date: Tue, 17 Jul 2007 12:07:34 +0200
> From: "Juanma Barranquero" <lekktu@gmail.com>
> Cc: emacs-devel@gnu.org
> 
> On 7/17/07, Eli Zaretskii <eliz@gnu.org> wrote:
> 
> > I still
> > don't understand why it looks for sh.exe on your system, but maybe the
> > fix is good for that as well.
> 
> It's good on my work system. I'll try at home tonight.

Thanks.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-17  7:56       ` Jason Rumney
  2007-07-17  8:43         ` Dan Nicolaescu
@ 2007-07-17 11:26         ` Eli Zaretskii
  2007-07-17 11:39           ` Juanma Barranquero
                             ` (2 more replies)
  1 sibling, 3 replies; 30+ messages in thread
From: Eli Zaretskii @ 2007-07-17 11:26 UTC (permalink / raw)
  To: Jason Rumney; +Cc: lekktu, dann, emacs-devel

> Date: Tue, 17 Jul 2007 08:56:17 +0100
> From: Jason Rumney <jasonr@gnu.org>
> Cc: Juanma Barranquero <lekktu@gmail.com>,
> 	Dan Nicolaescu <dann@ics.uci.edu>, emacs-devel@gnu.org
> 
> Eli Zaretskii wrote:
> > I think the problem happens because of this change:
> >
> >     2007-07-16  Dan Nicolaescu  <dann@ics.uci.edu>
> >
> > 	    * vc-hooks.el (vc-handled-backends): Move BZR later in the list.
> >
> > Dan, can you explain why this change was made?
> >   
> 
> 
> Why would reordering a list inside a defcustom, or updating the :version
> property of that defcustom (which I don't think should have been done,
> unless the previous :version property was a mistake) cause the shell to
> be invoked when byte compiling?

Sorry, that was my bad jumping to wrong conclusions: I somehow was
under the impression that BZR support was here for quite some time,
and that therefore its original inclusion could not be the reason for
the problem.  But then I saw that it was added only 4 days ago, so
it's much more probable that no one bootstrapped on Windows since
then, until now.

Btw, I'm happy that my fix seems to work, but I'd be much more happy
if I understood why Emacs looked for (and didn't find) sh.exe on
Juanma's machine, and why mapcar in vc-registered winds up trying BZR
when it should have payed attention to the CVS/ subdirectory and bail
out of the loop before it gets to BZR.  Also, Dan seemed to be
surprised why BZR is at all called.

So there's still some mystery surrounding this problem.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-17 11:26         ` Eli Zaretskii
@ 2007-07-17 11:39           ` Juanma Barranquero
  2007-07-17 11:45           ` Andreas Schwab
  2007-07-17 16:52           ` Stefan Monnier
  2 siblings, 0 replies; 30+ messages in thread
From: Juanma Barranquero @ 2007-07-17 11:39 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: dann, emacs-devel, Jason Rumney

On 7/17/07, Eli Zaretskii <eliz@gnu.org> wrote:

> but I'd be much more happy
> if I understood why Emacs looked for (and didn't find) sh.exe on
> Juanma's machine

Sorry, I fell asleep over my keyboard tonight. Fortunately, I haven't
yet updated the working copy on my laptop, so I'll be easy to try and
see what is happening.

As a datapoint, I compile with MinGW, but most of the auxiliary tools
I use come from UnxTools, IIRC.

             Juanma

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-17 11:26         ` Eli Zaretskii
  2007-07-17 11:39           ` Juanma Barranquero
@ 2007-07-17 11:45           ` Andreas Schwab
  2007-07-17 12:51             ` Thien-Thi Nguyen
  2007-07-17 20:03             ` Eli Zaretskii
  2007-07-17 16:52           ` Stefan Monnier
  2 siblings, 2 replies; 30+ messages in thread
From: Andreas Schwab @ 2007-07-17 11:45 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: lekktu, dann, emacs-devel, Jason Rumney

Eli Zaretskii <eliz@gnu.org> writes:

> why mapcar in vc-registered winds up trying BZR when it should have
> payed attention to the CVS/ subdirectory and bail out of the loop
> before it gets to BZR.

loaddefs.el is not registered with CVS.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-17 11:45           ` Andreas Schwab
@ 2007-07-17 12:51             ` Thien-Thi Nguyen
  2007-07-17 13:13               ` David Kastrup
  2007-07-17 20:02               ` Eli Zaretskii
  2007-07-17 20:03             ` Eli Zaretskii
  1 sibling, 2 replies; 30+ messages in thread
From: Thien-Thi Nguyen @ 2007-07-17 12:51 UTC (permalink / raw)
  To: emacs-devel

() Andreas Schwab <schwab@suse.de>
() Tue, 17 Jul 2007 13:45:45 +0200

   loaddefs.el is not registered with CVS.

i see in the manual:
   
   The variable `vc-handled-backends' determines which version
   control systems VC should handle.  The default value is `(RCS CVS
   SVN SCCS Arch MCVS)', so it contains all six version systems that
   are currently supported.  If you want VC to ignore one or more of
   these systems, exclude its name from the list.  To disable VC
   entirely, set this variable to `nil'.

maybe autoload processing should let-bind vc-handled-backends to nil?

thi


____________________________________________________________
diff -c -r1.130 autoload.el
*** autoload.el	14 Jul 2007 19:03:22 -0000	1.130
--- autoload.el	17 Jul 2007 12:49:25 -0000
***************
*** 565,570 ****
--- 565,572 ----
  			       dirs)))
           (done ())
  	 (this-time (current-time))
+          ;; Avoid confusion when writing.
+          (vc-handled-backends nil)
           ;; Files with no autoload cookies or whose autoloads go to other
           ;; files because of file-local autoload-generated-file settings.
  	 (no-autoloads nil)

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-17 12:51             ` Thien-Thi Nguyen
@ 2007-07-17 13:13               ` David Kastrup
  2007-07-17 20:02               ` Eli Zaretskii
  1 sibling, 0 replies; 30+ messages in thread
From: David Kastrup @ 2007-07-17 13:13 UTC (permalink / raw)
  To: Thien-Thi Nguyen; +Cc: emacs-devel

Thien-Thi Nguyen <ttn@gnuvola.org> writes:

> () Andreas Schwab <schwab@suse.de>
> () Tue, 17 Jul 2007 13:45:45 +0200
>
>    loaddefs.el is not registered with CVS.
>
> i see in the manual:
>    
>    The variable `vc-handled-backends' determines which version
>    control systems VC should handle.  The default value is `(RCS CVS
>    SVN SCCS Arch MCVS)', so it contains all six version systems that
>    are currently supported.  If you want VC to ignore one or more of
>    these systems, exclude its name from the list.  To disable VC
>    entirely, set this variable to `nil'.
>
> maybe autoload processing should let-bind vc-handled-backends to nil?

Pretty much everything that is not going to end with a user-visible
buffer.  For example, with-temp-file.

If this was done in general, I would be tempted to let AUCTeX register
a pseudo-version control system for its parsing stuff (which looks for
a bunch of other files) so that the parsing stuff necessary for the
user backend happens only when necessary.

But perhaps the latter is a bit too much trickery.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-17 11:26         ` Eli Zaretskii
  2007-07-17 11:39           ` Juanma Barranquero
  2007-07-17 11:45           ` Andreas Schwab
@ 2007-07-17 16:52           ` Stefan Monnier
  2007-07-17 20:06             ` Eli Zaretskii
  2 siblings, 1 reply; 30+ messages in thread
From: Stefan Monnier @ 2007-07-17 16:52 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: lekktu, dann, emacs-devel, Jason Rumney

> So there's still some mystery surrounding this problem.

In the mean time, I've removed the "need for sh at load time" from
vc-bzr.el.


        Stefan

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-17 12:51             ` Thien-Thi Nguyen
  2007-07-17 13:13               ` David Kastrup
@ 2007-07-17 20:02               ` Eli Zaretskii
  1 sibling, 0 replies; 30+ messages in thread
From: Eli Zaretskii @ 2007-07-17 20:02 UTC (permalink / raw)
  To: Thien-Thi Nguyen; +Cc: emacs-devel

> From: Thien-Thi Nguyen <ttn@gnuvola.org>
> Date: Tue, 17 Jul 2007 14:51:57 +0200
> 
> maybe autoload processing should let-bind vc-handled-backends to nil?

Not universally, I think, since we now put some of the autoloads into
files that are under CVS, such as ps-print.el.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-17 11:45           ` Andreas Schwab
  2007-07-17 12:51             ` Thien-Thi Nguyen
@ 2007-07-17 20:03             ` Eli Zaretskii
  1 sibling, 0 replies; 30+ messages in thread
From: Eli Zaretskii @ 2007-07-17 20:03 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: lekktu, dann, emacs-devel

> From: Andreas Schwab <schwab@suse.de>
> Cc: Jason Rumney <jasonr@gnu.org>, lekktu@gmail.com,
> 	dann@ics.uci.edu, emacs-devel@gnu.org
> Date: Tue, 17 Jul 2007 13:45:45 +0200
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > why mapcar in vc-registered winds up trying BZR when it should have
> > payed attention to the CVS/ subdirectory and bail out of the loop
> > before it gets to BZR.
> 
> loaddefs.el is not registered with CVS.

Yes, I think you are right.  Thanks.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-17 16:52           ` Stefan Monnier
@ 2007-07-17 20:06             ` Eli Zaretskii
  2007-07-17 22:11               ` Juanma Barranquero
  0 siblings, 1 reply; 30+ messages in thread
From: Eli Zaretskii @ 2007-07-17 20:06 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: lekktu, dann, emacs-devel, jasonr

> Cc: Jason Rumney <jasonr@gnu.org>,  lekktu@gmail.com,  dann@ics.uci.edu,
> 	  emacs-devel@gnu.org
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Date: Tue, 17 Jul 2007 12:52:08 -0400
> 
> In the mean time, I've removed the "need for sh at load time" from
> vc-bzr.el.

Thanks.  But I think it's good that I made the change in the Windows
bootstrap procedure anyway, because there's always a chance that some
other command or hook that runs during bootstrap will need a shell.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: sh.exe needed to bootstrap on Windows?
  2007-07-17 20:06             ` Eli Zaretskii
@ 2007-07-17 22:11               ` Juanma Barranquero
  0 siblings, 0 replies; 30+ messages in thread
From: Juanma Barranquero @ 2007-07-17 22:11 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

On 7/17/07, Eli Zaretskii <eliz@gnu.org> wrote:

> Thanks.  But I think it's good that I made the change in the Windows
> bootstrap procedure anyway, because there's always a chance that some
> other command or hook that runs during bootstrap will need a shell.

This change is perhaps not needed anymore:

2004-06-06  Juanma Barranquero  <lektu@terra.es>

        * makefile.w32-in (bootstrap-nmake): When nmake'ing bootstrap on
        the lisp/ directory, set SHELL to $(SHELLTYPE); this avoids
        calling non-existent cmdproxy.exe on boostrappings after a
        previous install followed by realclean.

The problem was that a successful bootstrap/install created the
SHELL=cmdproxy.exe registry entry, so subsequent bootstraps failed
because cmdproxy.exe wasn't there.

The change was:

Index: nt/makefile.w32-in
===================================================================
RCS file: /cvsroot/emacs/emacs/nt/makefile.w32-in,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -2 -r1.22 -r1.23
--- nt/makefile.w32-in  3 May 2004 13:51:23 -0000       1.22
+++ nt/makefile.w32-in  6 Jun 2004 01:59:43 -0000       1.23
@@ -140,5 +140,5 @@
        $(MAKE) $(MFLAGS) bootstrap-clean
        cd ..\lisp
-       $(MAKE) $(MFLAGS) bootstrap
+       $(MAKE) $(MFLAGS) SHELL=$(SHELLTYPE) bootstrap
        cd ..\lib-src
        $(MAKE) $(MFLAGS) DOC

             Juanma

^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2007-07-17 22:11 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-16  9:10 sh.exe needed to bootstrap on Windows? Juanma Barranquero
2007-07-16 19:15 ` Eli Zaretskii
2007-07-16 19:54   ` Juanma Barranquero
2007-07-16 20:19     ` Eli Zaretskii
2007-07-16 20:28       ` Juanma Barranquero
2007-07-16 20:46         ` Eli Zaretskii
2007-07-16 21:01           ` Dan Nicolaescu
2007-07-16 21:19             ` Eli Zaretskii
2007-07-16 21:30               ` Dan Nicolaescu
2007-07-16 22:01                 ` Eli Zaretskii
2007-07-16 22:40                   ` Dan Nicolaescu
2007-07-16 22:44                     ` Eli Zaretskii
2007-07-16 22:53                       ` Dan Nicolaescu
2007-07-17  3:15                         ` Eli Zaretskii
2007-07-16 20:34       ` Dan Nicolaescu
2007-07-17  7:56       ` Jason Rumney
2007-07-17  8:43         ` Dan Nicolaescu
2007-07-17 11:26         ` Eli Zaretskii
2007-07-17 11:39           ` Juanma Barranquero
2007-07-17 11:45           ` Andreas Schwab
2007-07-17 12:51             ` Thien-Thi Nguyen
2007-07-17 13:13               ` David Kastrup
2007-07-17 20:02               ` Eli Zaretskii
2007-07-17 20:03             ` Eli Zaretskii
2007-07-17 16:52           ` Stefan Monnier
2007-07-17 20:06             ` Eli Zaretskii
2007-07-17 22:11               ` Juanma Barranquero
2007-07-16 22:47 ` Eli Zaretskii
2007-07-17 10:07   ` Juanma Barranquero
2007-07-17 10:33     ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).