diff options
author | dos-reis <gdr@axiomatics.org> | 2008-12-19 22:14:21 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2008-12-19 22:14:21 +0000 |
commit | ba161fefd4ab91c4908e7c7da8f6d84373f8e7ce (patch) | |
tree | a24aae76cc98229502e4b143804ad5ae8f2dd9a9 /src/interp/compiler.boot | |
parent | a03f68879f697998e2a3f41029a2034dc76767e0 (diff) | |
download | open-axiom-ba161fefd4ab91c4908e7c7da8f6d84373f8e7ce.tar.gz |
* interp/define.boot (insertViewMorphisms): New.
(checkRepresentation): Rename from maybeInsertViewMorphisms. Tidy.
(compDefineFunctor1): Tidy.
(doIt): Insert view morphisms if appropriate.
Diffstat (limited to 'src/interp/compiler.boot')
-rw-r--r-- | src/interp/compiler.boot | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot index 49d99f9a..6885ba74 100644 --- a/src/interp/compiler.boot +++ b/src/interp/compiler.boot @@ -220,12 +220,14 @@ applyMapping([op,:argl],m,e,ml) == T() == [.,.,e]:= comp(x,m',e) or return "failed" if argl'="failed" then return nil form:= - atom op and not(op in $formalArgList) and not get(op,"value",e) => + atom op and not(op in $formalArgList) and null (u := get(op,"value",e)) => nprefix := $prefix or -- following needed for referencing local funs at capsule level getAbbreviation($op,#rest $form) [op',:argl',"$"] where op':= INTERN STRCONC(encodeItem nprefix,";",encodeItem op) + -- Compiler synthetized operators are inline. + u ^= nil and u.expr is ["XLAM",:.] => ["call",u.expr,:argl'] ['call,['applyFun,op],:argl'] pairlis:= [[v,:a] for a in argl' for v in $FormalMapVariableList] convert([form,SUBLIS(pairlis,first ml),e],m) |