diff options
author | dos-reis <gdr@axiomatics.org> | 2009-06-12 17:35:50 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2009-06-12 17:35:50 +0000 |
commit | 9e86e73fe1aa9115233952ffbf8188b169677d6e (patch) | |
tree | 25c19d0732c1af479e9442c7476d122c00f4920c /src/interp/nrunfast.boot | |
parent | 9e07dcd91c45bf8b22d932321f5c97e931ffe8ac (diff) | |
download | open-axiom-9e86e73fe1aa9115233952ffbf8188b169677d6e.tar.gz |
Support retract of domains.
* interp/i-funsel.boot (findFunctionInDomain): Don't look into
categories.
* interp/i-coerce.boot (retract): Retract domain objects too.
(retract1): Do it.
(coerceInteractive): Likewise.
* interp/nrunfast.boot (getDomainCategoriesVector): New.
(getDomainCompleteCategories): Likewise.
Diffstat (limited to 'src/interp/nrunfast.boot')
-rw-r--r-- | src/interp/nrunfast.boot | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/interp/nrunfast.boot b/src/interp/nrunfast.boot index e7dc7a19..ff6c517c 100644 --- a/src/interp/nrunfast.boot +++ b/src/interp/nrunfast.boot @@ -62,6 +62,20 @@ isNewWorldDomain domain == getDomainByteVector dom == CDDR dom.4 + +++ Return the sequence of categories `dom' belongs to, as a vector +++ of lazy category forms. +getDomainCategoriesVector dom == + second(dom.4) + +++ Same as getDomainCategoriesVector except that we return a list of +++ input forms for the categories. +getDomainCompleteCategories dom == + vec := getDomainCategoriesVector dom + cats := nil + for i in 0..MAXINDEX vec repeat + cats := [newExpandLocalType(vec.i,dom,dom), :cats] + nreverse cats getOpCode(op,vec,max) == --search Op vector for "op" returning code if found, nil otherwise @@ -671,7 +685,7 @@ lazyMatchAssocV1(x,vec,domain) == --old style slot4 -- predvec := domain.3 -- testBitVector(predvec,predIndex) -- false - + --======================================================= -- Utility Functions --======================================================= |