Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
construction.
* interp/i-coerfn.boot (L2Tuple): Likewise.
* interp/i-object.boot (asTupleNew): Likewise.
(asTupleNew0): Likewise.
(asTupleNewCode): Likewise.
(asTupleNewCode0): Likewise.
* interp/i-spec1.boot (evalCOLLECT): Likewise.
(interpCOLLECT): Likewise.
* interp/i-spec2.boot (evalTuple): Likewise.
(upNullTuple): Likewise.
|
|
* 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.
|
|
(evalCategory): Use it.
|
|
* 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.
|
|
* 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.
|
|
* interp/i-spec2.boot (evalIsntPredicate): Likewise.
* interp/sys-utility.boot (existingFile?): Likewise.
|
|
(bottomUp): Use it.
* interp/i-spec1.boot (upand): Likewise.
(upor): Likewise.
(upcase): Likewise.
* interp/i-spec2.boot (uperror): Likewise.
|
|
* interp/i-spec1.boot (upDeclare): Fields are not declarations.
* interp/i-map.boot (getUserIdentifiersIn): Ignore field names.
* testsuite/interpreter/aw-422.input: New.
|
|
(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.
|
|
* 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.
|
|
(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.
|
|
($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.
|
|
* 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.
|
|
* 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.
|
|
Update all boot files to use `namespace' instead of `)package'.
* interp/: Likewise.
|
|
* 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.
|
|
* 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.
|
|
|
|
|
|
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.
|
|
(|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.
|
|
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.
|
|
* 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.
|
|
* interp/i-spec1.boot (compileADEFBody): Don't evaluate unnamed
functions. Compile them instead.
* testsuite/interpreter/aw-272.input: New.
|
|
|
|
|
|
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.
|
|
* 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.
|
|
(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.
|
|
* 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.
|
|
* i-spec1.boot (userDefinedCase): New.
(upcase): Use it.
|
|
* i-intern.boot: Likewise.
* i-map.boot: Likewise.
* i-spec2.boot: Likewise.
* i-spec1.boot: Likewise.
|
|
|