summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2018-04-04 23:41:07 -0700
committerKaz Kylheku <kaz@kylheku.com>2018-04-04 23:41:07 -0700
commit999d8e65b03023d1af7b9d5654c4f0477673d112 (patch)
treeba3cc7b3f4142ae4a5db005cbb1ec304ca495ac5 /share
parent3e2af73a078ff12bb847d3f8f61b99d77dc3bf09 (diff)
downloadtxr-999d8e65b03023d1af7b9d5654c4f0477673d112.tar.gz
txr-999d8e65b03023d1af7b9d5654c4f0477673d112.tar.bz2
txr-999d8e65b03023d1af7b9d5654c4f0477673d112.zip
compiler: bugfix: quasilit cannot use append.
append is too generic, and produces nil sometimes. Let's use a custom run-time support function sys:fmt-join. * eval.c (fmt_join): New function. (eval_init): Intern sys:fmt-join. * share/txr/stdlib/compiler.tl (expand-quasi): Generate a sys:fmt-join call to combine the pieces rather than append.
Diffstat (limited to 'share')
-rw-r--r--share/txr/stdlib/compiler.tl2
1 files changed, 1 insertions, 1 deletions
diff --git a/share/txr/stdlib/compiler.tl b/share/txr/stdlib/compiler.tl
index 1926885e..24fa5c2a 100644
--- a/share/txr/stdlib/compiler.tl
+++ b/share/txr/stdlib/compiler.tl
@@ -1097,7 +1097,7 @@
(defun expand-quasi (form)
(let ((qa (expand-quasi-args form)))
- ^(append ,*qa)))
+ ^(sys:fmt-join ,*qa)))
(defun expand-dohash (form)
(mac-param-bind form (op (key-var val-var hash-form : res-form) . body) form