diff options
-rw-r--r-- | src/ChangeLog | 8 | ||||
-rw-r--r-- | src/algebra/Makefile.in | 98 | ||||
-rw-r--r-- | src/interp/c-util.boot | 37 | ||||
-rw-r--r-- | src/interp/g-util.boot | 40 |
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) |