unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#8764: 24.0.50; cedet/semantic/bovine/c-by.el:184:1:Error: Lisp nesting exceeds `max-lisp-eval-depth'
@ 2011-05-30 16:56 Christopher Browne
  2011-05-30 19:01 ` David Engster
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Christopher Browne @ 2011-05-30 16:56 UTC (permalink / raw)
  To: 8764


The problem isn't within the running Emacs process, rather it's with the
build process for trunk.

Based on a latest "bzr pull" of trunk, the build fails thus:

make[2]: Entering directory `/opt/emacs/trunk/lisp'
Compiling cedet/semantic/bovine/c-by.el

In toplevel form:
cedet/semantic/bovine/c-by.el:184:1:Error: Lisp nesting exceeds `max-lisp-eval-depth'
make[2]: *** [cedet/semantic/bovine/c-by.elc] Error 1
make[2]: Leaving directory `/opt/emacs/trunk/lisp'
make[1]: *** [compile-main] Error 2
make[1]: Leaving directory `/opt/emacs/trunk/lisp'
make: *** [lisp] Error 2

At line 184, this file is defining the following object:

(defconst semantic-c-by--parse-table
....

I'm not sure where to proceed from here.  The default value is 600; I
don't know if fiddling that higher would actually help.
-- 
(reverse (concatenate 'string "ofni.sailifa" "@" "enworbbc"))
Christopher Browne
"Bother,"  said Pooh,  "Eeyore, ready  two photon  torpedoes  and lock
phasers on the Heffalump, Piglet, meet me in transporter room three"





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

* bug#8764: 24.0.50; cedet/semantic/bovine/c-by.el:184:1:Error: Lisp nesting exceeds `max-lisp-eval-depth'
  2011-05-30 16:56 bug#8764: 24.0.50; cedet/semantic/bovine/c-by.el:184:1:Error: Lisp nesting exceeds `max-lisp-eval-depth' Christopher Browne
@ 2011-05-30 19:01 ` David Engster
  2011-05-30 22:14   ` Stefan Monnier
  2011-05-30 19:04 ` Stefan Monnier
  2021-11-05 19:10 ` bug#8764: " Paul Eggert
  2 siblings, 1 reply; 10+ messages in thread
From: David Engster @ 2011-05-30 19:01 UTC (permalink / raw)
  To: Christopher Browne; +Cc: 8764

