aboutsummaryrefslogtreecommitdiff
path: root/src/interp
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/br-data.boot2
-rw-r--r--src/interp/define.boot14
-rw-r--r--src/interp/lisplib.boot4
3 files changed, 7 insertions, 13 deletions
diff --git a/src/interp/br-data.boot b/src/interp/br-data.boot
index 7de0092d..bc0554a5 100644
--- a/src/interp/br-data.boot
+++ b/src/interp/br-data.boot
@@ -622,7 +622,7 @@ ancestorsRecur(conform,domform,pred,firstTime?) == --called by ancestorsOf
pred = tableValue($done,conform) => nil --skip if already processed
parents :=
firstTime? and ($insideCategoryIfTrue or $insideFunctorIfTrue) =>
- $lisplibParents
+ dbPrincipals constructorDB op
parentsOf op
originalConform :=
firstTime? and ($insideCategoryIfTrue or $insideFunctorIfTrue) => $form
diff --git a/src/interp/define.boot b/src/interp/define.boot
index f5517e3e..ee3236ab 100644
--- a/src/interp/define.boot
+++ b/src/interp/define.boot
@@ -1055,12 +1055,10 @@ compDefineCategory2(form,signature,specialCases,body,m,e,
$domainShell := eval [op',:[MKQ f for f in sargl]]
dbConstructorModemap(constructorDB op') := [[parForm,:parSignature],[true,op']]
$lisplibCategory:= formalBody
+ dbPrincipals(db) := getParentsFor(db,$FormalMapVariableList,$lisplibCategory)
if $LISPLIB then
- $lisplibParents :=
- getParentsFor(db,$FormalMapVariableList,$lisplibCategory)
$lisplibAncestors := computeAncestorsOf($form,nil)
- form':=[op',:sargl]
- augLisplibModemapsFromCategory(form',formalBody,signature')
+ augLisplibModemapsFromCategory([op',:sargl],formalBody,signature')
dbBeingDefined?(db) := false
[fun,$Category,e]
@@ -1421,11 +1419,9 @@ compDefineFunctor1(df is ['DEF,form,signature,nils,body],
-- 5. give operator a 'modemap property
modemap := [[parForm,:parSignature],[true,op']]
dbConstructorModemap(constructorDB op') := modemap
- if $LISPLIB then
- $lisplibCategory := modemap.mmTarget
- $lisplibParents :=
- getParentsFor(db,$FormalMapVariableList,$lisplibCategory)
- $lisplibAncestors := computeAncestorsOf($form,nil)
+ $lisplibCategory := modemap.mmTarget
+ dbPrincipals(db) := getParentsFor(db,$FormalMapVariableList,$lisplibCategory)
+ $lisplibAncestors := computeAncestorsOf($form,nil)
$insideFunctorIfTrue:= false
if $LISPLIB then
if not $bootStrapMode then
diff --git a/src/interp/lisplib.boot b/src/interp/lisplib.boot
index 5d1446bc..7c03dce3 100644
--- a/src/interp/lisplib.boot
+++ b/src/interp/lisplib.boot
@@ -445,7 +445,6 @@ compConLib1(fun,infileOrNil,outfileOrNil,auxOp,editFlag,traceFlag) ==
$PrettyPrint: local := 'T
$LISPLIB: local := 'T
$lisplibPredicates: local := nil
- $lisplibParents: local := nil
$lisplibAncestors: local := nil
$lisplibModemapAlist: local := nil
$lisplibSlot1 : local := nil --used by NRT mechanisms
@@ -472,7 +471,6 @@ compDefineLisplib(df:=["DEF",[op,:.],:.],m,e,prefix,fal,fn) ==
$LISPLIB: local := 'T
$op: local := op
$lisplibPredicates: local := nil -- set by makePredicateBitVector
- $lisplibParents: local := nil
$lisplibAncestors: local := nil
$lisplibModemapAlist: local := nil
$lisplibSlot1 : local := nil -- used by NRT mechanisms
@@ -604,7 +602,7 @@ finalizeLisplib(ctor,libName) ==
writeAttributes(ctor,removeZeroOne dbAttributes db,$libFile)
lisplibWrite('"predicates",removeZeroOne $lisplibPredicates,$libFile)
lisplibWrite('"abbreviation",dbAbbreviation constructorDB ctor,$libFile)
- writePrincipals(ctor,removeZeroOne $lisplibParents,$libFile)
+ writePrincipals(ctor,removeZeroOne dbPrincipals db,$libFile)
writeAncestors(ctor,removeZeroOne $lisplibAncestors,$libFile)
lisplibWrite('"documentation",finalizeDocumentation ctor,$libFile)
lisplibWrite('"slot1Info",removeZeroOne $lisplibSlot1,$libFile)