summaryrefslogtreecommitdiffstats
path: root/stdlib/compiler.tl
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/compiler.tl')
-rw-r--r--stdlib/compiler.tl38
1 files changed, 1 insertions, 37 deletions
diff --git a/stdlib/compiler.tl b/stdlib/compiler.tl
index c30ebbd6..05ed2a80 100644
--- a/stdlib/compiler.tl
+++ b/stdlib/compiler.tl
@@ -26,6 +26,7 @@
(load "vm-param")
(load "optimize")
+(load-for (usr:var %const-foldable% "constfun"))
(compile-only
(load-for (struct sys:param-parser-base "param")))
@@ -265,43 +266,6 @@
(defvarl %bin-op% (relate %nary-ops% %bin-ops% nil))
-(defvarl %const-foldable-funs%
- '(+ - * / sum prod abs trunc mod zerop nzerop plusp minusp evenp oddp
- > < >= <= = /= wrap wrap* expt exptmod isqrt square gcd lcm floor ceil
- round trunc-rem floor-rem ceil-rem round-rem sin cos tan asin acos atan
- atan2 sinh cosh tanh asinh acosh atanh log log10 log2 exp sqrt
- logand logior logxor logtest lognot logtrunc sign-extend ash bit mask
- width logcount bitset cum-norm-dist inv-cum-norm n-choose-k n-perm-k
- 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 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 cons first rest sub-list identity typeof atom null false true have
- consp listp endp proper-listp length-list second third fourth fifth
- sixth seventh eighth ninth tenth conses ldiff nthcdr nth tailp
- memq memql memqual rmemq rmemql rmemqual countq countql countqual
- posq posql posqual rposq rposql rposqual eq eql equal meq meql mequal
- neq neql nequal max min clamp bracket take drop uniq if or and progn
- prog1 prog2 nilf tf tostring tostringp display-width sys:fmt-simple
- sys:fmt-flex join join-with sys:fmt-join packagep
- symbolp keywordp bindable stringp length-str
- coded-length cmp-str string-lt str= str< str> str<= str>= int-str
- flo-str num-str int-flo flo-int tofloat toint tointz less greater
- lequal gequal chrp chr-isalnum chr-isalnum chr-isalpha chr-isascii
- chr-iscntrl chr-isdigit chr-digit chr-isgraph chr-islower chr-isprint
- chr-ispunct chr-isspace chr-isblank chr-isunisp chr-isupper chr-isxdigit
- chr-xdigit chr-toupper chr-tolower num-chr int-chr chr-num chr-int
- chr-str span-str compl-span-str break-str vectorp length-vec size-vec
- assq assql assoc rassq rassql rassoc prop memp length len empty ref
- rangep from to in-range in-range* nullify))
-
-(defvarl %const-foldable% (hash-list %const-foldable-funs% :eq-based))
-
(defvarl %effect-free-funs%
'(append append* revappend list list* zip interpose copy-list reverse
flatten flatten* flatcar flatcar* tuples remq remql remqual