diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/algebra/mkfunc.spad.pamphlet | 6 |
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 |