diff options
author | dos-reis <gdr@axiomatics.org> | 2008-10-06 11:03:50 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2008-10-06 11:03:50 +0000 |
commit | 159814d5cc62f3367369a7309fdf32efd21dbb13 (patch) | |
tree | 7323044fe02e27b1a0c189a67cbe27d9bdfd9c91 /src/interp/define.boot | |
parent | b54e2a3ac1d94c545db197bb27705cded2f692f5 (diff) | |
download | open-axiom-159814d5cc62f3367369a7309fdf32efd21dbb13.tar.gz |
* interp/functor.boot (DescendCode): Update capsule directory only
for non-default implementations.
* interp/c-util.boot ($capsuleDirectory): New.
(clearCapsuleDirectory): Likewise.
(getCapsuleDirectoryEntry): Likewise.
(updateCapsuleDirectory): Likewise.
(foldSpadcall): Likewise.
(foldExportedFunctionReferences): Likewise.
* interp/define.boot (compFunctorBody): Use it.
Diffstat (limited to 'src/interp/define.boot')
-rw-r--r-- | src/interp/define.boot | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/interp/define.boot b/src/interp/define.boot index 7dc8a79a..a2af1e8a 100644 --- a/src/interp/define.boot +++ b/src/interp/define.boot @@ -663,10 +663,15 @@ disallowNilAttribute x == compFunctorBody(body,m,e,parForm) == $bootStrapMode = true => [bootStrapError($functorForm, _/EDITFILE),m,e] - $capsuleFunctionStack := nil -- start collecting capsule functions. + clearCapsuleDirectory() -- start collecting capsule functions. T:= compOrCroak(body,m,e) - COMP $capsuleFunctionStack - $capsuleFunctionStack := nil -- release storage. + $capsuleFunctionStack := nreverse $capsuleFunctionStack + -- ??? Don't resolve default definitions, yet. + if $insideCategoryPackageIfTrue then + COMP $capsuleFunctionStack + else + COMP foldExportedFunctionReferences $capsuleFunctionStack + clearCapsuleDirectory() -- release storage. body is [op,:.] and MEMQ(op,'(add CAPSULE)) => T $NRTaddForm := body is ["SubDomain",domainForm,predicate] => domainForm |