aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog8
-rw-r--r--src/algebra/Makefile.in98
-rw-r--r--src/interp/c-util.boot37
-rw-r--r--src/interp/g-util.boot40
4 files changed, 125 insertions, 58 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index f286dfef..0c05a068 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,11 @@
+2011-09-08 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * interp/c-util.boot (builtinCategoryName?): Move to g-util.boot.
+ (builtinFunctorName?): Likewise.
+ (builtinConstructor?): Likewise.
+ (superType): Exit early if builtin functor or non-domain form.
+ * algebra/Makefile.in: Flesh out bootstrap dependencies.
+
2011-09-07 Gabriel Dos Reis <gdr@cs.tamu.edu>
* interp/sys-globals.boot ($clamList): Do not include hasFileProperty.
diff --git a/src/algebra/Makefile.in b/src/algebra/Makefile.in
index 8597b27f..2db3d429 100644
--- a/src/algebra/Makefile.in
+++ b/src/algebra/Makefile.in
@@ -113,24 +113,27 @@ oa_strap_0_sources = \
RNG SRING RING ORDRING LMODULE RMODULE BMODULE \
COMRING ENTIRER ALGEBRA MODULE DIVRING FIELD \
DIFFSPC DIFFDOM DIFRING LINEXP PATMAB CFCAT REAL \
- INTDOM GCDDOM PID UFD OINTDOM INS \
+ INTDOM GCDDOM PID UFD OINTDOM INS EUCDOM \
CHARZ CHARNZ STEP IEVALAB EVALAB \
AGG HOAGG CLAGG ELTAB ELTAGG IXAGG LNAGG \
FLAGG ELAGG RCAGG URAGG STAGG LSAGG A1AGG \
BGAGG DIOPS DIAGG SETAGG FSAGG VECTCAT \
FEVALAB PDDOM PDSPC DSEXT PDRING DIFEXT \
RADCAT AMR FAMR FLINEXP POLYCAT UPOLYC PATAB FPATMAB PFECAT \
- KVTFROM SEXCAT QFCAT \
- RNS FPS \
- BOOLEAN INT NNI PI MAYBE LIST VECTOR CHAR STRING
+ KVTFROM SEXCAT QFCAT SEGCAT SEGXCAT LZSTAGG BTAGG \
+ RNS FPS FPC TRANFUN TRIGCAT ATRIG HYPCAT AHYP ELEMFUN \
+ BOOLEAN INT NNI PI SINT FRAC DFLOAT MAYBE LIST VECTOR CHAR STRING \
+ INFORM OUTFORM STREAM PRIMARR SYMBOL SUP
oa_strap_1_sources = $(oa_strap_0_sources) \
- SRAGG AHYP HYPCAT ATRIG TRIGCAT TRANFUN \
- ILIST ISTRING DFLOAT SINT
+ SRAGG ALAGG TBAGG KDAGG OPERCAT MATCAT ARR2CAT FFIELDC \
+ SAOS ILIST ISTRING IBITS SEX FLOAT CCLASS REF UNISEG SEG VOID \
+ ALIST SEX PATRES PATTERN BOP ARITY NONE IDENT SET FARRAY IFARRAY \
+ ANY SEXOF MATRIX IARRAY1
oa_strap_2_sources = $(oa_strap_1_sources) \
- PRIMARR IARRAY1 IVECTOR SYMBOL
+ IVECTOR
## Bootstrap layer 0 dependencies.
## This layer comprises mostly categories, and a limited number of domains.
@@ -154,6 +157,7 @@ strap-0/ORDFIN.$(FASLEXT): strap-0/ORDSET.$(FASLEXT) strap-0/FINITE.$(FASLEXT)
strap-0/LOGIC.$(FASLEXT): strap-0/TYPE.$(FASLEXT)
strap-0/BOOLE.$(FASLEXT): strap-0/LOGIC.$(FASLEXT)
strap-0/PROPLOG.$(FASLEXT): strap-0/SETCAT.$(FASLEXT) strap-0/BOOLE.$(FASLEXT)
+strap-0/SEXCAT.$(FASLEXT): strap-0/SETCAT.$(FASLEXT)
strap-0/LLINSET.$(FASLEXT): strap-0/SETCAT.$(FASLEXT)
strap-0/RLINSET.$(FASLEXT): strap-0/SETCAT.$(FASLEXT)
@@ -226,6 +230,7 @@ strap-0/AMR.$(FASLEXT): strap-0/RING.$(FASLEXT) strap-0/OAMON.$(FASLEXT) \
strap-0/FAMR.$(FASLEXT): strap-0/RING.$(FASLEXT) strap-0/OAMON.$(FASLEXT) \
strap-0/AMR.$(FASLEXT)
strap-0/PFECAT.$(FASLEXT): strap-0/UFD.$(FASLEXT) strap-0/CHARNZ.$(FASLEXT)
+strap-0/QFCAT.$(FASLEXT): strap-0/FIELD.$(FASLEXT)
strap-0/POLYCAT.$(FASLEXT): strap-0/PDRING.$(FASLEXT) strap-0/FAMR.$(FASLEXT) \
strap-0/FLINEXP.$(FASLEXT) strap-0/PFECAT.$(FASLEXT)
strap-0/UPOLYC.$(FASLEXT): strap-0/POLYCAT.$(FASLEXT)
@@ -254,17 +259,20 @@ strap-0/DIFEXT.$(FASLEXT): strap-0/DSEXT.$(FASLEXT) strap-0/PDRING.$(FASLEXT)
strap-0/FLINEXP.$(FASLEXT): strap-0/LINEXP.$(FASLEXT)
strap-0/PATAB.$(FASLEXT): strap-0/KONVERT.$(FASLEXT)
strap-0/FPATMAB.$(FASLEXT): strap-0/PATMAB.$(FASLEXT)
-
+strap-0/FPC.$(FASLEXT): strap-0/FIELD.$(FASLEXT)
+strap-0/TRANFUN.$(FASLEXT): strap-0/TRIGCAT.$(FASLEXT) \
+ strap-0/ATRIG.$(FASLEXT) strap-0/HYPCAT.$(FASLEXT) \
+ strap-0/AHYP.$(FASLEXT) strap-0/ELEMFUN.$(FASLEXT)
strap-0/BOOLEAN.$(FASLEXT): strap-0/ORDFIN.$(FASLEXT) \
strap-0/PROPLOG.$(FASLEXT) strap-0/KONVERT.$(FASLEXT)
-
strap-0/INT.$(FASLEXT): strap-0/INS.$(FASLEXT) \
strap-0/KONVERT.$(FASLEXT)
-
strap-0/NNI.$(FASLEXT): strap-0/INT.$(FASLEXT)
strap-0/PI.$(FASLEXT): strap-0/NNI.$(FASLEXT)
-
+strap-0/SINT.$(FASLEXT): strap-0/INT.$(FASLEXT)
+strap-0/DFLOAT.$(FASLEXT): strap-0/FPS.$(FASLEXT) \
+ strap-0/TRANFUN.$(FASLEXT)
strap-0/AGG.$(FASLEXT): strap-0/TYPE.$(FASLEXT)
strap-0/HOAGG.$(FASLEXT): strap-0/AGG.$(FASLEXT) strap-0/EVALAB.$(FASLEXT)
strap-0/CLAGG.$(FASLEXT): strap-0/HOAGG.$(FASLEXT)
@@ -280,6 +288,7 @@ strap-0/URAGG.$(FASLEXT): strap-0/RCAGG.$(FASLEXT)
strap-0/STAGG.$(FASLEXT): strap-0/URAGG.$(FASLEXT) strap-0/LNAGG.$(FASLEXT)
strap-0/LSAGG.$(FASLEXT): strap-0/FLAGG.$(FASLEXT) strap-0/ELAGG.$(FASLEXT) \
strap-0/STAGG.$(FASLEXT)
+strap-0/LZSTAGG.$(FASLEXT): strap-0/STAGG.$(FASLEXT)
strap-0/A1AGG.$(FASLEXT): strap-0/FLAGG.$(FASLEXT)
strap-0/BGAGG.$(FASLEXT): strap-0/HOAGG.$(FASLEXT)
strap-0/DIOPS.$(FASLEXT): strap-0/BGAGG.$(FASLEXT) strap-0/CLAGG.$(FASLEXT)
@@ -288,13 +297,24 @@ strap-0/SETAGG.$(FASLEXT): strap-0/SETCAT.$(FASLEXT) strap-0/CLAGG.$(FASLEXT)
strap-0/FSAGG.$(FASLEXT): strap-0/DIAGG.$(FASLEXT) strap-0/SETAGG.$(FASLEXT) \
strap-0/SETCAT.$(FASLEXT)
strap-0/SRAGG.$(FASLEXT): strap-0/A1AGG.$(FASLEXT)
+strap-0/BTAGG.$(FASLEXT): strap-0/ORDSET.$(FASLEXT) strap-0/A1AGG.$(FASLEXT)
strap-0/VECTCAT.$(FASLEXT): strap-0/A1AGG.$(FASLEXT)
+strap-0/SEGXCAT.$(FASLEXT): strap-0/SEGCAT.$(FASLEXT)
strap-0/STRING.$(FASLEXT): strap-0/SRAGG.$(FASLEXT)
strap-0/LIST.$(FASLEXT): strap-0/LSAGG.$(FASLEXT)
+strap-0/PRIMARR.$(FASLEXT): strap-0/A1AGG.$(FASLEXT)
strap-0/VECTOR.$(FASLEXT): strap-0/VECTCAT.$(FASLEXT)
strap-0/CHAR.$(FASLEXT): strap-0/FSAGG.$(FASLEXT)
strap-0/STRING.$(FASLEXT): strap-0/SRAGG.$(FASLEXT)
+strap-0/STREAM.$(FASLEXT): strap-0/LZSTAGG.$(FASLEXT)
+strap-0/SUP.$(FASLEXT): strap-0/UPOLYC.$(FASLEXT)
+strap-0/FRAC.$(FASLEXT): strap-0/QFCAT.$(FASLEXT)
+strap-0/SYMBOL.$(FASLEXT): strap-0/ORDSET.$(FASLEXT)
+strap-0/INFORM.$(FASLEXT): strap-0/SEXOF.$(FASLEXT)
+strap-0/SEXOF.$(FASLEXT): strap-0/SEXCAT.$(FASLEXT)
+strap-0/OUTFORM.$(FASLEXT): strap-0/SETCAT.$(FASLEXT)
+strap-0/MAYBE.$(FASLEXT): strap-0/UTYPE.$(FASLEXT)
## Bootstrap stage 1 dependencies.
## At this stage, we attempt to compile domains essential for completing
@@ -310,7 +330,13 @@ strap-1/SETCAT.$(FASLEXT): strap-1/BASTYPE.$(FASLEXT) strap-1/KOERCE.$(FASLEXT)
strap-1/KOERCE.$(FASLEXT): strap-1/TYPE.$(FASLEXT)
strap-1/KONVERT.$(FASLEXT): strap-1/TYPE.$(FASLEXT)
strap-1/RETRACT.$(FASLEXT): strap-1/KRCFROM.$(FASLEXT)
-strap-1/FRETRCT.$(FASLEXT): strap-1/RETRACT.$(FASLEXT)
+strap-1/SAOS.$(FASLEXT): strap-1/DFLOAT.$(FASLEXT) strap-1/INT.$(FASLEXT) \
+ strap-1/LIST.$(FASLEXT) strap-1/PRIMARR.$(FASLEXT)
+strap-1/SUP.$(FASLEXT): strap-1/SAOS.$(FASLEXT) strap-1/INS.$(FASLEXT) \
+ strap-1/EUCDOM.$(FASLEXT) strap-1/FFIELDC.$(FASLEXT)
+strap-1/FFIELDC.$(FASLEXT): strap-1/TBAGG.$(FASLEXT)
+strap-1/FRAC.$(FASLEXT): strap-1/SUP.$(FASLEXT)
+strap-1/FRETRCT.$(FASLEXT): strap-1/RETRACT.$(FASLEXT) strap-1/FRAC.$(FASLEXT)
strap-1/FINITE.$(FASLEXT): strap-1/SETCAT.$(FASLEXT)
strap-1/ORDTYPE.$(FASLEXT): strap-1/BASTYPE.$(FASLEXT)
strap-1/ORDSET.$(FASLEXT): strap-1/SETCAT.$(FASLEXT) strap-1/ORDTYPE.$(FASLEXT)
@@ -381,16 +407,40 @@ strap-1/CHARNZ.$(FASLEXT): strap-1/RING.$(FASLEXT)
strap-1/FPS.$(FASLEXT): strap-0/FIELD.$(FASLEXT) strap-1/ORDRING.$(FASLEXT) \
strap-1/REAL.$(FASLEXT) strap-1/RETRACT.$(FASLEXT) \
strap-1/CHARZ.$(FASLEXT)
-strap-1/FPS.$(FASLEXT): strap-1/RNS.$(FASLEXT)
strap-1/HYPCAT.$(FASLEXT): strap-1/ELEMFUN.$(FASLEXT)
strap-1/TRANFUN.$(FASLEXT): strap-1/TRIGCAT.$(FASLEXT) \
strap-1/ATRIG.$(FASLEXT) strap-1/HYPCAT.$(FASLEXT) \
strap-1/AHYP.$(FASLEXT)
-strap-1/INS.$(FASLEXT): strap-1/DFLOAT.$(FASLEXT)
+strap-1/SEGXCAT.$(FASLEXT): strap-1/SEGCAT.$(FASLEXT)
+strap-1/SEG.$(FASLEXT): strap-1/SEGXCAT.$(FASLEXT)
+strap-1/UNISEG.$(FASLEXT): strap-1/SEG.$(FASLEXT)
+strap-1/FLOAT.$(FASLEXT): strap-1/REF.$(FASLEXT) strap-1/UNISEG.$(FASLEXT) \
+ strap-1/CCLASS.$(FASLEXT) strap-1/VOID.$(FASLEXT) \
+ strap-1/SYMBOL.$(FASLEXT)
+strap-1/SYMBOL.$(FASLEXT): strap-1/ALIST.$(FASLEXT) strap-1/SEX.$(FASLEXT) \
+ strap-1/PATRES.$(FASLEXT) strap-1/A1AGG.$(FASLEXT) \
+ strap-1/FLAGG.$(FASLEXT)
+strap-1/FLAGG.$(FASLEXT): strap-1/LNAGG.$(FASLEXT)
+strap-1/PATRES.$(FASLEXT): strap-1/PATTERN.$(FASLEXT)
+strap-1/PATTERN.$(FASLEXT): strap-1/BOP.$(FASLEXT) strap-1/ANY.$(FASLEXT) \
+ strap-1/INS.$(FASLEXT)
+strap-1/ANY.$(FASLEXT): strap-1/SEXOF.$(FASLEXT)
+strap-1/BOP.$(FASLEXT): strap-1/OPERCAT.$(FASLEXT) strap-1/ARITY.$(FASLEXT) \
+ strap-1/NONE.$(FASLEXT) strap-1/IDENT.$(FASLEXT) \
+ strap-1/SET.$(FASLEXT) strap-1/ALIST.$(FASLEXT)
+strap-1/SET.$(FASLEXT): strap-1/FARRAY.$(FASLEXT)
+strap-1/FARRAY.$(FASLEXT): strap-1/IFARRAY.$(FASLEXT)
+strap-1/IFARRAY.$(FASLEXT): strap-1/INS.$(FASLEXT) strap-1/EUCDOM.$(FASLEXT) \
+ strap-1/DIFFSPC.$(FASLEXT)
+strap-1/ALIST.$(FASLEXT): strap-1/ALAGG.$(FASLEXT)
+strap-1/ALAGG.$(FASLEXT): strap-1/TBAGG.$(FASLEXT)
+strap-1/TBAGG.$(FASLEXT): strap-1/KDAGG.$(FASLEXT)
+strap-1/CCLASS.$(FASLEXT): strap-1/IBITS.$(FASLEXT)
strap-1/DFLOAT.$(FASLEXT): strap-1/FPS.$(FASLEXT) \
- strap-1/TRANFUN.$(FASLEXT)
+ strap-1/TRANFUN.$(FASLEXT) strap-1/FLOAT.$(FASLEXT)
strap-1/SEXCAT.$(FASLEXT): strap-1/KVTFROM.$(FASLEXT)
-strap-1/POLYCAT.$(FASLEXT): strap-1/SEXCAT.$(FASLEXT)
+strap-1/POLYCAT.$(FASLEXT): strap-1/SEXCAT.$(FASLEXT) \
+ strap-1/IVECTOR.$(FASLEXT) strap-1/IARRAY1.$(FASLEXT)
strap-1/QFCAT.$(FASLEXT): strap-1/FEVALAB.$(FASLEXT) \
strap-1/EUCDOM.$(FASLEXT) strap-1/DIFEXT.$(FASLEXT) \
strap-1/FLINEXP.$(FASLEXT) strap-1/FPATMAB.$(FASLEXT) \
@@ -400,18 +450,24 @@ strap-1/DIVRING.$(FASLEXT): strap-1/ENTIRER.$(FASLEXT) \
strap-1/ALGEBRA.$(FASLEXT)
strap-1/INTDOM.$(FASLEXT): strap-1/FIELD.$(FASLEXT)
strap-1/A1AGG.$(FASLEXT): strap-1/BOOLE.$(FASLEXT)
-strap-1/DIOPS.$(FASLEXT): strap-1/BGAGG.$(FASLEXT) \
+strap-1/DIOPS.$(FASLEXT): strap-1/BGAGG.$(FASLEXT) strap-1/INT.$(FASLEXT) \
strap-1/CLAGG.$(FASLEXT) strap-1/CHAR.$(FASLEXT)
strap-1/DIAGG.$(FASLEXT): strap-1/DIOPS.$(FASLEXT)
-strap-1/FSAGG.$(FASLEXT): strap-1/DIAGG.$(FASLEXT)
-strap-1/CHAR.$(FASLEXT): strap-1/FSAGG.$(FASLEXT)
+strap-1/FSAGG.$(FASLEXT): strap-1/DIAGG.$(FASLEXT) strap-1/INS.$(FASLEXT)
strap-1/STRING.$(FASLEXT): strap-1/SRAGG.$(FASLEXT) strap-1/CHAR.$(FASLEXT) \
strap-1/ISTRING.$(FASLEXT)
-strap-1/INT.$(FASLEXT): strap-1/STRING.$(FASLEXT) strap-1/ORDRING.$(FASLEXT)
+strap-1/INT.$(FASLEXT): strap-1/STRING.$(FASLEXT) strap-1/ORDRING.$(FASLEXT) \
+ strap-1/MATRIX.$(FASLEXT)
+strap-1/PI.$(FASLEXT): strap-1/NNI.$(FASLEXT)
+strap-1/NNI.$(FASLEXT): strap-1/INT.$(FASLEXT)
+strap-1/MATRIX.$(FASLEXT): strap-1/MATCAT.$(FASLEXT)
+strap-1/MATCAT.$(FASLEXT): strap-1/ARR2CAT.$(FASLEXT)
strap-1/SINT.$(FASLEXT): strap-1/INT.$(FASLEXT) strap-1/ORDFIN.$(FASLEXT) \
strap-1/BOOLE.$(FASLEXT)
+strap-1/ALIST.$(FASLEXT): strap-1/INT.$(FASLEXT)
strap-1/LIST.$(FASLEXT): strap-1/ILIST.$(FASLEXT) strap-1/STRING.$(FASLEXT)
strap-1/VECTOR.$(FASLEXT): strap-1/LIST.$(FASLEXT)
+strap-1/DFLOAT.$(FASLEXT): strap-1/SEX.$(FASLEXT)
## Bootstrap stage 2 dependencies.
@@ -1580,7 +1636,7 @@ stamp: ${SPADFILES} user-stamp ${TESTS}
${OUT}/%.$(FASLEXT): %.NRLIB/code.$(FASLEXT)
cp $< $@
-.PREVIOUS: %.spad
+.PRECIOUS: %.spad
.PRECIOUS: %.NRLIB/code.$(FASLEXT)
%.NRLIB/code.$(FASLEXT): %.spad
$(COMPILE_SPAD)
diff --git a/src/interp/c-util.boot b/src/interp/c-util.boot
index 75a8ec60..62defa25 100644
--- a/src/interp/c-util.boot
+++ b/src/interp/c-util.boot
@@ -132,43 +132,6 @@ macro domainData d ==
domainRef(d,4)
--%
-
-++ List of category constructors that do not have entries in the
-++ constructor database. So, they are mostly recognized by their names.
-$CategoryNames ==
- '(CATEGORY _
- RecordCategory _
- Join _
- EnumerationCategory _
- SubsetCategory _
- UnionCategory _
- MappingCategory)
-
-macro builtinCategoryName? x ==
- symbolMember?(x,$CategoryNames)
-
-++ List of domain constructors that do not have entries in the constructor
-++ database. So, they are mostly recognized by their names.
-++ See also $CategoryNames.
-$DomainNames ==
- '(Mapping _
- SubDomain _
- Union _
- Record _
- Enumeration)
-
-macro builtinFunctorName? x ==
- symbolMember?(x,$DomainNames)
-
-++ The collection of builtin category names and builtin domain names.
-$BuiltinConstructorNames ==
- [:$CategoryNames,:$DomainNames]
-
-++ Return true if the symbol `s' designates a builtin constructor.
-macro builtinConstructor? s ==
- symbolMember?(s,$BuiltinConstructorNames)
-
---%
$SetCategory ==
'(SetCategory)
diff --git a/src/interp/g-util.boot b/src/interp/g-util.boot
index 6b76c32e..67d2efb2 100644
--- a/src/interp/g-util.boot
+++ b/src/interp/g-util.boot
@@ -46,6 +46,43 @@ module g_-util where
isDefaultPackageName: %Symbol -> %Boolean
makeDefaultPackageName: %String -> %Symbol
+--%
+
+++ List of category constructors that do not have entries in the
+++ constructor database. So, they are mostly recognized by their names.
+$CategoryNames ==
+ '(CATEGORY _
+ RecordCategory _
+ Join _
+ EnumerationCategory _
+ SubsetCategory _
+ UnionCategory _
+ MappingCategory)
+
+macro builtinCategoryName? x ==
+ symbolMember?(x,$CategoryNames)
+
+++ List of domain constructors that do not have entries in the constructor
+++ database. So, they are mostly recognized by their names.
+++ See also $CategoryNames.
+$DomainNames ==
+ '(Mapping _
+ SubDomain _
+ Union _
+ Record _
+ Enumeration)
+
+macro builtinFunctorName? x ==
+ symbolMember?(x,$DomainNames)
+
+++ The collection of builtin category names and builtin domain names.
+$BuiltinConstructorNames ==
+ [:$CategoryNames,:$DomainNames]
+
+++ Return true if the symbol `s' designates a builtin constructor.
+macro builtinConstructor? s ==
+ symbolMember?(s,$BuiltinConstructorNames)
+
--%
$AbstractionOperator ==
@@ -119,9 +156,12 @@ superType: %Mode -> %Maybe %Mode
superType dom ==
dom = "$" => superType $functorForm
dom isnt [ctor,:args] => nil
+ builtinConstructor? ctor => nil
[super,.] :=
db := constructorDB ctor or return nil
dbBeingDefined? db => dbSuperDomain db or return nil
+ dbConstructorKind db is 'domain or return nil
+ --dbSuperDomain loadDBIfNecessary db or return nil
getSuperDomainFromDB ctor or return nil
sublisFormal(args,super,$AtVariables)