unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* make bootstrap fails with newest CVS sources - 2002-11-25
@ 2002-11-25 17:29 Ben Key
  2002-11-26  6:10 ` Steven Tamm
  0 siblings, 1 reply; 16+ messages in thread
From: Ben Key @ 2002-11-25 17:29 UTC (permalink / raw)


make bootstrap fails with newest CVS sources.  The error message is as
follows:

Recursive `require' for feature `help-fns'
NMAKE : fatal error U1077: '"d:\emacssrc\21.3\src/obj-spd/i386/temacs.exe"'
: return code '0xffffffff'
Stop.
NMAKE : fatal error U1077: '"c:\Program Files\Microsoft Visual
Studio\VC98\bin\nmake.exe"' : return code '0x2'
Stop.

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

* Re: make bootstrap fails with newest CVS sources - 2002-11-25
  2002-11-25 17:29 Ben Key
@ 2002-11-26  6:10 ` Steven Tamm
  2002-11-26  7:22   ` Miles Bader
  2002-11-27  7:36   ` Richard Stallman
  0 siblings, 2 replies; 16+ messages in thread
From: Steven Tamm @ 2002-11-26  6:10 UTC (permalink / raw)
  Cc: GNU Emacs Devel (emacs-devel@gnu.org)

There appears to be a recursive load (I turned up the recursion check 
from 2 to 3 in fns.c) to get it to fail in lread.

Recursive load: "/dev/emacs/lisp/emacs-lisp/cl-macs.el", 
"/dev/emacs/lisp/button.el", "/dev/emacs/lisp/help-mode.el", 
"/dev/emacs/lisp/help-fns.el", "/dev/emacs/lisp/emacs-lisp/cl-macs.el", 
"/dev/emacs/lisp/button.el", "/dev/emacs/lisp/help-mode.el", 
"/dev/emacs/lisp/help-fns.el", "/dev/emacs/lisp/emacs-lisp/cl-macs.el", 
"/dev/emacs/lisp/button.el", "/dev/emacs/lisp/help-mode.el", 
"/dev/emacs/lisp/help-fns.el", "/dev/emacs/lisp/emacs-lisp/cl-macs.el", 
"/dev/emacs/lisp/button.el", "/dev/emacs/lisp/help-mode.el", 
"/dev/emacs/lisp/help-fns.el", "/dev/emacs/lisp/emacs-lisp/cl-macs.el", 
"/dev/emacs/lisp/faces.el", "/dev/emacs/lisp/loadup.el"

The chain appears to be cl-macs -> help-fns -> help-mode -> button -> 
cl-macs

Reverting lisp/emacs-lisp/cl-macs.el to revision 1.34 (where cl-macs 
doesn't require help-fns) makes bootstrap proceed again.
The only thing I don't really understand is why button.el requires 
cl-macs?

-Steven

On Monday, November 25, 2002, at 09:29  AM, Ben Key wrote:

> make bootstrap fails with newest CVS sources.  The error message is as
> follows:
>
> Recursive `require' for feature `help-fns'
> NMAKE : fatal error U1077: 
> '"d:\emacssrc\21.3\src/obj-spd/i386/temacs.exe"'
> : return code '0xffffffff'
> Stop.
> NMAKE : fatal error U1077: '"c:\Program Files\Microsoft Visual
> Studio\VC98\bin\nmake.exe"' : return code '0x2'
> Stop.
>
>
> _______________________________________________
> Emacs-devel mailing list
> Emacs-devel@gnu.org
> http://mail.gnu.org/mailman/listinfo/emacs-devel

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

* Re: make bootstrap fails with newest CVS sources - 2002-11-25
  2002-11-26  6:10 ` Steven Tamm
@ 2002-11-26  7:22   ` Miles Bader
  2002-11-27  7:36   ` Richard Stallman
  1 sibling, 0 replies; 16+ messages in thread
From: Miles Bader @ 2002-11-26  7:22 UTC (permalink / raw)
  Cc: Ben Key, GNU Emacs Devel (emacs-devel@gnu.org)

Steven Tamm <steventamm@mac.com> writes:
> Reverting lisp/emacs-lisp/cl-macs.el to revision 1.34 (where cl-macs 
> doesn't require help-fns) makes bootstrap proceed again.
> The only thing I don't really understand is why button.el requires 
> cl-macs?

It shouldn't, but who knows, the cl stuff tends to creep...

I think having cl-macs require anything is also bad, though, since it
itself tends to get loaded at odd times during compilation.

-Miles
-- 
We live, as we dream -- alone....

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

* RE: make bootstrap fails with newest CVS sources - 2002-11-25
@ 2002-11-26 13:49 Ben Key
  2002-11-26 16:21 ` Steven Tamm
  0 siblings, 1 reply; 16+ messages in thread
