Age | Commit message (Collapse) | Author | Files | Lines |
|
* interp/g-opt.boot (opt2bit): New.
(opt2bool): Likewise.
* interp/bits.lisp (BVEC-SIZE): Remove.
(BVEC-COPY): Likewise.
(BVEC-CONCAT): Likewise.
(BVEC-EQUAL): Likewise.
(BVEC-AND): Likewise.
(BVEC-OR): Likewise.
(BVEC-XOR): Likewise.
(BVEC-NAND): Likewise.
(BVEC-NOR): Likewise.
(BVEC-NOT): Likewise.
* algebra/boolean.spad.pamphlet (IndexedBits): Remove uses of
Lisp-level functions.
|
|
value argument evaluation.
(lazyMatch): Check for %llength too.
* interp/g-opt.boot ($VMsideEffectFreeOperators): Include %2bit
and %2bool.
* interp/g-util.boot: Expand them.
* interp/define.boot (compJoin): Check for %llenght too.
* algebra/boolean.spad.pamphlet: Tidy.
* algebra/domain.spad.pamphlet: Likewise.
* algebra/draw.spad.pamphlet: Likewise.
* algebra/files.spad.pamphlet: Likewise.
* algebra/list.spad.pamphlet: Likewise.
* algebra/outform.spad.pamphlet: Likewise.
* algebra/sex.spad.pamphlet: Likewise.
* algebra/sf.spad.pamphlet: Likewise.
|
|
|
|
%cdown.
* interp/g-util.boot: Expand them.
* interp/vmlisp.lisp (QESET): Remove.
* algebra/string.spad.pamphlet (String): Don't use QESET.
|
|
builtin functions %strlt, %streq, %strcopy, and %strconc.
* interp/g-util.boot: Expand them.
* algebra/string.spad.pamphlet (String): Remove uses of
Lisp-level functions CHAR, EQUAL, CHAR=, ans SXHASH.
|
|
|
|
(QSTRINGLENGTH): Likewise.
(STRINGLENGTH): Likewise.
* interp/g-opt.boot ($VMsideEffectFreeOperators): Include %i2s.
* interp/g-util.boot: Expand it.
* interp/debug.lisp (/LOCATE): Replace STRINGLENGTH with LENGTH.
* algebra/fortran.spad.pamphlet: Don't use STRINGIMAGE from Lisp.
* algebra/generic.spad.pamphlet: Likewise.
* algebra/naalg.spad.pamphlet: Likewise.
* algebra/naalgc.spad.pamphlet: Likewise.
* algebra/outform.spad.pamphlet: Likewise.
* algebra/string.spad.pamphlet: Likewise.
|
|
* interp/g-util.boot: Expand it.
* algebra/string.spad.pamphlet (String): Remove use of QCSIZE.
|
|
|
|
|
|
|
|
(REFVECP): Likewise.
(CVECP): Likewise.
(QMEMQ): Likewise.
* interp/bootlex.lisp (TRANSLABEL1): Adjust.
* interp/br-search.boot: Likewise.
* interp/br-util.boot: Likewise.
* interp/c-doc.boot: Likewise.
* interp/category.boot: Likewise.
* interp/database.boot: Likewise.
* interp/debug.lisp: Likewise.
* interp/format.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/g-cndata.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/ggreater.lisp: Likewise.
* interp/guess.boot: Likewise.
* interp/i-coerfn.boot: Likewise.
* interp/i-map.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/i-resolv.boot: Likewise.
* interp/i-spec2.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/interop.boot: Likewise.
* interp/i-util.boot: Likewise.
* interp/union.lisp: Likewise.
* interp/trace.boot: Likewise.
* interp/pspad2.boot: Likewise.
* interp/pathname.boot: Likewise.
* interp/nrunopt.boot: Likewise.
* interp/nrunfast.boot: Likewise.
* interp/nruncomp.boot: Likewise.
* interp/newfort.boot: Likewise.
* interp/msgdb.boot: Likewise.
* interp/msg.boot: Likewise.
* interp/match.boot: Likewise.
* interp/word.boot: Likewise.
|
|
|
|
|
|
* interp/parsing.lisp (TEST-LEXING): Remove.
(RTRACE): Likewise.
(RUNTRACE): Likewise.
(MATCH-ADVANCE-KEYWORD): New.
(MATCH-ADVANCE-GLYPH): Likewise.
(MATCH-ADVANCE-SPECIAL): Likewise.
(MATCH-SPECIAL): Likewise.
(MATCH-KEYWORD-NEXT): Likewise.
* interp/newaux.lisp: Make try and throw prefix operators.
* interp/metalex.lisp (KEYWORDS): Include finally, catch and throw.
* interp/fnewmeta.lisp (PARSE-Throw): New. Parse throw-expressions.
(PARSE-Catch): New. Parse catch-expressions.
(PARSE-Finally): New. Parse finally-expressions.
(PARSE-Try): New. Parse try-expressions.
* interp/compiler.boot (compThrow): New. Register to compile
throw-expressions.
(compTry): New. Register to compiler try-expressions.
(compCatch): New. Compile catch-handler expression.
* interp/g-opt.boot (optTry): New. Simplify simple expressions in
the try operand.
* interp/g-util.boot (expandThrow): New. Expand %throw forms.
(domainMatchCode): New.
(expandTry): New. Expand %try forms.
* doc/msgs/s2-us.msgs: Add new message with key S2GE0020.
* interp/g-error.boot (systemErrorHandler): Handle possible
uncaucght expression condition.
|
|
builtin.
* interp/g-util.boot (stringToChar): New.
(expandCst): Use it.
(expandS2c): Likewise. New.
* interp/spad.lisp (|$Newline): Move to interp/sys-macros.lisp.
* interp/sys-macros.lisp (|$Backspace): New.
(|$HorizontalTab|): Likewise.
(|$VerticalTab|): Likewise.
(|$FormFeed|): Likewise.
(|$CarriageReturn|): Likewise.
* algebra/string.spad.pamphlet (Character) [newline]: New.
[carriageReturn]: Likewise.
[linefeed]: Likewise.
[formfeed]: Likewise.
[backspace]: Likewise.
[horizontalTab]: Likewise.
[verticalTab]: Likewise.
[char]: Tidy.
|
|
trigonometric functions.
* interp/g-opt.boot ($VMsideEffectFreeOperators): Include them.
* interp/g-util.boot: Expand them.
* include/edible.H1: Move declarations to clef/edible.c. Remove.
* driver/utils.h: Give G linkage to declarations.
* sman/Makefile.in: Link programs against C++ runtime.
|
|
* interp/vmlisp.lisp (QSQUOTIENT): Likewise.
(QSREMAINDER): Likewise.
* interp/buildom.boot: Use quo and rem in leur of QUOTIENT and
REMAINDER or variants.
* interp/g-timer.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/htsetvar.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/incl.boot: Likewise.
* interp/msgdb.boot: Likewise.
* interp/nrungo.boot: Likewise.
* interp/pspad1.boot: Likewise.
* interp/topics.boot: Likewise.
|
|
* interp/spad.lisp (QUOTIENT2): Remove.
(REMAINDER2): Likewise.
* algebra/integer.spad.pamphlet (Integer): Use builtin %idivide.
* algebra/si.spad.pamphlet (SingleInteger): Likewise.
|
|
%irem and %iquo.
* algebra/si.spad.pamphlet (SingleInteger): Likewise.
|
|
|
|
opcodes %icst0, %icst1, %when, and %ccst.
* interp/g-util.boot: Expand %ccst.
* algebra/alql.spad.pamphlet: Clean up.
* algebra/array1.spad.pamphlet: Likewise.
* algebra/c02.spad.pamphlet: Likewise.
* algebra/d03.spad.pamphlet: Likewise.
* algebra/e04.spad.pamphlet: Likewise.
* algebra/integer.spad.pamphlet: Likewise.
* algebra/si.spad.pamphlet: Likewise.
* algebra/string.spad.pamphlet: Likewise.
|
|
(optCatch): Use it.
(optCall): Likewise.
(optSpecialCall): Likewise.
(simplifyVMForm): Handle simple cases here.
* interp/macros.lisp (RPLACW): Remove.
|
|
* interp/nruncomp.boot (NRTsetVector4a): Tidy.
|
|
initializations in %bind expressions.
* interp/g-util.boot (expandBind): The body of s %bind expression
may be a sequence of statements.
|
|
* interp/g-opt.boot (optMINUS): Remove.
(opt_-): Likewise.
(optBle): New.
(optBgt): Likewise.
(optBge): Likewise.
|
|
* algebra/sf.spad.pamphlet (DoubleFloat): Tidy.
|
|
* interp/g-opt.boot (optIeq): New.
(optIadd): Likewise.
(optIsub): Likewise.
(optImul): Likewise.
(optIneg): Likewise.
(lispize): Remove.
|
|
(SystemNonNegativeInteger) [~]: Likewise.
* interp/g-util.boot: Better expansion of byte operations.
|
|
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.
|
|
* interp/g-util.boot: Expand it.
* algebra/syntax.spad.pamphlet (Identifer): Now satisfies
CoercibleTo String.
|
|
|
|
* 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.
|
|
|
|
* interp/g-opt.boot ($VMsideEffectFreeOperators): Include it.
|
|
and %vlength.
* interp/g-util.boot: Expand them.
* algebra/array1.spad.pamphlet (PrimitiveArray): Use them.
(IndexedOneDimensionalArray): Likewise.
|
|
* interp/g-opt.boot ($VMsideEffectFreeOperators): Include %f2s.
* algebra/string.spad.pamphlet (StringCategory) [string]: Add
overload DoubleFloat -> %.
(String): Define it.
|
|
* 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.
|
|
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.
|
|
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.
|
|
(compRepeatOrCollect): Use it to generate appropriate %loop forms.
Bind new special variable $mayHaveFreeIteratorVariables.
(complainIfShadowing): Set it as appropriate.
|
|
(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.
|
|
single %loop form.
(expandCollect): Adjust call.
(expandRepeat): Likewise.
|
|
|
|
(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.
|
|
predicate iterators. There is exactly one instance in the entire
OpenAxio library.
* interp/g-util.boot (expandIN): Take one more parameter to
determine early binding.
(expandIterators): Determine if wider scope is needed for iterator
variables.
|
|
%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.
|
|
eval.
(coerceUn2E): Likewise.
|
|
* interp/br-op1.boot: Likewise.
* interp/br-saturn.boot: Likewise.
* interp/c-util.boot: Likewise.
* interp/category.boot: Likewise.
* interp/clam.boot: Likewise.
* interp/database.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/g-cndata.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/guess.boot: Likewise.
* interp/i-coerce.boot: Likewise.
* interp/i-funsel.boot: Likewise.
* interp/i-intern.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/interop.boot: Likewise.
* interp/newfort.boot: Likewise.
* interp/nruncomp.boot: Likewise.
* interp/nrunfast.boot: Likewise.
* interp/nrunopt.boot: Likewise.
* interp/setvars.boot: Likewise.
* interp/slam.boot: Likewise.
* interp/topics.boot: Likewise.
|
|
|