aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog14
-rw-r--r--src/interp/category.boot2
-rw-r--r--src/interp/compiler.boot4
-rw-r--r--src/interp/define.boot69
-rw-r--r--src/interp/sys-globals.boot8
-rw-r--r--src/interp/wi1.boot1
-rw-r--r--src/interp/wi2.boot6
7 files changed, 83 insertions, 21 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 43370af4..976a5b20 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,17 @@
+2008-11-15 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * interp/category.boot: Define global vars.
+ * interp/compiler.boot: Likewise.
+ * interp/define.boot: Likewise.
+ * interp/sys-globals.boot: Likewise.
+ * interp/wi1.boot ($frontier): Removed, as unused.
+ * interp/wi2.boot ($attributesName): Likewise.
+ ($goGetList): Likewise.
+ ($NRTaddList): Likewise.
+ ($NRTloadTimeAlist): Likewise.
+ ($lisplibMissingFunctions): Likewise.
+ ($alternateViewList): Likewise.
+
2008-11-03 Gabriel Dos Reis <gdr@cs.tamu.edu>
* interp/br-data.boot: Remove uses of BOUNDP.
diff --git a/src/interp/category.boot b/src/interp/category.boot
index 20a4c686..c7d49b9c 100644
--- a/src/interp/category.boot
+++ b/src/interp/category.boot
@@ -41,6 +41,8 @@ namespace BOOT
++ List of global attributes.
$Attributes := []
+$NewCatVec := nil
+
--%
++ Returns true if `a' is a category (runtime) object.
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot
index f40155ce..7ada5375 100644
--- a/src/interp/compiler.boot
+++ b/src/interp/compiler.boot
@@ -1004,6 +1004,10 @@ compVector(l,m is ["Vector",mUnder],e) ==
[["VECTOR",:[T.expr for T in Tl]],m,e]
--% MACROS
+
+++ True if we are compiling a macro definition.
+$macroIfTrue := false
+
compMacro(form,m,e) ==
$macroIfTrue: local:= true
["MDEF",lhs,signature,specialCases,rhs]:= form
diff --git a/src/interp/define.boot b/src/interp/define.boot
index 5a88447a..58d33090 100644
--- a/src/interp/define.boot
+++ b/src/interp/define.boot
@@ -62,6 +62,47 @@ $doNotCompileJustPrint := false
++ stack of pending capsule function definitions.
$capsuleFunctionStack := []
+$functionStats := nil
+$functorStats := nil
+
+$lisplibCategory := nil
+$lisplibAncestors := nil
+$lisplibAbbreviation := nil
+$LocalDomainAlist := []
+$CheckVectorList := []
+$functorsUsed := []
+$setelt := nil
+$pairlis := []
+$functorTarget := nil
+$condAlist := []
+$uncondAlist := []
+$NRTslot1PredicateList := []
+$NRTattributeAlist := []
+$NRTslot1Info := nil
+$NRTdeltaListComp := []
+$NRTdomainFormList := []
+$template := nil
+$signature := nil
+$isOpPackageName := false
+$lisplibCategoriesExtended := []
+$lookupFunction := nil
+$byteAddress := nil
+$byteVec := nil
+$lisplibSlot1 := nil
+$sigAlist := []
+$predAlist := []
+$argumentConditionList := []
+$finalEnv := nil
+$initCapsuleErrorCount := nil
+$CapsuleModemapFrame := nil
+$CapsuleDomainsInScope := nil
+$signatureOfForm := nil
+$addFormLhs := nil
+$lisplibSuperDomain := nil
+$sigList := []
+$atList := []
+
+
--%
++ List of operations defined in a given capsule
@@ -111,10 +152,13 @@ makePredicate l ==
--% FUNCTIONS WHICH MUNCH ON == STATEMENTS
+++ List of packages used by the current domain.
+$packagesUsed := []
+
compDefine: (%Form,%Mode,%Env) -> %Maybe %Triple
compDefine(form,m,e) ==
$macroIfTrue: local := false
- $packagesUsed: local := false
+ $packagesUsed: local := []
compDefine1(form,m,e)
++ We are about to process the body of a capsule. If the capsule defines
@@ -298,10 +342,13 @@ compDefineCategory1(df is ['DEF,form,sig,sc,body],m,e,prefix,fal) ==
makeCategoryPredicates(form,$lisplibCategory)
compDefine1(mkCategoryPackage(form,cat,categoryCapsule),$EmptyMode,e)
[d,m,e]
+
+$tvl := []
+$mvl := []
makeCategoryPredicates(form,u) ==
- $tvl := TAKE(#rest form,$TriangleVariableList)
- $mvl := TAKE(#rest form,rest $FormalMapVariableList)
+ $tvl: local := TAKE(#rest form,$TriangleVariableList)
+ $mvl: local := TAKE(#rest form,rest $FormalMapVariableList)
fn(u,nil) where
fn(u,pl) ==
u is ['Join,:.,a] => fn(a,pl)
@@ -376,7 +423,6 @@ compDefineCategory2(form,signature,specialCases,body,m,e,
--Begin lines for category default definitions
$functionStats: local:= [0,0]
$functorStats: local:= [0,0]
- $frontier: local := 0
$getDomainCode: local := nil
$addForm: local:= nil
for x in sargl for t in rest signature' repeat
@@ -489,7 +535,6 @@ compDefineFunctor1(df is ['DEF,form,signature,$functorSpecialCases,body],
$Representation: local := nil
--Set in doIt, accessed in the compiler - compNoStacking
$LocalDomainAlist: local := [] --set in doIt, accessed in genDeltaEntry
- $LocalDomainAlist:= nil
$functorForm: local := nil
$functorLocalParameters: local := nil
SETQ($myFunctorBody, body)
@@ -520,10 +565,8 @@ compDefineFunctor1(df is ['DEF,form,signature,$functorSpecialCases,body],
stackAndThrow('" cannot produce category object: %1pb",[target])
$domainShell:= COPY_-SEQ ds
--+ copy needed since slot1 is reset; compMake.. can return a cached vector
- $attributesName:local := INTERN STRCONC(PNAME $op,'";attributes")
attributeList := disallowNilAttribute ds.2 --see below under "loadTimeAlist"
--+ 7 lines for $NRT follow
- $goGetList: local := nil
-->--these globals used by NRTmakeCategoryAlist, set by NRTsetVector4Part1
$condAlist: local := nil
$uncondAlist: local := nil
@@ -537,9 +580,7 @@ compDefineFunctor1(df is ['DEF,form,signature,$functorSpecialCases,body],
$NRTaddForm: local := nil -- see compAdd
$NRTdeltaList: local := nil --list of misc. elts used in compiled fncts
$NRTdeltaListComp: local := nil --list of compiled forms for $NRTdeltaList
- $NRTaddList: local := nil --list of fncts not defined in capsule (added)
$NRTdeltaLength: local := 0 -- =length of block of extra entries in vector
- $NRTloadTimeAlist: local := nil --used for things in slot4 (NRTsetVector4)
$NRTdomainFormList: local := nil -- of form ((gensym . (Repe...)) ...
-- the above optimizes the calls to local domains
$template: local:= nil --stored in the lisplib (if $NRTvec = true)
@@ -637,7 +678,6 @@ compDefineFunctor1(df is ['DEF,form,signature,$functorSpecialCases,body],
['MAKEPROP,MKQ $op,''infovec,getInfovecCode()])
$lisplibSlot1 := $NRTslot1Info
$lisplibOperationAlist:= operationAlist
- $lisplibMissingFunctions:= $CheckVectorList
lisplibWrite('"compilerInfo",
removeZeroOne ['SETQ,'$CategoryFrame,
['put,['QUOTE,op'],'
@@ -711,7 +751,6 @@ displayMissingFunctions() ==
--% domain view code
makeFunctorArgumentParameters(argl,sigl,target) ==
- $alternateViewList: local:= nil
$forceAdd: local:= true
$ConditionalOperators: local := nil
("append"/[fn(a,augmentSig(s,findExtras(a,target)))
@@ -765,7 +804,6 @@ genDomainView(viewName,originalName,c,viewSelector) ==
c is ['SubsetCategory,c',.] => c'
c
$e:= augModemapsFromCategory(originalName,viewName,nil,c,$e)
- --$alternateViewList:= ((viewName,:code),:$alternateViewList)
cd:= ["%LET",viewName,[viewSelector,originalName,mkDomainConstructor code]]
if null member(cd,$getDomainCode) then
$getDomainCode:= [cd,:$getDomainCode]
@@ -1098,6 +1136,8 @@ compArgumentConditions e ==
T := [.,.,e]:= compOrCroak(y,$Boolean,e)
[n,x,T.expr]
e
+
+$body := nil
addArgumentConditions($body,$functionName) ==
$argumentConditionList =>
@@ -1123,7 +1163,6 @@ canCacheLocalDomain(dom,elt)==
domargsglobal(dom) =>
$functorLocalParameters:= [:$functorLocalParameters,dom]
PUSH([dom,GENVAR(),[elt,$selector,$funcLocLen]],$usedDomList)
- $selcount:= $selcount+1
$funcLocLen:= $funcLocLen+1
nil
where
@@ -1165,6 +1204,9 @@ compileCases(x,$e) == -- $e is referenced in compile
getSpecialCaseAssoc() ==
[[R,:l] for R in rest $functorForm
for l in rest $functorSpecialCases | l]
+
+
+$savableItems := nil
compile u ==
[op,lamExpr] := u
@@ -1588,7 +1630,6 @@ compCategory(x,m,e) ==
domainOrPackage,:l] =>
$sigList: local := nil
$atList: local := nil
- $sigList:= $atList:= nil
for x in l repeat compCategoryItem(x,nil,e)
rep:= mkExplicitCategoryFunction(domainOrPackage,$sigList,$atList)
--if inside compDefineCategory, provide for category argument substitution
diff --git a/src/interp/sys-globals.boot b/src/interp/sys-globals.boot
index 07195934..ec56043b 100644
--- a/src/interp/sys-globals.boot
+++ b/src/interp/sys-globals.boot
@@ -437,6 +437,14 @@ $m := nil
_/SOURCEFILES := []
_/SPACELIST := []
+$extraParms := []
+
+$categoryPredicateList := []
+
+$getDomainCode := nil
+$addForm := nil
+$domainShell := nil
+
--%
$algebraOutputStream :=
diff --git a/src/interp/wi1.boot b/src/interp/wi1.boot
index 7f11de54..7f402883 100644
--- a/src/interp/wi1.boot
+++ b/src/interp/wi1.boot
@@ -1190,7 +1190,6 @@ compDefineCategory2(form,signature,specialCases,body,m,e,
--Begin lines for category default definitions
$functionStats: local:= [0,0]
$functorStats: local:= [0,0]
- $frontier: local := 0
$getDomainCode: local := nil
$addForm: local:= nil
for x in sargl for t in rest signature' repeat
diff --git a/src/interp/wi2.boot b/src/interp/wi2.boot
index 0dfed4bc..81a8cbe3 100644
--- a/src/interp/wi2.boot
+++ b/src/interp/wi2.boot
@@ -107,10 +107,8 @@ compDefineFunctor1(df, m,$e,$prefix,$formalArgList) ==
pp target
return nil
$domainShell:= COPY_-SEQ ds
- $attributesName:local := INTERN STRCONC(PNAME $op,'";attributes")
attributeList := ds.2 --see below under "loadTimeAlist"
--+ 7 lines for $NRT follow
- $goGetList: local := nil
-->--these globals used by NRTmakeCategoryAlist, set by NRTsetVector4Part1
$condAlist: local := nil
$uncondAlist: local := nil
@@ -124,9 +122,7 @@ compDefineFunctor1(df, m,$e,$prefix,$formalArgList) ==
$NRTaddForm: local := nil -- see compAdd
$NRTdeltaList: local := nil --list of misc. elts used in compiled fncts
$NRTdeltaListComp: local := nil --list of compiled forms for $NRTdeltaList
- $NRTaddList: local := nil --list of fncts not defined in capsule (added)
$NRTdeltaLength: local := 0 -- =length of block of extra entries in vector
- $NRTloadTimeAlist: local := nil --used for things in slot4 (NRTsetVector4)
$NRTdomainFormList: local := nil -- of form ((gensym . (Repe...)) ...
-- the above optimizes the calls to local domains
$template: local:= nil --stored in the lisplib (if $NRTvec = true)
@@ -223,7 +219,6 @@ compDefineFunctor1(df, m,$e,$prefix,$formalArgList) ==
['MAKEPROP,MKQ $op,''infovec,getInfovecCode()])
$lisplibSlot1 := $NRTslot1Info --NIL or set by $NRTmakeSlot1
$lisplibOperationAlist:= operationAlist
- $lisplibMissingFunctions:= $CheckVectorList
lisplibWrite('"compilerInfo",
['SETQ,'$CategoryFrame,
['put,['QUOTE,op'],'
@@ -238,7 +233,6 @@ compDefineFunctor1(df, m,$e,$prefix,$formalArgList) ==
[fun,['Mapping,:signature'],originale]
makeFunctorArgumentParameters(argl,sigl,target) ==
- $alternateViewList: local:= nil
$forceAdd: local:= true
$ConditionalOperators: local
target := markKillAll target