From: Ben Key @ 2002-11-26 13:49 UTC (permalink / raw)
  Cc: GNU Emacs Devel (emacs-devel@gnu.org)

    There appears to be a recursive load (I turned up the recursion check 
    from 2 to 3 in fns.c) to get it to fail in lread.
    
    Recursive load: "/dev/emacs/lisp/emacs-lisp/cl-macs.el", 
    "/dev/emacs/lisp/button.el", "/dev/emacs/lisp/help-mode.el", 
    "/dev/emacs/lisp/help-fns.el", "/dev/emacs/lisp/emacs-lisp/cl-macs.el", 
    "/dev/emacs/lisp/button.el", "/dev/emacs/lisp/help-mode.el", 
    "/dev/emacs/lisp/help-fns.el", "/dev/emacs/lisp/emacs-lisp/cl-macs.el", 
    "/dev/emacs/lisp/button.el", "/dev/emacs/lisp/help-mode.el", 
    "/dev/emacs/lisp/help-fns.el", "/dev/emacs/lisp/emacs-lisp/cl-macs.el", 
    "/dev/emacs/lisp/button.el", "/dev/emacs/lisp/help-mode.el", 
    "/dev/emacs/lisp/help-fns.el", "/dev/emacs/lisp/emacs-lisp/cl-macs.el", 
    "/dev/emacs/lisp/faces.el", "/dev/emacs/lisp/loadup.el"
    
    The chain appears to be cl-macs -> help-fns -> help-mode -> button -> 
    cl-macs

How did you get this information?  What did you have to change / enable in
order to get such a detailed report?  I spent quite some time searching for
a way to do something similar so I could provide more information when I
reported the problem, but I failed to find anything.

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

* RE: make bootstrap fails with newest CVS sources - 2002-11-25
@ 2002-11-26 15:51 Ben Key
  2002-11-28  7:25 ` Richard Stallman
  0 siblings, 1 reply; 16+ messages in thread
From: Ben Key @ 2002-11-26 15:51 UTC (permalink / raw)
  Cc: GNU Emacs Devel (emacs-devel@gnu.org)


  > Reverting lisp/emacs-lisp/cl-macs.el to revision 1.34 (where cl-macs 
  > doesn't require help-fns) makes bootstrap proceed again.

I agree that reverting cl-macs.el to the earlier revision appears to resolve
the problem with make bootstrap.  However, the last time cl-macs.el was
changed was more than 8 weeks ago.  Up until last Thursday night I was doing
a make bootstrap on Emacs once or twice a day and everything worked fine.
Therefore I must conclude that the last change to cl-macs.el was not the one
that broke make bootstrap.  By reverting cl-macs.el we are only hiding the
problem, not solving it.  Something else changed in the last 5 days to break
make bootstrap.

At this time I do not have the time or the resources required to determine
what change really is the culprit, but I feel that it is important that we
make that determination.

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

* Re: make bootstrap fails with newest CVS sources - 2002-11-25
  2002-11-26 13:49 Ben Key
@ 2002-11-26 16:21 ` Steven Tamm
  2002-11-28  7:25   ` Richard Stallman
  0 siblings, 1 reply; 16+ messages in thread
From: Steven Tamm @ 2002-11-26 16:21 UTC (permalink / raw)
  Cc: GNU Emacs Devel (emacs-devel@gnu.org)

In fns.c:Frequire I changed:

       if (nesting > 2)
	error ("Recursive `require' for feature `%s'",
	       SDATA (SYMBOL_NAME (feature)));

to:

       if (nesting > 3)
	error ("Recursive `require' for feature `%s'",
	       SDATA (SYMBOL_NAME (feature)));

This makes the recursive load die in lread.c:Fload (which produces the 
nicer error).  Fload fails if it tries to load the same file more than 
3 times.

I found this out totally by accident.  On darwin/Mac OS X, there is a 
problem with the apple-hacked GCC that it doesn't seem to export the 
structure definitions for Lisp_String and Lisp_Object because of the 
name conflict with the Lisp_Type enum.   So the gdb macros like xsymbol 
didn't work.   After I figured that out I just thought that the problem 
might go away if I allowed more nesting.  I was wrong.

BTW, To get the Lisp_String etc. structures to be loaded correctly into 
gdb on darwin all I did was add this to emacs.c

