diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 11 | ||||
-rw-r--r-- | src/algebra/Makefile.in | 129 | ||||
-rw-r--r-- | src/algebra/Makefile.pamphlet | 129 | ||||
-rw-r--r-- | src/algebra/constant.spad.pamphlet | 10 | ||||
-rw-r--r-- | src/algebra/strap/ISTRING.lsp | 10 | ||||
-rw-r--r-- | src/algebra/strap/LIST.lsp | 41 | ||||
-rw-r--r-- | src/algebra/strap/OUTFORM.lsp | 27 | ||||
-rw-r--r-- | src/algebra/strap/SYMBOL.lsp | 7 | ||||
-rw-r--r-- | src/interp/c-util.boot | 2 | ||||
-rw-r--r-- | src/interp/define.boot | 6 | ||||
-rw-r--r-- | src/interp/sys-driver.boot | 3 | ||||
-rw-r--r-- | src/interp/sys-globals.boot | 7 |
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 |