diff options
author | dos-reis <gdr@axiomatics.org> | 2010-07-18 03:59:54 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2010-07-18 03:59:54 +0000 |
commit | 6f895d0aed70b3a0ff95f19a5f3e4472c65bfd0d (patch) | |
tree | b805dc5dc54812fe61efb039f15087a9d9b6c5be /src/interp/define.boot | |
parent | 667ec69af3090bccd576e23e56a229168f8733b7 (diff) | |
download | open-axiom-6f895d0aed70b3a0ff95f19a5f3e4472c65bfd0d.tar.gz |
More cleanups
Diffstat (limited to 'src/interp/define.boot')
-rw-r--r-- | src/interp/define.boot | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/interp/define.boot b/src/interp/define.boot index ca7d8386..79b0c580 100644 --- a/src/interp/define.boot +++ b/src/interp/define.boot @@ -1348,8 +1348,17 @@ bootStrapError(functorForm,sourceFile) == ''%b,MKQ namestring sourceFile,''%d,'"needs to be compiled"]]]] registerInlinableDomain(x,e) == - macroExpand(x,e) is [ctor,:.] and constructor? ctor => - nominateForInlining ctor + x := macroExpand(x,e) + x is [ctor,:.] => + constructor? ctor => nominateForInlining ctor + ctor = 'Record or ctor = 'Union => + x.args is [['_:,:.],:.] => + for [.,.,t] in x.args repeat + registerInlinableDomain(t,e) + for t in x.args repeat + registerInlinableDomain(t,e) + nil + nil compAdd(['add,$addForm,capsule],m,e) == $bootStrapMode = true => @@ -1484,7 +1493,7 @@ doIt(item,$predl) == --$Representation bound by compDefineFunctor, used in compNoStacking $Representation := getRepresentation $e if $optimizeRep then - nominateForInlining $Representation + registerInlinableDomain($Representation,$e) code is ["%LET",:.] => item.op := "setShellEntry" rhsCode := rhs' |