Age | Commit message (Collapse) | Author | Files | Lines |
|
(optSEQ) [getRidOfTemps]: Use it to decide when to safely inline a
temporary variable definition.
|
|
(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.
|
|
|
|
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.
|
|
|
|
%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.
|
|
* interp/g-opt.boot: 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.
|
|
|
|
(interpREPEAT): Likewise.
* interp/i-spec1.boot (interpCOLLECT): Generate %collect forms.
* interp/i-map.boot (findLocalVars1): Handle %repeat forms the
same as REPEAT forms.
* interp/g-opt.boot (changeThrowToExit): Don't look into %repeat
forms.
(expandInit): New.
(expandLoop): New. abstract from expandCollect.
(expandCollect): Use it. Rework.
(expandRepeat): New.
|
|
* interp/c-util.boot (middleEndExpand): Tidy.
* interp/g-opt.boot (changeThrowToExit): Don't look into %collect
forms.
* interp/i-map.boot (getUserIdentifiersIn): Factorize. Handle
%collect forms same as COLLECT forms.
(findLocalVars1): Likewise.
* interp/i-spec1.boot (evalCOLLECT): Now generate %collect forms.
(checkForFreeVariables): Factorize. Handle %collect forms same as
COLLECT forms.
|
|
* boot/ast.boot: Replace GENSYM with gensym.
* interp/buildom.boot: Likewise.
* interp/clam.boot: Likewise.
* interp/clammed.boot: Likewise.
* interp/compiler.boot: Likewise.
* interp/define.boot: Likewise.
* interp/fortcall.boot: Likewise.
* interp/g-opt.boot: Likewise.
* interp/i-coerce.boot: Likewise.
* interp/i-coerfn.boot: Likewise.
* interp/i-funsel.boot: Likewise.
* interp/i-map.boot: Likewise.
* interp/i-spec1.boot: Likewise.
* interp/i-spec2.boot: Likewise.
* interp/macex.boot: Likewise.
* interp/nruncomp.boot: Likewise.
* interp/nrunopt.boot: Likewise.
* interp/parse.boot: Likewise.
* interp/pf2atree.boot: Likewise.
* interp/pf2sex.boot: Likewise.
* interp/postpar.boot: Likewise.
* interp/ptrees.boot: Likewise.
* interp/server.boot: Likewise.
* interp/slam.boot: Likewise.
* interp/sys-constants.boot: Likewise.
* interp/wi1.boot: Likewise.
* interp/wi2.boot: Likewise.
|
|
(extractCONDClauses): Likewise.
* interp/g-boot.boot: Remove.
* interp/def.lisp: Likewise.
* interp/Makefile.pamphlet: Adjust dependencies.
|
|
|
|
|
|
assignments to first and rest fields.
* interp/compiler.boot: Likewise.
* interp/define.boot: Likewise.
* interp/g-opt.boot: Likewise.
* interp/lisplib.boot: Likewise.
* interp/wi1.boot: Likewise.
|
|
* interp/topics.boot: Likewise.
* interp/slam.boot: Likewise.
* interp/nruncomp.boot: Likewise.
* interp/interop.boot: Likewise.
* interp/i-toplev.boot: Likewise.
* interp/i-spec1.boot: Likewise.
* interp/i-resolv.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/htsetvar.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/g-cndata.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/dq.boot: Likewise.
* interp/define.boot: Likewise.
* interp/database.boot: Likewise.
* interp/cparse.boot: Likewise.
* interp/clam.boot: Likewise.
* interp/c-util.boot: Likewise.
* interp/br-op1.boot: Likewise.
* interp/br-data.boot: Likewise.
|
|
* interp/topics.boot: Likewise.
* interp/slam.boot: Likewise.
* interp/nruncomp.boot: Likewise.
* interp/interop.boot: Likewise.
* interp/i-toplev.boot: Likewise.
* interp/i-spec1.boot: Likewise.
* interp/i-resolv.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/htsetvar.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/g-cndata.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/dq.boot: Likewise.
* interp/define.boot: Likewise.
* interp/database.boot: Likewise.
* interp/cparse.boot: Likewise.
* interp/clam.boot: Likewise.
* interp/c-util.boot: Likewise.
* interp/br-op1.boot: Likewise.
* interp/br-data.boot: Likewise.
|
|
assignment to first and rest fields.
* interp/astr.boot: Likewise.
* interp/br-con.boot: Likewise.
* interp/br-data.boot: Likewise.
* interp/br-op1.boot: Likewise.
* interp/br-saturn.boot: Likewise.
* interp/buildom.boot: Likewise.
* interp/c-doc.boot: Likewise.
* interp/c-util.boot: Likewise.
* interp/cattable.boot: Likewise.
* interp/clam.boot: Likewise.
* interp/compiler.boot: Likewise.
* interp/compress.boot: Likewise.
* interp/cparse.boot: Likewise.
* interp/cstream.boot: Likewise.
* interp/database.boot: Likewise.
* interp/define.boot: Likewise.
* interp/dq.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/g-opt.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/guess.boot: Likewise.
* interp/ht-util.boot: Likewise.
* interp/i-analy.boot: Likewise.
* interp/i-coerfn.boot: Likewise.
* interp/i-funsel.boot: Likewise.
* interp/i-object.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/i-resolv.boot: Likewise.
* interp/i-spec1.boot: Likewise.
* interp/i-spec2.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/i-util.boot: Likewise.
* interp/interop.boot: Likewise.
* interp/mark.boot: Likewise.
* interp/modemap.boot: Likewise.
* interp/msgdb.boot: Likewise.
* interp/newfort.boot: Likewise.
* interp/nruncomp.boot: Likewise.
* interp/nrunopt.boot: Likewise.
* interp/packtran.boot: Likewise.
* interp/showimp.boot: Likewise.
* interp/termrw.boot: Likewise.
* interp/topics.boot: Likewise.
* interp/trace.boot: Likewise.
* interp/wi2.boot: Likewise.
* interp/word.boot: Likewise.
|
|
* interp/compiler.boot: Likewise.
* interp/define.boot: Likewise.
* interp/g-opt.boot: Likewise.
* interp/nrunfast.boot: Likewise.
* lisp/core.lisp.in ($FilesToRetain): New. Export.
* lisp/Makefile.in: Tidy.
* boot/translator.boot (retainFile?): New.
(compileBootHandler): Use it.
|
|
* interp/ax.boot: Likewise.
* interp/br-con.boot: Likewise.
* interp/br-prof.boot: Likewise.
* interp/br-saturn.boot: Likewise.
* interp/br-search.boot: Likewise.
* interp/br-util.boot: Likewise.
* interp/c-doc.boot: Likewise.
* interp/clammed.boot: Likewise.
* interp/compiler.boot: Likewise.
* interp/database.boot: Likewise.
* interp/cstream.boot: Likewise.
* interp/define.boot: Likewise.
* interp/diagnostics.boot: Likewise.
* interp/format.boot: Likewise.
* interp/fortcall.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/g-boot.boot: Likewise.
* interp/g-opt.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/ht-util.boot: Likewise.
* interp/htsetvar.boot: Likewise.
* interp/i-analy.boot: Likewise.
* interp/i-coerce.boot: Likewise.
* interp/i-funsel.boot: Likewise.
* interp/i-intern.boot: Likewise.
* interp/i-map.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/i-spec1.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/interop.boot: Likewise.
* interp/lisplib.boot: Likewise.
* interp/mark.boot: Likewise.
* interp/msgdb.boot: Likewise.
* interp/newfort.boot: Likewise.
* interp/nrunfast.boot: Likewise.
* interp/nrungo.boot: Likewise.
* interp/pathname.boot: Likewise.
* interp/pf2atree.boot: Likewise.
* interp/pf2sex.boot: Likewise.
* interp/pspad1.boot: Likewise.
* interp/record.boot: Likewise.
* interp/setvars.boot: Likewise.
* interp/trace.boot: Likewise.
* interp/wi1.boot: Likewise.
* interp/wi2.boot: Likewise.
|
|
integer?, string?, symbol?, and cons? respectively.
* interp/wi1.boot: Likewise.
* interp/trace.boot: Likewise.
* interp/sys-utility.boot: Likewise.
* interp/showimp.boot: Likewise.
* interp/setvars.boot: Likewise.
* interp/record.boot: Likewise.
* interp/pspad2.boot: Likewise.
* interp/pspad1.boot: Likewise.
* interp/postpar.boot: Likewise.
* interp/posit.boot: Likewise.
* interp/pf2sex.boot: Likewise.
* interp/pf2atree.boot: Likewise.
* interp/parse.boot: Likewise.
* interp/packtran.boot: Likewise.
* interp/nrunopt.boot: Likewise.
* interp/nrungo.boot: Likewise.
* interp/nrunfast.boot: Likewise.
* interp/nruncomp.boot: Likewise.
* interp/newfort.boot: Likewise.
* interp/msgdb.boot: Likewise.
* interp/msg.boot: Likewise.
* interp/modemap.boot: Likewise.
* interp/match.boot: Likewise.
* interp/mark.boot: Likewise.
* interp/interop.boot: Likewise.
* interp/int-top.boot: Likewise.
* interp/i-toplev.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/i-spec2.boot: Likewise.
* interp/i-spec1.boot: Likewise.
* interp/i-resolv.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/i-object.boot: Likewise.
* interp/i-map.boot: Likewise.
* interp/i-intern.boot: Likewise.
* interp/i-funsel.boot: Likewise.
* interp/i-eval.boot: Likewise.
* interp/i-coerfn.boot: Likewise.
* interp/i-coerce.boot: Likewise.
* interp/i-analy.boot: Likewise.
* interp/htsetvar.boot: Likewise.
* interp/htcheck.boot: Likewise.
* interp/ht-util.boot: Likewise.
* interp/ht-root.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/g-opt.boot: Likewise.
* interp/g-error.boot: Likewise.
* interp/g-boot.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/fortcall.boot: Likewise.
* interp/format.boot: Likewise.
* interp/diagnostics.boot: Likewise.
* interp/define.boot: Likewise.
* interp/compress.boot: Likewise.
* interp/compiler.boot: Likewise.
* interp/clammed.boot: Likewise.
* interp/clam.boot: Likewise.
* interp/cformat.boot: Likewise.
* interp/cattable.boot: Likewise.
* interp/category.boot: Likewise.
* interp/c-util.boot: Likewise.
* interp/c-doc.boot: Likewise.
* interp/buildom.boot: Likewise.
* interp/br-util.boot: Likewise.
* interp/br-search.boot: Likewise.
* interp/br-saturn.boot: Likewise.
* interp/br-op2.boot: Likewise.
* interp/br-op1.boot: Likewise.
* interp/br-data.boot: Likewise.
* interp/br-con.boot: Likewise.
* interp/bc-util.boot: Likewise.
* interp/ax.boot: Likewise.
* interp/as.boot: Likewise.
* boot/translator.boot: Likewise.
* boot/ast.boot: Likewise.
* boot/includer.boot: Likewise.
* boot/tokens.boot: Add new replacement for integer?, string?,
symbol? and cons?
|
|
* 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.
|
|
"%Call".
* 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.
|
|
* interp/g-opt.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/nrunfast.boot: Likewise.
* interp/wi2.boot: Likewise.
|
|
* interp/nruncomp.boot (washFunctorBody): New.
(buildFunctor): Use it.
* interp/g-opt.boot (optBind): New.
(optLIST): Likewise.
|
|
(|check-union|): Likewise.
* interp/compiler.boot (coerceSuperset): Tidy. Generate %Retract
instruction.
* interp/g-opt.boot (optRetract): New.
|
|
($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.
|
|
(optimizableDomain?): Likewise.
(optCallSpecially): Use it
* interp/compiler.boot (processInlineRequest): Likewise.
* interp/nruncomp.boot (optDeltaEntry): Likewise.
* interp/wi2.boot (optDeltaEntry): Likewise.
|
|
(registerFunctionReplacement): Likewise.
* interp/define.boot (spadCompileOrSetq): Use it.
* interp/g-opt.boot (optSpecialCall): Likewise.
* interp/nruncomp.boot (optDeltaEntry): Likewise.
* interp/spad.lisp (|knownEqualPred|): Likewise.
* interp/wi2.boot (optDeltaEntry): Likewise.
|
|
|
|
* interp/ax.boot: Likewise.
* interp/br-con.boot: Likewise.
* interp/br-data.boot: Likewise.
* interp/br-op1.boot: Likewise.
* interp/br-op2.boot: Likewise.
* interp/br-saturn.boot: Likewise.
* interp/br-search.boot: Likewise.
* interp/c-util.boot: Likewise.
* interp/category.boot: Likewise.
* interp/cattable.boot: Likewise.
* interp/clam.boot: Likewise.
* interp/compiler.boot: Likewise.
* interp/cstream.boot: Likewise.
* interp/define.boot: Likewise.
* interp/format.boot: Likewise.
* interp/fortcall.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/g-boot.boot: Likewise.
* interp/g-opt.boot: Likewise.
* interp/g-timer.boot: Likewise.
* interp/guess.boot: Likewise.
* interp/i-analy.boot: Likewise.
* interp/i-coerce.boot: Likewise.
* interp/i-coerfn.boot: Likewise.
* interp/i-eval.boot: Likewise.
* interp/i-funsel.boot: Likewise.
* interp/i-intern.boot: Likewise.
* interp/i-map.boot: Likewise.
* interp/i-object.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/i-resolv.boot: Likewise.
* interp/i-spec1.boot: Likewise.
* interp/i-spec2.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/int-top.boot: Likewise.
* interp/interop.boot: Likewise.
* interp/lisplib.boot: Likewise.
* interp/mark.boot: Likewise.
* interp/modemap.boot: Likewise.
* interp/msg.boot: Likewise.
* interp/msgdb.boot: Likewise.
* interp/newfort.boot: Likewise.
* interp/nrunfast.boot: Likewise.
* interp/nrungo.boot: Likewise.
* interp/nrunopt.boot: Likewise.
* interp/pf2atree.boot: Likewise.
* interp/pile.boot: Likewise.
* interp/pspad1.boot: Likewise.
* interp/ptrees.boot: Likewise.
* interp/scan.boot: Likewise.
* interp/sfsfun.boot: Likewise.
* interp/showimp.boot: Likewise.
* interp/slam.boot: Likewise.
* interp/trace.boot: Likewise.
* interp/wi1.boot: Likewise.
* interp/word.boot: Likewise.
|
|
* boot/tokens.boot: Don't rename 'is' and 'inst'.
* boot/parser.boot: Use 'in' instead of 'MEMQ' where approrpriate.
* interp/: Likewise.
|
|
* boot/ast.boot: Use "~=" instead of "^=".
* boot/includer.boot: Likewise.
* boot/translator.boot: Likewise.
* interp/as.boot: Likewise.
* interp/bc-misc.boot: Likewise.
* interp/bc-solve.boot: Likewise.
* interp/bc-util.boot: Likewise.
* interp/br-con.boot: Likewise.
* interp/br-data.boot: Likewise.
* interp/br-op1.boot: Likewise.
* interp/br-op2.boot: Likewise.
* interp/br-prof.boot: Likewise.
* interp/br-saturn.boot: Likewise.
* interp/br-search.boot: Likewise.
* interp/br-util.boot: Likewise.
* interp/c-doc.boot: Likewise.
* interp/c-util.boot: Likewise.
* interp/category.boot: Likewise.
* interp/cattable.boot: Likewise.
* interp/clam.boot: Likewise.
* interp/clammed.boot: Likewise.
* interp/compiler.boot: Likewise.
* interp/database.boot: Likewise.
* interp/define.boot: Likewise.
* interp/format.boot: Likewise.
* interp/fortcall.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/g-cndata.boot: Likewise.
* interp/g-opt.boot: Likewise.
* interp/g-timer.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/guess.boot: Likewise.
* interp/ht-root.boot: Likewise.
* interp/ht-util.boot: Likewise.
* interp/htsetvar.boot: Likewise.
* interp/i-analy.boot: Likewise.
* interp/i-code.boot: Likewise.
* interp/i-coerce.boot: Likewise.
* interp/i-coerfn.boot: Likewise.
* interp/i-eval.boot: Likewise.
* interp/i-funsel.boot: Likewise.
* interp/i-intern.boot: Likewise.
* interp/i-map.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/i-resolv.boot: Likewise.
* interp/i-spec1.boot: Likewise.
* interp/i-spec2.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/i-toplev.boot: Likewise.
* interp/i-util.boot: Likewise.
* interp/int-top.boot: Likewise.
* interp/interop.boot: Likewise.
* interp/intfile.boot: Likewise.
* interp/lisplib.boot: Likewise.
* interp/macex.boot: Likewise.
* interp/mark.boot: Likewise.
* interp/match.boot: Likewise.
* interp/modemap.boot: Likewise.
* interp/msg.boot: Likewise.
* interp/msgdb.boot: Likewise.
* interp/newfort.boot: Likewise.
* interp/nruncomp.boot: Likewise.
* interp/nrunfast.boot: Likewise.
* interp/nrungo.boot: Likewise.
* interp/nrunopt.boot: Likewise.
* interp/parse.boot: Likewise.
* interp/pathname.boot: Likewise.
* interp/pf2atree.boot: Likewise.
* interp/pf2sex.boot: Likewise.
* interp/postpar.boot: Likewise.
* interp/profile.boot: Likewise.
* interp/pspad1.boot: Likewise.
* interp/pspad2.boot: Likewise.
* interp/record.boot: Likewise.
* interp/scan.boot: Likewise.
* interp/setvars.boot: Likewise.
* interp/simpbool.boot: Likewise.
* interp/slam.boot: Likewise.
* interp/topics.boot: Likewise.
* interp/trace.boot: Likewise.
* interp/wi1.boot: Likewise.
* interp/wi2.boot: Likewise.
* interp/word.boot: Likewise.
|
|
|
|
* interp/g-util.boot (homogeneousListToVector): New.
* interp/g-opt.boot (optCollectVector): Use it.
|
|
* interp/compiler.boot: Don't register compiler for COLLECTV forms.
(compReduce1): Don't test for COLLECTV.
(localReferenceIfThere): New.
(compRepeatOrCollect): Use it. Tidy.
(compCollectV): Remove.
(compIteratorV): Likewise.
(computeMaxIndex): Likewise.
(exprDifference): Likewise.
* interp/g-opt.boot (optCollectVector): New. Register as
back end tranformer.
* interp/sys-macros.lisp (COLLECTV): Remove.
|
|
* interp/compiler.boot (compRecoverDomain): New. Split from
compRecoverGuard.
(compRecoverGuard): Split. Handle existential type recovery.
(compScheme): New. Register as compiler.
* interp/g-opt.boot (optLET*): New. Turn into LET-form if
appropriate. Register as backend transformer.
* interp/fnewmeta.lisp (|PARSE-Scheme|): New.
(|PARSE-Quantifier|): Likewise.
(|PARSE-QuantifiedVariableList|): Likewise.
(|PARSE-QuantifiedVariable|): Likewise.
* interp/metalex.lisp (KEYWORDS): Add 'forall' and 'exist' as new
keywords.
* interp/newaux.lisp: Register parser for expression schemes.
* algebra/any.spad.pamphlet (=$Any): If the underlying domain has
BasicType, use that equality operator.
(coerce$Any): If the underlying domain has CoercibleTo OutputForm
then use it.
|
|
shenanigans. Use is-case pattern matching.
* interp/g-opt.boot (varIsAssigned): New.
(canInlineVarDefinition): New.
(optLET): Use it to inline functionally used local variables.
Register as backend optimizer.
|
|
(optCall): Use it.
(optSpecialCall): Likewise.
(optSPADCALL): Tidy.
|
|
* interp/g-opt.boot (optimizeFunctionDef): Tidy.
* interp/i-syscmd.boot (compileSpad2Cmd): Support ')report' option.
* interp/sys-driver.boot (initializeGlobalState): Likewise.
|