aboutsummaryrefslogtreecommitdiff
path: root/src/interp/define.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-11-26 23:22:40 +0000
committerdos-reis <gdr@axiomatics.org>2011-11-26 23:22:40 +0000
commit437f814f275629d002bac24602266deb4b2e2616 (patch)
tree92b7f43d2ad754e352289ee2c3f4a9715b38d0a5 /src/interp/define.boot
parentb91436e16c46bb3c8b0fa22d4f81eb8743f6cbd7 (diff)
downloadopen-axiom-437f814f275629d002bac24602266deb4b2e2616.tar.gz
* interp/define.boot (assignCapsuleFunctionSlot): Do not call
NRTisExported?. Determine operation kind locally. Do not store implement slot on the used entity list. * interp/nruncomp.boot (genDeltaEntry): Likewise. (deltaTran): Simplify. (NRTisExported?): Remove. (vectorLocation): Adjust.
Diffstat (limited to 'src/interp/define.boot')
-rw-r--r--src/interp/define.boot12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/interp/define.boot b/src/interp/define.boot
index 8204957c..600195a1 100644
--- a/src/interp/define.boot
+++ b/src/interp/define.boot
@@ -1697,16 +1697,16 @@ orderByDependency(vl,dl) ==
++ Subroutine of compDefineCapsuleFunction.
assignCapsuleFunctionSlot(db,op,sig) ==
- opSig := [op,sig]
- [.,.,implementation] := NRTisExported? opSig or return nil
- --if opSig is not exported, it is local and need not be assigned
+ kind := or/[u.mapKind for u in categoryExports $domainShell
+ | symbolEq?(op,u.mapOperation) and sig = u.mapSignature]
+ kind = nil => nil -- op is local and need not be assigned
if $insideCategoryPackageIfTrue then
sig := substitute('$,second dbConstructorForm db,sig)
sig := [getLocalIndex(db,x) for x in sig]
- opModemapPair := [op,['_$,:sig],["T",implementation]]
- n := dbEntitySlot(db,opModemapPair) => n --already there
+ desc := [op,'$,:sig,kind]
+ n := dbEntitySlot(db,desc) => n --already there
n := dbEntityCount db + $NRTbase
- dbUsedEntities(db) := [[opModemapPair],:dbUsedEntities db]
+ dbUsedEntities(db) := [[desc],:dbUsedEntities db]
dbEntityCount(db) := dbEntityCount db + 1
n