aboutsummaryrefslogtreecommitdiffstats
path: root/doc/lispref/eval.texi
diff options
context:
space:
mode:
authorMattias EngdegÄrd2022-09-19 10:55:09 +0200
committerMattias EngdegÄrd2022-09-19 19:30:03 +0200
commit60102016e416e5c19fa5945aeb80693dac7ff2e6 (patch)
tree69979ff773d7031634e7bc4f4388abc4ae104717 /doc/lispref/eval.texi
parenta7c65fc6660878e244432a5b25fb3a4ff20e8604 (diff)
downloademacs-60102016e416e5c19fa5945aeb80693dac7ff2e6.tar.gz
emacs-60102016e416e5c19fa5945aeb80693dac7ff2e6.zip
Abolish max-specpdl-size (bug#57911)
The max-lisp-eval-depth limit is sufficient to prevent unbounded stack growth including the specbind stack; simplify matters for the user by not having them to worry about two different limits. This change turns max-specpdl-size into a harmless variable with no effects, to keep existing code happy. * lisp/subr.el (max-specpdl-size): Define as an ordinary (but obsolete) dynamic variable. * admin/grammars/Makefile.in: * doc/lispintro/emacs-lisp-intro.texi (Loops & Recursion): * doc/lispref/control.texi (Cleanups): * doc/lispref/edebug.texi (Checking Whether to Stop): * doc/lispref/eval.texi (Eval): * doc/lispref/variables.texi (Local Variables): * doc/misc/calc.texi (Recursion Depth): Update documentation. * etc/NEWS: Announce. * src/eval.c (FletX): Use safe iteration to guard against circular bindings list. (syms_of_eval): Remove old max-specpdl-size definition. (init_eval_once, restore_stack_limits, call_debugger) (signal_or_quit, grow_specpdl_allocation): * leim/Makefile.in: * lisp/Makefile.in: * lisp/calc/calc-stuff.el (calc-more-recursion-depth) (calc-less-recursion-depth): * lisp/calc/calc.el (calc-do): * lisp/cedet/semantic/ede-grammar.el (ede-proj-makefile-insert-rules): * lisp/cedet/semantic/grammar.el (semantic-grammar-batch-build-one-package): * lisp/cus-start.el (standard): * lisp/emacs-lisp/comp.el (comp--native-compile): * lisp/emacs-lisp/edebug.el (edebug-max-depth): (edebug-read-and-maybe-wrap-form, edebug-default-enter): * lisp/emacs-lisp/regexp-opt.el (regexp-opt): * lisp/eshell/esh-mode.el (eshell-mode): * lisp/loadup.el (max-specpdl-size): * lisp/mh-e/mh-e.el (mh-invisible-headers): * lisp/net/shr.el (shr-insert-document, shr-descend): * lisp/play/hanoi.el (hanoi-internal): * lisp/progmodes/cperl-mode.el: * src/fileio.c (Fdo_auto_save): Remove references to and modifications of max-specpdl-size.
Diffstat (limited to 'doc/lispref/eval.texi')
-rw-r--r--doc/lispref/eval.texi5
1 files changed, 1 insertions, 4 deletions
diff --git a/doc/lispref/eval.texi b/doc/lispref/eval.texi
index 6e29a5403f1..11c321b32ed 100644
--- a/doc/lispref/eval.texi
+++ b/doc/lispref/eval.texi
@@ -830,7 +830,7 @@ This variable defines the maximum depth allowed in calls to @code{eval},
830@code{apply}, and @code{funcall} before an error is signaled (with error 830@code{apply}, and @code{funcall} before an error is signaled (with error
831message @code{"Lisp nesting exceeds max-lisp-eval-depth"}). 831message @code{"Lisp nesting exceeds max-lisp-eval-depth"}).
832 832
833This limit, with the associated error when it is exceeded, is one way 833This limit, with the associated error when it is exceeded, is how
834Emacs Lisp avoids infinite recursion on an ill-defined function. If 834Emacs Lisp avoids infinite recursion on an ill-defined function. If
835you increase the value of @code{max-lisp-eval-depth} too much, such 835you increase the value of @code{max-lisp-eval-depth} too much, such
836code can cause stack overflow instead. On some systems, this overflow 836code can cause stack overflow instead. On some systems, this overflow
@@ -851,9 +851,6 @@ less than 100, Lisp will reset it to 100 if the given value is
851reached. Entry to the Lisp debugger increases the value, if there is 851reached. Entry to the Lisp debugger increases the value, if there is
852little room left, to make sure the debugger itself has room to 852little room left, to make sure the debugger itself has room to
853execute. 853execute.
854
855@code{max-specpdl-size} provides another limit on nesting.
856@xref{Definition of max-specpdl-size,, Local Variables}.
857@end defopt 854@end defopt
858 855
859@defvar values 856@defvar values