Age | Commit message (Collapse) | Author | Files | Lines |
|
* interp/define.boot (spadCompileOrSetq): Use it.
|
|
|
|
* interp/lisp-backend.boot: Expand it.
* algebra/array1.spad.pamphlet (PrimitiveArray): Implement
maxIndex, parts, and members.
|
|
|
|
|
|
|
|
|
|
are now builin.
* boot/ast.boot: Tidy.
* interp/c-util.boot: Likewise.
* interp/br-saturn.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/clam.boot: Likewise.
* interp/trace.boot: Likewise.
* interp/sys-utility.boot: Likewise.
* interp/sys-driver.boot: Likewise.
* interp/lisplib.boot: Likewise.
* interp/lisp-backend.boot: Likewise.
|
|
(LAM,EVALANDFILEACTQ): Likewise.
* interp/sys-utility.boot (PRINT-AND-EVAL-DEFUN): Likewise.
* interp/slam.boot (reportFunctionCompilation): Tidy.
* interp/lisp-backend.boot (evalAndPrintBackendDecl): New.
* interp/c-util.boot (backendCompileSPADSLAM): Use it in lieu of
SETANDFILE.
(compAndDefine): Use evalAndPrintBackendDecl in lieu of
PRINT-AND-EVAL-DEFUN.
* interp/hypertex.boot: Clean up.
* interp/nhyper.boot: Likewise.
* interp/word.boot: Likewise.
|
|
longer optional. Adjust callers.
(LAM\,EVALANDFILEACTQ): Likewise.
* interp/slam.boot (compQuietly): Use printBackendDecl.
* interp/spad.lisp (SPAD): Likewise.
* interp/sys-utility.boot (PRINT-AND-EVAL-DEFUN): Likewise.
* interp/macros.lisp (SETANDFILE): Move to vmlisp.lisp.
* interp/lisp-backend.boot (printBackendStmt): New.
(evalAndPrintBackendStmt): Likewise.
(printBackendDecl): Likewise.
* interp/c-util.boot (registerFunctionReplacement): Use
evalAndPrintBackendStmt.
(registerRedexForm): Likewise.
(proclaimCapsuleFunction): Use printBackendStmt.
* interp/Makefile.in (lisp-backend.$(FASLEXT)): Require nlib.$(FASLEXT)
|
|
(CONVERSATION1): Likewise.
(MAKE-PARSE-FUNCTION): Likewise.
(MAKE-PARSE-FUNCTION1): Likewise.
(MAKE-PARSE-FUNC-FLATTEN): Likewise.
(MAKE-PARSE-FUNC-FLATTEN-1): Likewise.
(TRANSPGVAR): Likewise.
(GETRULEFUNLISTS): Likewise.
(REDUCTION-PRINT): Likewise.
(TRACEMETA): Likewise.
(TRMETA): Likewise.
(TRMETA1): Likewise.
(/MDEF): Likewise.
* interp/macros.lisp (EXPAND-TABS): Likewise.
* interp/spad.lisp (READ-SPAD): Likewise.
(READ-INPUT): Likewise.
(READ-SPAD0): Likewise.
(READ-SPAD1): Likewise.
(READ-SPAD-1): Likewise.
(New,ENTRY,1): Likewise.
(New,ENTRY,2): Likewise.
* interp/bootlex.lisp (SPAD_SYNTAX_ERROR): Move to debug.lisp.
(SPAD_LONG_ERROR): Likewise.
(SPAD_SHORT_ERROR): Likewise.
(SPAD_ERROR_LOC): Likewise.
* interp/c-util.boot (COMP370): Move to lisp-backend.boot.
(compQuietly): Move to slam.boot.
|
|
* interp/c-util.boot (backendCompileSPADSLAM): Use it.
(backendCompile2): Likewise.
|
|
(LAM): Likewise.
(*LAM): Likewise.
(ISQUOTEDP): Likewise.
(QUOTESOF): Likewise.
(DDQUOTE): Likewise.
* interp/lisp-backend.boot (COMPILE1): Simplify.
|
|
* interp/clam.boot: Likewise.
* interp/define.boot: Likewise.
* interp/lisp-backend.boot (COMPILE1): Tidy.
* interp/slam.boot: Likewise.
|
|
($lamName): Rename from *LAM-NAME*.
|
|
Rename to removeFluids.
(SIMPLE-ARGLIST): Move to lisp-backend.boot. Rename to
simpleParameterList?.
|
|
(compileLispDefinition): Move to lisp-backend.boot.
|
|
%imulmod.
* algebra/si.spad.pamphlet (SingleInteger): Likewise.
* interp/c-util.boot (devaluate): Use # in lieu of QVSIZE.
* interp/g-opt.boot: %ilfshift and %irshift are now builtin
side-effect free operations.
* interp/lisp-backend.boot: Translate them.
* interp/g-util.boot (mergeSort): Avoid QSDIFFERENCE.
* interp/slam.boot: Likewise.
* interp/sys-macros.lisp: Likewise.
* interp/macros.lisp: Avoid QVMAXINDEX.
* interp/vmlisp.lisp (QSDIFFERENCE): Remove.
(QSGREATERP): Likewise.
(QSLEFTSHIFT): Likewise.
(QSLESSP): Likewise.
(QSMAX): Likewise.
(QSMIN): Likewise.
(QSMINUS): Likewise.
(QSMINUSP): Likewise.
(QSODDP): Likewise.
(QSABSVAL): Likewise.
(QSPLUS): Likewise.
(QSZEROP): Likewise.
(QVMAXINDEX): Likewise.
(QVSIZE): Likewise.
(ZERO?): Likewise.
|
|
* algebra/sex.spad.pamphlet: Use %float? instead of RNUM.
Use %integer? instead of INTP.
* interp/g-timer.boot: Use float? instead of RNUMP.
* interp/i-coerce.boot: Use fixnum? instead of SINTP or SMINTP.
* interp/i-intern.boot: Likewise.
* interp/lisp-backend.boot: Likewise.
* interp/slam.boot: Likewise.
* interp/trace.boot: Likewise.
* interp/vmlisp.lisp: Likewise.
(INTP): Remove.
(BINTP): Likewise.
(LESSP): Likewise.
(LINTP): Likewise.
(MAKESTRING): Likewise.
(MAPELT): Likewise.
(NUMP): Likewise.
(RNUMP): Likewise.
(SINTP): Likewise.
(SMINTP): Likewise.
|
|
(extractCodeAndConstructTriple): Likewise.
* interp/g-opt.boot (optCall): Adjust.
|
|
* interp/lisp-backend.boot (expandApply): Remove.
Unregister expander.
* interp/g-opt.boot (optCall): applyFun is not longer an opcode.
Look for %apply.
* interp/compiler.boot (applyMapping): Generate ['%call,['%apply,.]]
form, not ['%apply,..] form.
(extractCodeAndConstructTriple): Tidy.
(compApplication): Likewise.
|
|
(optimize!): Call it.
(optimizeFunctionDef): Simplify.
|
|
(cleanLoop!): Use it.
* interp/lisp-backend.boot ($freeVarName): Remove.
(loopVarInit): Do not generate initializer for free iterators.
Adjust callers.
(massageFreeVarInits): Remove. Adjust caller.
|
|
(compRepeatOrCollect): Use it.
* interp/g-opt.boot (optCollectVector): Likewise.
* interp/lisp-backend.boot (expandCollect): Likewise.
|
|
* interp/g-opt.boot: Likewise.
* interp/i-map.boot: Likewise.
* interp/i-special.boot: Likewise.
* interp/lisp-backend.boot: Likewise.
* interp/slam.boot: Likewise.
|
|
to local variable declarations which are not definitions.
* interp/lisp-backend.boot (expandToVMForm): Translate %undefined.
|
|
(expandIN): Likewise.
(expandON): Likewise.
(expandSTEP): Likewise.
(expandUNTIL): Likewise.
(expandWHILE): Likewise.
(expandSUCHTHAT): Likewise.
(expandInit): Likewise.
(expandIterators): Likewise.
(massageFreeVarInits): Likewise.
(expandLoop): optimize! then expand.
|
|
* 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.
|
|
(expandSeq): Likewise. Use it. Expand %seq forms.
|
|
* 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.
|
|
* 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.
|
|
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.
|
|
(coerceUn2E): Likewise.
* interp/compiler.boot (massageLoop): %leave now takes a label as
first argument.
* interp/lisp-backend.boot (expandLeave): New. Expand accordingly.
|
|
* 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.
|
|
* interp/lisp-backend.boot: Expand it.
* algebra/sf.spad.pamphlet (DoubleFloat): Remove %fmanexpr import.
Use %fdecode to access Lisp-level double-float decoding.
[mantissa]: Rewrite.
[exponent]: Likewise.
[negative?]: Likewise.
[positive?]: Likewise.
[manexp]: Likewise.
* algebra/view2D.spad.pamphlet (TwoDimensionalViewport): Tidy.
|
|
|
|
(extractCodeAndConstructTriple): Likewise.
* interp/g-opt.boot (optCall): Likewise.
($VMsideEffectFreeOperators): Include %function
* interp/lisp-backend.boot: Translate %function.
|
|
* interp/g-opt.boot (doInlineCall): Tidy one more time.
($VMsideEffectFreeOperators): Move %aplly to $simpleVMoperators.
(optLET): Remove as unused.
* interp/lisp-backend.boot (expandApply): New. Register as
expander for %apply forms.
* interp/define.boot (getXmode): New.
(displayMissingFunctions): Use it instead of getmode.
(compDefineCapsuleFunction): Likewise.
(addDomain): Likewise.
(getSignature): Likewise.
(compile): Likewise.
(compJoin): Likewise.
* interp/compiler.boot (comp3): Likewise.
(compWithMappingMode): Likewise.
(applyMapping): Generate %apply form.
(compApplication): Likewise.
(autoCoerceByModemap): Likewise.
(extractCodeAndConstructTriple): Handle %apply forms.
(setqSingle): For domain variables, put corresponding macro forms
in the environment.
* algebra/ore.spad.pamphlet (Automorphism): Define Rep as a constant.
Adjust; include explicit uses of rep and per.
|
|
(loopVarInit): New.
(expandIN): Use it.
(expandON): Likewise.
(expandSTEP): Likewise.
(massageFreeVarInits): New.
(expandLoop): Use it.
* interp/fnewmeta.lisp (PARSE-QuantifiedVariable): Tidy.
(PARSE-AnyId): Likewise.
(PARSE-Variable): New. Allow scope-of-type specification for
loop variable.
(PARSE-Iterator): Use it.
* interp/compiler.boot (massage_llop): Don't check
$mayHaveFreeIteratorVariables.
(compRepeatOrCollect): Don't bind it.
(classifyIteratorVariable): New.
(complainIfShadowing): Remove as no longer needed.
(compStepIterator): Use it. Tidy.
(compONIterator, compINIterator): New. Split out of compIterator.
(compIterator): Refactor.
* interp/functor.boot (optFunctorBody): Fix thinko.
* interp/g-opt.boot (optCollectVector): A STEP iterator may have a
storage class.
* algebra/clip.spad.pamphlet: Fix loop variable scope.
* algebra/ffpoly.spad.pamphlet: Likewise.
* algebra/fparfrac.spad.pamphlet: Likewise.
* algebra/gdpoly.spad.pamphlet: Likewise.
* algebra/ghensel.spad.pamphlet: Likewise.
* algebra/groebsol.spad.pamphlet: Likewise.
* algebra/intfact.spad.pamphlet: Likewise.
* algebra/matfuns.spad.pamphlet: Likewise.
* algebra/moddfact.spad.pamphlet: Likewise.
* algebra/numtheor.spad.pamphlet: Likewise.
* algebra/permgrps.spad.pamphlet: Likewise.
* algebra/pfbr.spad.pamphlet: Likewise.
* algebra/pgcd.spad.pamphlet: Likewise.
* algebra/pleqn.spad.pamphlet: Likewise.
* algebra/pseudolin.spad.pamphlet: Likewise.
* algebra/radeigen.spad.pamphlet: Likewise.
* algebra/radix.spad.pamphlet: Likewise.
* algebra/regset.spad.pamphlet: Likewise.
* algebra/rep2.spad.pamphlet: Likewise.
* algebra/sgcf.spad.pamphlet: Likewise.
* algebra/smith.spad.pamphlet: Likewise.
* algebra/sregset.spad.pamphlet: Likewise.
* algebra/syssolp.spad.pamphlet: Likewise.
* algebra/zerodim.spad.pamphlet: Likewise.
* algebra/crfp.spad.pamphlet: Remove capsule-level declaration of
local variables.
* algebra/galfact.spad.pamphlet: Likewise.
* algebra/mathml.spad.pamphlet: Likewise.
* algebra/numode.spad.pamphlet: Likewise.
* algebra/tex.spad.pamphlet: Likewise.
* algebra/updecomp.spad.pamphlet: Likewise.
|
|
COERCE. Eliminate second argument.
(expandStr2bytevec): Use MAP instead of COERCE.
* algebra/data.spad.pamphlet (ByteBuffer) [coerce]: Adjust call to
%bytevec2str.
|
|
|
|
|
|
|
|
* interp/br-data.boot: Use writeString, writeChar, and writeLine.
* interp/c-util.boot: Likewise.
* interp/diagnostics.boot: Likewise.
* interp/fortcall.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/i-util.boot: Likewise.
* interp/lisplib.boot: Likewise.
* interp/msgdb.boot: Likewise.
* interp/newfort.boot: Likewise.
* interp/record.boot: Likewise.
* interp/g-opt.boot ($VMsideEffectFreeOperators): Include
%writeString, %writeNewline, %writeLine.
* interp/lisp-backend.boot: Translate them.
|
|
(opt2bit): Tidy.
(opt2bool): Likewise.
* interp/bits.lisp (TRUTH-TO-BIT): Remove.
(BIT-TO-TRUTH): Likewise.
(BVEC-MAKE-FULL): Likewise.
(BVEC-ELT): Likewise.
(BVEC-SETELT): Likewise.
|
|
* interp/buildom.boot (mkRecordFun): New.
(eltRecordFun): Likewise.
(copyRecordFun): Likewise.
(mkRecordFunList): Use them.
* interp/g-opt.boot (optMkRecord): Remove.
(optRECORDELT): Likewise.
* interp/lisp-backend.boot: Translate %vcopy.
|
|
|
|
removal.
(reverse): Define.
* boot/tokens.boot: Don't rename reverse anymore.
* boot/ast.boot: Generate reverse forms instead of REVERSE.
|
|
* boot/utility.boot (reverse!): Define.
* boot/parser.boot: Use reverse! instead of NREVERSE.
* boot/ast.boot: Generate reverse! forms instead of NREVERSE.
|
|
|