Christopher Browne writes:
> make[2]: Entering directory `/opt/emacs/trunk/lisp'
> Compiling cedet/semantic/bovine/c-by.el
>
> In toplevel form:
> cedet/semantic/bovine/c-by.el:184:1:Error: Lisp nesting exceeds `max-lisp-eval-depth'
> make[2]: *** [cedet/semantic/bovine/c-by.elc] Error 1
> make[2]: Leaving directory `/opt/emacs/trunk/lisp'
> make[1]: *** [compile-main] Error 2
> make[1]: Leaving directory `/opt/emacs/trunk/lisp'
> make: *** [lisp] Error 2
>
> At line 184, this file is defining the following object:
>
> (defconst semantic-c-by--parse-table
> ....
>
> I'm not sure where to proceed from here.  The default value is 600; I
> don't know if fiddling that higher would actually help.

It should. The build from CEDET-bzr uses a value of 1000 to compile the
resulting parser files. I'm actually a bit puzzled that this ever worked
reliably with the default value.

-David





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

* bug#8764: 24.0.50; cedet/semantic/bovine/c-by.el:184:1:Error: Lisp nesting exceeds `max-lisp-eval-depth'
  2011-05-30 16:56 bug#8764: 24.0.50; cedet/semantic/bovine/c-by.el:184:1:Error: Lisp nesting exceeds `max-lisp-eval-depth' Christopher Browne
  2011-05-30 19:01 ` David Engster
@ 2011-05-30 19:04 ` Stefan Monnier
  2011-05-30 19:19   ` Christopher Browne
  2021-11-05 19:10 ` bug#8764: " Paul Eggert
  2 siblings, 1 reply; 10+ messages in thread
From: Stefan Monnier @ 2011-05-30 19:04 UTC (permalink / raw)
  To: Christopher Browne; +Cc: 8764

> The problem isn't within the running Emacs process, rather it's with the
> build process for trunk.

It's a file that requires a lot of stack depth, indeed.

> I'm not sure where to proceed from here.  The default value is 600; I
> don't know if fiddling that higher would actually help.

The lisp/Makefile.in pushes it up to 1200 and AFAIK this is sufficient
to bootstrap.  But maybe there are cases where a recompile ends up
recompiling in a different order and so more of the files are still
uncompiled, thus needing more stack space.


        Stefan





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

* bug#8764: 24.0.50; cedet/semantic/bovine/c-by.el:184:1:Error: Lisp nesting exceeds `max-lisp-eval-depth'
  2011-05-30 19:04 ` Stefan Monnier
@ 2011-05-30 19:19   ` Christopher Browne
  2011-05-30 22:15     ` Stefan Monnier
  0 siblings, 1 reply; 10+ messages in thread
From: Christopher Browne @ 2011-05-30 19:19 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 8764

On Mon, May 30, 2011 at 3:04 PM, Stefan Monnier
<monnier@iro.umontreal.ca> wrote:
>> The problem isn't within the running Emacs process, rather it's with the
>> build process for trunk.
>
> It's a file that requires a lot of stack depth, indeed.
>
>> I'm not sure where to proceed from here.  The default value is 600; I
>> don't know if fiddling that higher would actually help.
>
> The lisp/Makefile.in pushes it up to 1200 and AFAIK this is sufficient
> to bootstrap.  But maybe there are cases where a recompile ends up
> recompiling in a different order and so more of the files are still
> uncompiled, thus needing more stack space.

Thanks for pointing out the location; I did a bit of "iterative
refinement" and found that 1635 was sufficient whilst 1625 failed.

That isn't quite a scientific evaluation of what ought to be
necessary, but it sure seems that the value can need to be higher than
1200, and it's pretty plausible that 1635 only helps until an extra
couple elements get added to the parser, increasing stack usage.





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

* bug#8764: 24.0.50; cedet/semantic/bovine/c-by.el:184:1:Error: Lisp nesting exceeds `max-lisp-eval-depth'
  2011-05-30 19:01 ` David Engster
@ 2011-05-30 22:14   ` Stefan Monnier
  2011-05-30 22:50     ` Stefan Monnier
  0 siblings, 1 reply; 10+ messages in thread
From: Stefan Monnier @ 2011-05-30 22:14 UTC (permalink / raw)
  To: Christopher Browne; +Cc: 8764

> It should. The build from CEDET-bzr uses a value of 1000 to compile the
> resulting parser files. I'm actually a bit puzzled that this ever worked
> reliably with the default value.

The lexbind changes to the byte-compiler require more stack depth, which
is why it may compile with 1000 under Emacs-24, but requires more under
Emacs-24.


        Stefan





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

* bug#8764: 24.0.50; cedet/semantic/bovine/c-by.el:184:1:Error: Lisp nesting exceeds `max-lisp-eval-depth'
  2011-05-30 19:19   ` Christopher Browne
@ 2011-05-30 22:15     ` Stefan Monnier
  2014-02-03 23:48       ` Lars Ingebrigtsen
  0 siblings, 1 reply; 10+ messages in thread
From: Stefan Monnier @ 2011-05-30 22:15 UTC (permalink / raw)
  To: Christopher Browne; +Cc: 8764

> That isn't quite a scientific evaluation of what ought to be
> necessary, but it sure seems that the value can need to be higher than
> 1200, and it's pretty plausible that 1635 only helps until an extra
> couple elements get added to the parser, increasing stack usage.

Since 1200 seems sufficient during bootstrap, it would be worthwhile to
try and figure out what is different between your case and the
bootstrap case.


        Stefan





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

* bug#8764: 24.0.50; cedet/semantic/bovine/c-by.el:184:1:Error: Lisp nesting exceeds `max-lisp-eval-depth'
  2011-05-30 22:14   ` Stefan Monnier
@ 2011-05-30 22:50     ` Stefan Monnier
  0 siblings, 0 replies; 10+ messages in thread
From: Stefan Monnier @ 2011-05-30 22:50 UTC (permalink / raw)
  To: Christopher Browne; +Cc: 8764

> The lexbind changes to the byte-compiler require more stack depth, which
> is why it may compile with 1000 under Emacs-24, but requires more under
> Emacs-24.

[ Right, now that was clear, wasn't it? ]
The first "Emacs-24" should read "Emacs-23".


        Stefan





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

* bug#8764: 24.0.50; cedet/semantic/bovine/c-by.el:184:1:Error: Lisp nesting exceeds `max-lisp-eval-depth'
  2011-05-30 22:15     ` Stefan Monnier
@ 2014-02-03 23:48       ` Lars Ingebrigtsen
  0 siblings, 0 replies; 10+ messages in thread
From: Lars Ingebrigtsen @ 2014-02-03 23:48 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 8764, Christopher Browne

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> That isn't quite a scientific evaluation of what ought to be
>> necessary, but it sure seems that the value can need to be higher than
>> 1200, and it's pretty plausible that 1635 only helps until an extra
>> couple elements get added to the parser, increasing stack usage.
>
> Since 1200 seems sufficient during bootstrap, it would be worthwhile to
> try and figure out what is different between your case and the
> bootstrap case.

More information was requested two years ago, but no further progress
has been made (and this seems to work for everybody else), so I'm
closing this bug report.  If this problem is still present, please
reopen the bug report.

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/





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

* bug#8764: cedet/semantic/bovine/c-by.el:184:1:Error: Lisp nesting exceeds `max-lisp-eval-depth'
  2011-05-30 16:56 bug#8764: 24.0.50; cedet/semantic/bovine/c-by.el:184:1:Error: Lisp nesting exceeds `max-lisp-eval-depth' Christopher Browne
  2011-05-30 19:01 ` David Engster
  2011-05-30 19:04 ` Stefan Monnier
@ 2021-11-05 19:10 ` Paul Eggert
  2021-12-03 21:20   ` bug#8764: 24.0.50; " Lars Ingebrigtsen
  2 siblings, 1 reply; 10+ messages in thread
From: Paul Eggert @ 2021-11-05 19:10 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 8764, Christopher Browne, David Engster

> it would be worthwhile to
> try and figure out what is different between your case and the
> bootstrap case.

I ran into this problem recently on Emacs master (commit 
133026c362eb27191d992fbf35727550804bfc96 dated today). I had recently 
done a 'git pull' into a working directory that hadn't been updated for 
some time. When I did the usual './autogen.sh; ./configure; make' I got 
the same diagnostic for c-by.el.

The problem persisted after I removed all *.elc files and then did a 
'make -j5' on a 4-core machine. The problem then went away when I did a 
plain 'make'.

One hypothesis is that c-by.el depends on some other .el file being 
compiled into *.elc form (rather than being present in only source 
form), and that using 'make -j5' causes 'make' on my platform to 
(unluckily) arrange for c-by.el to be compiled before the other *.elc 
file (whatever it is) is available.

c-by.el starts this way:

(require 'semantic/lex)
(eval-when-compile (require 'semantic/bovine))

so perhaps we should arrange for all the .elc files needed by 
semantic/lex and/or semantic/bovine to be present, before compiling c-by.el.





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

* bug#8764: 24.0.50; cedet/semantic/bovine/c-by.el:184:1:Error: Lisp nesting exceeds `max-lisp-eval-depth'
  2021-11-05 19:10 ` bug#8764: " Paul Eggert
@ 2021-12-03 21:20   ` Lars Ingebrigtsen
  0 siblings, 0 replies; 10+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-03 21:20 UTC (permalink / raw)
  To: Paul Eggert; +Cc: 8764, Christopher Browne, Stefan Monnier, David Engster

Paul Eggert <eggert@cs.ucla.edu> writes:

> One hypothesis is that c-by.el depends on some other .el file being
> compiled into *.elc form (rather than being present in only source
> form), and that using 'make -j5' causes 'make' on my platform to
> (unluckily) arrange for c-by.el to be compiled before the other *.elc
> file (whatever it is) is available.

I found a reproducer:

larsi@xo:~/src/emacs/trunk$ rm lisp/emacs-lisp/cconv.elc
larsi@xo:~/src/emacs/trunk$ ./src/emacs -batch --eval '(byte-compile-file "./lisp/cedet/semantic/bovine/c-by.el")'

In toplevel form:
lisp/cedet/semantic/bovine/c-by.el:198:1: Error: Lisp nesting exceeds ‘max-lisp-eval-depth’
larsi@xo:~/src/emacs/trunk$ ./src/emacs -batch --eval '(byte-compile-file "./lisp/emacs-lisp/cconv.el")'
larsi@xo:~/src/emacs/trunk$ ./src/emacs -batch --eval '(byte-compile-file "./lisp/cedet/semantic/bovine/c-by.el")'
larsi@xo:~/src/emacs/trunk$ 

And indeed:

larsi@xo:~/src/emacs/trunk$ rm lisp/emacs-lisp/cconv.elc lisp/cedet/semantic/bovine/c-by.elc
rm: cannot remove 'lisp/cedet/semantic/bovine/c-by.elc': No such file or directory
larsi@xo:~/src/emacs/trunk$ make -j8
make -C lib all
make -C doc/lispref info

[...]

make[2]: Entering directory '/home/larsi/src/emacs/trunk/lisp'
  ELC      emacs-lisp/cconv.elc
  ELC      cedet/semantic/bovine/c-by.elc

In toplevel form:
cedet/semantic/bovine/c-by.el:198:1: Error: Lisp nesting exceeds ‘max-lisp-eval-depth’
make[2]: *** [Makefile:312: cedet/semantic/bovine/c-by.elc] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/larsi/src/emacs/trunk/lisp'
make[1]: *** [Makefile:342: compile-main] Error 2
make[1]: Leaving directory '/home/larsi/src/emacs/trunk/lisp'
make: *** [Makefile:439: lisp] Error 2

Now, cconv.elc is already in COMPILE_FIRST...  and adding it to
MAIN_FIRST in addition doesn't seem to help.  It doesn't seem to
actually wait until compiling MAIN_FIRST is done before doing the rest?
(If I'm reading the Makefile correctly.)

Yup.  I've now separated out the MAIN_FIRST into its own target, and
that fixes this problem.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

end of thread, other threads:[~2021-12-03 21:20 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-30 16:56 bug#8764: 24.0.50; cedet/semantic/bovine/c-by.el:184:1:Error: Lisp nesting exceeds `max-lisp-eval-depth' Christopher Browne
2011-05-30 19:01 ` David Engster
2011-05-30 22:14   ` Stefan Monnier
2011-05-30 22:50     ` Stefan Monnier
2011-05-30 19:04 ` Stefan Monnier
2011-05-30 19:19   ` Christopher Browne
2011-05-30 22:15     ` Stefan Monnier
2014-02-03 23:48       ` Lars Ingebrigtsen
2021-11-05 19:10 ` bug#8764: " Paul Eggert
2021-12-03 21:20   ` bug#8764: 24.0.50; " Lars Ingebrigtsen

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