aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/strap
AgeCommit message (Collapse)AuthorFilesLines
2010-07-26 * algebra/si.spad.pamphlet (SingleInteger): Tidy.dos-reis1-170/+156
* interp/g-opt.boot (simplifyVMForm): Expand %icst0 and %icst1. (optIlt): Fold more configurations.
2010-07-26 * interp/g-opt.boot (optCond): Simplify newly built COND-expression.dos-reis2-38/+30
2010-07-25 * interp/g-opt.boot (optIadd): More simplification if either dos-reis1-1/+1
operand is zero. (optIsub): Likewise. (optImul): More simplifications if either operand is one.
2010-07-25 * interp/cattable.boot: Use %true for truth value in VM expressions.dos-reis44-2982/+2912
* interp/clam.boot: Likewise. * interp/define.boot: Likewise. * interp/format.boot: Likewise. * interp/functor.boot: Likewise. * interp/g-opt.boot: Likewise. * interp/mark.boot: Likewise. * interp/pspad1.boot: Likewise. * interp/pspad2.boot: Likewise. * interp/slam.boot: Likewise. * interp/wi1.boot: Likewise. * interp/wi2.boot: Likewise. * interp/sys-constants.boot: Remove $true and $false as unused.
2010-07-23 * interp/g-opt.boot (optBind): Check for dependencies indos-reis8-73/+72
initializations in %bind expressions. * interp/g-util.boot (expandBind): The body of s %bind expression may be a sequence of statements.
2010-07-23 * interp/g-util.boot (expandFeq): New.dos-reis1-32/+34
* algebra/sf.spad.pamphlet (DoubleFloat): Tidy.
2010-07-22more cleanupdos-reis1-5/+8
2010-07-22 * interp/g-util.boot (expandIeq): New expander for %ieq.dos-reis7-28/+24
* interp/g-opt.boot (optIeq): New. (optIadd): Likewise. (optIsub): Likewise. (optImul): Likewise. (optIneg): Likewise. (lispize): Remove.
2010-07-22 * interp/g-opt.boot (simplifyVMForm): New.dos-reis20-103/+132
(optRetract): Simplify the predicate when possible. (optNot): New transformer. (optAnd): Likewise. (optOr): Likewise. (optIlt): Likewise. (optIle): Likewise. (optIgt): Likewise. (optIge): Likewise.
2010-06-29 * algebra/catdef.spad.pamphlet (BasicType) [before?]: Declare here.dos-reis12-114/+126
(OrderedType) [max,min]: Export and provide defaults. (OrderedSet): Simplify. (SetCategory) [before?]: Move to BasicType.
2010-06-27 * algebra/catdef.spad.pamphlet (LinearlyExplicitRingOver)dos-reis4-70/+71
[leftReducedSystem]: Rename from reducedSystem.
2010-06-26Update databasesdos-reis1-6/+6
2010-06-26 * algebra/aggcat.spad.pamphlet (HomogeneousAggregate): Satisfydos-reis15-215/+241
BasicType if element type satisfies it.
2010-06-25 * interp/g-opt.boot: Rename %eq to %peq for pointer comparaison.dos-reis2-3/+3
* interp/g-util.boot: Expand it. * algebra/aggcat.spad.pamphlet: Cleanup. * algebra/any.spad.pamphlet: Likewise. * algebra/boolean.spad.pamphlet: Likewise. * algebra/data.spad.pamphlet: Likewise. * algebra/domain.spad.pamphlet: Likewise. * algebra/files.spad.pamphlet: Likewise. * algebra/laurent.spad.pamphlet: Likewise. * algebra/list.spad.pamphlet: Likewise. * algebra/mappkg.spad.pamphlet: Likewise. * algebra/ore.spad.pamphlet: Likewise. * algebra/padic.spad.pamphlet: Likewise. * algebra/pattern.spad.pamphlet: Likewise. * algebra/sex.spad.pamphlet: Likewise. * algebra/stream.spad.pamphlet: Likewise. * algebra/string.spad.pamphlet: Likewise. * algebra/syntax.spad.pamphlet: Likewise. * algebra/table.spad.pamphlet: Likewise.
2010-06-25 * interp/c-util.boot (expandableDefinition?): Try to make it ados-reis2-6/+3
forwarding function if possible.
2010-06-23 * interp/nruncomp.boot (optDeltaEntry): Don't optimize currentdos-reis17-259/+252
domain modemap references here. * interp/g-opt.boot ($VMsideEffectFreeOperators): Include more floating point operators. ($simpleVMoperators): Move FUNCALL here. (isVMConstantForm): Tidy. * interp/g-util.boot: Expand more floating point insns. * interp/c-util.boot (replaceSimpleFunctions): Replace more constants. * algebra/integer.spad.pamphlet (Integer): More cleanup. Use builtin functions. * algebra/sf.spad.pamphlet: Likewise.
2010-06-22 Group sequence of LETT definitions into LET/LET* expressions wheredos-reis18-2363/+1976
appropriate. * interp/g-opt.boot (jumpToToplevel?): New. (singleAssignment?): Likewise. (groupVariableDefinitions): Likewise. Use them. (optimizeFunctionDef): Group toplevel variable definitions into a bind expression. * interp/g-util.boot (expandBind): Tidy. * interp/c-util.boot (transformToBackendCode): Refrain from enclosing let-expressions in SEQ if not needed.
2010-06-21Revert previous erroneous commitdos-reis13-13/+0
2010-06-21 * algebra/sgcf.spad.pamphlet (SymmetricGroupCombinatoricFunctions)dos-reis13-0/+13
[listYoungTableaus]: Fix thinko. Don't use lattice in its own initialization before it is defined.
2010-06-20 * interp/g-opt.boot (changeVariableDefinitionToStore): New.dos-reis17-671/+428
(optimizeFunctionDef): Use it.
2010-06-20 * interp/compiler.boot (massageLoop): New.dos-reis14-1987/+1938
(compRepeatOrCollect): Use it to generate appropriate %loop forms. Bind new special variable $mayHaveFreeIteratorVariables. (complainIfShadowing): Set it as appropriate.
2010-06-20 * boot/tokens.boot (readOnly?): New builtin Boot function.dos-reis14-105/+131
* interp/c-util.boot (isLispSpecialVariable): Tidy. (transformToBackendCode): Likewise.
2010-06-18 * algebra/catdef.spad.pamphlet (DifferentialExtension): Nowdos-reis1-8/+7
extends DifferentialSpaceExtension.
2010-06-17 * algebra/strap/DIFRING-.lsp: Remove.dos-reis1-48/+0
2010-06-16 * algebra/catdef.spad.pamphlet (DifferentialRing): Now extendsdos-reis4-39/+34
DifferentialSpace.
2010-06-15 * algebra/catdef.spad.pamphlet (DifferentialSpace): New.dos-reis7-177/+180
2010-06-13 * algebra/laurent.spad.pamphletdos-reis6-458/+470
(UnivariateLaurentSeriesConstructor) [termsToOutputForm]: Tidy. * algebra/mts.spad.pamphlet (SparseMultivariateTaylorSeries) [coerce]: Likewise. * algebra/padic.spad.pamphlet (PAdicIntegerCategory) [coerce]: Likewise. * algebra/pscat.spad.pamphlet (UnivariateTaylorSeriesCategory)[coerce]: Likewise. * algebra/puiseux.spad.pamphlet (UnivariatePuiseuxSeries) [termsToOutputForm]: Likewise.
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.