mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 18:40:39 -08:00
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.
114 lines
3.1 KiB
Makefile
114 lines
3.1 KiB
Makefile
### @configure_input@
|
|
|
|
## Copyright (C) 2013-2022 Free Software Foundation, Inc.
|
|
|
|
## This file is part of GNU Emacs.
|
|
|
|
## GNU Emacs is free software: you can redistribute it and/or modify
|
|
## it under the terms of the GNU General Public License as published by
|
|
## the Free Software Foundation, either version 3 of the License, or
|
|
## (at your option) any later version.
|
|
|
|
## GNU Emacs is distributed in the hope that it will be useful,
|
|
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
## GNU General Public License for more details.
|
|
|
|
## You should have received a copy of the GNU General Public License
|
|
## along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
### Commentary:
|
|
|
|
## This directory contains grammar files in Bison and Wisent,
|
|
## used to generate the parser data in the lisp/cedet directory.
|
|
|
|
SHELL = @SHELL@
|
|
|
|
srcdir = @srcdir@
|
|
top_srcdir = @top_srcdir@
|
|
top_builddir = @top_builddir@
|
|
|
|
-include ${top_builddir}/src/verbose.mk
|
|
|
|
# Prevent any settings in the user environment causing problems.
|
|
unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH
|
|
|
|
EMACS = ${top_builddir}/src/emacs
|
|
emacs = "${EMACS}" -batch --no-site-file --no-site-lisp \
|
|
--eval '(setq load-prefer-newer t)'
|
|
|
|
make_bovine = ${emacs} -l semantic/bovine/grammar -f bovine-batch-make-parser
|
|
make_wisent = ${emacs} -l semantic/wisent/grammar -f wisent-batch-make-parser
|
|
|
|
cedetdir = ${top_srcdir}/lisp/cedet
|
|
bovinedir = ${cedetdir}/semantic/bovine
|
|
wisentdir = ${cedetdir}/semantic/wisent
|
|
|
|
grammar_bovine = ${bovinedir}/grammar.el
|
|
grammar_wisent = ${wisentdir}/grammar.el
|
|
|
|
BOVINE = \
|
|
${bovinedir}/c-by.el \
|
|
${bovinedir}/make-by.el \
|
|
${bovinedir}/scm-by.el
|
|
|
|
WISENT = \
|
|
${cedetdir}/semantic/grammar-wy.el \
|
|
${wisentdir}/javat-wy.el \
|
|
${wisentdir}/js-wy.el \
|
|
${wisentdir}/python-wy.el \
|
|
${cedetdir}/srecode/srt-wy.el
|
|
|
|
ALL = ${BOVINE} ${WISENT}
|
|
|
|
.PHONY: all bovine wisent
|
|
|
|
all: ${ALL}
|
|
|
|
bovine: ${BOVINE}
|
|
|
|
wisent: ${WISENT}
|
|
|
|
## c-by.el, make-by.el.
|
|
${bovinedir}/%-by.el: ${srcdir}/%.by ${grammar_bovine}
|
|
$(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@"
|
|
$(AM_V_at)${make_bovine} -o "$@" $<
|
|
|
|
${bovinedir}/scm-by.el: ${srcdir}/scheme.by ${grammar_bovine}
|
|
$(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@"
|
|
$(AM_V_at)${make_bovine} -o "$@" $<
|
|
|
|
## grammar-wy.el
|
|
${cedetdir}/semantic/%-wy.el: ${srcdir}/%.wy ${grammar_wisent}
|
|
$(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@"
|
|
$(AM_V_at)${make_wisent} -o "$@" $<
|
|
|
|
## js-wy.el, python-wy.el
|
|
${wisentdir}/%-wy.el: ${srcdir}/%.wy ${grammar_wisent}
|
|
$(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@"
|
|
$(AM_V_at)${make_wisent} -o "$@" $<
|
|
|
|
${wisentdir}/javat-wy.el: ${srcdir}/java-tags.wy ${grammar_wisent}
|
|
$(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@"
|
|
$(AM_V_at)${make_wisent} -o "$@" $<
|
|
|
|
${cedetdir}/srecode/srt-wy.el: ${srcdir}/srecode-template.wy ${grammar_wisent}
|
|
$(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@"
|
|
$(AM_V_at)${make_wisent} -o "$@" $<
|
|
|
|
.PHONY: distclean bootstrap-clean maintainer-clean gen-clean
|
|
|
|
distclean:
|
|
rm -f Makefile
|
|
|
|
## IMO this should run gen-clean.
|
|
bootstrap-clean:
|
|
|
|
gen-clean:
|
|
rm -f ${ALL}
|
|
|
|
maintainer-clean: gen-clean distclean
|
|
|
|
|
|
|
|
# Makefile.in ends here
|