typedef Lisp_Object XLisp_Object;
typedef struct Lisp_String XLisp_String;
typedef struct Lisp_Symbol XLisp_Symbol;
typedef struct Lisp_Cons   XLisp_Cons;
XLisp_Object dummy1;
XLisp_String dummy2;
XLisp_Symbol dummy3;
XLisp_Cons dummy4;

Do any other platforms have the same problem, or is there some flag I 
can use to make this go away?
-Steven

On Tuesday, November 26, 2002, at 05:49  AM, Ben Key wrote:

>     There appears to be a recursive load (I turned up the recursion 
> check
>     from 2 to 3 in fns.c) to get it to fail in lread.
>
>     Recursive load: "/dev/emacs/lisp/emacs-lisp/cl-macs.el",
>     "/dev/emacs/lisp/button.el", "/dev/emacs/lisp/help-mode.el",
>     "/dev/emacs/lisp/help-fns.el", 
> "/dev/emacs/lisp/emacs-lisp/cl-macs.el",
>     "/dev/emacs/lisp/button.el", "/dev/emacs/lisp/help-mode.el",
>     "/dev/emacs/lisp/help-fns.el", 
> "/dev/emacs/lisp/emacs-lisp/cl-macs.el",
>     "/dev/emacs/lisp/button.el", "/dev/emacs/lisp/help-mode.el",
>     "/dev/emacs/lisp/help-fns.el", 
> "/dev/emacs/lisp/emacs-lisp/cl-macs.el",
>     "/dev/emacs/lisp/button.el", "/dev/emacs/lisp/help-mode.el",
>     "/dev/emacs/lisp/help-fns.el", 
> "/dev/emacs/lisp/emacs-lisp/cl-macs.el",
>     "/dev/emacs/lisp/faces.el", "/dev/emacs/lisp/loadup.el"
>
>     The chain appears to be cl-macs -> help-fns -> help-mode -> button 
> ->
>     cl-macs
>
> How did you get this information?  What did you have to change / 
> enable in
> order to get such a detailed report?  I spent quite some time 
> searching for
> a way to do something similar so I could provide more information when 
> I
> reported the problem, but I failed to find anything.

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

* Re: make bootstrap fails with newest CVS sources - 2002-11-25
@ 2002-11-26 22:33 Ben Key
  2002-11-26 22:58 ` Jason Rumney
  0 siblings, 1 reply; 16+ messages in thread
From: Ben Key @ 2002-11-26 22:33 UTC (permalink / raw)


I have done some work on narrowing down what change was responsible for
breaking make bootstrap.  Here are my results thus far.

After cvs update -D "3 days ago" make bootstrap works.

After cvs update -D "2 days ago" make bootstrap does not work.

This means that whatever caused make bootstrap to fail happened in the last
2 days.

Here is a list of files that were changed in the last 2 days:
  etc/PROBLEMS
  lisp/ChangeLog
  lisp/international/code-pages.el
  lisp/language/cyrillic.el
  lisp/language/european.el
  src/ChangeLog
  src/Makefile.in
  src/alloca.c
  src/lisp.h
  src/unexalpha.c
  src/unexmacosx.c
  src/w32.c
  src/m/ia64.h

I am assuming that we can ignore the following:
  etc/PROBLEMS
  lisp/ChangeLog
  src/ChangeLog
  src/Makefile.in

Therefore, it is most likely that a change to one of the following is at
fault:
  lisp/international/code-pages.el
  lisp/language/cyrillic.el
  lisp/language/european.el
  src/alloca.c
  src/lisp.h
  src/unexalpha.c
  src/unexmacosx.c
  src/w32.c
  src/m/ia64.h

I will let you all know if I have any more luck.

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

* Re: make bootstrap fails with newest CVS sources - 2002-11-25
  2002-11-26 22:33 Ben Key
@ 2002-11-26 22:58 ` Jason Rumney
  2002-11-29 15:02   ` Richard Stallman
  0 siblings, 1 reply; 16+ messages in thread
From: Jason Rumney @ 2002-11-26 22:58 UTC (permalink / raw)
  Cc: GNU Emacs Devel (emacs-devel@gnu.org)

Ben Key <BenK@FreedomScientific.com> writes:

> I have done some work on narrowing down what change was responsible for
> breaking make bootstrap.  Here are my results thus far.

> After cvs update -D "3 days ago" make bootstrap works.
> 
> After cvs update -D "2 days ago" make bootstrap does not work.
> 
> This means that whatever caused make bootstrap to fail happened in the last
> 2 days.

No, it means that it happened between 2 and 3 days ago.

> Therefore, it is most likely that a change to one of the following is at
> fault:
>   lisp/international/code-pages.el
>   lisp/language/cyrillic.el
>   lisp/language/european.el
>   src/alloca.c
>   src/lisp.h
>   src/unexalpha.c
>   src/unexmacosx.c
>   src/w32.c
>   src/m/ia64.h

I would have thought it was obvious from the files that people have
reported they had success reverting that the following change is what
triggered the break in bootstrapping:

	* faces.el (face-set-after-frame-default): Ignore errors
	in face-spec-face-set.

	* cus-face.el (custom-declare-face): Add face-defface-spec
	prop after applying the face spec.


But it seems the real problem may be with a prior change to cl-macs.el

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

* Re: make bootstrap fails with newest CVS sources - 2002-11-25
@ 2002-11-27  7:01 Gord Peters
  0 siblings, 0 replies; 16+ messages in thread
From: Gord Peters @ 2002-11-27  7:01 UTC (permalink / raw)


I just tried to compile emacs on Mac OS X and I ran into the problem 
where "make bootstrap" fails with the following message:

. . .

Loading cus-face (source)...
Loading faces (source)...
Recursive `require' for feature `help-fns'
make[1]: *** [bootstrap-emacs] Error 255
make: *** [bootstrap] Error 2

