aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/strap
AgeCommit message (Collapse)AuthorFilesLines
2010-06-10 * interp/g-opt.boot (optCollectVector): Generate %loop for thedos-reis1-118/+119
non-simple case.
2010-06-09 * interp/compiler.boot (canReturn): Handle %when and %bind.dos-reis7-596/+414
(compMatchAlternative): Generate %bind form. (compMatch): Likewise. (compReduce1): Rewrite. (getIdentity): Tidy. * interp/g-opt.boot (changeThrowToExit): HAndle %reduce. (varIsAssigned): %store is side-effectful. * interp/g-util.boot (expandReduce): New. Expand %reduce forms. * interp/i-map.boot (getUserIdentifiersIn): Handle %reduce. (findLocalVars1): Likewise. * interp/i-spec1.boot (checkForFreeVariables): Likewise.
2010-06-09 Widen scope of iterator variables in presence of terminatingdos-reis10-1291/+1029
predicate iterators. There is exactly one instance in the entire OpenAxio library. * interp/g-util.boot (expandIN): Take one more parameter to determine early binding. (expandIterators): Determine if wider scope is needed for iterator variables.
2010-06-07 * interp/c-util.boot (isLispSpecialVariable): New.dos-reis2-48/+48
(mutateToBackendCode): Use it to record special vars. Be careful with locally bound variables.
2010-06-06 * interp/c-util.boot (mutateToBackendCode): Don't replace explicitdos-reis36-469/+255
SETQ by LETT.
2010-06-06 * interp/c-util.boot (needPROGS?): New.dos-reis17-318/+255
(transformToBackendCode): Use it. Don't add unneeded PROG/RETURN.
2010-06-06 * interp/compiler.boot (compRepeatOrCollect): Compile listdos-reis8-701/+465
comprehension to %collect form.
2010-06-04Update cached algebra Lisp filesdos-reis6-43/+41
2010-06-04 * interp/buildom.boot: Clean up QEQCAR uses.dos-reis9-88/+95
2010-06-02Use builtin functions for DF.dos-reis1-163/+168
2010-06-01 * algebra/list.spad.pamphlet: Use builtin functions.dos-reis1-158/+157
2010-06-01Adjust opcode for character supportdos-reis1-7/+7
2010-05-30 * interp/c-util.boot (middleEndExpand): Tidy.dos-reis59-418/+413
* interp/g-util.boot (expandToVMForm): Likewise. (expandStore): Refine store to pair components. * algebra/any.spad.pamphlet (Scope): Use builtin operators. (Environment): Likewise. * algebra/domain.spad.pamphlet (FunctionDescriptor): Likewise. (ConstructorCall): Likewise. (FunctorData): Likewise. (OperatorSignature): Likewise. (Category): Likewise. (Domain): Likewise. * algebra/integer.spad.pamphlet (Integer): Likewise. (NonNegativeInteger): Likewise. * algebra/outform.spad.pamphlet: Likewise. * algebra/si.spad.pamphlet (SingleInteger): Likewise. * algebra/syntax.spad.pamphlet (Syntax): Likewise.
2010-05-30 * algebra/boolean.spad.pamphlet (Boolean): Remove reference todos-reis4-14/+14
Lisp. Use builtin functions.
2010-05-05 * interp/compiler.boot (compSetq1): Call self, not compSetq.dos-reis2-53/+43
* interp/c-util.boot (isAtomicForm): Move to g-util.boot. * interp/g-opt.boot (optSEQ): Splice toplevel PROGN forms. * interp/g-util.boot (isAtomicForm): Move from c-util.boot. Export.
2010-05-05 * interp/c-util.boot (backendCompileSPADSLAM): Generate moredos-reis33-1381/+1124
readable Lisp code.
2010-05-03 Generate more readable code for functor definitions.dos-reis39-1181/+955
* interp/nruncomp.boot (washFunctorBody): New. (buildFunctor): Use it. * interp/g-opt.boot (optBind): New. (optLIST): Likewise.
2010-04-30 * interp/macros.lisp (|check-subtype|): Return coerced value if can.dos-reis19-355/+297
(|check-union|): Likewise. * interp/compiler.boot (coerceSuperset): Tidy. Generate %Retract instruction. * interp/g-opt.boot (optRetract): New.
2010-04-25 * algebra/aggcat.spad.pamphlet: Tidy.dos-reis4-6/+6
2010-04-20 * interp/compiler.boot (joinIntegerModes): New.dos-reis9-544/+536
(compIntegerValue): Likewise. (compStepIterator): Likewise. (compIterate): Use it.
2010-04-04 * algebra/boolean.spad.pamphlet (BooleanLogic): New.dos-reis1-205/+226
(PropositionalLogic): Extend it. * algebra/aggcat.spad.pamphlet (BitAggregate): Likewise. * algebra/si.spad.pamphlet (SingleInteger): Assert membership to BooleanLogic.
2010-03-07 * interp/g-opt.boot ($VMsideEffectFreeOperators): New.dos-reis5-27/+64
($simpleVMoperators): Augment it. (semiSimpleRelativeTo?): New. (isSimpleVMForm): Use it. * interp/c-util.boot (forwardingCall?): New. (usesVariablesLinearly?): Likewise. (expandableDefinition?): Likewise. (foldSpadcall): Tidy. (foldExportedFunctionReferences): If a function is discovered to be expandable, make it so. * interp/define.boot (spadCompileOrSetq): Tidy.
2010-03-05 * interp/sys-globals.boot ($optimizeRep): Define.dos-reis4-41/+44
* 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-01 * algebra/vector.spad.pamphlet (maxIndex$Vector): Define.dos-reis1-27/+38
2010-02-17 * algebra/aggcat.spad.pamphlet: Remove unnecessary call to void.dos-reis1-79/+79
* algebra/algext.spad.pamphlet: Likewise. * algebra/catdef.spad.pamphlet: Likewise. * algebra/curve.spad.pamphlet: Likewise. * algebra/d01agents.spad.pamphlet: Likewise. * algebra/d02agents.spad.pamphlet: Likewise. * algebra/ffcg.spad.pamphlet: Likewise. * algebra/ffhom.spad.pamphlet: Likewise. * algebra/ffnb.spad.pamphlet: Likewise. * algebra/ffp.spad.pamphlet: Likewise. * algebra/formula.spad.pamphlet: Likewise. * algebra/fortmac.spad.pamphlet: Likewise. * algebra/fortpak.spad.pamphlet: Likewise. * algebra/fortran.spad.pamphlet: Likewise. * algebra/forttyp.spad.pamphlet: Likewise. * algebra/generic.spad.pamphlet: Likewise. * algebra/kl.spad.pamphlet: Likewise. * algebra/mathml.spad.pamphlet: Likewise. * algebra/newdata.spad.pamphlet: Likewise. * algebra/out.spad.pamphlet: Likewise. * algebra/permgrps.spad.pamphlet: Likewise. * algebra/pfo.spad.pamphlet: Likewise. * algebra/regset.spad.pamphlet: Likewise. * algebra/routines.spad.pamphlet: Likewise. * algebra/setorder.spad.pamphlet: Likewise. * algebra/sups.spad.pamphlet: Likewise. * algebra/symbol.spad.pamphlet: Likewise. * algebra/tex.spad.pamphlet: Likewise.
2010-02-17 * interp/compiler.boot (compAtomWithModemap): Reject niladicdos-reis2-150/+149
functions used as constants. * algebra/aggcat.spad.pamphlet (IndexedAggregate): Add parenthesis for call to niladic function 'void'. * algebra/algext.spad.pamphlet (SimpleAlgebraicExtension): Likewise. * algebra/curve.spad.pamphlet (RadicalFunctionField): Likewise. (AlgebraicFunctionField): Likewise. * algebra/permgrps.spad.pamphlet (PermutationGroup): Likewise. * algebra/pfo.spad.pamphlet (FunctionSpaceReduce): Likewise. * algebra/setorder.spad.pamphlet: Likewise. * algebra/ffcat.spad.pamphlet (FiniteFieldCategory): Add parenthesis for call to niladic function 'representationType'. * algebra/ffnb.spad.pamphlet (FiniteFieldNormalBasisExtensionByPolynomial): Likewise for normalElement. * algebra/float.spad.pamphlet (Float): Likewise for OMencodingXML, pi, log2, log10, digits. * algebra/fnla.spad.pamphlet (FreeNilpotentLie): Likewise for dimension. * algebra/fraction.spad.pamphlet (Fraction): Likewise for OMencodingXML. * algebra/gaussian.spad.pamphlet (Complex): Likewise. * algebra/integer.spad.pamphlet (Integer): Likewise. * algebra/list.spad.pamphlet (List): Likewise. * algebra/sf.spad.pamphlet (DoubleFloat): Likewise. * algebra/si.spad.pamphlet (SingleInteger): Likewise. * algebra/string.spad.pamphlet (String): Likewise. * algebra/symbol.spad.pamphlet (Symbol): Likewise. * algebra/intrf.spad.pamphlet (TranscendentalIntegration): Likewise for empty. * algebra/kl.spad.pamphlet (SortedCache): Likewise for cache, void. * algebra/newdata.spad.pamphlet (TabulatedComputationPackage): Likewise for usingTable?. * algebra/omserver.spad.pamphlet (OpenMathServerPackage): Likewise for OMencodingUnknown. * algebra/plot.spad.pamphlet (Plot): Likewise for adaptive?. * algebra/plot3d.spad.pamphlet (Plot3D): Likewise for adaptive3D?.
2010-02-16 * interp/compiler.boot (compAtomWithModemap): Rewrite.dos-reis2-180/+178
(transImplementation): Remove.
2010-02-11 * algebra/boolean.spad.pamphlet (~$Boolean): Work around silly bugdos-reis1-19/+21
in CLisp-2.48.
2010-02-09 * algebra/list.spad.pamphlet (IndexedList): Don't use NEQ.dos-reis2-112/+88
2009-09-20 * algebra/data.spad.pamphlet (size$Byte): Implement.dos-reis1-1/+5
(index$Byte): Likewise. (lookup$Byte): Likewise. (random$Byte): Likewise.
2009-08-28 * boot/ast.boot (bfCase): Don't introduce temporary for scrutineedos-reis59-189/+189
when it is already reduced.
2009-08-16 * interp/i-map.boot (addMap): Fix typo from last commit.dos-reis16-101/+103
* interp/compiler.boot (compElt): Fix thinko, one more time. * interp/nruncomp.boot (optDeltaEntry): Don't overquote VM forms for constants. * algebra/algext.spad.pamphlet: Call niladic functions with empty argument lists. * algebra/ddfact.spad.pamphlet: Likewise. * algebra/gpgcd.spad.pamphlet: Likewise. * algebra/modmon.spad.pamphlet: Likewise. * algebra/pf.spad.pamphlet: Likewise. * algebra/polycat.spad.pamphlet: Likewise. * algebra/twofact.spad.pamphlet: Likewise. * algebra/list.spad.pamphlet: "nil" is now a ocnstant. * algebra/string.spad.pamphlet: "space", "quote", "escape" are now constants.
2009-07-06 * interp/compiler.boot (localReferenceIfThere): Tidy.dos-reis1-49/+51
* interp/g-util.boot (homogeneousListToVector): New. * interp/g-opt.boot (optCollectVector): Use it.
2009-07-04 * interp/c-util.boot (simplifySEQ): New.dos-reis13-384/+305
(transformToBackendCode): Use it.
2009-07-03 * interp/sys-macros.lisp (PRIMVEC2ARR): Remove.dos-reis1-82/+80
(COLLECTVEC): Likewise. * interp/compiler.boot (compRepeatOrCollect): Tidy.
2009-07-02 * interp/sys-macros.lisp (COLLECTV): Use setSimpleArrayEntry, notdos-reis1-1/+2
SETELT.
2009-06-15 * interp/define.boot (spadCompileOrSetq): Tidy.dos-reis2-104/+270
* interp/fnewmeta.lisp (PARSE-Sexpr1): Disable negative integers in data. A facility not actually used in Spad code.
2009-06-07 * algebra/kl.spad.pamphlet (name$Kernel): Remove.dos-reis5-5/+5
* algebra/d01weights.spad.pamphlet: Adjust. * algebra/fs2expxp.spad.pamphlet: Likewise. * algebra/fs2ups.spad.pamphlet: Likewise. * algebra/fspace.spad.pamphlet: Likewise. * algebra/limitps.spad.pamphlet: Likewise. * algebra/transsolve.spad.pamphlet: Likewise.
2009-06-01 * interp/compiler.boot (compGreaterThan): Remove.dos-reis22-973/+964
* interp/parse.boot (parseGreaterEqual): Likewise.
2009-06-01 * interp/compiler.boot (compGreaterThan): New. Compiledos-reis4-852/+943
greater-than expressions. * interp/parse.boot (parseGreaterThan): Remove. * algebra/data.spad.pamphlet (Byte): Implement all comparison functions. * algebra/integer.spad.pamphlet (Integer): Likewise. * algebra/sf.spad.pamphlet (DoubleFloat): Likewise. * algebra/si.spad.pamphlet (SingleInteger): Likewise. * algebra/string.spad.pamphlet (Character): Likewise.
2009-05-31 * algebra/term.spad.pamphlet (is?$OperatorCategory): New.dos-reis4-36/+53
* algebra/op.spad.pamphlet (BasicOperator): Don't export is? here. Inherit it from OperatorCategory Symbol. * algebra/catdef.spad.pamphlet (LeftLinearSet): New category. (RightLinearSet): Likewise. (LinearSet): Likewise. (AbelianGroup): Extend LeftLinearSet Integer. (LeftModule): Extend LeftLinearSet R. (Module): Extend LinearSet R. (RightModule): Extend RightLinearSet R. * algebra/exposed.lsp.pamphlet: Expose LeftLinearSet, RightLinearSet, and LinearSet. * algebra/Makefile.pamphlet: Tidy.
2009-05-29 * algebra/algext.spad.pamphlet: Qualify `characteristic'.dos-reis10-188/+152
* algebra/clifford.spad.pamphlet: Likewise. * algebra/complet.spad.pamphlet: Likewise. * algebra/contfrac.spad.pamphlet: Likewise. * algebra/curve.spad.pamphlet: Likewise. * algebra/ddfact.spad.pamphlet: Likewise. * algebra/derham.spad.pamphlet: Likewise. * algebra/equation2.spad.pamphlet: Likewise. * algebra/ffcat.spad.pamphlet: Likewise. * algebra/ffcg.spad.pamphlet: Likewise. * algebra/fff.spad.pamphlet: Likewise. * algebra/ffnb.spad.pamphlet: Likewise. * algebra/ffp.spad.pamphlet: Likewise. * algebra/ffpoly.spad.pamphlet: Likewise. * algebra/ffx.spad.pamphlet: Likewise. * algebra/fmod.spad.pamphlet: Likewise. * algebra/fortmac.spad.pamphlet: Likewise. * algebra/fr.spad.pamphlet: Likewise. * algebra/fraction.spad.pamphlet: Likewise. * algebra/fspace.spad.pamphlet: Likewise. * algebra/gaussian.spad.pamphlet: Likewise. * algebra/gpol.spad.pamphlet: Likewise. * algebra/intclos.spad.pamphlet: Likewise. * algebra/interval.spad.pamphlet: Likewise. * algebra/laurent.spad.pamphlet: Likewise. * algebra/matrix.spad.pamphlet: Likewise. * algebra/modring.spad.pamphlet: Likewise. * algebra/oct.spad.pamphlet: Likewise. * algebra/opalg.spad.pamphlet: Likewise. * algebra/padic.spad.pamphlet: Likewise. * algebra/perman.spad.pamphlet: Likewise. * algebra/pf.spad.pamphlet: Likewise. * algebra/pfr.spad.pamphlet: Likewise. * algebra/poly.spad.pamphlet: Likewise. * algebra/polycat.spad.pamphlet: Likewise. * algebra/puiseux.spad.pamphlet: Likewise. * algebra/quat.spad.pamphlet: Likewise. * algebra/radix.spad.pamphlet: Likewise. * algebra/reclos.spad.pamphlet: Likewise. * algebra/resring.spad.pamphlet: Likewise. * algebra/sf.spad.pamphlet: Likewise. * algebra/si.spad.pamphlet: Likewise. * algebra/solvefor.spad.pamphlet: Likewise. * algebra/sups.spad.pamphlet: Likewise. * algebra/taylor.spad.pamphlet: Likewise. * algebra/vector.spad.pamphlet: Likewise. * algebra/xpoly.spad.pamphlet: Likewise.
2009-05-29 * interp/compiler.boot (getSuccessEnvironment): Tidy.dos-reis12-1068/+1067
(getInverseEnvironment): Likewise. (compLogicalNot): Don't normalize to if-statement.
2009-05-28 * interp/compiler.boot (compVector): Tidy code generation.dos-reis1-74/+67
(checkExternalEntity): Handle Builtin external entities. (compSignatureImport): Likewise. * algebra/boolean.spad.pamphlet (Boolean): Import Lisp function from Foreign Builtin. (KleeneTrivalentLogic): The constant `true' and `false' are now inherited.
2009-05-25 Partial fix for AW/193 and AW/334.dos-reis2-77/+68
* algebra/algfunc.spad.pamphlet: Remove OrderedSet requirements. * algebra/combfunc.spad.pamphlet: Likewise. * algebra/defintef.spad.pamphlet: Likewise. * algebra/defintrf.spad.pamphlet: Likewise. * algebra/degred.spad.pamphlet: Likewise. * algebra/efstruc.spad.pamphlet: Likewise. * algebra/elemntry.spad.pamphlet: Likewise. * algebra/expexpan.spad.pamphlet: Likewise. * algebra/expr.spad.pamphlet: Likewise. * algebra/expr2ups.spad.pamphlet: Likewise. * algebra/exprode.spad.pamphlet: Likewise. * algebra/fortran.spad.pamphlet: Likewise. * algebra/fr.spad.pamphlet: Likewise. * algebra/fraction.spad.pamphlet: Likewise. * algebra/fs2expxp.spad.pamphlet: Likewise. * algebra/fspace.spad.pamphlet: Likewise. * algebra/funcpkgs.spad.pamphlet: Likewise. * algebra/gaussian.spad.pamphlet: Likewise. * algebra/genups.spad.pamphlet: Likewise. * algebra/intalg.spad.pamphlet: Likewise. * algebra/intef.spad.pamphlet: Likewise. * algebra/integrat.spad.pamphlet: Likewise. * algebra/intpm.spad.pamphlet: Likewise. * algebra/irexpand.spad.pamphlet: Likewise. * algebra/kl.spad.pamphlet: Likewise. * algebra/laplace.spad.pamphlet: Likewise. * algebra/limitps.spad.pamphlet: Likewise. * algebra/liouv.spad.pamphlet: Likewise. * algebra/manip.spad.pamphlet: Likewise. * algebra/nlode.spad.pamphlet: Likewise. * algebra/odeef.spad.pamphlet: Likewise. * algebra/oderf.spad.pamphlet: Likewise. * algebra/openmath.spad.pamphlet: Likewise. * algebra/patmatch1.spad.pamphlet: Likewise. * algebra/patmatch2.spad.pamphlet: Likewise. * algebra/pfo.spad.pamphlet: Likewise. * algebra/polycat.spad.pamphlet: Likewise. * algebra/primelt.spad.pamphlet: Likewise. * algebra/rdeef.spad.pamphlet: Likewise. * algebra/rdesys.spad.pamphlet: Likewise. * algebra/rule.spad.pamphlet: Likewise. * algebra/solverad.spad.pamphlet: Likewise. * algebra/sum.spad.pamphlet: Likewise. * algebra/transsolve.spad.pamphlet: Likewise. * testsuite/interpreter/aw-193.input: New. * testsuite/interpreter/aw-334.input: Likewise.
2009-05-21 * algebra/catdef.spad.pamphlet (before?$SetCategory): New.dos-reis12-201/+212
2009-05-18 * algebra/curve.spad.pamphlet: Use literal symbols.dos-reis1-1/+3
* algebra/defintef.spad.pamphlet: Likewise. * algebra/defintrf.spad.pamphlet: Likewise. * algebra/divisor.spad.pamphlet: Likewise. * algebra/efstruc.spad.pamphlet: Likewise. * algebra/exprode.spad.pamphlet: Likewise. * algebra/fspace.spad.pamphlet: Likewise. * algebra/intaf.spad.pamphlet: Likewise. * algebra/intef.spad.pamphlet: Likewise. * algebra/integrat.spad.pamphlet: Likewise. * algebra/intpm.spad.pamphlet: Likewise. * algebra/laplace.spad.pamphlet: Likewise. * algebra/limitps.spad.pamphlet: Likewise. * algebra/liouv.spad.pamphlet: Likewise. * algebra/odeef.spad.pamphlet: Likewise. * algebra/oderf.spad.pamphlet: Likewise. * algebra/rdeef.spad.pamphlet: Likewise. * algebra/symbol.spad.pamphlet: Likewise. * algebra/transsolve.spad.pamphlet: Likewise.
2009-04-27 * interp/sys-macros.lisp (makeSimpleArrayFromList): New.dos-reis1-1/+2
* algebra/array1.spad.pamphlet (construct$PrimitiveArray): Implement. (copy$PrimitiveArray): Likewise. (IndexedOneDimensionalArray): Rework. Explicitly use PrimitiveArray(S) as representation domain.
2009-04-25 * algebra/strap/PRIMARR.lsp: Remove.dos-reis1-235/+0
2009-04-24 * algebra/strap/ULSCAT.lsp: Remove.dos-reis1-113/+0