aboutsummaryrefslogtreecommitdiff
path: root/src/interp
AgeCommit message (Collapse)AuthorFilesLines
2010-07-01 * interp/define.boot (registerInlinableDomain): New.dos-reis2-10/+12
(compAdd): Use it to promote base domains for inlining. * interp/c-util.boot (lookupFunctionInstance): Foeld into lookupDefiningFunction. Remove. (lookupDefiningFunction): Evaluate only system domains to avoid cycles.
2010-06-30 * interp/c-util.boot (giveVariableSomeValue): New.dos-reis6-20/+27
* interp/compiler.boot (setqMultiple): Use it. (compColon): Likewise. (compRetractGuard): Likewise. (compRecoverDomain): Likewise. (defineMatchScrutinee): Likewise. (compStepIterator): Likewise. (compIterator): Likewise. (compUnnamedMapping): Likewise. * interp/define.boot (giveFormalParametersValues): Likewise. * interp/wi1.boot (setqMultiple): Likewise. * interp/wi2.boot (compIterator): Likewise. (smallIntegerStep): Likewise.
2010-06-30 * interp/c-util.boot (getRepresentation): Tidy.dos-reis2-5/+3
* interp/define.boot (checkRepresentation): Don't compile the base domain here yet.
2010-06-28 * interp/sys-constants.boot ($SystemInlinableConstructorNames):dos-reis1-0/+1
Include Pair.
2010-06-28 * interp/slam.boot (clearCache): Use reallyClearLocalModemaps todos-reis1-4/+17
remove local modemaps.Likewise. (clearLocalModemaps): Likewise. Tidy. (reallyClearLocalModemaps): New. Remove dynamically generated function definition for internal Lisp-level functions.
2010-06-28 * interp/i-map.boot (findExternalVarsInBindExpr): New.dos-reis1-1/+17
(findLocalVars1): Use it for %bind-expressions.
2010-06-28Fix a typodos-reis1-1/+1
2010-06-27 * interp/g-util.boot: Add new opcode %before?.dos-reis2-7/+11
* interp/g-opt.boot ($VMsideEffectFreeOperators): Include it.
2010-06-26 * interp/g-opt.boot ($VMsideEffectFreeOperators): Include %vrefdos-reis2-1/+7
and %vlength. * interp/g-util.boot: Expand them. * algebra/array1.spad.pamphlet (PrimitiveArray): Use them. (IndexedOneDimensionalArray): Likewise.
2010-06-26 * interp/g-util.boot: Expand %f2s.dos-reis2-1/+4
* interp/g-opt.boot ($VMsideEffectFreeOperators): Include %f2s. * algebra/string.spad.pamphlet (StringCategory) [string]: Add overload DoubleFloat -> %. (String): Define it.
2010-06-26 * interp/compiler.boot (compString): Remove as unused.dos-reis2-4/+0
* interp/mark.boot (compString): Likewise. * algebra/string.spad.pamphlet (StringCategory): Remove obsolete comments. Remove redundant SetCategory extension.
2010-06-25 * interp/g-opt.boot: Rename %eq to %peq for pointer comparaison.dos-reis2-7/+8
* 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-reis1-1/+3
forwarding function if possible.
2010-06-24 * interp/c-util.boot: Cleanup.dos-reis8-32/+32
* interp/compiler.boot: Likewise. * interp/functor.boot: Likewise. * interp/g-opt.boot: Likewise. * interp/mark.boot: Likewise. * interp/nrunfast.boot: Likewise. * interp/wi1.boot: Likewise. * interp/wi2.boot: Likewise.
2010-06-23 * interp/sys-constants.boot ($SystemInlinableConstructorNames):dos-reis1-0/+1
Include Maybe.
2010-06-23 * interp/nruncomp.boot (optDeltaEntry): Don't optimize currentdos-reis4-16/+70
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-reis3-5/+39
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-21 * interp/c-util.boot (middleEndExpand): Give it another macrodos-reis1-1/+2
expansion pass after new opcode expansion.
2010-06-21 * interp/nlib.lisp (COMPILE-LIB-FILE): Rework. Halt compilationdos-reis1-13/+9
if generated is malformed or contains serious warnings. * algebra/pfo.spad.pamphlet (PointsOfFiniteOrder) [cmult]: Merge local conditional definitions. * algebra/permgrps.spad.pamphlet (PermutationGroup) [cosetRep]: Don't forget to return a value. * algebra/newpoly.spad.pamphlet (RecursivePolynomialCategory) [exactQuo]: Merge conditional local definitions. [ZToR]: Inline at sole use point. Remove conditional definitions. [QToR]: Likewise. [PZToPR]: Likewise. [PQToPR]: Likewise. * algebra/naalgc.spad.pamphlet (FramedNonAssociativeAlgebra) [leftRankPolynomial]: Initialize local variable xx. (rightRankPolynomial): Likewise. * algebra/multsqfr.spad.pamphlet (MultivariateSquareFree) [intChoose]: Error if no solution is found in the loop. * algebra/mts.spad.pamphlet (SparseMultivariateTaylorSeries): Tidy. [stream] Remove duplicate definition. * algebra/d01routine.spad.pamphlet (d01anfAnnaType) [measure]: Tidy. (d01asfAnnaType) [measure]: Likewise. * algebra/d01transform.spad.pamphlet (d01TransformFunctionType) [measure]: Likewise. * algebra/forttyp.spad.pamphlet (FortranScalarType) [coerce]: Likewise.
2010-06-21Revert previous erroneous commitdos-reis1-1/+1
2010-06-21 * algebra/sgcf.spad.pamphlet (SymmetricGroupCombinatoricFunctions)dos-reis1-1/+1
[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-reis1-1/+15
(optimizeFunctionDef): Use it.
2010-06-20 * interp/compiler.boot (massageLoop): New.dos-reis2-1/+31
(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-reis1-4/+5
* interp/c-util.boot (isLispSpecialVariable): Tidy. (transformToBackendCode): Likewise.
2010-06-13 * interp/compiler.boot (complainIfShadowing): New.dos-reis1-1/+10
(compStepIterator): Use it to warn about loop variable shadowing declaration in enclosing scope. (compIterator): Likewise.
2010-06-12 * interp/g-opt.boot (replaceableTemporary?): New.dos-reis1-2/+13
(optSEQ) [getRidOfTemps]: Use it to decide when to safely inline a temporary variable definition.
2010-06-12 * interp/compiler.boot (compIterate): Rewrite.dos-reis1-6/+9
(compRepeatOrCollect): Tidy. Bind $loopBodyTag.
2010-06-11 * interp/buildom.boot (mkNewUnionFunList): Use %bind, not PROG2.dos-reis1-4/+6
(mkUnionFunList): Likewise.
2010-06-10 * interp/compiler.boot (freeVarUsage): Handle %when too.dos-reis7-30/+21
(compLogicalNot): Generate %not form. (satisfies): Use %bind. (compMatch): Likewise. (compReduce1): Generate %loop directly instead of %reduce. * interp/g-opt.boot (changeThrowToExit): Don't check for %reduce. * interp/g-util.boot (expandRepeat): Remove. (expandReduce): Likewise.
2010-06-10 * interp/g-opt.boot (optCollectVector): Generate %loop for thedos-reis1-3/+2
non-simple case.
2010-06-10 * interp/g-util.boot (expandLoop): Now take all arguments as ados-reis1-4/+5
single %loop form. (expandCollect): Adjust call. (expandRepeat): Likewise.
2010-06-10Clean updos-reis5-16/+24
2010-06-09 * interp/g-opt.boot (optCollectVector): Generare %collect form,dos-reis1-1/+1
not COLLECT.
2010-06-09 * interp/compiler.boot (canReturn): Handle %when and %bind.dos-reis7-46/+54
(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 * interp/g-opt.boot (removeNeedlessThrow): Tidy.dos-reis1-1/+5
2010-06-09 Widen scope of iterator variables in presence of terminatingdos-reis1-6/+15
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/compiler.boot (finishLambdaExpression): Bind escapeddos-reis1-9/+8
variables with LET-form instead of assignment.
2010-06-07 * interp/compiler.boot (replaceExitEtc): Replace TAGGEDreturn withdos-reis3-2/+22
%return. * interp/g-opt.boot (removeNeedlessThrow): New. (optCatch): Use to it to avoid horrendous code generation for return statement. * interp/g-util.boot (expandReturn): New. Expand %return forms.
2010-06-07 * interp/c-util.boot (isLispSpecialVariable): New.dos-reis1-3/+14
(mutateToBackendCode): Use it to record special vars. Be careful with locally bound variables.
2010-06-06 * interp/compiler.boot (replaceExitEtc): Tidy.dos-reis1-10/+10
2010-06-06 * interp/c-util.boot (mutateToBackendCode): Don't replace explicitdos-reis1-1/+1
SETQ by LETT.
2010-06-06 * interp/c-util.boot (needPROGS?): New.dos-reis1-1/+11
(transformToBackendCode): Use it. Don't add unneeded PROG/RETURN.
2010-06-06 * interp/compiler.boot (compRepeatOrCollect): Compile listdos-reis1-2/+3
comprehension to %collect form.
2010-06-05More cleanupdos-reis3-4/+5
2010-06-04 * interp/buildom.boot (UnionEqual): Don't COERCE to FUNCTION. Usedos-reis7-13/+14
eval. Use middle end opcodes instead of EQCAR. (coerceUn2E): Likewise.
2010-06-04 * interp/buildom.boot (UnionEqual): Don't COERCE to FUNCTION. Usedos-reis2-3/+4
eval. (coerceUn2E): Likewise.
2010-06-04 * interp/compiler.boot: Replace QCAR first and QCDR first rest.dos-reis2-7/+7
* interp/g-opt.boot: Likewise.
2010-06-04 * interp/br-con.boot: More cleanup.dos-reis23-97/+97
* interp/br-op1.boot: Likewise. * interp/br-saturn.boot: Likewise. * interp/c-util.boot: Likewise. * interp/category.boot: Likewise. * interp/clam.boot: Likewise. * interp/database.boot: Likewise. * interp/functor.boot: Likewise. * interp/g-cndata.boot: Likewise. * interp/g-util.boot: Likewise. * interp/guess.boot: Likewise. * interp/i-coerce.boot: Likewise. * interp/i-funsel.boot: Likewise. * interp/i-intern.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/interop.boot: Likewise. * interp/newfort.boot: Likewise. * interp/nruncomp.boot: Likewise. * interp/nrunfast.boot: Likewise. * interp/nrunopt.boot: Likewise. * interp/setvars.boot: Likewise. * interp/slam.boot: Likewise. * interp/topics.boot: Likewise.
2010-06-04 * interp/buildom.boot: Clean up QEQCAR uses.dos-reis2-6/+6
2010-06-03 * interp/buildom.boot: Cleanup.dos-reis4-20/+24
* interp/c-util.boot ($SetCategory): New constant. * interp/compiler.boot: Use it. * interp/functor.boot: Likewise.