aboutsummaryrefslogtreecommitdiff
path: root/src/interp/database.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2009-02-09 03:44:51 +0000
committerdos-reis <gdr@axiomatics.org>2009-02-09 03:44:51 +0000
commiteae3a083200c3d0d33851fac82cd9ef8a134d0c9 (patch)
tree7d8cc30a017fb4a72e999480e87d4ee54e559926 /src/interp/database.boot
parent6a7db2f84b6f8b2a1729092cc5259c576aff0ded (diff)
downloadopen-axiom-eae3a083200c3d0d33851fac82cd9ef8a134d0c9.tar.gz
Tidy FunctionDescriptor
Diffstat (limited to 'src/interp/database.boot')
-rw-r--r--src/interp/database.boot12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/interp/database.boot b/src/interp/database.boot
index 31daea4b..8b3b9e1c 100644
--- a/src/interp/database.boot
+++ b/src/interp/database.boot
@@ -678,12 +678,22 @@ markUnique x ==
RPLACD(x,[u,:rest x])
rest x
+
+++ Tail of most function descriptors.
+$FunctionDescriptorTail == '(NIL T ELT)
+
+++ Return the list of overload sets of operations exported by
+++ the constructor `x'. This function differs from
+++ getConstructorOperationsFromDB in that it uncompresses the
+++ common tail of most function descriptors. That compression
+++ was done when the overload sets were saved in the
+++ operation database.
getOperationAlistFromLisplib x ==
u := getConstructorOperationsFromDB x
-- u := removeZeroOneDestructively u
null u => u -- this can happen for Object
CAAR u = '_$unique => rest u
- f:= addConsDB '(NIL T ELT)
+ f:= addConsDB $FunctionDescriptorTail
for [op,:sigList] in u repeat
for items in tails sigList repeat
[sig,:r] := first items