Age | Commit message (Collapse) | Author | Files | Lines |
|
* 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.
|
|
* algebra/numode.spad.pamphlet: Change field try to tryValue.
* algebra/multsqfr.spad.pamphlet: Change identifier try to tryCount.
|
|
* interp/fnewmeta.lisp (PARSE-Jump): New.
* interp/compiler.boot (compAtom): Dipatch compilation of "break"
and "iterate" to...
(compBreak): ... here
(compIterate): and here.
(jumpFromLoop): New.
(compRepeatOrCollect): Initialize $lookKind, $iterateCount, and
$breakCount. Set exit point for loop bodies with 'iterate'
expressions.
* interp/parse.boot (parseAtom): Remove.
(parseTran): Adjust.
* algebra/outform.spad.pamphlet: Tidy.
* interp/c-util.boot ($loopKind): Declare.
($repeatBodyLabel): Likewise.
($iterateCount): Likewise.
($breakCount): Likewise.
|
|
* 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.
|
|
spelling for '{' and '}'.
* interp/fnewmeta.lisp (|PARSE-Primary1|): Use PARSE-Data for
quoted forms.
(|PARSE-Sexpr1|): Tidy.
* interp/parse.boot (washOperatorName): New. Issue deprecation
diagnostics for string syntax for operator names in signatures.
(parseHas): Use it.
(transCategoryItem): Likewise.
* interp/metalex.lisp (advance-token): Likewise.
* algebra/boolean.spad.pamphlet: Tidy.
|
|
(FunctorData): Likewise.
(functorData$DomainConstructor): Likewise.
|
|
* interp/sys-constants.boot ($OperatorFunctionNames): Include /\
and \/.
* interp/fnewmeta.lisp (|PARSE-ReductionOp|): Tidy.
* interp/metalex.lisp (|PARSE-OperatorFunctionName|): Likewise.
* algebra/boolean.spad.pamphlet (PropositionalLogic): Use plain
syntax for operators.
(Logic): Likewise.
(Boolean): Likewise.
(KleeneTrivalentLogic): Likewise.
|
|
* interp/metalex.lisp (|PARSE-OperatorFunctionName|): New. Use it.
* interp/fnewmeta.lisp (|PARSE-Category|): Handle operator
function names.
|
|
optimizable domain constructors.
(processInlineRequest): New.
* interp/define.boot (spadCompileOrSetq): Tidy.
(mutateToNothing): New.
(doIt): Use it. Add support for inline directives.
* interp/fnewmeta.lisp (PARSE-Inline): New.
* interp/metalex.lisp (KEYWORDS): Include 'inline'.
|
|
thinko.
* interp/bootlex.lisp (get-decimal-number-token): New.
(get-integer-in-radix): Likewise.
(is-radix-char): Likewise.
(get-spad-integer-token): Likewise. Use them.
(get-BOOT-token): Use it.
* interp/metalex.lisp: Tidy.
|
|
* interp/g-opt.boot ($simpleVMoperators): New.
(isSimpleVMForm): Likewise.
(isFloatableVMForm): Likewise.
(optLET): Likewise. Expand backend let-forms.
* interp/c-util.boot (foldSpadcall): Look into LET and COND forms.
(replaceSimpleFunctions): Likewise.
(mutateCONDFormWithUnaryFunction): New.
(mutateLETFormWithUnaryFunction): Likewise.
* interp/compiler.boot (tryCourtesyCoercion): Split from coerce.
(compRetractAlternative): Simplify. Now try courtesy coercions
before retraction.
(compRecoverAlternative): New.
(compMatch): Simplify. Implement type recovery too.
2008-12-06 Gabriel Dos Reis <gdr@cs.tamu.edu>
* interp/compiler.boot (compRetractAlternative): New.
(compMatch): Likewise. Use it to implement pattern macthing
for retractable domains.
* interp/parse.boot (parseAtAt): New.
* interp/postpar.boot (postAtAt): Likewise.
(postAlternatives): Likewise.
(postMatch): Likewise.
* interp/metalex.lisp (Keywords): Remove `otherwise' as keyword.
* interp/fnewmeta.lisp (|PARSE-Match|): New local parser.
* interp/newaux.lisp (@@): New token. Align wih interpreter.
(otherwise): Remove binding specification.
(case): Now also a Nud token.
|
|
(maprin): Use it. Separate record in lean mode.
* interp/sys-globals.boot ($leanMode): Define.
* interp/sys-driver.boot (systemMain): Initialize.
* interp/ht-util.boot (executeInterpreterCommand): Print prompt
only in non-lean mode.
* interp/int-top.boot (SpadInterpretStream): Likewise.
(intloopReadConsole): Likewise.
* interp/metalex.lisp (get-a-line): Likewise.
* interp/server.boot: Likewise.
|
|
* interp/ht-util.boot (executeInterpreterCommand): Use it.
* interp/int-top.boot (SpadInterpretStream): Likewise.
* interp/metalex.lisp (get-a-line): Likewise.
* interp/server.boot (serverReadLine): Likewise.
(serverLoop): Likewise.
|
|
* interp/server.boot (parseAndInterpret): Don't set $BOOT.
* interp/setvars.boot (resetWorkspaceVariables): Likewise.
* interp/spad-parser.boot (parseSpadFile): Likewise.
* interp/postpar.boot: Disable Old Boot handling codes.
* interp/metalex.lisp (quote-if-string): Don't test for $BOOT.
* interp/parsing.lisp (IOStat): Likewise.
(IOClear): Likewise.
* interp/ht-util.boot (parseAndEval): Don't set $BOOT.
* interp/int-top.boot (ncTopLevel): Likewise.
* interp/fnewmeta.lisp: Remove Old Boot specific productions.
* interp/sys-macros.lisp (-REDUCE): Don't test for $BOOT.
(SPADDO): Likewise.
* interp/comp.lisp (COMP-TRAN-1): Likewise.
* interp/util.lisp (|string2SpadTree|): Likewise.
* interp/bootlex.lisp (READBOOT): Remove.
(READ-BOOT): Likewise.
(spad): Don't initialize $BOOT.
* interp/debug.lisp (/D-2): Likewise.
|
|
Consistently use $InputStream and $OutputStream for I/O.
* interp/c-util.boot: Likewise.
* interp/comp.lisp: Likewise.
* interp/compat.boot: Likewise.
* interp/debug.lisp: Likewise.
* interp/def.lisp: Likewise.
* interp/g-error.boot: Likewise.
* interp/i-toplev.boot: Likewise.
* interp/int-top.boot: Likewise.
* interp/intfile.boot: Likewise.
* interp/lisplib.boot: Likewise.
* interp/macros.lisp: Likewise.
* interp/metalex.lisp: Likewise.
* interp/msgdb.boot: Likewise.
* interp/patches.lisp: Likewise.
* interp/preparse.lisp: Likewise.
* interp/server.boot: Likewise.
* interp/spad-parser.boot: Likewise.
* interp/spad.lisp: Likewise.
* interp/sys-globals.boot: Likewise.
* interp/sys-macros.lisp: Likewise.
* interp/sys-os.boot: Likewise.
* interp/unlisp.lisp: Likewise.
* interp/vmlisp.lisp: Likewise.
* interp/Makefile.pamphlet (bootlex.$(FASLEXT)): Require
sys-globals.$(FASLEXT) too.
(vmlisp.$(FASLEXT)): Likewise.
|
|
|
|
* Makefile.pamphlet (all-interpsys): Now depend on all-depsys.
src/interp/
2007-09-19 Gabriel Dos Reis <gdr@cs.tamu.edu>
* util.lisp.pamphlet ($directory-list): Move to sys-globals.boot.
($library-directory-list): Likewise.
* spad.lisp.pamphlet: Import "bootlex".
* preparse.lisp.pamphlet: Import "fnewmeta".
* postprop.lisp: Import "macros".
* postpar.boot.pamphlet: Import "postprop".
* nlib.lisp.pamphlet (rdefiostream): Define unconditionally.
(get-io-index-stream): Likewise.
(makedir): Likewise.
(get-directory-list): Don't use $current-diretory.
($filetype-table): Move to sys-constants.boot.
* patches.lisp.pamphlet ($current-directory): Remove.
(|cd|): Simplify implementation.
* newaux.lisp.pamphlet: Import "macros".
(|PARSE-NewKEY|): Define.
* metalex.lisp: Move various file, line, stack, character
utilities to here.
* macros.lisp.pamphlet (NREVERSE0): Move to sys-macros.lisp. Tidy.
* fnewmeta.lisp.pamphlet: Import "parsing".
* comp.lisp: Import "macros".
* def.lisp: Likewise.
(B-MDEF): Fix thinko.
* bootlex.lisp: Import "preparse", "def", and "nlib".
(BOOT-LINE-STACK): Move to metalex.lisp.
(NEXT-LINES-CLEAR): Likewise.
(NEXT-LINES-SHOW): Likewise.
(XCAPE): Likewise.
(KEYWORDS): Likewise.
* Makefile.pamphlet (${DEPSYS}): Now have all Lisp in compiled
form and load them.
* bookvol5.pamphlet ($current-directory): Remove.
|
|
(${DEPSYS}): Likewise for def.lisp, bootlex.lisp, postprop.lisp,
metalex.lisp. Use |compileLispFile| instead of COMPILE-FILE.
* Makefile.in: Regenerate.
* union.lisp: New.
* union.lisp.pamphlet: Move content to union.lisp. Remove.
* obey.lisp: New.
* obey.lisp.pamphlet: Move content to obey.lisp. Remove.
* nspadaux.lisp: New.
* nspadaux.lisp.pamphlet: Move content to nspadaux.lisp. Remove.
* fname.lisp: New.
* fname.lisp.pamphlet: Move content to fname.lisp. Remove.
* def.lisp: New.
* def.lisp.pamphlet: Move content to def.lisp. Remove.
* comp.lisp: New.
* comp.lisp.pamphlet: Move content to comp.lisp. Remove.
* bootlex.lisp: New.
* bootlex.lisp.pamphlet: Move content to bootlex.lisp. Remove.
* postprop.lisp: New.
* postprop.lisp.pamphlet: Move content to postprop.lisp. Remove.
* metalex.lisp: New.
* metalex.lisp.pamphlet: Move content to metalex.lisp. Remove.
* parsing.lisp: New.
* parsing.lisp.pamphlet: Move content to parsing.lisp. Remove.
|