From 159814d5cc62f3367369a7309fdf32efd21dbb13 Mon Sep 17 00:00:00 2001 From: dos-reis Date: Mon, 6 Oct 2008 11:03:50 +0000 Subject: * 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. --- src/interp/define.boot | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/interp/define.boot') 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 -- cgit v1.2.3