aboutsummaryrefslogtreecommitdiff
path: root/src/interp/define.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-08-25 15:59:44 +0000
committerdos-reis <gdr@axiomatics.org>2011-08-25 15:59:44 +0000
commitcd5a921db34f465d1dc8fbd2061d9077f64434cf (patch)
treeb6dc636c5fa79035999de79dbb12c2f31c358547 /src/interp/define.boot
parentc25dfacda02a40b2055328ba5898086c043e5427 (diff)
downloadopen-axiom-cd5a921db34f465d1dc8fbd2061d9077f64434cf.tar.gz
* interp/hashcode.boot: Remove.
*interp/interop.boot: Move OpenAxiom relevant code to define.boot and nrunfast.boot. Remove.
Diffstat (limited to 'src/interp/define.boot')
-rw-r--r--src/interp/define.boot14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/interp/define.boot b/src/interp/define.boot
index 048efb2f..f4675b08 100644
--- a/src/interp/define.boot
+++ b/src/interp/define.boot
@@ -466,6 +466,20 @@ makeCompactSigCode sig == [fn for x in sig] where
--=======================================================================
-- Generate Slot 4 Constructor Vectors
--=======================================================================
+depthAssocList u ==
+ u := removeSymbol(u,'DomainSubstitutionMacro) --hack by RDJ 8/90
+ removeDuplicates ("append"/[depthAssoc(y) for y in u])
+
+depthAssoc x ==
+ y := tableValue($depthAssocCache,x) => y
+ x is ['Join,:u] or (u := getCatAncestors x) =>
+ v := depthAssocList u
+ tableValue($depthAssocCache,x) := [[x,:n],:v]
+ where n() == 1 + "MAX"/[rest y for y in v]
+ tableValue($depthAssocCache,x) := [[x,:0]]
+
+getCatAncestors x == [CAAR y for y in parentsOf opOf x]
+
NRTmakeCategoryAlist() ==
$depthAssocCache: local := hashTable 'EQ
$catAncestorAlist: local := nil