summaryrefslogtreecommitdiffstats
path: root/stdlib/compiler.tl
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2025-06-19 21:40:48 -0700
committerKaz Kylheku <kaz@kylheku.com>2025-06-19 21:40:48 -0700
commit2e88bbd9618079a4bb2cd539a2c9856a1ef13b39 (patch)
tree2bbceeff6b165424ead1b1f4092c10f6c085cc11 /stdlib/compiler.tl
parent53f92425856734cb680525f3d4ede2a7b3e3dde3 (diff)
downloadtxr-2e88bbd9618079a4bb2cd539a2c9856a1ef13b39.tar.gz
txr-2e88bbd9618079a4bb2cd539a2c9856a1ef13b39.tar.bz2
txr-2e88bbd9618079a4bb2cd539a2c9856a1ef13b39.zip
compiler: disable tail position in top level.
* stdlib/compiler.tl (compile-in-toplevel): We need to disable the tail position for compilations that take place in a top-level environment, like load-time forms.
Diffstat (limited to 'stdlib/compiler.tl')
-rw-r--r--stdlib/compiler.tl3
1 files changed, 2 insertions, 1 deletions
diff --git a/stdlib/compiler.tl b/stdlib/compiler.tl
index 6a49551a..0ad03aea 100644
--- a/stdlib/compiler.tl
+++ b/stdlib/compiler.tl
@@ -252,7 +252,8 @@
(defmacro compile-in-toplevel (me . body)
(with-gensyms (saved-tregs saved-treg-cntr)
^(let* ((,saved-tregs (qref ,me tregs))
- (,saved-treg-cntr (qref ,me treg-cntr)))
+ (,saved-treg-cntr (qref ,me treg-cntr))
+ (*tail-pos* nil))
(unwind-protect
(progn
(set (qref ,me tregs) nil