diff options
author | dos-reis <gdr@axiomatics.org> | 2011-09-11 21:16:16 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2011-09-11 21:16:16 +0000 |
commit | 82b165809b7b67864b2ed9bc8217a2a197f58621 (patch) | |
tree | 72e0709c43ae8c844b85c1346870229ea5426860 /src/interp/lisp-backend.boot | |
parent | c868015d912449eb551ff379031b4fe4b3fab255 (diff) | |
download | open-axiom-82b165809b7b67864b2ed9bc8217a2a197f58621.tar.gz |
* interp/lisplib.boot (isFunctor): Noe recognize Mapping as a functor.
* interp/g-opt.boot (doInlineCall): Tidy one more time.
($VMsideEffectFreeOperators): Move %aplly to $simpleVMoperators.
(optLET): Remove as unused.
* interp/lisp-backend.boot (expandApply): New. Register as
expander for %apply forms.
* interp/define.boot (getXmode): New.
(displayMissingFunctions): Use it instead of getmode.
(compDefineCapsuleFunction): Likewise.
(addDomain): Likewise.
(getSignature): Likewise.
(compile): Likewise.
(compJoin): Likewise.
* interp/compiler.boot (comp3): Likewise.
(compWithMappingMode): Likewise.
(applyMapping): Generate %apply form.
(compApplication): Likewise.
(autoCoerceByModemap): Likewise.
(extractCodeAndConstructTriple): Handle %apply forms.
(setqSingle): For domain variables, put corresponding macro forms
in the environment.
* algebra/ore.spad.pamphlet (Automorphism): Define Rep as a constant.
Adjust; include explicit uses of rep and per.
Diffstat (limited to 'src/interp/lisp-backend.boot')
-rw-r--r-- | src/interp/lisp-backend.boot | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/interp/lisp-backend.boot b/src/interp/lisp-backend.boot index 6354a5cf..79200c61 100644 --- a/src/interp/lisp-backend.boot +++ b/src/interp/lisp-backend.boot @@ -461,6 +461,9 @@ expandTry ['%try,expr,handlers,cleanup] == cleanup = nil => tryBlock ['UNWIND_-PROTECT,tryBlock,:expandToVMForm rest cleanup] +expandApply ['%apply,op,:args] == + ['SPADCALL,:args,op] + ++ Opcodes with direct mapping to target operations. for x in [ -- Boolean constants @@ -701,7 +704,8 @@ for x in [ ['%store, :function expandStore], ['%dynval, :function expandDynval], ['%throw, :function expandThrow], - ['%try, :function expandTry] + ['%try, :function expandTry], + ['%apply, :function expandApply] ] repeat property(first x,'%Expander) := rest x ++ Return the expander of a middle-end opcode, or nil if there is none. |