From 28e0124dd05419689a8a94ec4381e53d4644989c Mon Sep 17 00:00:00 2001 From: Dmitry Antipov Date: Wed, 27 Aug 2014 14:51:21 +0400 Subject: [PATCH] * src/keyboard.c (Vtop_level_message): Rename to Vinternal__top_level_message, as suggested by Stefan Monnier in http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00493.html All related users changed. * lisp/startup.el (normal-top-level): Now use internal--top-level-message. * doc/lispref/eval.texi (Eval): Mention possible recovery from stack overflow. --- doc/lispref/ChangeLog | 4 ++++ doc/lispref/eval.texi | 7 ++++++- lisp/ChangeLog | 4 ++++ lisp/startup.el | 2 +- src/ChangeLog | 4 ++++ src/keyboard.c | 8 ++++---- 6 files changed, 23 insertions(+), 6 deletions(-) diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 58548077d3d..3719b223b35 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,7 @@ +2014-08-27 Dmitry Antipov + + * eval.texi (Eval): Mention possible recovery from stack overflow. + 2014-07-11 Eli Zaretskii * internals.texi (Garbage Collection): Fix last change. diff --git a/doc/lispref/eval.texi b/doc/lispref/eval.texi index 05250233b00..6ffc7db8abf 100644 --- a/doc/lispref/eval.texi +++ b/doc/lispref/eval.texi @@ -805,7 +805,12 @@ message @code{"Lisp nesting exceeds max-lisp-eval-depth"}). This limit, with the associated error when it is exceeded, is one way Emacs Lisp avoids infinite recursion on an ill-defined function. If you increase the value of @code{max-lisp-eval-depth} too much, such -code can cause stack overflow instead. +code can cause stack overflow instead. On some systems, this overflow +can be handled. In that case, normal Lisp evaluation is interrupted +and control is transferred back to the top level command loop +(@code{top-level}). Note that there is no way to enter Emacs Lisp +debugger in this situation. @xref{Error Debugging}. + @cindex Lisp nesting error The depth limit counts internal uses of @code{eval}, @code{apply}, and diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e19c757a950..8f23c01de43 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2014-08-27 Dmitry Antipov + + * startup.el (normal-top-level): Now use internal--top-level-message. + 2014-08-26 Dmitry Antipov * startup.el (normal-top-level): Use top-level-message. diff --git a/lisp/startup.el b/lisp/startup.el index 1d5ae250505..bb55080d67e 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -497,7 +497,7 @@ It sets `command-line-processed', processes the command-line, reads the initialization files, etc. It is the default value of the variable `top-level'." (if command-line-processed - (message top-level-message) + (message internal--top-level-message) (setq command-line-processed t) ;; Look in each dir in load-path for a subdirs.el file. If we diff --git a/src/ChangeLog b/src/ChangeLog index 8bc6c1069ad..33fea805898 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -6,6 +6,10 @@ (handle_sigsegv): Check whether we really crash somewhere near to stack boundary, and handle fatal signal as usual if not. (init_sigsegv): Adjust accordingly. + * keyboard.c (Vtop_level_message): Rename to + Vinternal__top_level_message, as suggested by Stefan Monnier in + http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00493.html + All related users changed. 2014-08-26 Dmitry Antipov diff --git a/src/keyboard.c b/src/keyboard.c index 79b3aec3304..a8083fa4271 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -1153,10 +1153,10 @@ command_loop (void) { /* Comes here from handle_sigsegv, see sysdep.c. */ init_eval (); - Vtop_level_message = recover_top_level_message; + Vinternal__top_level_message = recover_top_level_message; } else - Vtop_level_message = regular_top_level_message; + Vinternal__top_level_message = regular_top_level_message; #endif /* HAVE_STACK_OVERFLOW_HANDLING */ if (command_loop_level > 0 || minibuf_level > 0) { @@ -11029,9 +11029,9 @@ syms_of_keyboard (void) recover_top_level_message = build_pure_c_string ("Re-entering top level after C stack overflow"); #endif - DEFVAR_LISP ("top-level-message", Vtop_level_message, + DEFVAR_LISP ("internal--top-level-message", Vinternal__top_level_message, doc: /* Message displayed by `normal-top-level'. */); - Vtop_level_message = regular_top_level_message; + Vinternal__top_level_message = regular_top_level_message; /* Tool-bars. */ DEFSYM (QCimage, ":image"); -- 2.39.5