aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog6
-rw-r--r--src/interp/functor.boot23
2 files changed, 13 insertions, 16 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index af9789e4..9b0cc8cc 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,11 @@
2011-11-23 Gabriel Dos Reis <gdr@cs.tamu.edu>
+ * interp/functor.boot (findOperatorImplementations): Rename from
+ LookUpSigSlots. Tidy. Adjust caller.
+ (makeMissingFunctionEntry): Remove as unused.
+
+2011-11-23 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
* interp/define.boot ($CheckVectorList): Remove.
(compDefineFunctor1): Do not bind it.
(reportOnFunctorCompilation): Do not call displayMissingFunctions.
diff --git a/src/interp/functor.boot b/src/interp/functor.boot
index 14f79150..35737a60 100644
--- a/src/interp/functor.boot
+++ b/src/interp/functor.boot
@@ -519,9 +519,15 @@ TryGDC cond ==
cond
cond
+findOperatorImplementations opsig ==
+ if $insideCategoryPackageIfTrue then
+ opsig := substitute('$,second($functorForm),opsig)
+ removeDuplicates [u.mapImpl for u in $lisplibOperationAlist |
+ opsig = u.mapOpsig and u.mapImpl isnt [.,.,nil]]
+
SetFunctionSlots(sig,body,flag,mode) == --mode is either "original" or "adding"
null body => return nil
- for catImplem in LookUpSigSlots(sig,categoryExports $domainShell) repeat
+ for catImplem in findOperatorImplementations sig repeat
catImplem is [q,.,index] and q in '(ELT CONST) =>
if q = 'CONST and body is ['CONS,a,b] then
body := ['CONS,'IDENTITY,['FUNCALL,a,b]]
@@ -541,21 +547,6 @@ SetFunctionSlots(sig,body,flag,mode) == --mode is either "original" or "adding"
body is ['%store,:.] => body
nil
-LookUpSigSlots(sig,siglist) ==
---+ must kill any implementations below of the form (ELT $ NIL)
- if $insideCategoryPackageIfTrue then
- sig := substitute('$,second($functorForm),sig)
- siglist := $lisplibOperationAlist
- removeDuplicates [u.mapImpl for u in siglist |
- sig = u.mapOpsig and u.mapImpl isnt [.,.,nil]]
-
-makeMissingFunctionEntry(alist,i) ==
- tran applySubst(alist,$SetFunctions.i) where
- tran x ==
- x is ["HasCategory",a,['QUOTE,b]] => ["has",a,b]
- x is [op,:l] and op in '(AND OR NOT) => [op,:[tran y for y in l]]
- x
-
--% Under what conditions may views exist?
InvestigateConditions(catvecListMaker,env) ==