aboutsummaryrefslogtreecommitdiff
path: root/src/interp/i-spec1.boot
AgeCommit message (Collapse)AuthorFilesLines
2008-12-082008-12-07 Gabriel Dos Reis <gdr@cs.tamu.edu>dos-reis1-4/+2
* 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.
2008-10-16 * interp/i-spec1.boot (categoryImplies): New.dos-reis1-1/+18
(evalCategory): Use it.
2008-10-13 Don't step over Common Lisp MAP.dos-reis1-2/+2
* interp/i-analy.boot (bottomUp): Change MAP to %Map. (isEltable): Likewise. * interp/i-coerce.boot (retract): Likewise. * interp/i-eval.boot (getArgValue): Likewise. * interp/i-funsel.boot (selectLocalMms): Likewise. * interp/i-intern.boot (getValueFromEnvironment): Likewise. * interp/i-map.boot (mkAuxiliaryName): Likewise. (augmentMap): Likewise. (displayMap): Likewise. (putBodyInEnd): Likewise. (expandRecursiveBody): Likewise. * interp/i-output.boot (outputTran): Likewise. * interp/i-spec1.boot (declare): Likewise. * interp/i-syscmd.boot (displayMacro): Likewise. * interp/i-toplev.boot (interpret2): Likewise. * interp/patches.lisp (MAP): Remove. * interp/trace.boot (isUncompiledMap): Likewise.
2008-10-13 Add support for Lisp declarations in generated Lisp code.dos-reis1-1/+2
* interp/i-map.boot (compileCoerceMap): Tell backend that minivector is global. * interp/i-spec1.boot (compileADEFBody): Likewise. * interp/slam.boot (reportFunctionCompilation): Likewise. * interp/define.boot (spadCompileOrSetq): Tell backend to ignore last argument for simple functions. * interp/c-util.boot (skipDeclarations): New. (lastDeclarationNode): Likewise. (declareGlobalVariables): Likewise. (transformToBackendCode): Use them to allow for Lisp declarations in middle-end forms. * interp/sys-driver.boot (AxiomCore::%sysInit): Reading Lisp level Floating point numbers default to double precision. * algebra/strap: Update.
2008-10-02 * interp/i-spec1.boot (upcase): Tidy.dos-reis1-8/+8
* interp/i-spec2.boot (evalIsntPredicate): Likewise. * interp/sys-utility.boot (existingFile?): Likewise.
2008-09-24 * interp/i-analy.boot (putCallInfo): New.dos-reis1-1/+8
(bottomUp): Use it. * interp/i-spec1.boot (upand): Likewise. (upor): Likewise. (upcase): Likewise. * interp/i-spec2.boot (uperror): Likewise.
2008-08-10 Fix AW/422dos-reis1-0/+6
* interp/i-spec1.boot (upDeclare): Fields are not declarations. * interp/i-map.boot (getUserIdentifiersIn): Ignore field names. * testsuite/interpreter/aw-422.input: New.
2008-08-09 * interp/pf2sex.boot (pf2Sex1): Handle more ASTs.dos-reis1-1/+1
(pfType2SexOrNil): New. (pfDoc2SexOrNil): Likewise. (pfWith2Sex): Likewise. (pfAdd2Sex): Likewise. (pfWDeclare2Sex): Likewise. (pfAttribute2Sex): Likewise. (pfWIf2Sex): Likewise. (pfExport2Sex): Likewise. (pfInline2Sex): Likewise. (pfImport2Sex): Likewise. (pfQualType2Sex): Likewise. * interp/ptrees.boot (pf0InlineItems): New. * interp/i-spec2.boot (up%Import): New. (sorry): Likewise. (up%Export): Likewise. (up%Inline): Likewise. (up%With): Likewise. (up%Add): Likewise. * interp/i-intern.boot (mkAtree3): Handle %Inline, %With, %Add, and %Export. * interp/i-spec1.boot ($specialOps): Adjust. * doc/msgs/s2-us.msgs (S2IP0006): New.
2008-08-09 * interp/buildom.boot: Rename AST code LET to %LET throughout.dos-reis1-3/+3
* interp/c-util.boot: Likewise. * interp/comp.lisp: Likewise. * interp/compiler.boot: Likewise. * interp/cparse.boot: Likewise. * interp/def.lisp: Likewise. * interp/define.boot: Likewise. * interp/functor.boot: Likewise. * interp/g-opt.boot: Likewise. * interp/i-eval.boot: Likewise. * interp/i-intern.boot: Likewise. * interp/i-map.boot: Likewise. * interp/i-spec1.boot: Likewise. * interp/i-spec2.boot: Likewise. * interp/iterator.boot: Likewise. * interp/mark.boot: Likewise. * interp/newaux.lisp: Likewise. * interp/nruncomp.boot: Likewise. * interp/nrunopt.boot: Likewise. * interp/package.boot: Likewise. * interp/parse.boot: Likewise. * interp/pf2atree.boot: Likewise. * interp/pf2sex.boot: Likewise. * interp/postpar.boot: Likewise. * interp/property.lisp: Likewise. * interp/pspad1.boot: Likewise. * interp/pspad2.boot: Likewise. * interp/slam.boot: Likewise. * interp/spad.lisp: Likewise. * interp/wi1.boot: Likewise. * interp/wi2.boot: Likewise.
2008-08-09 * interp/pf2sex.boot (pfMacro2Sex): New.dos-reis1-1/+1
(pfMLambda2Sex): Likewise. (pf2Sex1): Use them. * interp/i-spec2.boot ($VoidValueObject): New. ($VoidCodeObject): Likewise. (setValueToVoid): Likewise. (setCodeToVoid): Likewise. (upDEF): Call setValueToVoid. (upfree): Call setCodeToVoid (uplocal): Likewise. (interpIF): Call setValueToVoid. (up%Macro): New. (up%MLambda): Likewise. * interp/i-spec1.boot ($specialOps): Add %Macro and %MLambda. * interp/macex.boot (macMacro): Really return the original macro as the documentation says.
2008-08-03 * interp/sys-globals.boot ($compilingInputFile): Remove.dos-reis1-3/+0
($minivectorNames): Likewise. * interp/i-map.boot (compileCoerceMap): Don't set $minivectorNames and $minivectorCode. * interp/i-spec1.boot (compileADEFBody): Likewise. * interp/i-toplev.boot (processInteractive): Likewise. * interp/nrungo.boot (NRTgetMinivectorIndex): Likewise. * interp/slam.boot (reportFunctionCompilation): Likewise.
2008-08-02 * interp/buildom.boot: Use constants by names.dos-reis1-2/+2
* interp/i-analy.boot: Likewise. * interp/i-coerfn.boot: Likewise. * interp/i-funsel.boot: Likewise. * interp/i-intern.boot: Likewise. * interp/i-resolv.boot: Likewise. * interp/i-spec1.boot: Likewise. * interp/mark.boot: Likewise. * interp/nrungo.boot: Likewise. * interp/postpar.boot: Likewise. * interp/wi1.boot: Likewise.
2008-05-09 * interp/c-util.boot: Remove Old Boot semantics.dos-reis1-8/+8
* interp/database.boot: Likewise. * interp/format.boot: Likewise. * interp/g-timer.boot: Likewise. * interp/i-analy.boot: Likewise. * interp/i-coerce.boot: Likewise. * interp/i-coerfn.boot: Likewise. * interp/i-eval.boot: Likewise. * interp/i-intern.boot: Likewise. * interp/i-output.boot: Likewise. * interp/i-resolv.boot: Likewise. * interp/i-spec1.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/msgdb.boot: Likewise. * interp/newfort.boot: Likewise. * boot/includer.boot (diagnosticLocation): New. * boot/ast.boot (bfReName): Use it.
2008-05-08 * boot/translator.boot (bpOutItem): Handle namespace declaration.dos-reis1-1/+1
Update all boot files to use `namespace' instead of `)package'. * interp/: Likewise.
2008-04-23 * boot/ast.boot: Tidy.dos-reis1-1/+1
* boot/includer.boot: Likewise. * boot/parser.boot: Likewise. * boot/pile.boot: Likewise. * boot/scanner.boot: Likewise. * boot/tokens.boot: Likewise. * boot/translator.boot: Likewise. * boot/strap: Update Lisp translation. * lisp/core.lisp.in: Tidy.
2008-04-22 * interp/br-data.boot: Tidy.dos-reis1-1/+1
* interp/br-util.boot: Likewise. * interp/c-doc.boot: Likewise. * interp/cattable.boot: Likewise. * interp/clammed.boot: Likewise. * interp/define.boot: Likewise. * interp/g-cndata.boot: Likewise. * interp/g-util.boot: Likewise. * interp/ht-util.boot: Likewise. * interp/i-map.boot: Likewise. * interp/modemap.boot: Likewise. * interp/nrungo.boot: Likewise. * interp/rulesets.boot: Likewise. * interp/slam.boot: Likewise. * interp/i-spec1.boot: Likewise. * interp/Makefile.pamphlet (br-util.$(FASLEXT)): Don't compile as Old Boot. (bc-solve.$(FASLEXT)): Likewise. (ht-util.$(FASLEXT)): Likewise. (rulesets.$(FASLEXT)): Likewise. (i-object.$(FASLEXT)): Likewise. (i-util.$(FASLEXT)): Likewise. (nrunfast.$(FASLEXT)): Likewise. (nrungo.$(FASLEXT)): Likewise. (iterator.$(FASLEXT)): Likewise. (cattable.$(FASLEXT)): Likewise. (c-doc.$(FASLEXT)): Likewise. (posit.$(FASLEXT)): Likewise. (modemap.$(FASLEXT)): Likewise. (slam.$(FASLEXT)): Likewise. (clammed.$(FASLEXT)): Likewise. (g-opt.$(FASLEXT)): Likewise. (g-error.$(FASLEXT)): Likewise. (pathname.$(FASLEXT)): Likewise. (g-util.$(FASLEXT)): Likewise. (g-cndata.$(FASLEXT)): Likewise. * boot/tokens.boot: Remove renaming of NOT to NULL, when compiling Old Boot.
2008-04-02 Fix AW/386.dos-reis1-30/+3
2008-03-24Add support for SBCL and CLispdos-reis1-3/+3
2008-02-22 * interp/i-analy.boot (bottomUpFormTuple): Use "tuple" fordos-reis1-7/+7
parse form that are not type instantiations. * interp/i-coerce.boot (coerceInt1): Likewise. * interp/i-intern.boot (mkAtree3): Likewise. (collectDefTypesAndPreds): Likewise. * interp/i-map.boot (args2Tuple): Likewise. (makePattern): Likewise. (canMakeTuple): Likewise. (makeRuleForm): Likewise. (numArgs): Likewise. (combineMapParts): Likewise. (mkMapPred): Likewise. (findLocalVars1): Likewise. * interp/i-output.boot (outputTran): Likewise. * interp/i-spec1.boot ($specialOps): Likewise. (evalUntargetedADEF): Likewise. (upDeclare): Likewise. (declare): Likewise. * interp/i-spec2.boot (upDollarTuple): Likewise. (upLET): Likewise. (isTupleForm): Remove. (uptuple): Rename from upTuple. (upLETWithFormOnLhs): Use "tuple" for parse forms that are not type instantiations. * interp/i-syscmd.boot (displayMacro): Likewise. * interp/pf2atree.boot (pf2Atree1): Likewise. * interp/pf2sex.boot (pf2Sex1): Likewise. (pfApplication2Sex): Likewise. (pfCollectArgTran): Likewise. * interp/ptrees.boot (pfTuple): Likewise. (pfTuple?): Likewise.
2008-02-20 * lisp/core.lisp.in [SBCL]: Require "sb-posix".dos-reis1-2/+2
(|resetErrorCount|): New export function. * interp/vmlisp.lisp (opOf): Remove macro definition. * interp/msg.boot (setMsgCatlessAttr): Fix thinko. * interp/monitor.lisp (monitor-add): Remove extra right parenthesis. * interp/lisplib.boot: Import "debug". (initializeLisplib): Don't use ERRORS variable. * interp/i-spec1.boot (isDomainValuedVariable): Tidy. * interp/i-output.boot (outputTran): Use SIZE instead of #. (output): Remove misguided conversion from Tuple to List. * interp/i-coerce.boot (coerceInteractive): Allow domain object convesions. * interp/g-util.boot (opOf): Declare. * interp/Makefile.pamphlet (lisplib.$(FASLEXT)): Depend on debug.$(FASLEXT). * algebra/Makefile.pamphlet: Use .$(FASLEXT) instead of hardcoded .o extension.
2008-02-19 * algebra/variable.spad.pamphlet (AnonymousFunction): Add newdos-reis1-1/+2
functions `parameters' and `body'. * algebra/domain.spad.pamphlet: Rename from algebra/domain.spad. (Category): New category. * algebra/Makefile.pamphlet (axiom_algebra_layer_0): Include CATEGORY.o. (DOMAIN.NRLIB/code.$(FASLEXT)): Remove rule. * interp/trace.boot (transTraceItem): Use $LangSupportTypes. * interp/sys-constants.boot ($None): New. ($Type): Likewise. ($LangSupportTypes): Likewise. * interp/parse.boot (parseHas): Use $LangSupportTypes. (parseHasRhs): Likewise. * interp/i-spec2.boot (upLETtype): Use conceptualType. (uptypeOf): Likewise. (upwhere): Likewise. (typeOfType): Remove. * interp/i-spec1.boot (isDomainValuedVariable): Variables with type Category and Type are domain valued too. * interp/i-output.boot (output): Special case only Mode and Type. * interp/i-funsel.boot (selectMms): Don't ignore modemaps with category parameters. * interp/i-coerce.boot (canCoerce1): Test for Category instead of SubDomain Domain. (canCoerceFrom0): Use $None and $Any. (absolutelyCannotCoerce): Use $None. (coerceInteractive): Use $LangSupportTypes. (coerceInt1): Use $Any. * interp/i-analy.boot (conceptualType): New. (bottomUpType): Use it. * interp/clammed.boot (isValidType): Use $LangSupportTypes. * interp/g-cndata.boot (isNameOfType): Likewise. * interp/category.boot (Category): Remove hacky definition. * interp/buildom.boot ($noCategoryDomains): Domain now has a Lisplib.
2008-01-26 * interp/database.boot: Tidy uses of $EmptyEnvironment.dos-reis1-1/+3
* interp/i-map.boot: Likewise. Allocate fresh cell for $env. * interp/i-spec1.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/i-toplev.boot: Likewise. * interp/lisplib.boot: Likewise. * interp/setvars.boot: Likewise. * interp/sys-globals.boot: Likewise. * interp/nruncomp.boot: Encode flag types too. * interp/template.boot: Likewise. * share/algebra: Update databases.
2008-01-25 Fix AW/272dos-reis1-2/+2
* interp/i-spec1.boot (compileADEFBody): Don't evaluate unnamed functions. Compile them instead. * testsuite/interpreter/aw-272.input: New.
2008-01-24Define some global variablesdos-reis1-4/+10
2008-01-22commit forgotten commentsdos-reis1-0/+5
2008-01-19 * interp/construc.lisp (|loadLibNoUpdate|): Fix thinko in initialdos-reis1-1/+1
value for empty environments. * interp/database.boot (rebuildCDT): Likewise. * interp/i-map.boot (addDefMap): Likewise. (rewriteMap0): Likewise. (rewriteMap1): Likewise. (compileDeclaredMap): Likewise. (analyzeUndeclaredMap): Likewise. * interp/i-spec1.boot: Likewise. * interp/i-syscmd.boot (reportOperations): Likewise. * interp/i-toplev.boot (interpret): Likewise. * interp/lisplib.boot (loadLib): Likewise. (loadLibNoUpdate): Likewise. * interp/setvars.boot (resetWorkspaceVariables): Likewise. * interp/spad.lisp ($e): Move definition to sys-globals.boot. ($env): Likewise. * interp/sys-globals.boot ($e): Define here. ($env): Likewise. * algebra/any.spad.pamphlet (ObjectProperty): New. (Binding): Likewise. (Contour): Likewise. (Scope): Likewise. (Environment): Likewise. * algebra/exposed.lsp.pamphlet: Expose ObjectProperty, Binding, Contour, Scope, and Environment. * algebra/Makefile.pamphlet (axiom_algebra_layer_0): Include OBJPROP.o. (axiom_algebra_layer_1): Include BINDING.o (axiom_algebra_layer_2): Include CONTOUR.o (axiom_algebra_layer_3): Include SCOPE.o (axiom_algebra_layer_4): Include ENV.o * share/algebra: Update database.
2008-01-17 Fix SF/1849734dos-reis1-6/+6
* interp/i-spec1.boot (upand): Don't insist on having operands of type Boolean. (upor): Likewise. * algebra/mkrecord.spad.pamphlet (Pair): New domain constructor. * algebra/exposed.lsp.pamphlet: Expose Pair, PropositionalLogic, PropositionalFormula. * algebra/boolean.spad.pamphlet (PropositionalFormula): New domain constructor. * algebra/Makefile.pamphlet (axiom_algebra_layer_4): Include PAIR.o. (axiom_algebra_layer_19): Include PROPFRML.o * share/algebra: Update databases. * testsuite/interpreter/1849734.input: New.
2007-12-12 * compiler.boot (comp3): Use isQuasiquote.dos-reis1-16/+16
(compSymbol): Use condition type view for non Union objects. (getUniqueCaseView): New. Subroutine of compSymbol. (compForm2): Don't infer type for flag parameter through unique compilcation. (checkCallingConvention): New. (compileQuasiquote): coerce, don't convert. (compCase1): Handle non Union type object through modemap selection. (maybeSpliceMode): New. Subroutine of compCase1. Register special form compiler with their names, not pointers. * define.boot (candidateSignatures): New. (hasSigInTargetCategory): Use it. Tidy. (checkAndDeclare): Use isQuasiquote. (spadCompileorSetq): Rename non atomic parameters before calling LISP compiler. * g-util.boot (quasiquote): New. (isQuasiquote): Likewise. * i-intern.boot (flagArguments): New. (signatureFromModemap): Likewise. (mkAtree3): Use them. Handle functions taking flag arguments. * i-object.boot (getFlagArgsPos): New. * i-spec1.boot (userDefinedCase): Now prepare form and hands back to bottomUp. (upcase): Adjust call to userDefinedCase. * modemap.boot (addDomain): Don't add flag domains to the environment. * nruncomp.boot (NRTencode): Handle flag values. (NRTgetLocalIndex1): Likewise. * nrunfast.boot (lazyMatch): Likewise. (newExpandLocalTypeForm): Likewise. * sys-constants.boot ($DummyFunctorNames): Include quasiquote constructor. * template.boot (NRTaddInner): Handle flag values.
2007-12-08 Add support for quasiquotation.dos-reis1-1/+2
* compiler.boot (compileQuasiquote): New function. * fnewmeta.lisp (|PARSE-Enclosure|): Parse quasiquotes too. * i-intern.boot (mkAtree3): Don't evaluate arguments to quasiquote. * i-spec1.boot ($specialOps): Register [||]. (up[||]): Handle quasiquotes. * newaux.lisp: Register `[|' and `|]' as new glyphs. * pf2sex.boot ($insideApplication): Now count the nesting level of application forms. ($insideQuasiquote): New. Count nesting level of quasiquotes. (pfFinishApplication): Ensure application form nesting level is properly decreased. (pfApplication2Sex): Use it. (pfQuasiquotation2Sex): Transform quasiquote forms. (pf2Sex1): Use it. * sys-constants.boot ($Syntax): New.
2007-12-04 Support library function case.dos-reis1-2/+19
* i-spec1.boot (userDefinedCase): New. (upcase): Use it.
2007-11-22 * i-analy.boot: Globally substtitue %noMapVal for noMapVal.dos-reis1-1/+1
* i-intern.boot: Likewise. * i-map.boot: Likewise. * i-spec2.boot: Likewise. * i-spec1.boot: Likewise.
2007-11-07remove more pamphletsdos-reis1-0/+1238