summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-02-19 21:36:04 -0800
committerKaz Kylheku <kaz@kylheku.com>2021-02-19 21:36:04 -0800
commit0242d633b50ae4883a46cda2bc8edd934cac8672 (patch)
tree2fc06dd24fe9e3226ce734f166464c59cec05560
parent7cd3d92e972b10c4fb5d67079cb911c0aef8e5b4 (diff)
downloadtxr-0242d633b50ae4883a46cda2bc8edd934cac8672.tar.gz
txr-0242d633b50ae4883a46cda2bc8edd934cac8672.tar.bz2
txr-0242d633b50ae4883a46cda2bc8edd934cac8672.zip
compiler: constant-fold all cadr cons accessors.
* share/txr/stdlib/compiler.tl (%const-foldable-funs%): Add all of the cadr, caddr, and other functions. Take out first and second; these will be later added together with other things that are being registered in eval.c.
-rw-r--r--share/txr/stdlib/compiler.tl8
1 files changed, 7 insertions, 1 deletions
diff --git a/share/txr/stdlib/compiler.tl b/share/txr/stdlib/compiler.tl
index f1bbf594..fb1dfdce 100644
--- a/share/txr/stdlib/compiler.tl
+++ b/share/txr/stdlib/compiler.tl
@@ -268,7 +268,13 @@
fixnump bignump floatp integerp numberp signum bignum-len divides sys:bits
digpow digits poly rpoly b< b> b<= b=> b= b+ b- b* b/ neg
pred ppred ppred pppred succ ssucc ssucc sssucc
- car cdr cadr caddr first second))
+ car cdr caar cadr cdar cddr caaar caadr cadar caddr cdaar cdadr cddar cdddr
+ caaaar caaadr caadar caaddr cadaar cadadr caddar cadddr cdaaar cdaadr
+ cdadar cdaddr cddaar cddadr cdddar cddddr caaaaar caaaadr caaadar caaaddr
+ caadaar caadadr caaddar caadddr cadaaar cadaadr cadadar cadaddr caddaar
+ caddadr cadddar caddddr cdaaaar cdaaadr cdaadar cdaaddr cdadaar cdadadr
+ cdaddar cdadddr cddaaar cddaadr cddadar cddaddr cdddaar cdddadr cddddar
+ cdddddr))
(defvarl %const-foldable% (hash-list %const-foldable-funs% :eq-based))