summaryrefslogtreecommitdiff
path: root/lisp/Makefile.in
diff options
context:
space:
mode:
authorAlan Mackenzie <acm@muc.de>2022-04-22 19:11:31 +0000
committerAlan Mackenzie <acm@muc.de>2022-04-22 19:11:31 +0000
commit0b9b363dabd70032a288e14333896022caa2d252 (patch)
tree851501a770052112a5a88886caa68ea00e9e407b /lisp/Makefile.in
parent5b23c9942ae057c886e68edb8c4bf09bf7e8eda9 (diff)
downloademacs-0b9b363dabd70032a288e14333896022caa2d252.tar.gz
Byte compiler: Prevent special forms' symbols being replaced by bare symbols
These are symbols with position from source code, which should not be replaced by bare symbols in, e.g., optimization functions. * lisp/Makefile.in: (BYTE_COMPILE_FLAGS, compile-first case): Set max-specpdl-size to 5000 for the benefit of lisp/emacs-lisp/comp.el. * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker) (byte-optimize--rename-var, byte-optimize-if, byte-optimize-letX) * lisp/emacs-lisp/bytecomp.el (byte-compile-recurse-toplevel) (byte-compile-lambda) * lisp/emacs-lisp/cconv.el (cconv-convert) * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Preserve, e.g., (car form) in the byte compiler, when this form's car is a symbol with position of a special form, rather than replacing the symbol with a bare symbol, e.g. 'cond.
Diffstat (limited to 'lisp/Makefile.in')
-rw-r--r--lisp/Makefile.in4
1 files changed, 3 insertions, 1 deletions
diff --git a/lisp/Makefile.in b/lisp/Makefile.in
index 308407a8bf1..fabf6ed55e1 100644
--- a/lisp/Makefile.in
+++ b/lisp/Makefile.in
@@ -78,7 +78,9 @@ AUTOGENEL = ${loaddefs} ${srcdir}/cus-load.el ${srcdir}/finder-inf.el \
BYTE_COMPILE_FLAGS = \
--eval '(setq load-prefer-newer t)' $(BYTE_COMPILE_EXTRA_FLAGS)
# ... but we must prefer .elc files for those in the early bootstrap.
-compile-first: BYTE_COMPILE_FLAGS = $(BYTE_COMPILE_EXTRA_FLAGS)
+# A larger `max-specpdl-size' is needed for emacs-lisp/comp.el.
+compile-first: BYTE_COMPILE_FLAGS = \
+ --eval '(setq max-specpdl-size 5000)' $(BYTE_COMPILE_EXTRA_FLAGS)
# Files to compile before others during a bootstrap. This is done to
# speed up the bootstrap process. They're ordered by size, so we use