Age | Commit message (Collapse) | Author | Files | Lines |
|
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.
|
|
expansion pass after new opcode expansion.
|
|
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.
|
|
|
|
[listYoungTableaus]: Fix thinko. Don't use lattice in its own
initialization before it is defined.
|
|
(optimizeFunctionDef): Use it.
|
|
(compRepeatOrCollect): Use it to generate appropriate %loop forms.
Bind new special variable $mayHaveFreeIteratorVariables.
(complainIfShadowing): Set it as appropriate.
|
|
* interp/c-util.boot (isLispSpecialVariable): Tidy.
(transformToBackendCode): Likewise.
|
|
(compStepIterator): Use it to warn about loop variable shadowing
declaration in enclosing scope.
(compIterator): Likewise.
|
|
(optSEQ) [getRidOfTemps]: Use it to decide when to safely inline a
temporary variable definition.
|
|
(compRepeatOrCollect): Tidy. Bind $loopBodyTag.
|
|
(mkUnionFunList): Likewise.
|
|
(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.
|
|
non-simple case.
|
|
single %loop form.
(expandCollect): Adjust call.
(expandRepeat): Likewise.
|
|
|
|
not COLLECT.
|
|
(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.
|
|
|
|
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.
|
|
variables with LET-form instead of assignment.
|
|
%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.
|
|
(mutateToBackendCode): Use it to record special vars.
Be careful with locally bound variables.
|
|
|
|
SETQ by LETT.
|
|
(transformToBackendCode): Use it. Don't add unneeded PROG/RETURN.
|
|
comprehension to %collect form.
|
|
|
|
eval. Use middle end opcodes instead of EQCAR.
(coerceUn2E): Likewise.
|
|
eval.
(coerceUn2E): Likewise.
|
|
* interp/g-opt.boot: Likewise.
|
|
* 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.
|
|
|
|
* interp/c-util.boot ($SetCategory): New constant.
* interp/compiler.boot: Use it.
* interp/functor.boot: Likewise.
|
|
(declareUnusedParameters): Use it. Reimplement.
* interp/i-map.boot (compileCoerceMap): Adjust call.
* interp/i-spec1.boot (compileADEFBody): Likewise.
(mkIterFun): Likewise.
* interp/slam.boot (reportFunctionCompilation): Likewise.
(reportFunctionCacheAll): Likewise.
(compileRecurrenceRelation): Likewise.
|
|
|
|
|
|
|
|
* algebra/syntax.spad.pamphlet: Clean up.
* algebra/variable.spad.pamphlet: Likewise.
* algebra/ystream.spad.pamphlet: Likewise.
|
|
expressions as mapping.
|
|
* 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.
|
|
|
|
|
|
Lisp. Use builtin functions.
|
|
foreign language.
(checkExternalEntity): Likewise.
(compSignatureImport): Likewise. Give foreign variables dummy values.
* interp/c-util.boot (middleEndExpand): Handle %true and %false.
* interp/g-util.boot (expandToVMForm): Likewise.
|
|
|
|
|
|
|
|
($constructorExposureList): Remove as unused.
|
|
|