I did a bit of digging and found that the change which causes the 
problem is in lisp/cus-face.el (between version 1.29 and 1.30).  I'm 
not sure why this causes the problem, or what the proper way to fix it 
is, but reverting back to version 1.29 of cus-face.el at least allowed 
me to compile successfully on Mac OS X.

	Gord

PS. I'm not subscribed to this list so if you have any responses, 
please CC me on them.

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

* Re: make bootstrap fails with newest CVS sources - 2002-11-25
  2002-11-26  6:10 ` Steven Tamm
  2002-11-26  7:22   ` Miles Bader
@ 2002-11-27  7:36   ` Richard Stallman
  1 sibling, 0 replies; 16+ messages in thread
From: Richard Stallman @ 2002-11-27  7:36 UTC (permalink / raw)
  Cc: BenK, emacs-devel

    Reverting lisp/emacs-lisp/cl-macs.el to revision 1.34 (where cl-macs 
    doesn't require help-fns) makes bootstrap proceed again.
    The only thing I don't really understand is why button.el requires 
    cl-macs?

It is easy to find this out with a breakpoint at Frequire
and another at do_autoload.

We should change button.el not to use cl-macs at all.

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

* Re: make bootstrap fails with newest CVS sources - 2002-11-25
  2002-11-26 15:51 make bootstrap fails with newest CVS sources - 2002-11-25 Ben Key
@ 2002-11-28  7:25 ` Richard Stallman
  0 siblings, 0 replies; 16+ messages in thread
From: Richard Stallman @ 2002-11-28  7:25 UTC (permalink / raw)
  Cc: steventamm, emacs-devel

    Therefore I must conclude that the last change to cl-macs.el was not the one
    that broke make bootstrap.

You are probably right.

				By reverting cl-macs.el we are only hiding the
    problem, not solving it.

I disagree with that reasoning.  The problem is the cycle of requires,
and eliminating any one of them fixes it.

I think the argument that cl-macs.el should avoid requiring anything
is pretty strong.  After all, lots of files require cl-macs (via cl).
If cl-macs depends on anything, that will tend to lead to loops.

This does not mean we should not also change the code that made
button.el depend on cl-macs.  Maybe we do.  But why does it
depend on cl-macs?  It is not evident.  Can someone figure out why?
With A breakpoint at Frequire and a breakpoint at do_autoload you
can find it out easily.

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

* Re: make bootstrap fails with newest CVS sources - 2002-11-25
  2002-11-26 16:21 ` Steven Tamm
@ 2002-11-28  7:25   ` Richard Stallman
  2002-11-28  7:53     ` Steven Tamm
  0 siblings, 1 reply; 16+ messages in thread
From: Richard Stallman @ 2002-11-28  7:25 UTC (permalink / raw)
  Cc: BenK, emacs-devel

	   if (nesting > 3)
	    error ("Recursive `require' for feature `%s'",
		   SDATA (SYMBOL_NAME (feature)));

    This makes the recursive load die in lread.c:Fload (which produces the 
    nicer error).  Fload fails if it tries to load the same file more than 
    3 times.

Thanks.  Please do install it.

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

