diff options
-rw-r--r-- | src/ChangeLog | 6 | ||||
-rw-r--r-- | src/interp/functor.boot | 23 |
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) == |