aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2010-03-05 02:09:51 +0000
committerdos-reis <gdr@axiomatics.org>2010-03-05 02:09:51 +0000
commitf1c8a8db20dce5e74796e409d5bc7bec2d8793d5 (patch)
treee6d6ba7f4fc22135395dfad949ebd50954ad152d /src
parent82eaa6d96dbadd85f23913a80f163544517af5b0 (diff)
downloadopen-axiom-f1c8a8db20dce5e74796e409d5bc7bec2d8793d5.tar.gz
* interp/sys-globals.boot ($optimizeRep): Define.
* interp/sys-driver.boot (initializeGlobalState): Sey domain representation inlining if requested. * interp/c-util.boot (setCompilerOptimizations): Set domain representation inlining if at optimization level 3. * algebra/constant.spad.pamphlet (AlgebraicNumber): Remove assignment to Rep. Tidy. * algebra/Makefile.pamphlet: Add dependencies.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog11
-rw-r--r--src/algebra/Makefile.in129
-rw-r--r--src/algebra/Makefile.pamphlet129
-rw-r--r--src/algebra/constant.spad.pamphlet10
-rw-r--r--src/algebra/strap/ISTRING.lsp10
-rw-r--r--src/algebra/strap/LIST.lsp41
-rw-r--r--src/algebra/strap/OUTFORM.lsp27
-rw-r--r--src/algebra/strap/SYMBOL.lsp7
-rw-r--r--src/interp/c-util.boot2
-rw-r--r--src/interp/define.boot6
-rw-r--r--src/interp/sys-driver.boot3
-rw-r--r--src/interp/sys-globals.boot7
12 files changed, 247 insertions, 135 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index fb6c0ea5..8a11f088 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,16 @@
2010-03-04 Gabriel Dos Reis <gdr@cs.tamu.edu>
+ * interp/sys-globals.boot ($optimizeRep): Define.
+ * interp/sys-driver.boot (initializeGlobalState): Sey domain
+ representation inlining if requested.
+ * interp/c-util.boot (setCompilerOptimizations): Set domain
+ representation inlining if at optimization level 3.
+ * algebra/constant.spad.pamphlet (AlgebraicNumber): Remove
+ assignment to Rep. Tidy.
+ * algebra/Makefile.pamphlet: Add dependencies.
+
+2010-03-04 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
* interp/g-opt.boot (nominateForInlining): New.
(optimizableDomain?): Likewise.
(optCallSpecially): Use it
diff --git a/src/algebra/Makefile.in b/src/algebra/Makefile.in
index fc58968f..fef42f50 100644
--- a/src/algebra/Makefile.in
+++ b/src/algebra/Makefile.in
@@ -402,7 +402,7 @@ $(OUT)/PATAB.$(FASLEXT): $(OUT)/TYPE.$(FASLEXT)
$(OUT)/BOOLEAN.$(FASLEXT): $(OUT)/PROPLOG.$(FASLEXT)
$(OUT)/VECTCAT.$(FASLEXT): $(OUT)/RADCAT.$(FASLEXT)
$(OUT)/IARRAY1.$(FASLEXT): $(OUT)/PRIMARR.$(FASLEXT)
-$(OUT)/PROPERTY.$(FASLEXT): $(OUT)/IDENT.$(FASLEXT)
+$(OUT)/PROPERTY.$(FASLEXT): $(OUT)/IDENT.$(FASLEXT) $(OUT)/PAIR.$(FASLEXT)
$(OUT)/BINDING.$(FASLEXT): $(OUT)/PROPERTY.$(FASLEXT)
$(OUT)/OPERCAT.$(FASLEXT): $(OUT)/ARITY.$(FASLEXT)
$(OUT)/REF.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT) $(OUT)/IDENT.$(FASLEXT)
@@ -427,12 +427,11 @@ axiom_algebra_layer_1_objects = \
$(addsuffix .$(FASLEXT),$(axiom_algebra_layer_1)))
axiom_algebra_layer_2 = \
SYNTAX INTRET SEGXCAT CONTOUR LIST3 MKFUNC \
- COMMONOP KTVLOGIC FNCAT SCACHE BOP BOP1 \
+ COMMONOP FNCAT SCACHE BOP BOP1 \
DOMTMPLT FCTRDATA
$(OUT)/FNCAT.$(FASLEXT): $(OUT)/HOMOTOP.$(FASLEXT) $(OUT)/SETCAT.$(FASLEXT)
$(OUT)/SYNTAX.$(FASLEXT): $(OUT)/IDENT.$(FASLEXT)
-$(OUT/KTVLOGIC.$(FASLEXT): $(OUT)/PROPLOG.$(FASLEXT)
$(OUT)/COMMONOP.$(FASLEXT): $(OUT)/BOP.$(FASLEXT)
$(OUT)/DOMTMPLT.$(FASLEXT): $(OUT)/SYNTAX.$(FASLEXT)
$(OUT)/FCTRDATA.$(FASLEXT): $(OUT)/DOMTMPLT.$(FASLEXT)
@@ -499,21 +498,23 @@ axiom_algebra_layer_5_objects = \
$(OUT)/CHARPOL.$(FASLEXT): $(OUT)/SETCAT-.$(FASLEXT)
$(OUT)PROPFRML.$(FASLEXT): $(OUT)/KERNEL.$(FASLEXT)
+$(OUT)/KTVLOGIC.$(FASLEXT): $(OUT)/PROPLOG.$(FASLEXT) $(OUT)/BYTE.$(FASLEXT)
axiom_algebra_layer_6 = \
PROPFRML AUTOMOR CARTEN2 CHARPOL COMPLEX2 \
DIFEXT DIFEXT- ES1 ES2 GRMOD GRMOD- \
HYPCAT HYPCAT- MODRING NASRING NASRING- \
SORTPAK ZMOD \
- OAMONS BYTE SYSINT SYSNNI
+ KTVLOGIC OAMONS BYTE SYSINT SYSNNI
axiom_algebra_layer_6_nrlibs = \
$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_6))
axiom_algebra_layer_6_objects = \
$(addprefix $(OUT)/, \
$(addsuffix .$(FASLEXT),$(axiom_algebra_layer_6)))
+$(OUT)/IFAMON.$(FASLEXT): $(OUT)/LMOPS.$(FASLEXT)
axiom_algebra_layer_7 = \
- BTCAT BTCAT- FMCAT IDPOAM \
+ BTCAT BTCAT- LMOPS FMCAT IDPOAM \
IFAMON GRALG GRALG- \
INT8 INT16 INT32 INT64 UINT8 UINT16 \
UINT32 UINT64
@@ -524,11 +525,16 @@ axiom_algebra_layer_7_nrlibs = \
axiom_algebra_layer_7_objects = \
$(addprefix $(OUT)/, \
$(addsuffix .$(FASLEXT),$(axiom_algebra_layer_7)))
+
+$(OUT)/BSTREE.$(FASLEXT): $(OUT)/BTREE.$(FASLEXT)
+$(OUT)/ITAYLOR.$(FASLEXT): $(OUT)/STREAM.$(FASLEXT)
+$(OUT)/STREAM.$(FASLEXT): $(OUT)/LZSTAGG.$(FASLEXT)
+
axiom_algebra_layer_8 = \
BSTREE BTOURN CARD DRAWHACK FACTFUNC FMTC \
FR2 FRAC2 FRUTIL ITAYLOR MLO NAALG \
NAALG- OP ORDCOMP2 RANDSRC UNISEG2 XALG \
- ARR2CAT ARR2CAT-
+ BTREE STREAM LZSTAGG LZSTAGG- ARR2CAT ARR2CAT-
axiom_algebra_layer_8_nrlibs = \
$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_8))
@@ -536,13 +542,15 @@ axiom_algebra_layer_8_nrlibs = \
axiom_algebra_layer_8_objects = \
$(addprefix $(OUT)/, \
$(addsuffix .$(FASLEXT),$(axiom_algebra_layer_8)))
+$(OUT)/ODEIFTBL.$(FASLEXT): $(OUT)/TABLE.$(FASLEXT) $(OUT)/INTABL.$(FASLEXT)
+
axiom_algebra_layer_9 = \
AMR AMR- DEGRED DLP EAB ESTOOLS1 \
FAGROUP FAMONOID FLINEXP FLINEXP- FRETRCT FRETRCT- \
FSERIES FT IDPAG IDPOAMS INFINITY LA \
OMLO ORTHPOL PRODUCT PADICCT PMPRED PMASS \
PTFUNC2 RADCAT RADCAT- RATRET RADUTIL UPXS2 \
- XFALG ZLINDEP BBTREE \
+ XFALG ZLINDEP BBTREE TABLE INTABL \
ODEIFTBL NIPROB ODEPROB OPTPROB \
PDEPROB COLOR SIG FMONCAT
@@ -553,16 +561,32 @@ axiom_algebra_layer_9_nrlibs = \
axiom_algebra_layer_9_objects = \
$(addprefix $(OUT)/, \
$(addsuffix .$(FASLEXT),$(axiom_algebra_layer_9)))
+$(OUT)/D01GBFA.$(FASLEXT): $(OUT)/RESULT.$(FASLEXT) $(OUT)/ANY.$(FASLEXT) \
+ $(OUT)/SEX.$(FASLEXT) $(OUT)/HASHTBL.$(FASLEXT)
+
+$(OUT)/SEX.$(FASLEXT): $(OUT)/SEXOF.$(FASLEXT)
+$(OUT)/LEXP.$(FASLEXT): $(OUT)/XPBWPOLY.$(FASLEXT)
+$(OUT)/XPBWPOLY.$(FASLEXT): $(OUT)/XPOLYC.$(FASLEXT)
+$(OUT)/PENDTREE.$(FASLEXT): $(OUT)/TREE.$(FASLEXT)
+$(OUT)/QFORM.$(FASLEXT): $(OUT)/SQMATRIX.$(FASLEXT)
+$(OUT)/SQMATRIX.$(FASLEXT): $(OUT)/SMATCAT.$(FASLEXT) \
+ $(OUT)/MATRIX.$(FASLEXT) $(OUT)/IIARRAY2.$(FASLEXT)
+$(OUT)/SMATCAT.$(FASLEXT): $(OUT)/RMATCAT.$(FASLEXT)
+$(OUT)/RMATCAT.$(FASLEXT): $(OUT)/DIRPROD.$(FASLEXT)
+$(OUT)/DIRPROD.$(FASLEXT): $(OUT)/DIRPCAT.$(FASLEXT)
+$(OUT)/DIRPCAT.$(FASLEXT): $(OUT)/VSPACE.$(FASLEXT) $(OUT)/IVECTOR.$(FASLEXT)
+$(OUT)/MATRIX.$(FASLEXT): $(OUT)/MATCAT.$(FASLEXT)
+
axiom_algebra_layer_10 = \
- BFUNCT BPADIC \
- BTREE CRAPACK DEQUEUE DLIST \
+ RESULT BFUNCT BPADIC ANY \
+ SEXOF CRAPACK DEQUEUE DLIST \
DRAWCX D01GBFA D02EJFA D03FAFA \
DRAWPT FAMR FAMR- FLASORT \
FLAGG2 FGROUP FM FM1 \
FPC FPC- FMONOID INDE \
IPADIC IROOT IR2 LEXP \
LIECAT LIECAT- LIST2 LIST2MAP \
- LMOPS LZSTAGG LZSTAGG- MAGMA \
+ SEX HASHTBL TREE MAGMA \
MESH MOEBIUS MODFIELD MODOP \
MRING MTHING NCNTFRAC NCODIV \
NUMTUBE ODR OFMONOID ONECOMP \
@@ -572,12 +596,15 @@ axiom_algebra_layer_10 = \
PINTERP PLOTTOOL PFR PMDOWN \
PRTITION PMINS PMLSAGG PMTOOLS \
PSCAT PSCAT- QFORM QUEUE \
- SEG SEG2 SEXOF \
+ SQMATRIX SEG SEG2 \
STACK STTAYLOR TABLBUMP TABLEAU \
TOPSP TRANFUN TRANFUN- TUBE \
UDPO UNISEG VIEW VSPACE \
- VSPACE- XPOLYC XPR BTAGG BTAGG- \
- FUNDESC
+ VSPACE- XPOLYC XPR BTAGG BTAGG- \
+ FUNDESC XPBWPOLY SMATCAT SMATCAT- \
+ RMATRIX RMATCAT RMATCAT- DIRPROD \
+ DIRPCAT DIRPCAT- IVECTOR MATRIX \
+ MATCAT MATCAT- IIARRAY2
axiom_algebra_layer_10_nrlibs = \
@@ -586,6 +613,8 @@ axiom_algebra_layer_10_nrlibs = \
axiom_algebra_layer_10_objects = \
$(addprefix $(OUT)/, \
$(addsuffix .$(FASLEXT),$(axiom_algebra_layer_10)))
+$(OUT)/ARRAY2.$(FASLEXT): $(OUT)/IFARRAY.$(FASLEXT)
+
axiom_algebra_layer_11 = \
APPLYORE ARRAY1 ARRAY12 ARRAY2 \
ASTACK COMBINAT \
@@ -593,13 +622,13 @@ axiom_algebra_layer_11 = \
FLALG GALUTIL HEAP \
IARRAY2 IFARRAY INTCAT INTHEORY \
IRREDFFX LFCAT LODOCAT LODOCAT- \
- LWORD MATCAT MATCAT- MATSTOR \
+ LWORD MATSTOR \
ORESUP OREPCTO OREUP PLOT3D \
PR PREASSOC PRIMARR2 REDORDER \
- STREAM SYMPOLY \
+ SYMPOLY \
TS TUPLE UPSCAT UPSCAT- \
XDPOLY XEXPPKG \
- XF XF- XPBWPOLY XPOLY \
+ XF XF- XPOLY \
XRPOLY
axiom_algebra_layer_11_nrlibs = \
@@ -610,7 +639,7 @@ axiom_algebra_layer_11_objects = \
$(addsuffix .$(FASLEXT),$(axiom_algebra_layer_11)))
axiom_algebra_layer_12 = \
ULSCAT BITS DIRPROD2 IMATRIX \
- IVECTOR LPOLY LSMP LSMP1 MATCAT2 PTCAT TRIMAT \
+ LPOLY LSMP LSMP1 MATCAT2 PTCAT TRIMAT \
SYSTEM HOSTNAME PORTNUM
axiom_algebra_layer_12_nrlibs = \
@@ -626,13 +655,13 @@ axiom_algebra_layer_13 = \
ASSOCEQ CARTEN CLIF CLIP \
UPOLYC UPOLYC- \
COORDSYS DBASE DHMATRIX DIOSP \
- DIRPCAT DIRPCAT- D02BBFA D02BHFA \
+ D02BBFA D02BHFA \
D02CJFA FAXF FAXF- FFPOLY2 \
FNLA GRAY HB IRSN \
MCALCFN MHROWRED NUMODE NUMQUAD \
ODESYS ODETOOLS ORDFUNS PERMAN \
PFECAT PFECAT- POINT PSEUDLIN \
- PTPACK REP2 SETMN SEX \
+ PTPACK REP2 SETMN \
SYMFUNC VECTOR2 CHAR \
INBCON INBCON- OUTBCON OUTBCON-
@@ -643,13 +672,14 @@ axiom_algebra_layer_13_objects = \
$(addprefix $(OUT)/, \
$(addsuffix .$(FASLEXT),$(axiom_algebra_layer_13)))
$(OUT)/FS.$(FASLEXT): $(OUT)/UPOLYC.$(FASLEXT)
+$(OUT)/FTEM.$(FASLEXT): $(OUT)/TEXTFILE.$(FASLEXT)
axiom_algebra_layer_14 = \
FS FS- ACF ACF- \
ACFS ACFS- BALFACT BEZOUT BINARY BINFILE BOUNDZRO \
BPADICRT BRILL CDEN CHVAR \
COMMUPC CONTFRAC CVMP CYCLOTOM \
- CYCLES DDFACT DECIMAL DIRPROD DISPLAY DMP \
+ CYCLES DDFACT DECIMAL DISPLAY DMP \
DPMO DPOLCAT DPOLCAT- D01AJFA \
D01AKFA D01ALFA D01AMFA D01APFA \
D01AQFA EMR EQ ERROR \
@@ -666,7 +696,7 @@ axiom_algebra_layer_14 = \
GOSPER GRIMAGE GROEBSOL HDMP \
HDP HEXADEC HEUGCD IBPTOOLS \
IFF IBITS ICARD ICDEN \
- IDECOMP IIARRAY2 IMATLIN IMATQF \
+ IDECOMP IMATLIN IMATQF \
INMODGCD INNMFACT INPSIGN INTHERTR \
INTRAT INTRF INTSLPE INTTR \
ISUMP LAUPOL LEADCDET LGROBP \
@@ -688,20 +718,20 @@ axiom_algebra_layer_14 = \
RATFACT RCFIELD RCFIELD- RDETR \
RDETRS REAL0 REAL0Q REALSOLV \
RESRING RETSOL RF RFFACTOR \
- RMATCAT RMATCAT- RRCC RRCC- \
+ RRCC RRCC- \
SCPKG SHDP SHP SIGNRF \
SMITH SMP SMTS SOLVEFOR \
SPLTREE STINPROD STTFNC SUBRESP \
SUMRF SUP SUPFRACF TANEXP \
- TEMUTL TEX TEXTFILE TREE \
+ TEMUTL TEX TEXTFILE \
TWOFACT UNIFACT UP UPCDEN \
UPDECOMP UPDIVP UPMP UPOLYC2 \
UPXSCAT UPSQFREE VIEWDEF VIEW2D \
WEIER WP \
- EQTBL GSTBL HASHTBL \
- INTABL INTFTBL STBL STRTBL\
- TABLE FST SYMS SYMTAB \
- IOBCON
+ EQTBL GSTBL \
+ INTFTBL STBL STRTBL\
+ FST SYMS SYMTAB \
+ IOBCON
axiom_algebra_layer_14_nrlibs = \
@@ -710,12 +740,22 @@ axiom_algebra_layer_14_nrlibs = \
axiom_algebra_layer_14_objects = \
$(addprefix $(OUT)/, \
$(addsuffix .$(FASLEXT),$(axiom_algebra_layer_14)))
+$(OUT)/EXPUPXS.$(FASLEXT): $(OUT)/UPXS.$(FASLEXT)
+$(OUT)/UPXS.$(FASLEXT): $(OUT)/UPXSCAT.$(FASLEXT) $(OUT)/UPXSCONS.$(FASLEXT) \
+ $(OUT)/ULS.$(FASLEXT)
+$(OUT)/UPXSCONS.$(FASLEXT): $(OUT)/UPXSCCA.$(FASLEXT)
+$(OUT)/ULS.$(FASLEXT): $(OUT)/ULSCONS.$(FASLEXT)
+$(OUT)/ULSCONS.$(FASLEXT): $(OUT)/ULSCCAT.$(FASLEXT)
+$(OUT)/ULSCCAT.$(FASLEXT): $(OUT)/UTS.$(FASLEXT)
+$(OUT)/UTS.$(FASLEXT): $(OUT)/UTSCAT.$(FASLEXT)
+
axiom_algebra_layer_15 = \
- DSMP EXPUPXS \
+ DSMP EXPUPXS UPXS UPXSCONS \
FRAMALG FRAMALG- MDAGG ODPOL \
PLOT RMCAT2 ROIRC SDPOL \
- SMATCAT SMATCAT- TUBETOOL UPXSCCA \
- UPXSCCA- JAVACODE POLY BYTEBUF OVERSET
+ ULS ULSCONS TUBETOOL UPXSCCA \
+ UPXSCCA- JAVACODE POLY BYTEBUF OVERSET \
+ ULSCCAT ULSCCAT- UTS UTSCAT UTSCAT-
axiom_algebra_layer_15_nrlibs = \
$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_15))
@@ -765,7 +805,7 @@ axiom_algebra_layer_18_objects = \
$(OUT)/TSETCAT.$(FASLEXT): $(OUT)/PSETCAT.$(FASLEXT) $(OUT)/RPOLCAT.$(FASLEXT)
axiom_algebra_layer_19 = \
- ACPLOT ANTISYM ANY ATTRBUT \
+ ACPLOT ANTISYM ATTRBUT \
COMPCAT \
COMPCAT- DRAW DRAWCFUN DROPT \
DROPT0 D01ANFA D01ASFA D03AGNT \
@@ -776,7 +816,7 @@ axiom_algebra_layer_19 = \
FUNCTION GDMP HACKPI \
IDEAL INFORM INFORM1 IPRNTPK \
IR ISUPS LIB \
- LMDICT LODOOPS MATRIX MKFLCFN \
+ LMDICT LODOOPS MKFLCFN \
MSET M3D NAGC02 NAGC05 \
NAGC06 NAGD03 NAGE01 NAGE02 \
NAGE04 NAGF07 NAGS NAGSP \
@@ -785,12 +825,12 @@ axiom_algebra_layer_19 = \
OPTPACK OSI PATTERN OVAR \
PMKERNEL PMSYM PRIMELT \
QALGSET2 QEQUAT RECLOS REP1 \
- RESULT QUATCAT QUATCAT- RFFACT \
- RMATRIX ROMAN ROUTINE RNGBIND \
+ QUATCAT QUATCAT- RFFACT \
+ ROMAN ROUTINE RNGBIND \
RULECOLD SAOS SEGBIND \
- SET SPECOUT SQMATRIX SWITCH \
- SYSSOLP UTSCAT \
- UTSCAT- VARIABLE WFFINTBS SPADPRSR \
+ SET SPECOUT SWITCH \
+ SYSSOLP \
+ VARIABLE WFFINTBS SPADPRSR \
PARSER TSETCAT TSETCAT-
axiom_algebra_layer_19_nrlibs = \
@@ -799,6 +839,9 @@ axiom_algebra_layer_19_nrlibs = \
axiom_algebra_layer_19_objects = \
$(addprefix $(OUT)/, \
$(addsuffix .$(FASLEXT),$(axiom_algebra_layer_19)))
+$(OUT)/AN.$(FASLEXT): $(OUT)/IAN.$(FASLEXT)
+$(OUT)/IAN.$(FASLEXT): $(OUT)/EXPR.$(FASLEXT)
+
axiom_algebra_layer_20 = \
AF ALGFACT ALGFF ALGMANIP ALGMFACT ALGPKG \
ALGSC AN APPRULE CINTSLPE COMPFACT COMPLEX \
@@ -830,7 +873,7 @@ axiom_algebra_layer_20 = \
SFORT SOLVESER SUMFS SUTS \
TOOLSIGN TRIGMNIP TRMANIP ULSCCAT \
ULSCCAT- UPXSSING UTSODE UTSODETL \
- UTS2 WUTSET
+ UTS2 WUTSET EXPR
axiom_algebra_layer_20_nrlibs = \
$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_20))
@@ -838,15 +881,17 @@ axiom_algebra_layer_20_nrlibs = \
axiom_algebra_layer_20_objects = \
$(addprefix $(OUT)/, \
$(addsuffix .$(FASLEXT),$(axiom_algebra_layer_20)))
+$(OUT)/FDIV.$(FASLEXT): $(OUT)/HELLFDIV.$(FASLEXT)
+
axiom_algebra_layer_21 = \
DEFINTEF DFINTTLS DEFINTRF D01TRNS \
- EFULS ESCONT EXPR EXPR2UPS \
+ EFULS ESCONT EXPR2UPS \
FDIV FSCINT FSINT FS2EXPXP \
GSERIES HELLFDIV INVLAPLA IR2F \
IRRF2F LAPLACE LIMITPS LODEEF \
NODE1 ODECONST ODEINT REP \
- SOLVERAD SULS SUPXS ULS \
- ULSCONS UPXS UPXSCONS UTS
+ SOLVERAD SULS SUPXS \
+ UPXSCONS
axiom_algebra_layer_21_nrlibs = \
$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_21))
@@ -999,7 +1044,7 @@ ${OUT}/%.$(FASLEXT): %.NRLIB/code.$(FASLEXT)
.PREVIOUS: %.spad
.PRECIOUS: %.NRLIB/code.$(FASLEXT)
%.NRLIB/code.$(FASLEXT): %.spad
- ${INTERPSYS} --strap=strap --system-algebra --optimize=2 --compile $<
+ ${INTERPSYS} --strap=strap --system-algebra --optimize=3 --compile $<
# Compile bootstrap file to machine object code, and the result
# immediately available for AXIOMsys consumption.
diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet
index b9ea75d0..7c4f46fd 100644
--- a/src/algebra/Makefile.pamphlet
+++ b/src/algebra/Makefile.pamphlet
@@ -361,7 +361,7 @@ $(OUT)/PATAB.$(FASLEXT): $(OUT)/TYPE.$(FASLEXT)
$(OUT)/BOOLEAN.$(FASLEXT): $(OUT)/PROPLOG.$(FASLEXT)
$(OUT)/VECTCAT.$(FASLEXT): $(OUT)/RADCAT.$(FASLEXT)
$(OUT)/IARRAY1.$(FASLEXT): $(OUT)/PRIMARR.$(FASLEXT)
-$(OUT)/PROPERTY.$(FASLEXT): $(OUT)/IDENT.$(FASLEXT)
+$(OUT)/PROPERTY.$(FASLEXT): $(OUT)/IDENT.$(FASLEXT) $(OUT)/PAIR.$(FASLEXT)
$(OUT)/BINDING.$(FASLEXT): $(OUT)/PROPERTY.$(FASLEXT)
$(OUT)/OPERCAT.$(FASLEXT): $(OUT)/ARITY.$(FASLEXT)
$(OUT)/REF.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT) $(OUT)/IDENT.$(FASLEXT)
@@ -391,12 +391,11 @@ axiom_algebra_layer_1_objects = \
<<layer2>>=
axiom_algebra_layer_2 = \
SYNTAX INTRET SEGXCAT CONTOUR LIST3 MKFUNC \
- COMMONOP KTVLOGIC FNCAT SCACHE BOP BOP1 \
+ COMMONOP FNCAT SCACHE BOP BOP1 \
DOMTMPLT FCTRDATA
$(OUT)/FNCAT.$(FASLEXT): $(OUT)/HOMOTOP.$(FASLEXT) $(OUT)/SETCAT.$(FASLEXT)
$(OUT)/SYNTAX.$(FASLEXT): $(OUT)/IDENT.$(FASLEXT)
-$(OUT/KTVLOGIC.$(FASLEXT): $(OUT)/PROPLOG.$(FASLEXT)
$(OUT)/COMMONOP.$(FASLEXT): $(OUT)/BOP.$(FASLEXT)
$(OUT)/DOMTMPLT.$(FASLEXT): $(OUT)/SYNTAX.$(FASLEXT)
$(OUT)/FCTRDATA.$(FASLEXT): $(OUT)/DOMTMPLT.$(FASLEXT)
@@ -483,13 +482,14 @@ axiom_algebra_layer_5_objects = \
$(OUT)/CHARPOL.$(FASLEXT): $(OUT)/SETCAT-.$(FASLEXT)
$(OUT)PROPFRML.$(FASLEXT): $(OUT)/KERNEL.$(FASLEXT)
+$(OUT)/KTVLOGIC.$(FASLEXT): $(OUT)/PROPLOG.$(FASLEXT) $(OUT)/BYTE.$(FASLEXT)
axiom_algebra_layer_6 = \
PROPFRML AUTOMOR CARTEN2 CHARPOL COMPLEX2 \
DIFEXT DIFEXT- ES1 ES2 GRMOD GRMOD- \
HYPCAT HYPCAT- MODRING NASRING NASRING- \
SORTPAK ZMOD \
- OAMONS BYTE SYSINT SYSNNI
+ KTVLOGIC OAMONS BYTE SYSINT SYSNNI
axiom_algebra_layer_6_nrlibs = \
$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_6))
@@ -504,8 +504,9 @@ axiom_algebra_layer_6_objects = \
\end{verbatim}
<<layer7>>=
+$(OUT)/IFAMON.$(FASLEXT): $(OUT)/LMOPS.$(FASLEXT)
axiom_algebra_layer_7 = \
- BTCAT BTCAT- FMCAT IDPOAM \
+ BTCAT BTCAT- LMOPS FMCAT IDPOAM \
IFAMON GRALG GRALG- \
INT8 INT16 INT32 INT64 UINT8 UINT16 \
UINT32 UINT64
@@ -521,11 +522,16 @@ axiom_algebra_layer_7_objects = \
\subsection{Layer8}
<<layer8>>=
+
+$(OUT)/BSTREE.$(FASLEXT): $(OUT)/BTREE.$(FASLEXT)
+$(OUT)/ITAYLOR.$(FASLEXT): $(OUT)/STREAM.$(FASLEXT)
+$(OUT)/STREAM.$(FASLEXT): $(OUT)/LZSTAGG.$(FASLEXT)
+
axiom_algebra_layer_8 = \
BSTREE BTOURN CARD DRAWHACK FACTFUNC FMTC \
FR2 FRAC2 FRUTIL ITAYLOR MLO NAALG \
NAALG- OP ORDCOMP2 RANDSRC UNISEG2 XALG \
- ARR2CAT ARR2CAT-
+ BTREE STREAM LZSTAGG LZSTAGG- ARR2CAT ARR2CAT-
axiom_algebra_layer_8_nrlibs = \
$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_8))
@@ -538,13 +544,15 @@ axiom_algebra_layer_8_objects = \
\subsection{Layer9}
<<layer9>>=
+$(OUT)/ODEIFTBL.$(FASLEXT): $(OUT)/TABLE.$(FASLEXT) $(OUT)/INTABL.$(FASLEXT)
+
axiom_algebra_layer_9 = \
AMR AMR- DEGRED DLP EAB ESTOOLS1 \
FAGROUP FAMONOID FLINEXP FLINEXP- FRETRCT FRETRCT- \
FSERIES FT IDPAG IDPOAMS INFINITY LA \
OMLO ORTHPOL PRODUCT PADICCT PMPRED PMASS \
PTFUNC2 RADCAT RADCAT- RATRET RADUTIL UPXS2 \
- XFALG ZLINDEP BBTREE \
+ XFALG ZLINDEP BBTREE TABLE INTABL \
ODEIFTBL NIPROB ODEPROB OPTPROB \
PDEPROB COLOR SIG FMONCAT
@@ -560,16 +568,32 @@ axiom_algebra_layer_9_objects = \
\subsection{Layer10}
<<layer10>>=
+$(OUT)/D01GBFA.$(FASLEXT): $(OUT)/RESULT.$(FASLEXT) $(OUT)/ANY.$(FASLEXT) \
+ $(OUT)/SEX.$(FASLEXT) $(OUT)/HASHTBL.$(FASLEXT)
+
+$(OUT)/SEX.$(FASLEXT): $(OUT)/SEXOF.$(FASLEXT)
+$(OUT)/LEXP.$(FASLEXT): $(OUT)/XPBWPOLY.$(FASLEXT)
+$(OUT)/XPBWPOLY.$(FASLEXT): $(OUT)/XPOLYC.$(FASLEXT)
+$(OUT)/PENDTREE.$(FASLEXT): $(OUT)/TREE.$(FASLEXT)
+$(OUT)/QFORM.$(FASLEXT): $(OUT)/SQMATRIX.$(FASLEXT)
+$(OUT)/SQMATRIX.$(FASLEXT): $(OUT)/SMATCAT.$(FASLEXT) \
+ $(OUT)/MATRIX.$(FASLEXT) $(OUT)/IIARRAY2.$(FASLEXT)
+$(OUT)/SMATCAT.$(FASLEXT): $(OUT)/RMATCAT.$(FASLEXT)
+$(OUT)/RMATCAT.$(FASLEXT): $(OUT)/DIRPROD.$(FASLEXT)
+$(OUT)/DIRPROD.$(FASLEXT): $(OUT)/DIRPCAT.$(FASLEXT)
+$(OUT)/DIRPCAT.$(FASLEXT): $(OUT)/VSPACE.$(FASLEXT) $(OUT)/IVECTOR.$(FASLEXT)
+$(OUT)/MATRIX.$(FASLEXT): $(OUT)/MATCAT.$(FASLEXT)
+
axiom_algebra_layer_10 = \
- BFUNCT BPADIC \
- BTREE CRAPACK DEQUEUE DLIST \
+ RESULT BFUNCT BPADIC ANY \
+ SEXOF CRAPACK DEQUEUE DLIST \
DRAWCX D01GBFA D02EJFA D03FAFA \
DRAWPT FAMR FAMR- FLASORT \
FLAGG2 FGROUP FM FM1 \
FPC FPC- FMONOID INDE \
IPADIC IROOT IR2 LEXP \
LIECAT LIECAT- LIST2 LIST2MAP \
- LMOPS LZSTAGG LZSTAGG- MAGMA \
+ SEX HASHTBL TREE MAGMA \
MESH MOEBIUS MODFIELD MODOP \
MRING MTHING NCNTFRAC NCODIV \
NUMTUBE ODR OFMONOID ONECOMP \
@@ -579,12 +603,15 @@ axiom_algebra_layer_10 = \
PINTERP PLOTTOOL PFR PMDOWN \
PRTITION PMINS PMLSAGG PMTOOLS \
PSCAT PSCAT- QFORM QUEUE \
- SEG SEG2 SEXOF \
+ SQMATRIX SEG SEG2 \
STACK STTAYLOR TABLBUMP TABLEAU \
TOPSP TRANFUN TRANFUN- TUBE \
UDPO UNISEG VIEW VSPACE \
- VSPACE- XPOLYC XPR BTAGG BTAGG- \
- FUNDESC
+ VSPACE- XPOLYC XPR BTAGG BTAGG- \
+ FUNDESC XPBWPOLY SMATCAT SMATCAT- \
+ RMATRIX RMATCAT RMATCAT- DIRPROD \
+ DIRPCAT DIRPCAT- IVECTOR MATRIX \
+ MATCAT MATCAT- IIARRAY2
axiom_algebra_layer_10_nrlibs = \
@@ -598,6 +625,8 @@ axiom_algebra_layer_10_objects = \
\subsection{Layer11}
<<layer11>>=
+$(OUT)/ARRAY2.$(FASLEXT): $(OUT)/IFARRAY.$(FASLEXT)
+
axiom_algebra_layer_11 = \
APPLYORE ARRAY1 ARRAY12 ARRAY2 \
ASTACK COMBINAT \
@@ -605,13 +634,13 @@ axiom_algebra_layer_11 = \
FLALG GALUTIL HEAP \
IARRAY2 IFARRAY INTCAT INTHEORY \
IRREDFFX LFCAT LODOCAT LODOCAT- \
- LWORD MATCAT MATCAT- MATSTOR \
+ LWORD MATSTOR \
ORESUP OREPCTO OREUP PLOT3D \
PR PREASSOC PRIMARR2 REDORDER \
- STREAM SYMPOLY \
+ SYMPOLY \
TS TUPLE UPSCAT UPSCAT- \
XDPOLY XEXPPKG \
- XF XF- XPBWPOLY XPOLY \
+ XF XF- XPOLY \
XRPOLY
axiom_algebra_layer_11_nrlibs = \
@@ -627,7 +656,7 @@ axiom_algebra_layer_11_objects = \
<<layer12>>=
axiom_algebra_layer_12 = \
ULSCAT BITS DIRPROD2 IMATRIX \
- IVECTOR LPOLY LSMP LSMP1 MATCAT2 PTCAT TRIMAT \
+ LPOLY LSMP LSMP1 MATCAT2 PTCAT TRIMAT \
SYSTEM HOSTNAME PORTNUM
axiom_algebra_layer_12_nrlibs = \
@@ -648,13 +677,13 @@ axiom_algebra_layer_13 = \
ASSOCEQ CARTEN CLIF CLIP \
UPOLYC UPOLYC- \
COORDSYS DBASE DHMATRIX DIOSP \
- DIRPCAT DIRPCAT- D02BBFA D02BHFA \
+ D02BBFA D02BHFA \
D02CJFA FAXF FAXF- FFPOLY2 \
FNLA GRAY HB IRSN \
MCALCFN MHROWRED NUMODE NUMQUAD \
ODESYS ODETOOLS ORDFUNS PERMAN \
PFECAT PFECAT- POINT PSEUDLIN \
- PTPACK REP2 SETMN SEX \
+ PTPACK REP2 SETMN \
SYMFUNC VECTOR2 CHAR \
INBCON INBCON- OUTBCON OUTBCON-
@@ -670,13 +699,14 @@ axiom_algebra_layer_13_objects = \
<<layer14>>=
$(OUT)/FS.$(FASLEXT): $(OUT)/UPOLYC.$(FASLEXT)
+$(OUT)/FTEM.$(FASLEXT): $(OUT)/TEXTFILE.$(FASLEXT)
axiom_algebra_layer_14 = \
FS FS- ACF ACF- \
ACFS ACFS- BALFACT BEZOUT BINARY BINFILE BOUNDZRO \
BPADICRT BRILL CDEN CHVAR \
COMMUPC CONTFRAC CVMP CYCLOTOM \
- CYCLES DDFACT DECIMAL DIRPROD DISPLAY DMP \
+ CYCLES DDFACT DECIMAL DISPLAY DMP \
DPMO DPOLCAT DPOLCAT- D01AJFA \
D01AKFA D01ALFA D01AMFA D01APFA \
D01AQFA EMR EQ ERROR \
@@ -693,7 +723,7 @@ axiom_algebra_layer_14 = \
GOSPER GRIMAGE GROEBSOL HDMP \
HDP HEXADEC HEUGCD IBPTOOLS \
IFF IBITS ICARD ICDEN \
- IDECOMP IIARRAY2 IMATLIN IMATQF \
+ IDECOMP IMATLIN IMATQF \
INMODGCD INNMFACT INPSIGN INTHERTR \
INTRAT INTRF INTSLPE INTTR \
ISUMP LAUPOL LEADCDET LGROBP \
@@ -715,20 +745,20 @@ axiom_algebra_layer_14 = \
RATFACT RCFIELD RCFIELD- RDETR \
RDETRS REAL0 REAL0Q REALSOLV \
RESRING RETSOL RF RFFACTOR \
- RMATCAT RMATCAT- RRCC RRCC- \
+ RRCC RRCC- \
SCPKG SHDP SHP SIGNRF \
SMITH SMP SMTS SOLVEFOR \
SPLTREE STINPROD STTFNC SUBRESP \
SUMRF SUP SUPFRACF TANEXP \
- TEMUTL TEX TEXTFILE TREE \
+ TEMUTL TEX TEXTFILE \
TWOFACT UNIFACT UP UPCDEN \
UPDECOMP UPDIVP UPMP UPOLYC2 \
UPXSCAT UPSQFREE VIEWDEF VIEW2D \
WEIER WP \
- EQTBL GSTBL HASHTBL \
- INTABL INTFTBL STBL STRTBL\
- TABLE FST SYMS SYMTAB \
- IOBCON
+ EQTBL GSTBL \
+ INTFTBL STBL STRTBL\
+ FST SYMS SYMTAB \
+ IOBCON
axiom_algebra_layer_14_nrlibs = \
@@ -742,12 +772,22 @@ axiom_algebra_layer_14_objects = \
\subsection{Layer15}
<<layer15>>=
+$(OUT)/EXPUPXS.$(FASLEXT): $(OUT)/UPXS.$(FASLEXT)
+$(OUT)/UPXS.$(FASLEXT): $(OUT)/UPXSCAT.$(FASLEXT) $(OUT)/UPXSCONS.$(FASLEXT) \
+ $(OUT)/ULS.$(FASLEXT)
+$(OUT)/UPXSCONS.$(FASLEXT): $(OUT)/UPXSCCA.$(FASLEXT)
+$(OUT)/ULS.$(FASLEXT): $(OUT)/ULSCONS.$(FASLEXT)
+$(OUT)/ULSCONS.$(FASLEXT): $(OUT)/ULSCCAT.$(FASLEXT)
+$(OUT)/ULSCCAT.$(FASLEXT): $(OUT)/UTS.$(FASLEXT)
+$(OUT)/UTS.$(FASLEXT): $(OUT)/UTSCAT.$(FASLEXT)
+
axiom_algebra_layer_15 = \
- DSMP EXPUPXS \
+ DSMP EXPUPXS UPXS UPXSCONS \
FRAMALG FRAMALG- MDAGG ODPOL \
PLOT RMCAT2 ROIRC SDPOL \
- SMATCAT SMATCAT- TUBETOOL UPXSCCA \
- UPXSCCA- JAVACODE POLY BYTEBUF OVERSET
+ ULS ULSCONS TUBETOOL UPXSCCA \
+ UPXSCCA- JAVACODE POLY BYTEBUF OVERSET \
+ ULSCCAT ULSCCAT- UTS UTSCAT UTSCAT-
axiom_algebra_layer_15_nrlibs = \
$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_15))
@@ -817,7 +857,7 @@ axiom_algebra_layer_18_objects = \
$(OUT)/TSETCAT.$(FASLEXT): $(OUT)/PSETCAT.$(FASLEXT) $(OUT)/RPOLCAT.$(FASLEXT)
axiom_algebra_layer_19 = \
- ACPLOT ANTISYM ANY ATTRBUT \
+ ACPLOT ANTISYM ATTRBUT \
COMPCAT \
COMPCAT- DRAW DRAWCFUN DROPT \
DROPT0 D01ANFA D01ASFA D03AGNT \
@@ -828,7 +868,7 @@ axiom_algebra_layer_19 = \
FUNCTION GDMP HACKPI \
IDEAL INFORM INFORM1 IPRNTPK \
IR ISUPS LIB \
- LMDICT LODOOPS MATRIX MKFLCFN \
+ LMDICT LODOOPS MKFLCFN \
MSET M3D NAGC02 NAGC05 \
NAGC06 NAGD03 NAGE01 NAGE02 \
NAGE04 NAGF07 NAGS NAGSP \
@@ -837,12 +877,12 @@ axiom_algebra_layer_19 = \
OPTPACK OSI PATTERN OVAR \
PMKERNEL PMSYM PRIMELT \
QALGSET2 QEQUAT RECLOS REP1 \
- RESULT QUATCAT QUATCAT- RFFACT \
- RMATRIX ROMAN ROUTINE RNGBIND \
+ QUATCAT QUATCAT- RFFACT \
+ ROMAN ROUTINE RNGBIND \
RULECOLD SAOS SEGBIND \
- SET SPECOUT SQMATRIX SWITCH \
- SYSSOLP UTSCAT \
- UTSCAT- VARIABLE WFFINTBS SPADPRSR \
+ SET SPECOUT SWITCH \
+ SYSSOLP \
+ VARIABLE WFFINTBS SPADPRSR \
PARSER TSETCAT TSETCAT-
axiom_algebra_layer_19_nrlibs = \
@@ -856,6 +896,9 @@ axiom_algebra_layer_19_objects = \
\subsection{Layer20}
<<layer20>>=
+$(OUT)/AN.$(FASLEXT): $(OUT)/IAN.$(FASLEXT)
+$(OUT)/IAN.$(FASLEXT): $(OUT)/EXPR.$(FASLEXT)
+
axiom_algebra_layer_20 = \
AF ALGFACT ALGFF ALGMANIP ALGMFACT ALGPKG \
ALGSC AN APPRULE CINTSLPE COMPFACT COMPLEX \
@@ -887,7 +930,7 @@ axiom_algebra_layer_20 = \
SFORT SOLVESER SUMFS SUTS \
TOOLSIGN TRIGMNIP TRMANIP ULSCCAT \
ULSCCAT- UPXSSING UTSODE UTSODETL \
- UTS2 WUTSET
+ UTS2 WUTSET EXPR
axiom_algebra_layer_20_nrlibs = \
$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_20))
@@ -900,15 +943,17 @@ axiom_algebra_layer_20_objects = \
\subsection{Layer21}
<<layer21>>=
+$(OUT)/FDIV.$(FASLEXT): $(OUT)/HELLFDIV.$(FASLEXT)
+
axiom_algebra_layer_21 = \
DEFINTEF DFINTTLS DEFINTRF D01TRNS \
- EFULS ESCONT EXPR EXPR2UPS \
+ EFULS ESCONT EXPR2UPS \
FDIV FSCINT FSINT FS2EXPXP \
GSERIES HELLFDIV INVLAPLA IR2F \
IRRF2F LAPLACE LIMITPS LODEEF \
NODE1 ODECONST ODEINT REP \
- SOLVERAD SULS SUPXS ULS \
- ULSCONS UPXS UPXSCONS UTS
+ SOLVERAD SULS SUPXS \
+ UPXSCONS
axiom_algebra_layer_21_nrlibs = \
$(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_21))
@@ -1442,7 +1487,7 @@ ${OUT}/%.$(FASLEXT): %.NRLIB/code.$(FASLEXT)
.PREVIOUS: %.spad
.PRECIOUS: %.NRLIB/code.$(FASLEXT)
%.NRLIB/code.$(FASLEXT): %.spad
- ${INTERPSYS} --strap=strap --system-algebra --optimize=2 --compile $<
+ ${INTERPSYS} --strap=strap --system-algebra --optimize=3 --compile $<
@
diff --git a/src/algebra/constant.spad.pamphlet b/src/algebra/constant.spad.pamphlet
index be5e9f90..4b8bca4c 100644
--- a/src/algebra/constant.spad.pamphlet
+++ b/src/algebra/constant.spad.pamphlet
@@ -188,12 +188,10 @@ AlgebraicNumber(): Exports == Implementation where
norm : (%,List Kernel %) -> %
++ norm(f,l) computes the norm of the algebraic number f
++ with respect to the extension generated by kernels l
- Implementation ==> InnerAlgebraicNumber add
- Rep:=InnerAlgebraicNumber
- a,b:%
- zero? a == trueEqual(a::Rep,0::Rep)
- one? a == trueEqual(a::Rep,1::Rep)
- a=b == trueEqual((a-b)::Rep,0::Rep)
+ Implementation == InnerAlgebraicNumber add
+ zero? a == trueEqual(rep a, rep 0)
+ one? a == trueEqual(rep a, rep 1)
+ a=b == trueEqual(rep a - rep b,rep 0)
@
\section{License}
diff --git a/src/algebra/strap/ISTRING.lsp b/src/algebra/strap/ISTRING.lsp
index d8d641a3..70450c5b 100644
--- a/src/algebra/strap/ISTRING.lsp
+++ b/src/algebra/strap/ISTRING.lsp
@@ -425,8 +425,7 @@
(SEQ (EXIT 0))
(LETT |i| (+ |i| 1) |ISTRING;split;$CL;22|) (GO G190)
G191 (EXIT NIL))
- (LETT |l| (SPADCALL (|getShellEntry| $ 72))
- |ISTRING;split;$CL;22|)
+ (LETT |l| NIL |ISTRING;split;$CL;22|)
(SEQ G190
(COND
((NULL (COND
@@ -469,7 +468,7 @@
$)
|l| (|getShellEntry| $ 73))
|ISTRING;split;$CL;22|)))
- (EXIT (SPADCALL |l| (|getShellEntry| $ 74)))))))
+ (EXIT (NREVERSE |l|))))))
(DEFUN |ISTRING;split;$CcL;23| (|s| |cc| $)
(PROG (|n| |j| |i| |l|)
@@ -487,8 +486,7 @@
(SEQ (EXIT 0))
(LETT |i| (+ |i| 1) |ISTRING;split;$CcL;23|) (GO G190)
G191 (EXIT NIL))
- (LETT |l| (SPADCALL (|getShellEntry| $ 72))
- |ISTRING;split;$CcL;23|)
+ (LETT |l| NIL |ISTRING;split;$CcL;23|)
(SEQ G190
(COND
((NULL (COND
@@ -531,7 +529,7 @@
$)
|l| (|getShellEntry| $ 73))
|ISTRING;split;$CcL;23|)))
- (EXIT (SPADCALL |l| (|getShellEntry| $ 74)))))))
+ (EXIT (NREVERSE |l|))))))
(DEFUN |ISTRING;leftTrim;$C$;24| (|s| |c| $)
(PROG (|n| |i|)
diff --git a/src/algebra/strap/LIST.lsp b/src/algebra/strap/LIST.lsp
index 09c53e63..cd156bad 100644
--- a/src/algebra/strap/LIST.lsp
+++ b/src/algebra/strap/LIST.lsp
@@ -64,9 +64,10 @@
(SEQ (SPADCALL |dev| (|getShellEntry| $ 16))
(SPADCALL |dev| "list1" "list" (|getShellEntry| $ 18))
(SEQ G190 (COND ((NULL (NOT (NULL |x|))) (GO G191)))
- (SEQ (SPADCALL |dev| (|SPADfirst| |x|) NIL
- (|getShellEntry| $ 22))
- (EXIT (LETT |x| (CDR |x|) |LIST;writeOMList|)))
+ (SEQ (SPADCALL |dev| (SPADCALL |x| (|getShellEntry| $ 20))
+ NIL (|getShellEntry| $ 22))
+ (EXIT (LETT |x| (SPADCALL |x| (|getShellEntry| $ 23))
+ |LIST;writeOMList|)))
NIL (GO G190) G191 (EXIT NIL))
(EXIT (SPADCALL |dev| (|getShellEntry| $ 24)))))
@@ -120,16 +121,25 @@
(DEFUN |LIST;setIntersection;3$;11| (|l1| |l2| $)
(PROG (|u|)
(RETURN
- (SEQ (LETT |u| NIL |LIST;setIntersection;3$;11|)
+ (SEQ (LETT |u| (SPADCALL (|getShellEntry| $ 38))
+ |LIST;setIntersection;3$;11|)
(LETT |l1| (SPADCALL |l1| (|getShellEntry| $ 36))
|LIST;setIntersection;3$;11|)
- (SEQ G190 (COND ((NULL (NOT (NULL |l1|))) (GO G191)))
+ (SEQ G190
+ (COND
+ ((NULL (NOT (SPADCALL |l1| (|getShellEntry| $ 39))))
+ (GO G191)))
(SEQ (COND
- ((SPADCALL (|SPADfirst| |l1|) |l2|
+ ((SPADCALL
+ (SPADCALL |l1| (|getShellEntry| $ 20)) |l2|
(|getShellEntry| $ 40))
- (LETT |u| (CONS (|SPADfirst| |l1|) |u|)
+ (LETT |u|
+ (CONS (SPADCALL |l1|
+ (|getShellEntry| $ 20))
+ |u|)
|LIST;setIntersection;3$;11|)))
- (EXIT (LETT |l1| (CDR |l1|)
+ (EXIT (LETT |l1|
+ (SPADCALL |l1| (|getShellEntry| $ 23))
|LIST;setIntersection;3$;11|)))
NIL (GO G190) G191 (EXIT NIL))
(EXIT |u|)))))
@@ -139,17 +149,24 @@
(RETURN
(SEQ (LETT |l1| (SPADCALL |l1| (|getShellEntry| $ 36))
|LIST;setDifference;3$;12|)
- (LETT |lu| NIL |LIST;setDifference;3$;12|)
- (SEQ G190 (COND ((NULL (NOT (NULL |l1|))) (GO G191)))
+ (LETT |lu| (SPADCALL (|getShellEntry| $ 38))
+ |LIST;setDifference;3$;12|)
+ (SEQ G190
+ (COND
+ ((NULL (NOT (SPADCALL |l1| (|getShellEntry| $ 39))))
+ (GO G191)))
(SEQ (LETT |l11|
(SPADCALL |l1| 1 (|getShellEntry| $ 42))
|LIST;setDifference;3$;12|)
(COND
((NOT (SPADCALL |l11| |l2|
(|getShellEntry| $ 40)))
- (LETT |lu| (CONS |l11| |lu|)
+ (LETT |lu|
+ (SPADCALL |l11| |lu|
+ (|getShellEntry| $ 43))
|LIST;setDifference;3$;12|)))
- (EXIT (LETT |l1| (CDR |l1|)
+ (EXIT (LETT |l1|
+ (SPADCALL |l1| (|getShellEntry| $ 23))
|LIST;setDifference;3$;12|)))
NIL (GO G190) G191 (EXIT NIL))
(EXIT |lu|)))))
diff --git a/src/algebra/strap/OUTFORM.lsp b/src/algebra/strap/OUTFORM.lsp
index 636f4db5..fca0ec38 100644
--- a/src/algebra/strap/OUTFORM.lsp
+++ b/src/algebra/strap/OUTFORM.lsp
@@ -667,8 +667,7 @@
(SEQ (LETT |c| 'CONCATB |OUTFORM;blankSeparate;L$;35|)
(LETT |l1| NIL |OUTFORM;blankSeparate;L$;35|)
(SEQ (LETT |u| NIL |OUTFORM;blankSeparate;L$;35|)
- (LETT #0# (SPADCALL |l| (|getShellEntry| $ 63))
- |OUTFORM;blankSeparate;L$;35|)
+ (LETT #0# (REVERSE |l|) |OUTFORM;blankSeparate;L$;35|)
G190
(COND
((OR (ATOM #0#)
@@ -679,9 +678,7 @@
(GO G191)))
(SEQ (EXIT (COND
((EQCAR |u| |c|)
- (LETT |l1|
- (SPADCALL (CDR |u|) |l1|
- (|getShellEntry| $ 64))
+ (LETT |l1| (APPEND (CDR |u|) |l1|)
|OUTFORM;blankSeparate;L$;35|))
('T
(LETT |l1| (CONS |u| |l1|)
@@ -729,18 +726,15 @@
(DEFUN |OUTFORM;scripts;$L$;46| (|a| |l| $)
(COND
- ((SPADCALL |l| (|getShellEntry| $ 76)) |a|)
- ((SPADCALL (SPADCALL |l| (|getShellEntry| $ 77))
- (|getShellEntry| $ 76))
+ ((NULL |l|) |a|)
+ ((NULL (CDR |l|))
(|OUTFORM;sub;3$;42| |a| (SPADCALL |l| (|getShellEntry| $ 78)) $))
('T (CONS 'SUPERSUB (CONS |a| |l|)))))
(DEFUN |OUTFORM;supersub;$L$;47| (|a| |l| $)
(SEQ (COND
- ((ODDP (SPADCALL |l| (|getShellEntry| $ 80)))
- (LETT |l|
- (SPADCALL |l| (LIST (LIST 'NOTHING))
- (|getShellEntry| $ 64))
+ ((ODDP (LENGTH |l|))
+ (LETT |l| (APPEND |l| (LIST (LIST 'NOTHING)))
|OUTFORM;supersub;$L$;47|)))
(EXIT (CONS 'ALTSUPERSUB (CONS |a| |l|)))))
@@ -872,16 +866,13 @@
(DEFUN |OUTFORM;infix;$L$;77| (|a| |l| $)
(COND
- ((SPADCALL |l| (|getShellEntry| $ 76)) (LIST 'NOTHING))
- ((SPADCALL (SPADCALL |l| (|getShellEntry| $ 77))
- (|getShellEntry| $ 76))
- (SPADCALL |l| (|getShellEntry| $ 78)))
+ ((NULL |l|) (LIST 'NOTHING))
+ ((NULL (CDR |l|)) (SPADCALL |l| (|getShellEntry| $ 78)))
((|OUTFORM;infix?;$B;74| |a| $) (CONS |a| |l|))
('T
(|OUTFORM;hconcat;L$;49|
(LIST (SPADCALL |l| (|getShellEntry| $ 78)) |a|
- (|OUTFORM;infix;$L$;77| |a|
- (SPADCALL |l| (|getShellEntry| $ 77)) $))
+ (|OUTFORM;infix;$L$;77| |a| (CDR |l|) $))
$))))
(DEFUN |OUTFORM;infix;4$;78| (|a| |b| |c| $)
diff --git a/src/algebra/strap/SYMBOL.lsp b/src/algebra/strap/SYMBOL.lsp
index f49484a6..724e0087 100644
--- a/src/algebra/strap/SYMBOL.lsp
+++ b/src/algebra/strap/SYMBOL.lsp
@@ -662,8 +662,7 @@
(|getShellEntry| $ 151))
|SYMBOL;scripts;$R;32|)
(LETT |allscripts|
- (SPADCALL (|SYMBOL;list;$L;34| |sy| $)
- (|getShellEntry| $ 152))
+ (CDR (|SYMBOL;list;$L;34| |sy| $))
|SYMBOL;scripts;$R;32|)
(LETT |m|
(SPADCALL |lscripts| (|getShellEntry| $ 153))
@@ -679,9 +678,7 @@
NIL))
(GO G191)))
(COND
- ((< (SPADCALL |allscripts|
- (|getShellEntry| $ 154))
- |n|)
+ ((< (LENGTH |allscripts|) |n|)
(|error| "Improper script count in symbol"))
('T
(SEQ (SPADCALL |lscripts| |i|
diff --git a/src/interp/c-util.boot b/src/interp/c-util.boot
index 34fee8df..45afea96 100644
--- a/src/interp/c-util.boot
+++ b/src/interp/c-util.boot
@@ -1146,6 +1146,8 @@ setCompilerOptimizations level ==
$optReplaceSimpleFunctions := true
if level > 1 then
$optExportedFunctionReference := true
+ if level > 2 then
+ $optimizeRep := true
coreError '"unknown optimization level request"
diff --git a/src/interp/define.boot b/src/interp/define.boot
index e50aee3b..d25302e8 100644
--- a/src/interp/define.boot
+++ b/src/interp/define.boot
@@ -1443,8 +1443,10 @@ doIt(item,$predl) ==
$functorLocalParameters:= [:$functorLocalParameters,lhs]
if code is ["%LET",.,rhs',:.] and isDomainForm(rhs',$e) then
if lhs="Rep" then
- $Representation:= getRepresentation $e
- --$Representation bound by compDefineFunctor, used in compNoStacking
+ --$Representation bound by compDefineFunctor, used in compNoStacking
+ $Representation := getRepresentation $e
+ if $optimizeRep then
+ nominateForInlining $Representation
code is ["%LET",:.] =>
RPLACA(item,"setShellEntry")
rhsCode := rhs'
diff --git a/src/interp/sys-driver.boot b/src/interp/sys-driver.boot
index de08b540..1e6771d0 100644
--- a/src/interp/sys-driver.boot
+++ b/src/interp/sys-driver.boot
@@ -1,4 +1,4 @@
--- Copyright (C) 2007-2009 Gabriel Dos Reis
+-- Copyright (C) 2007-2010 Gabriel Dos Reis
-- All rights reserved.
--
-- Redistribution and use in source and binary forms, with or without
@@ -193,6 +193,7 @@ initializeGlobalState() ==
$compileExportsOnly := getOptionValue "exports-only"
$compileDefaultsOnly := getOptionValue "defaults-only"
$reportOptimization := getOptionValue "show-insn"
+ $optimizeRep := getOptionValue "inline-rep"
setCompilerOptimizations(getOptionValue "optimize" or
$defaultOptimizationLevel)
GCMSG(NIL)
diff --git a/src/interp/sys-globals.boot b/src/interp/sys-globals.boot
index d73e5234..d2a756a7 100644
--- a/src/interp/sys-globals.boot
+++ b/src/interp/sys-globals.boot
@@ -1,6 +1,6 @@
-- Copyright (c) 1991-2002, The Numerical Algorithms Group Ltd.
-- All rights reserved.
--- Copyright (C) 2007-2008, Gabriel Dos Reis.
+-- Copyright (C) 2007-2010, Gabriel Dos Reis.
-- All rights reserved.
--
-- Redistribution and use in source and binary forms, with or without
@@ -490,5 +490,10 @@ $compileExportsOnly := false
++ compiling categories.
$compileDefaultsOnly := false
+++ True if we should consider the representation domain (`Rep')
+++ as candidate for inlining, for the purpose of reducing
+++ abstraction penalty.
+$optimizeRep := false
+
++
$leanMode := false