aboutsummaryrefslogtreecommitdiff
path: root/src/interp/compiler.boot
AgeCommit message (Collapse)AuthorFilesLines
2010-12-07 * interp/compiler.boot (compThrow): Remove niladic type restriction.dos-reis1-9/+5
(compCatch): Tidy. (compTry): Likewise.
2010-12-07 Add support for exception handling.dos-reis1-0/+30
* 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.
2010-09-07 * interp/c-util.boot (massageBackendCode): Remove conditional ondos-reis1-1/+0
$NEWSPAD since it always true. Keep note of Lisp-level special variable even if it is set with SETQ. (transformToBackendCode): Declare special variables before fluid and local variables. * interp/compiler.boot: Don't compile SETQ forms as if they were Spad codes.
2010-08-22 * interp/compiler.boot (getBootType): Prefix Mapping with %.dos-reis1-3/+3
(checkExternalEntity): Likewise. Do same with Signature.
2010-07-27Misc cleanupdos-reis1-3/+3
2010-07-24 * interp/compiler.boot (compMatchAlternative): Don't generatedos-reis1-2/+1
LET-expressions. * interp/g-opt.boot (optBind): Tidy.
2010-07-12cleanupsdos-reis1-2/+2
2010-07-05 * interp/compiler.boot (compTopLevel): Bind $whereDecls.dos-reis1-2/+18
(recordDeclarationInSideCondition): New. Update it. (compWhere): Call it. * interp/define.boot ($whereDecls): Define at toplevel. (typeDependencyPath): New. (inferConstructorImplicitParameters): Likewise. (compDefineFunctor1): Use it.
2010-07-03 * interp/category.boot (isCategoryForm): Tidy.dos-reis1-2/+11
* 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.
2010-07-03 * interp/define.boot (macroExpand): Tidy. Only identifiers aredos-reis1-6/+6
allowed to be macro names.
2010-06-30 * interp/c-util.boot (giveVariableSomeValue): New.dos-reis1-10/+10
* interp/compiler.boot (setqMultiple): Use it. (compColon): Likewise. (compRetractGuard): Likewise. (compRecoverDomain): Likewise. (defineMatchScrutinee): Likewise. (compStepIterator): Likewise. (compIterator): Likewise. (compUnnamedMapping): Likewise. * interp/define.boot (giveFormalParametersValues): Likewise. * interp/wi1.boot (setqMultiple): Likewise. * interp/wi2.boot (compIterator): Likewise. (smallIntegerStep): Likewise.
2010-06-26 * interp/compiler.boot (compString): Remove as unused.dos-reis1-3/+0
* interp/mark.boot (compString): Likewise. * algebra/string.spad.pamphlet (StringCategory): Remove obsolete comments. Remove redundant SetCategory extension.
2010-06-24 * interp/c-util.boot: Cleanup.dos-reis1-14/+14
* 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.
2010-06-20 * interp/compiler.boot (massageLoop): New.dos-reis1-1/+30
(compRepeatOrCollect): Use it to generate appropriate %loop forms. Bind new special variable $mayHaveFreeIteratorVariables. (complainIfShadowing): Set it as appropriate.
2010-06-13 * interp/compiler.boot (complainIfShadowing): New.dos-reis1-1/+10
(compStepIterator): Use it to warn about loop variable shadowing declaration in enclosing scope. (compIterator): Likewise.
2010-06-12 * interp/compiler.boot (compIterate): Rewrite.dos-reis1-6/+9
(compRepeatOrCollect): Tidy. Bind $loopBodyTag.
2010-06-10 * interp/compiler.boot (freeVarUsage): Handle %when too.dos-reis1-10/+10
(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.
2010-06-10Clean updos-reis1-1/+1
2010-06-09 * interp/compiler.boot (canReturn): Handle %when and %bind.dos-reis1-34/+36
(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.
2010-06-07 * interp/compiler.boot (finishLambdaExpression): Bind escapeddos-reis1-9/+8
variables with LET-form instead of assignment.
2010-06-07 * interp/compiler.boot (replaceExitEtc): Replace TAGGEDreturn withdos-reis1-2/+5
%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.
2010-06-06 * interp/compiler.boot (replaceExitEtc): Tidy.dos-reis1-10/+10
2010-06-06 * interp/compiler.boot (compRepeatOrCollect): Compile listdos-reis1-2/+3
comprehension to %collect form.
2010-06-05More cleanupdos-reis1-2/+2
2010-06-04 * interp/compiler.boot: Replace QCAR first and QCDR first rest.dos-reis1-1/+1
* interp/g-opt.boot: Likewise.
2010-06-04 * interp/buildom.boot: Clean up QEQCAR uses.dos-reis1-1/+1
2010-06-03 * interp/buildom.boot: Cleanup.dos-reis1-1/+1
* interp/c-util.boot ($SetCategory): New constant. * interp/compiler.boot: Use it. * interp/functor.boot: Likewise.
2010-05-31 * interp/compiler.boot (compWithMappingMode): Handle lambdados-reis1-0/+1
expressions as mapping.
2010-05-29 * interp/compiler.boot (getExternalSymbolMode): Allow Lisp asdos-reis1-8/+14
foreign language. (checkExternalEntity): Likewise. (compSignatureImport): Likewise. Give foreign variables dummy values. * interp/c-util.boot (middleEndExpand): Handle %true and %false. * interp/g-util.boot (expandToVMForm): Likewise.
2010-05-28Clean up MAKEPROP usesdos-reis1-1/+1
2010-05-23 * boot/tokens.boot: gensym is now candidate for renaming.dos-reis1-8/+8
* 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.
2010-05-17 * interp/as.boot: Clean up.dos-reis1-4/+4
* interp/br-util.boot: Likewise. * interp/category.boot: Likewise. * interp/compiler.boot: Likewise. * interp/define.boot: Likewise. * interp/modemap.boot: Likewise. * interp/wi2.boot: Likewise.
2010-05-16 * interp/i-util.boot (flattenCOND): Move from g-boot.boot.dos-reis1-1/+1
(extractCONDClauses): Likewise. * interp/g-boot.boot: Remove. * interp/def.lisp: Likewise. * interp/Makefile.pamphlet: Adjust dependencies.
2010-05-11 Add support for interpreter-style anonymous function.dos-reis1-0/+54
* interp/compiler.boot (compUnnamedMapping): New. (gatherParameterList): Likewise. (compLambda): Likewise.
2010-05-11 * interp/compiler.boot (freeVarUsage): New. Split out ofdos-reis1-65/+72
compWithMappingMode. (finishLambdaExpression): Likewise. (compWithMappingMode): Restructure.
2010-05-09Cleanup STRCONC usesdos-reis1-1/+1
2010-05-09 * interp/c-util.boot: Replace uses of rplac with explicitdos-reis1-8/+8
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.
2010-05-08 * interp/as.boot: Replace uses of RPLACA and RPLACD with explicitdos-reis1-1/+1
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.
2010-05-07 * interp/c-util.boot: Replace uses of rplac with explicit assignments.dos-reis1-3/+3
* 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.
2010-05-07 * interp/as.boot: Miscellaneous cleanup.dos-reis1-1/+1
* 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.
2010-05-06 * interp/wi2.boot: Replace INTEGERP, STRINGP, SYMBOLP, CONSP withdos-reis1-15/+15
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?
2010-05-05 * interp/compiler.boot (setqSingle): Ignore $QuickLet.dos-reis1-7/+3
* interp/wi1.boot (setqSingle): Likewise.
2010-05-05 * interp/compiler.boot (compSetq1): Call self, not compSetq.dos-reis1-2/+3
* 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.
2010-05-05 * interp/c-util.boot: Change middle-end instruction "call" todos-reis1-14/+14
"%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.
2010-05-05 * interp/compiler.boot: Miscellaneous cleanup.dos-reis1-2/+2
* interp/g-opt.boot: Likewise. * interp/functor.boot: Likewise. * interp/nrunfast.boot: Likewise. * interp/wi2.boot: Likewise.
2010-05-03 * interp/compiler.boot (setqSingle): Tidy.dos-reis1-6/+5
2010-05-02 * interp/compiler.boot (canReturn): Tidy.dos-reis1-4/+2
2010-05-01 * interp/c-util.boot (getSuccessEnvironment): Move to here fromdos-reis1-34/+0
compiler.boot. (getInverseEnvironment): Likewise. * interp/wi2.boot (getSuccessEnvironment): Remove. (getInverseEnvironment): Likewise. (corrupted?): Likewise. (unLet): Likewise.
2010-04-30 * interp/macros.lisp (|check-subtype|): Return coerced value if can.dos-reis1-12/+1
(|check-union|): Likewise. * interp/compiler.boot (coerceSuperset): Tidy. Generate %Retract instruction. * interp/g-opt.boot (optRetract): New.
2010-04-20 * interp/compiler.boot (joinIntegerModes): New.dos-reis1-37/+58
(compIntegerValue): Likewise. (compStepIterator): Likewise. (compIterate): Use it.