aboutsummaryrefslogtreecommitdiff
path: root/src/interp
AgeCommit message (Collapse)AuthorFilesLines
2011-12-09 * interp/g-opt.boot (packWehn!): New.dos-reis1-1/+13
(optimize!): Use it.
2011-12-08 * interp/g-opt.boot (tranformIF!): New.dos-reis3-17/+26
(optimize!): Likewise. Abstract from optimizeFunctionDef. (optimize): New. (optimizeFunctionDef): Use optimize!. (simplifyVMForm): Do not call optIF2COND. (optIF2COND): Remove. * interp/compiler.boot (compHasFormat): Use optimize! in lieu of simplifyVMForm. * interp/nruncomp.boot (NRTencode): Use optimize. (NRTsetVector4a): Likewise.
2011-12-08 * interp/g-opt.boot: %writeString, %writeNewline and %writeLinedos-reis1-4/+4
are side-effect full. (removeSeq!): Tidy. Skip side-effectfree statements.
2011-12-07 * interp/g-opt.boot (removeSeq!): New.dos-reis3-6/+43
(inlineLocals!): Likewise. (optimizeFunctionDef): Use them. (optSeq): Tidy. * interp/buildom.boot (seteltRecordFun): Tidy. * interp/clam.boot (compHash): Likewise.
2011-12-07 * interp/g-opt.boot (groupTranscients!): New.dos-reis2-1/+42
(reduceXLAM!): Likewise. (optimizeFunctionDef): Call them before simplifyVMForm. * interp/g-util.boot (mkSeq): New. (abstraction?): Likewise. (walkWith!): Likewise.
2011-12-07 * interp/compiler.boot (compReduce1): Tidy.dos-reis5-10/+14
* interp/define.boot (compDefineCategory2): Likewise. * interp/nruncomp.boot (buildFunctor): Likewise. * interp/slam.boot (compileRecurrenceRelation): Likewise. * interp/lisp-backend.boot (expandSeq): Use PROGN in absence of EXIT.
2011-12-06 * interp/compiler.boot (setqMultipleExplicit): Introduceddos-reis1-10/+9
temporary variables are local to the assignment.
2011-12-06 * interp/compiler.boot (compResolveCall): Update description.dos-reis1-47/+63
(compRetractGuard): Tidy. (compRecoverDomain): Likewise. (compRecoverGuard): Likewise. (compAlternativeGuard): Likewise. (compMatchAlternative): Likewise. (compMatch): Likewise.
2011-12-05 * interp/g-util.boot (splitAssignments): Rework.dos-reis1-4/+10
(spliceSeqArgs): Tidy. * algebra/gdpoly.spad.pamphlet (GeneralDistributedMultivariatePolynomial): Fix thinko.
2011-12-05 * interp/g-opt.boot (changeVariableDefinitionToStore): Separatelydos-reis2-5/+14
handle %bind and LET forms. * interp/g-util.boot (spliceSeqArgs): Recurse into %seq forms.
2011-12-04 * interp/compiler.boot (freeVarUsage): Handle %bind and LET.dos-reis1-2/+13
2011-12-04 * interp/g-util.boot (splitAssignments): New.dos-reis1-0/+11
(spliceSeqArgs): Use it.
2011-12-04 * interp/lisp-backend.boot (hasNoExit?): New.dos-reis1-2/+20
(expandSeq): Likewise. Use it. Expand %seq forms.
2011-12-03 * interp/compiler.boot: Use %seq in lieu of PROGN.dos-reis3-10/+25
* interp/g-util.boot (spliceSeqArgs): New. * interp/g-opt.boot (changeVariableDefinitionToStore): Call it before recursing on %seq forms.
2011-12-03 * interp/compiler.boot (setqMultiple): Handle lhs and rhs of typedos-reis3-6/+17
Cross instance. * interp/g-util.boot ($DomainNames): Include Cross. * interp/cattable.boot (genCategoryTable): Do not eval Cross. It is bogus to prepopulate the table with builtin functors anyway. * algebra/triset.spad.pamphlet (PolynomialSetUtilitiesPackage)[removeRedundantFactors]: Do not define `c' and `d' in conditional. Make the initializer conditional.
2011-12-03 * interp/nruncomp.boot (washFunctorBody) [clean]: Clean %whendos-reis1-0/+4
forms too.
2011-12-03 * interp/compiler.boot: Replace %labelled with %scope.dos-reis4-17/+17
* interp/define.boot: Likewise. * interp/g-opt.boot: Likewise. * interp/g-util.boot: Likewise. Rename mkLabelled to mkScope.
2011-12-03 * interp/g-opt.boot (groupVariableDefinitions): Simplify a bit.dos-reis1-20/+13
(optimizeFunctionDef): Likewise. Change %LET to %store before simplification. (simplifyVMForm): Do not call changeVariableDefinitionToStore.
2011-12-03 * interp/g-util.boot (hasNoLeave?): Move from g-opt.boot.dos-reis2-23/+35
(mkLabelled): New. (mkBind): Likewise. * interp/g-opt.boot (groupVariableDefinitions): Use them. * algebra/aggcat.spad.pamphlet (ListAggregate) [merge!]: Declare local variables `r' and `s' before assigning to them.
2011-12-02 * interp/g-opt.boot (iteratorName): New.dos-reis1-6/+55
(changeLoopVarDefsToStore): Likewise. (changeVariableDefinitionToStore): Use it. Tidy. (groupVariableDefinitions): Tidy.
2011-12-02 * interp/buildom.boot (seteltRecordFun): Change EXIT to %exit.dos-reis5-15/+13
* interp/clam.boot (compHash):Likewise. * interp/g-opt.boot (changeVariableDefinitionToStore): Likewise. (jumpToToplevel?): Likewise. (groupVariableDefinitions): Likewise. (changeLeaveToExit): Likewise. (optLabelled): Likewise. (optSeq): Likewise. * interp/lisp-backend.boot: Translate %exit to EXIT.
2011-12-02 * interp/buildom.boot (setelt): Change SEQ to %seq.dos-reis6-26/+27
* interp/clam.boot (compHash): Likewise. * interp/compiler.boot (freeVarUsage): Likewise. (canReturn): Likewise. * interp/i-special.boot (compileIs): Likewise. * interp/g-opt.boot (changeVariableDefinitionToStore): Likewise. (jumpToToplevel?): Likewise. (groupVariableDefinitions): Likewise. (changeLeaveToExit): Likewise. (optLabelled): Likewise. (optSeq): Rename from optSEQ. Adjust callers. * interp/lisp-backend.boot: Translate %seq to SEQ.
2011-12-02 Fix SF/3448433dos-reis1-1/+1
* interp/br-util.boot (bcPred): Do not compare pred against a string.
2011-12-02 * interp/g-opt.boot (modified?): Examine the rhs too.dos-reis1-1/+2
2011-12-02 * interp/g-opt.boot (changeVariableDefinitionToStore): Handle SEQdos-reis2-4/+13
forms too. (groupVariableDefinitions): Handle %bind and %loop forms. * interp/lisp-backend.boot (expandLoop): Special code for case where there is explicit exit condition, for better pretty-printing.
2011-12-01 * interp/g-opt.boot (groupVariableDefinitions): Look throughdos-reis1-4/+9
%labelled and %lambda. (optimizeFunctionDef): Use copyTree, not COPY. Simplify. (simplifyVMForm): Perform changeVariableDefinitionToStore and groupVariableDefinitions on abstraction forms.
2011-12-01 * interp/define.boot (compDefineCategory): Lose prefix parameter.dos-reis2-34/+32
It is always nil. Adjust caller. (compDefineCategory1): Likewise. (compDefineCategory2): Likewise. (compDefineFunctor): Likewise. (compDefineFunctor1): Likewise. Bind it to nil. * interp/lisplib.boot (compDefineLisplib): Likewise.
2011-12-01 * interp/compiler.boot (compSeq1): Generate %labelled forms.dos-reis3-69/+75
(coerceExit): Likewise. (compRepeatOrCollect): Likewise. (replaceExitEtc): Tidy. (canReturn): Likewise. (compIterate): Generate %lave form. (nullifyTargetingLeaves): Move out of massageLoop. (massageLoop): Adjust. * interp/define.boot (compDefineCapsuleFunction): Generate %labelled form for the body. * interp/g-opt.boot: Now handle %labelled and %leave forms. (optLabelled): Rename from optCatch.
2011-12-01 * interp/buildom.boot (UnionEqual): Use %lambda, not %lam.dos-reis3-5/+9
(coerceUn2E): Likewise. * interp/compiler.boot (massageLoop): %leave now takes a label as first argument. * interp/lisp-backend.boot (expandLeave): New. Expand accordingly.
2011-11-30 * interp/define.boot (registerInlinableDomain): Lose last argument.dos-reis3-17/+23
Recursively nominate constructor argument for inlining. Adjust callers. * interp/c-util.boot: Tidy. * algebra/Makefile.in: Tidy.
2011-11-30 * interp/c-util.boot (clearReplacement): Clear redex replacement.dos-reis2-16/+17
(registerRedexForm): New. (redexForm): Likewise. (inlineDirectCall): Inline functions with known redex forms. (foldExportedFunctionReferences): Compute redex forms. (backendCompileILAM): Remove as unused. (backendCompile2): Adjust. (massageBackendCode): Likeiwse. * interp/define.boot (compDefineCapsuleFunction): Clear replacement info.
2011-11-29 * boot/tokens.boot (absKind, absParms, absBody): New selectors.dos-reis5-10/+10
* interp/compiler.boot (canReturn): Handle %lambda forms. (compUnnamedMapping): Generate %lambda forms. Don't optimize them yet. * interp/g-opt.boot: %lambda forms are side-effect free. * interp/lisp-backend.boot: Translate them.
2011-11-29 * interp/g-opt.boot (isSimpleForm): Remove as unused.dos-reis1-32/+27
(floatableVMForm?): New. (modified?): Rename form varIsAssigned. (canInlineVarDefinition): Tidy. Allow intermediate temporaries initialized from variables to be inlined if not modified. (optBind): Tidy.
2011-11-28 * interp/nruncomp.boot (genDeltaEntry): Use $ for the domain ofdos-reis1-0/+2
computation it if is the expanded form of the current domain.
2011-11-28 * interp/c-util.boot (inlineDirectCall): Inline a non-side effectdos-reis1-0/+3
free argument in a unary pure function call if it is used exactly once. * algebra/integer.spad.pamphlet (Integer) [reducedSystem]: Fix typo.
2011-11-28 * interp/define.boot (encodeCatform): Handle $ here.dos-reis2-6/+5
* interp/nruncomp.boot (deltaTran): assocIndex now handles $. (getLocalIndex): Likewise. (NRTencode): Handle $ before calling assocIndex. (assocIndex): Handle $.
2011-11-28 * interp/nruncomp.boot (genDeltaEntry): Replace Rep with its valuedos-reis1-0/+2
if it is the domain of computation.
2011-11-28 * interp/database.boot (dbDefaultPackage?): New.dos-reis3-36/+43
* interp/define.boot (compDefine1): Avoid encodeItem when symbolName is meant. (mkRepititionAssoc): Move from functor.boot (encodeItem): Likewise. (getCaps): Likewise. Tidy. (encodeFunctionName): Likewise.
2011-11-27 * interp/define.boot (assignCapsuleFunctionSlot): Slot originaldos-reis2-36/+17
signature too. * interp/nruncomp.boot (genDeltaEntry): Likewise. (getLocalIndex): Tidy. (changeDirectoryInSlot1): Tidy. (vectorLocation): Add a kind of operation as fourth argument. Adjust caller. Do not reconstruct the signature. (NRTsubstDelta): Remove as no longer used.
2011-11-27 * interp/nruncomp.boot (assocIndex): Rename from NRTassocIndex.dos-reis3-16/+16
Adjust callers.
2011-11-26 * interp/define.boot (assignCapsuleFunctionSlot): Do not calldos-reis2-17/+11
NRTisExported?. Determine operation kind locally. Do not store implement slot on the used entity list. * interp/nruncomp.boot (genDeltaEntry): Likewise. (deltaTran): Simplify. (NRTisExported?): Remove. (vectorLocation): Adjust.
2011-11-26 * algebra/indexedp.spad.pamphlet: Avoid direct use or RPLACD.dos-reis3-5/+16
* algebra/poly.spad.pamphlet: Likewise. * interp/define.boot (spadCompileOrSetq): Tidy replacement info. * interp/i-output.boot ($BinaryOperators): New. (binaryInfix?): Tidy.
2011-11-26 * interp/nruncomp.boot (genDeltaEntry): Split first argument intodos-reis2-19/+18
separate arguments (operation and modemap). Adjust callers.
2011-11-26 * interp/c-util.boot (updateCapsuleDirectory): Simplify.dos-reis3-15/+9
* interp/define.boot (compDefineCapsuleFunction): Call it from here. * interp/functor.boot (DescendCode): Not here.
2011-11-26 * interp/define.boot ($NRTdeltaList): Remove.dos-reis2-43/+35
($NRTdeltaListComp): Likeewise. (compDefineFunctor1): Do not bind them. (assignCapsuleFunctionSlot): Use dbUsedEntities. * interp/nruncomp.boot (NRTaddDeltaCode): Likewise. (dbEntitySlot): New. (NRTassocIndex): Use it. (genDeltaEntry): Use dbUsedEntities. (getLocalIndex): Likewise. (vectorLocation): Likewise. (NRTsubstDelta): Likewise.
2011-11-26 * interp/br-con.boot (conOpPage1): Fix typo.dos-reis5-119/+145
* interp/c-util.boot (registerConstructor): New. (currentConstructor): Likewise. (makeCompilationData): Initialize dbEntityBuffer. (dbEntityBuffer): New. (dbUsedEntities): Likewise. (dbEntityCount): Likewise. * interp/compiler.boot: Adjust call to getLocalIndex, NRTassocIndex * interp/define.boot: Likewise. ($NRTdeltaLength): Remove. * interp/nruncomp.boot: Likewise.
2011-11-25 * interp/define.boot (processDefinitionParameters): New. Abstractdos-reis1-18/+16
from compDefineCapsuleFunction. (compDefineCapsuleFunction): Use it. Tidy.
2011-11-25 * interp/define.boot: Rearrange order of some definitions.dos-reis1-32/+38
(getArgumentMode): Tidy. (hasSigInTargetCategory): Likewise. (refineDefinitionSignature): New. Abstract from compDefineCapsuleFunction. (compDefineCapsuleFunction): Use it. Tidy.
2011-11-25 * interp/define.boot: Rearrange order of some definitions.dos-reis1-91/+89
2011-11-25 * interp/define.boot ($suffix): Remove toplevel declaration.dos-reis1-42/+36
(localOperation?): New. (compDefineCapsuleFunction): Increment $suffix. Check for local and exported function definition here. (compile): Move capsule-local function processing out.