aboutsummaryrefslogtreecommitdiff
path: root/src/algebra
diff options
context:
space:
mode:
Diffstat (limited to 'src/algebra')
-rw-r--r--src/algebra/mkfunc.spad.pamphlet6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/algebra/mkfunc.spad.pamphlet b/src/algebra/mkfunc.spad.pamphlet
index a66a0fb6..4b629b78 100644
--- a/src/algebra/mkfunc.spad.pamphlet
+++ b/src/algebra/mkfunc.spad.pamphlet
@@ -393,6 +393,9 @@ MakeFloatCompiledFunction(S): Exports == Implementation where
streq?(s, st) == s = convert(st::Symbol)@INF
gencode(s, l) == convert(concat(convert(s::Symbol)@INF, l))@INF
streqlist?(s, l) == member?(string symbol s, l)
+ quote(f: INF): INF == gencode("QUOTE",[f])
+ coerceToSF(f: INF): INF ==
+ gencode("COERCE",[f, quote getVMType(SF)$Foreign(Builtin)])
mkPretend form ==
convert([convert("pretend"::Symbol), form, lsf]$List(INF))@INF
@@ -408,7 +411,8 @@ MakeFloatCompiledFunction(S): Exports == Implementation where
mkDefun(s, lv) ==
name := convert(new()$Symbol)@INF
fun := convert([convert("DEFUN"::Symbol), name, convert lv,
- gencode("DECLARE",[gencode("FLOAT",lv)]),mkCTOR s]$List(INF))@INF
+ gencode("DECLARE",[gencode("FLOAT",lv)]),
+ coerceToSF mkCTOR s]$List(INF))@INF
EVAL(fun)$Lisp
if _$compileDontDefineFunctions$Lisp then COMPILE(name)$Lisp
name