Age | Commit message (Collapse) | Author | Files | Lines |
|
(optIinc): New. Register as new transformer.
* interp/c-util.boot ($middleEndMacroList): Remove.
(middleEndExpand): Don't check for Lisp-level macros anymore.
|
|
(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.
|
|
|
|
|
|
* 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.
|
|
($simpleVMoperators): Include SPADCALL.
|
|
(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/spaderror.lisp (trapNumericErrors): Handle
ARITHMETIC-ERROR too.
* interp/g-opt.boot ($VMsideEffectFreeOperators): Include %fNaN?.
* algebra/clip.spad.pamphlet (TwoDimensionalPlotClipping): Use it.
* algebra/plot.spad.pamphlet (Plot): Likewise.
|
|
* interp/i-eval.boot (evalForm): Likewise.
* interp/buildom.boot (formalRecordField): New.
(eltRecordFun): Use it.
(seteltRecordFun): New.
* interp/g-opt.boot (optSETRECORDELT): Remove.
(optRECORDCOPY): Likewise.
* interp/vmlisp.lisp (MAKE-VEC): 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.
|
|
|
|
(BEVC-MAKE-FULL): Likewise.
(MAKE-BVEC): Likewise.
* boot/tokens.boot (shoeKeyTableCons): Adjust.
(shoePunCons): Likewise.
(shoeDfu): Likewise.
(shoeXref): Likewise.
|
|
|
|
|
|
(applySubst): Likewise. Export.
* boot/ast.boot: Use it. Remove SUBLIS and SUBLISLIS.
* interp/ax.boot: Likewise.
* interp/br-con.boot: Likewise.
* interp/br-op1.boot: Likewise.
* interp/br-op2.boot: Likewise.
* interp/br-prof.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/compiler.boot: Likewise.
|
|
* boot/utility.boot (reverse!): Define.
* boot/parser.boot: Use reverse! instead of NREVERSE.
* boot/ast.boot: Generate reverse! forms instead of NREVERSE.
|
|
|
|
|
|
|
|
%bytevec2str and %str2bytevec opcode.
* interp/lisp-backend.boot: Expand them.
* algebra/data.spad.pamphlet (ByteBuffer): Tidy.
|
|
|
|
Remove definition.
(SingleInteger): Simplify implementation of random.
* algebra/sf.spad.pamphlet (DoubleFloat): Likewise.
[positive?]: Define.
* algebra/integer.spad.pamphlet (Integer): Tidy.
|
|
considered side-effect free functions.
* algebra/boolean.spad.pamphlet: Reflect change.
* algebra/Makefile.in (oa_strap_0_sources): Include MAYBE.
|
|
|
|
* interp/lisp-backend.boot: Translate it.
* algebra/integer.spad.pamphlet (Integer) [convert]: Tidy.
[latex]: Likewise.
* algebra/string.spad.pamphlet (Character)[latex]: Likewise.
|
|
disjunction forms.
|
|
disjunction forms.
|
|
constant producing function.
* interp/c-util.boot (getFunctionReplacement): Use
comptileTimeBindingOf.
(lookupDefiningFunction): Tidy.
* interp/g-opt.boot (compileTimeBindingOf): Move to c-util.boot.
|
|
evaluation.
|
|
(optCond): Remove ineffectual transformation.
|
|
designate a place (usable in SETF).
|
|
|
|
|
|
|
|
nested conditionals.
|
|
|
|
'case' implementation to declared signature.
(mkUnionFunList): Likewise.
* interp/compiler.boot (compCase1): 'case' is now unconditionally
binary.
* interp/g-opt.boot (optCond): Fix thinko.
|
|
possible.
* interp/g-util.boot (assumeProperty): Remove.
(flattenVMForm): Likewise.
(mkVMForm): Likewise.
|
|
|
|
|
|
(canInlineVarDefinition): Use it to safely inline vardefs.
|
|
* interp/g-opt.boot (optLET*): Remove as we now generate only
%bind forms.
|
|
and %nothing.
* algebra/mkfunc.spad.pamphlet: Use %funcall instead of FUNCALL.
|
|
|
|
of conditional too.
|
|
|
|
(sideEffectFree?): New.
(varIsAssigned): Tidy.
(canInlineVarDefinition): Likewise.
* interp/boot-pkg.lisp (gensym?): New.
* interp/c-util.boot ($NonExpandableOperators): New.
(expandableDefinition?): Use it.
* algebra/sf.spad.pamphlet (DoubleFloat): Use %fmanexp.
|
|
hyperbolic functions.
* interp/lisp-backend.boot: Expand them.
* algebra/sf.spad.pamphlet: Use them.
|
|
and GGREATERP. Add VM-level complex number operators.
* interp/lisp-backend.boot: Expand them.
* algebra/gaussian.spad.pamphlet (ComplexCategory): Use VM form
instead of Lisp level forms.
* algebra/pfr.spad.pamphlet (PartialFraction): Likewise.
* algebra/si.spad.pamphlet (SingleInteger): Likewise.
* algebra/symbol.spad.pamphlet (Symbol): Likewise.
|
|
level operators. Include %property and %bitveclt.
* interp/lisp-backend.boot: Expand them.
* algebra/si.spad.pamphlet (SingleInteger): Tidy. Use %ismall?.
* algebra/domain.spad.pamphlet (DomainConstructo): Use %property.
* algebra/outform.spad.pamphlet (OutputForm): Likewise.
* algebra/boolean.spad.pamphlet (IndexedBits): Use %bitveclt.
|