aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/algebra/mkfunc.spad.pamphlet6
2 files changed, 10 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 7d6020c9..1c630fbb 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2009-07-06 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ Fix SF/2815437
+ * algebra/mkfunc.spad.pamphlet:
+
2009-07-06 Gabriel Dos Reis <gdr@cse.tamu.edu>
* interp/compiler.boot (localReferenceIfThere): Tidy.
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