aboutsummaryrefslogtreecommitdiff
path: root/src/interp/database.boot
diff options
context:
space:
mode:
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