diff options
author | dos-reis <gdr@axiomatics.org> | 2011-11-26 10:02:08 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2011-11-26 10:02:08 +0000 |
commit | fee9f94ea1e25df6b75df2e195500e1e97c574be (patch) | |
tree | 2753f9d0a7f72c45b7c8b83578274a543042cc60 /src/interp/define.boot | |
parent | 7b2ac81092d360b63ba6ff360aae7b2f8570133c (diff) | |
download | open-axiom-fee9f94ea1e25df6b75df2e195500e1e97c574be.tar.gz |
* interp/c-util.boot (updateCapsuleDirectory): Simplify.
* interp/define.boot (compDefineCapsuleFunction): Call it from here.
* interp/functor.boot (DescendCode): Not here.
Diffstat (limited to 'src/interp/define.boot')
-rw-r--r-- | src/interp/define.boot | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/interp/define.boot b/src/interp/define.boot index 644f71dd..abc12e16 100644 --- a/src/interp/define.boot +++ b/src/interp/define.boot @@ -1848,13 +1848,14 @@ compDefineCapsuleFunction(db,df is ['DEF,form,signature,body], formattedSig := formatUnabbreviatedSig signature sayBrightly ['" compiling ",localOrExported, :bright $op,'": ",:formattedSig] - - noteCapsuleFunctionDefinition($op,signature,makePredicate $predl) + + pred := makePredicate $predl + noteCapsuleFunctionDefinition($op,signature,pred) T := CATCH('compCapsuleBody, compOrCroak(body,rettype,e)) or [$ClearBodyToken,rettype,e] - assignCapsuleFunctionSlot(db,$op,signature) -- A THROW to the above CATCH occurs if too many semantic errors occur -- see stackSemanticError + n := assignCapsuleFunctionSlot(db,$op,signature) -- Build a name for the implementation. op' := localOperation?($op,e) => @@ -1863,6 +1864,8 @@ compDefineCapsuleFunction(db,df is ['DEF,form,signature,body], userError ['"%b",$op,'"%d",'" is local and exported"] makeSymbol strconc(encodeItem $prefix,'";",encodeItem $op) encodeFunctionName(db,$op,signature,'";",$suffix) + if n ~= nil and not $insideCategoryPackageIfTrue then + updateCapsuleDirectory([n,:op'],pred) -- Let the backend know about this function's type if $optProclaim then proclaimCapsuleFunction(op',signature) |