aboutsummaryrefslogtreecommitdiff
path: root/src/interp
AgeCommit message (Collapse)AuthorFilesLines
2010-07-25use simplifyVMForm instead of optimizedos-reis1-1/+1
2010-07-25 * interp/g-opt.boot (simplifyVMForm): Don't call optimize.dos-reis1-3/+16
(optCall): Handle VM macro expansions here.
2010-07-25 * interp/g-opt.boot (resetTo): New.dos-reis3-10/+17
(optCatch): Use it. (optCall): Likewise. (optSpecialCall): Likewise. (simplifyVMForm): Handle simple cases here. * interp/macros.lisp (RPLACW): Remove.
2010-07-25 * interp/g-opt.boot (optIadd): More simplification if either dos-reis1-0/+6
operand is zero. (optIsub): Likewise. (optImul): More simplifications if either operand is one.
2010-07-25 * interp/c-util.boot (usedSymbol?): Move to g-util.boot.dos-reis6-22/+25
* interp/nruncomp.boot (NRTsetVector4a): Tidy.
2010-07-25 * interp/cattable.boot: Use %true for truth value in VM expressions.dos-reis13-58/+43
* 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-24 * interp/compiler.boot (compMatchAlternative): Don't generatedos-reis2-6/+13
LET-expressions. * interp/g-opt.boot (optBind): Tidy.
2010-07-23 * interp/g-opt.boot (optBind): Check for dependencies indos-reis2-8/+9
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: Remove expansion for %ble, %bgt, %bge.dos-reis2-19/+17
* interp/g-opt.boot (optMINUS): Remove. (opt_-): Likewise. (optBle): New. (optBgt): Likewise. (optBge): Likewise.
2010-07-23 * interp/g-opt.boot (optMINUS): Remove.dos-reis1-31/+10
(opt_-): Likewise.
2010-07-23 * interp/g-util.boot (expandFeq): New.dos-reis1-1/+6
* algebra/sf.spad.pamphlet (DoubleFloat): Tidy.
2010-07-22more cleanupdos-reis1-3/+3
2010-07-22 * interp/g-util.boot (expandIeq): New expander for %ieq.dos-reis5-8/+42
* 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-reis1-6/+59
(optRetract): Simplify the predicate when possible. (optNot): New transformer. (optAnd): Likewise. (optOr): Likewise. (optIlt): Likewise. (optIle): Likewise. (optIgt): Likewise. (optIge): Likewise.
2010-07-22 * algebra/data.spad.pamphlet (Byte) [~]: Tidy.dos-reis2-7/+27
(SystemNonNegativeInteger) [~]: Likewise. * interp/g-util.boot: Better expansion of byte operations.
2010-07-19 * interp/g-opt.boot ($VMsideEffectFreeOperators): Includedos-reis2-11/+31
byte relation operators and bitmakst operators. * interp/g-util.boot: Expand them. * algebra/data.spad.pamphlet (Byte): Now satisfies Logic. Tidy. (SystemNonNegativeInteger): Likewise. * algebra/java.spad.pamphlet (JVMBytecode): Rename from JavaBytecode. (JVMClassFileAccess): New. (JVMFieldAccess): Likewise. (JVMMethodAccess): Likewise. (JVMConstantTag): Likewise. (JVMOpcode): Likewise.
2010-07-18 * boot/tokens.boot: Add char? as builtin function.dos-reis2-8/+8
* interp/i-output.boot (appChar): Fix thinko. (outformWidth): Likewise. (WIDTH): Likewise.
2010-07-18More cleanupsdos-reis17-44/+44
2010-07-18More cleanupsdos-reis29-115/+124
2010-07-13 * interp/g-opt.boot: %sname is a side-effect free operator.dos-reis2-1/+2
* interp/g-util.boot: Expand it. * algebra/syntax.spad.pamphlet (Identifer): Now satisfies CoercibleTo String.
2010-07-12cleanupsdos-reis46-127/+127
2010-07-11 * interp/database.boot (markUnique): Remove.dos-reis11-49/+15
($FunctionDescriptorTail): Likewise. (getOperationAlistFromLisplib): Likewise. (getOplistForConstructorForm): Adjust. * interp/br-op1.boot (getDomainOpTable): Likewise. * interp/br-op2.boot (koOps): Likewise. * interp/define.boot (genDomainViewList): Likewise. * interp/i-analy.boot (namedConstant): Likewise. * interp/i-coerce.boot (getConstantFromDomain): Likewise. * interp/i-funsel.boot (isOpInDomain): Likewise. (findCommonSigInDomain): Likewise. (findUniqueOpInDomain): Likewise. (hasSig): Likewise. * interp/i-spec2.boot (constantInDomain?): Likewise. * interp/trace.boot (spadTrace): Likewise. * interp/lisplib.boot (transformOperationAlist): Simplify.
2010-07-10 * interp/database.boot (addConsDB): Remove.dos-reis3-28/+1
(getOperationAlistFromLisplib): Don't call it. * interp/sys-driver.boot (initializeGlobalState): Remove kludge. * interp/util.lisp (BUILD-INTERPSYS): Likewise.
2010-07-10 * interp/database.boot (addConsDB): Move from mapConsDB.dos-reis2-33/+22
* interp/nruncomp.boot (mapConsDB): Remove. (catList2catPackageList): Likewise.
2010-07-10 * interp/functor.boot (setVector4): Remove. Deadcode.dos-reis6-116/+2
(setVector4Onecat): Likewise. (setVector4part3): Likewise. * interp/nruncomp.boot (NRTsetVector4): Likewise. (NRTsetVector4Part2): Likewise. (mergeAppend): Likewise. * interp/define.boot (compDefineFunctor1): Remove assignment to unused $lisplibCategoriesExtented. * interp/lisplib.boot (compDefineLisplib): Likewise. * interp/wi1.boot (compDefineLisplib): Likewise. * interp/wi2.boot (compDefineFunctor1): Likewise.
2010-07-10 * interp/nruncomp.boot (buildFunctor): Remove deadcode.dos-reis1-21/+5
2010-07-10 * interp/sys-utility.boot (minimalise): Move from compress.boot.dos-reis5-77/+29
Rewrite local worker to use explicit hash table parameter instead of special variable. * interp/compress.boot (minimalise): Move to sys-utility.boot. Delete file. * interp/nruncomp.boot (buildFunctor): Don't bother to minimalise.
2010-07-10 * interp/sys-constants.boot ($noEnv): Remove.dos-reis3-7/+4
* interp/info.boot (actOnInfo): Adjust.
2010-07-10 * interp/functor.boot (SetFunctionSlots): Simplify. The outerdos-reis1-24/+22
loop was executed only once.
2010-07-05 * interp/compiler.boot (compTopLevel): Bind $whereDecls.dos-reis2-3/+42
(recordDeclarationInSideCondition): New. Update it. (compWhere): Call it. * interp/define.boot ($whereDecls): Define at toplevel. (typeDependencyPath): New. (inferConstructorImplicitParameters): Likewise. (compDefineFunctor1): Use it.
2010-07-03 * interp/category.boot (isCategoryForm): Tidy.dos-reis7-35/+66
* interp/compiler.boot (compMacro): Handle parameterized definition. * interp/define.boot (macroExpand): Likewise. (macroExpandList): Move case for niladic macros to macroExpand. * interp/g-util.boot (putMacro): New utility function.
2010-07-03 * interp/define.boot (macroExpand): Tidy. Only identifiers aredos-reis2-24/+23
allowed to be macro names.
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.