* Re: make bootstrap fails with newest CVS sources - 2002-11-25
  2002-11-28  7:25   ` Richard Stallman
@ 2002-11-28  7:53     ` Steven Tamm
  2002-11-30 14:04       ` Richard Stallman
  0 siblings, 1 reply; 16+ messages in thread
From: Steven Tamm @ 2002-11-28  7:53 UTC (permalink / raw)
  Cc: BenK, emacs-devel


On Wednesday, November 27, 2002, at 11:25  PM, Richard Stallman wrote:

> 	   if (nesting > 3)
> 	    error ("Recursive `require' for feature `%s'",
> 		   SDATA (SYMBOL_NAME (feature)));
>
>     This makes the recursive load die in lread.c:Fload (which produces 
> the
>     nicer error).  Fload fails if it tries to load the same file more 
> than
>     3 times.
>
> Thanks.  Please do install it.

Done.  Is the test for recursion in Frequire even necessary?  Would the 
testing in Fload suffice and the code dealing with recursion testing be 
removed? 

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

* Re: make bootstrap fails with newest CVS sources - 2002-11-25
  2002-11-26 22:58 ` Jason Rumney
@ 2002-11-29 15:02   ` Richard Stallman
  2002-11-29 19:35     ` Jason Rumney
  0 siblings, 1 reply; 16+ messages in thread
From: Richard Stallman @ 2002-11-29 15:02 UTC (permalink / raw)
  Cc: BenK, emacs-devel

    I would have thought it was obvious from the files that people have
    reported they had success reverting that the following change is what
    triggered the break in bootstrapping:

	    * faces.el (face-set-after-frame-default): Ignore errors
	    in face-spec-face-set.

	    * cus-face.el (custom-declare-face): Add face-defface-spec
	    prop after applying the face spec.

I can't see anything in that change that might have caused either of
these files to need cl, or need anything they did not need before.
Can you?

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

* Re: make bootstrap fails with newest CVS sources - 2002-11-25
  2002-11-29 15:02   ` Richard Stallman
@ 2002-11-29 19:35     ` Jason Rumney
  0 siblings, 0 replies; 16+ messages in thread
From: Jason Rumney @ 2002-11-29 19:35 UTC (permalink / raw)
  Cc: BenK, emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     I would have thought it was obvious from the files that people have
>     reported they had success reverting that the following change is what
>     triggered the break in bootstrapping:
> 
> 	    * faces.el (face-set-after-frame-default): Ignore errors
> 	    in face-spec-face-set.
> 
> 	    * cus-face.el (custom-declare-face): Add face-defface-spec
> 	    prop after applying the face spec.
> 
> I can't see anything in that change that might have caused either of
> these files to need cl, or need anything they did not need before.
> Can you?

I didn't look at the changes themselves in detail.  My thoughts were
based on a report that reverting faces.el and cus-face.el to the
previous version had made the problem go away. Maybe the person that
reported that had actually reverted more than just those two files,
so the report was bogus.

I don't see the report in the emacs-devel archives, so it probably
went to emacs-pretest-bug where Ben wouldn't have seen it.

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

* Re: make bootstrap fails with newest CVS sources - 2002-11-25
  2002-11-28  7:53     ` Steven Tamm
@ 2002-11-30 14:04       ` Richard Stallman
  0 siblings, 0 replies; 16+ messages in thread
From: Richard Stallman @ 2002-11-30 14:04 UTC (permalink / raw)
  Cc: BenK, emacs-devel

    Done.  Is the test for recursion in Frequire even necessary?  Would the 
    testing in Fload suffice and the code dealing with recursion testing be 
    removed? 

Maybe it isn't necessary, but why worry about the question?

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

end of thread, other threads:[~2002-11-30 14:04 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-11-26 15:51 make bootstrap fails with newest CVS sources - 2002-11-25 Ben Key
2002-11-28  7:25 ` Richard Stallman
  -- strict thread matches above, loose matches on Subject: below --
2002-11-27  7:01 Gord Peters
2002-11-26 22:33 Ben Key
2002-11-26 22:58 ` Jason Rumney
2002-11-29 15:02   ` Richard Stallman
2002-11-29 19:35     ` Jason Rumney
2002-11-26 13:49 Ben Key
2002-11-26 16:21 ` Steven Tamm
2002-11-28  7:25   ` Richard Stallman
2002-11-28  7:53     ` Steven Tamm
2002-11-30 14:04       ` Richard Stallman
2002-11-25 17:29 Ben Key
2002-11-26  6:10 ` Steven Tamm
2002-11-26  7:22   ` Miles Bader
2002-11-27  7:36   ` Richard Stallman

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).