aboutsummaryrefslogtreecommitdiff
path: root/src/interp
AgeCommit message (Collapse)AuthorFilesLines
2009-06-16 * interp/define.boot (doItConditionally): New.dos-reis1-8/+32
(doIt): Use it for capsule-level conditional expressions.
2009-06-16 Fix SF/2396945dos-reis4-16/+1
* interp/scan.boot: '@@' is no longer a keyword. * interp/cparse.boot (npColonQuery): Remove. * interp/parse.boot (parseAtAt): Likewise. * interp/postpar.boot (postAtAt): Likewise.
2009-06-16 Fix SF/2806053dos-reis3-5/+5
* lisp/Makefile.in: Remove generated files when cleaning. * interp/Makefile.pamphlet: Add executable extensions if appropriate.
2009-06-15 * interp/define.boot (spadCompileOrSetq): Tidy.dos-reis3-5/+7
* interp/fnewmeta.lisp (PARSE-Sexpr1): Disable negative integers in data. A facility not actually used in Spad code.
2009-06-15 * interp/fnewmeta.lisp (PARSE-Scheme): Tidy.dos-reis3-3/+4
* interp/format.boot (dollarPercentTran): Translate T$ too. (application2String): Handle quasiquotations. * interp/postpar.boot (killColons): Don't remove quantified variables.
2009-06-14 Add support for existential type recovery.dos-reis5-10/+104
* 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.
2009-06-13 * algebra/any.spad.pamphlet (AnyFunctions1): Remove `pretend'dos-reis1-0/+26
shenanigans. Use is-case pattern matching. * interp/g-opt.boot (varIsAssigned): New. (canInlineVarDefinition): New. (optLET): Use it to inline functionally used local variables. Register as backend optimizer.
2009-06-13 * interp/sys-constants.boot ($defaultOptimizationLevel): New.dos-reis2-1/+5
* interp/sys-driver.boot (initializeGlobalState): Use it for default initialization level.
2009-06-13 Support multiple scrutinee in is-case pattern matching.dos-reis1-84/+154
* interp/compiler.boot (compRetractGruard): Rename from compRetractAlternative. Split. (compRecoverGuard): Rename from compRecoverAlternative. Split. (compAlternativeGuardItem): New. Use them. (compAlternativeGuard): New. (compMatchAlternative): New. Split from compMatch. (compMatchScrutinee): Likewise. (defineMatchScrutinee): Likewise. (compMatch): Rework.
2009-06-13 * interp/i-coerce.boot: Revert previous patch.dos-reis2-11/+1
* interp/i-funsel.boot: Likewise.
2009-06-12 Support retract of domains.dos-reis3-2/+26
* interp/i-funsel.boot (findFunctionInDomain): Don't look into categories. * interp/i-coerce.boot (retract): Retract domain objects too. (retract1): Do it. (coerceInteractive): Likewise. * interp/nrunfast.boot (getDomainCategoriesVector): New. (getDomainCompleteCategories): Likewise.
2009-06-11 * interp/newaux.lisp: Remove digraphs '(<' and '>) as alternatedos-reis4-43/+36
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.
2009-06-11 * interp/info.boot (actOnInfo): Don't remember new domain names ifdos-reis1-2/+4
at capsule function scope.
2009-06-10 * interp/parse.boot (parseDropAssertions): Remove.dos-reis2-10/+1
(parseCategory): Don't call it. * interp/nrungo.boot (lookupPred): Don't check for "asserted".
2009-06-10 * interp/parse.boot (parseHas): Preserve unnamed category forms.dos-reis5-15/+25
* interp/i-funsel.boot (hasCaty): Recursively look into Joins. * interp/interop.boot (newHasCategory): Likewise. * interp/compiler.boot (compHasFormat): Handle unnamed categories. * interp/info.boot (knownInfo): Likewise.
2009-06-09 * interp/i-coerfn.boot (Expr2Up): Fix regression introduced bydos-reis1-2/+5
name$Kernel removal.
2009-06-09 * interp/compiler.boot (compLogicalNot): Tidy.dos-reis2-2/+9
* interp/define.boot (doIt): Tidy conditional case. * boot/tokens.boot: 'fourth' is a now a builtin function.
2009-06-08 Fix SF/2799773dos-reis3-10/+41
* interp/c-util.boot (diagnoseUnknownType): Diagnose duplicate fields in Record or Union, or duplicate constants in Enumeration. * interp/i-eval.boot (checkRecordOrUnionFields): New. (evaluateType): Use it. * testsuite/interpreter/sf-2799773.input: New.
2009-06-07 * algebra/domain.spad.pamphlet (DomainTemplate): New.dos-reis2-6/+6
(FunctorData): Likewise. (functorData$DomainConstructor): Likewise.
2009-06-01 Simplify compiler ast for `return' expressions.dos-reis2-12/+1
* interp/parse.boot (parseReturn): Remove. * interp/compiler.boot (compReturn): Tidy.
2009-06-01 * interp/compiler.boot (compGreaterThan): Remove.dos-reis2-12/+0
* interp/parse.boot (parseGreaterEqual): Likewise.
2009-06-01 * interp/compiler.boot (compGreaterThan): New. Compiledos-reis4-7/+10
greater-than expressions. * interp/parse.boot (parseGreaterThan): Remove. * algebra/data.spad.pamphlet (Byte): Implement all comparison functions. * algebra/integer.spad.pamphlet (Integer): Likewise. * algebra/sf.spad.pamphlet (DoubleFloat): Likewise. * algebra/si.spad.pamphlet (SingleInteger): Likewise. * algebra/string.spad.pamphlet (Character): Likewise.
2009-05-29 * interp/compiler.boot (getSuccessEnvironment): Tidy.dos-reis1-15/+22
(getInverseEnvironment): Likewise. (compLogicalNot): Don't normalize to if-statement.
2009-05-28 * interp/compiler.boot (compVector): Tidy code generation.dos-reis2-3/+7
(checkExternalEntity): Handle Builtin external entities. (compSignatureImport): Likewise. * algebra/boolean.spad.pamphlet (Boolean): Import Lisp function from Foreign Builtin. (KleeneTrivalentLogic): The constant `true' and `false' are now inherited.
2009-05-28Fix formattingdos-reis1-7/+7
2009-05-28 * interp/newaux.lisp: Bot / and /\ are gliphs.dos-reis4-7/+8
* 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.
2009-05-25 * interp/sys-constants.boot ($OperatorFunctionNames): New.dos-reis4-2/+19
* interp/metalex.lisp (|PARSE-OperatorFunctionName|): New. Use it. * interp/fnewmeta.lisp (|PARSE-Category|): Handle operator function names.
2009-05-21 * interp/cparse.boot (npQuantified): New.dos-reis1-13/+18
(npType): Use it. (npDefinitionOrStatement): Likewise. Accept quantified expressions. (npMatch): Remove. (npDef): Adjust. (npMonoType): Likewise. (npDiscrim): Recognize 'is' and 'isnt' patterns.
2009-05-19 * interp/vmlisp.lisp (LIST2VEC): Tidy.dos-reis5-13/+6
2009-05-19 * interp/i-analy.boot (bottomUpDefaultEval): A declared variabledos-reis1-1/+9
with no definition may be a symbolic variable with a specified type.
2009-05-17 * interp/cparse.boot (npTyping): Remove.dos-reis1-17/+0
(npDefaultItemlist): Likewise. (npSDefaultItem): Likewise. (npDefaultItem): Likewise. (npDefaultDecl): Likewise. (npStatement): Don't call npTyping. (npDefinitionItem): Likewise.
2009-05-11 * interp/property.lisp: "not" is prefix operator with "not " fordos-reis2-3/+3
rendering. * interp/i-output.boot ($allClassicOps): Include not. * algebra/boolean.spad.pamphlet (PropositionalFormula): Rework.
2009-05-10 Cope with SBCL-1.0.28 improvements.dos-reis1-0/+2
* boot/translator.boot (translateToplevel): Load imported modules. * boot/ast.boot ($constantIdentifiers): New. ($activeNamespace): Likewise. (bfSimpleDefinition): Likewise. (isDynamicVariable): Likewise. (shoeCompTran1): Tidy. Use it. * boot/parser.boot (bpSimpleDefinitionTail): Use bfSimpleDefinition. * boot/Makefile.in (stage1/%.clisp): Specify load directory. (stage2/%.clisp): Likewise. * lisp/core.lisp.in (startCompileDuration): Export. (endCompileDuration): Likewise.
2009-05-10 * interp/nrunopt.boot (makeGoGetSlot): Adjust call todos-reis1-11/+8
makeCompactSigCode. (makeCompactDirect1): Likewise. (makeCompactSigCode): Drop second parameter.
2009-05-10 * interp/g-opt.boot (emitIndirectCall): New.dos-reis1-16/+21
(optCall): Use it. (optSpecialCall): Likewise. (optSPADCALL): Tidy.
2009-05-09 * interp/compiler.boot (compApplication): Tidy.dos-reis1-2/+4
2009-05-05 Fix SF/2785271dos-reis5-14/+12
* interp/sys-constants.boot ($Primitives): Remove. * interp/br-con.boot (conOpPage1): Replace $Primitives by $DomainNames. (dbShowConsDoc1): Likewise. * interp/buildom.boot ($nonLisplibDomains): Likewise. * interp/br-op2.boot (kFormatSlotDomain): isConstructorName. * interp/br-saturn.boot (bfConform1): Handle string literals as constructor arguments.
2009-04-28 * interp/define.boot (canCacheLocalDomain): Remove dead code.dos-reis1-15/+0
2009-04-28 * interp/compiler.boot (compComma): Supply element type for tupledos-reis5-12/+18
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.
2009-04-27 Fix SF/2781848dos-reis4-9/+7
* interp/daase.lisp (make-databases): Build glossary files too. * interp/br-data.boot (buildGloss): gloss.text now lives in doc/. * interp/br-search.boot (grepSource): Likewise. * interp/ht-root.boot (htGlossPage): Likewise. * etc/Makefile.in (openaxiom_glossfiles): New. (mostlyclean-local): Remove them too. (stamp-databases): Now copy glossary files too. * doc/Makefile.in ($(OUT)/gloss.text): New rule. (stamp): Make it a prerequisite. * Makefile.pamphlet (all-databases): Make all-doc a prerequisite. (all-hyper-post): Likewise. * doc/gloss.text: Resurect.
2009-04-27 * interp/sys-macros.lisp (makeSimpleArrayFromList): New.dos-reis1-0/+3
* algebra/array1.spad.pamphlet (construct$PrimitiveArray): Implement. (copy$PrimitiveArray): Likewise. (IndexedOneDimensionalArray): Rework. Explicitly use PrimitiveArray(S) as representation domain.
2009-04-25 * algebra/strap/PRIMARR.lsp: Remove.dos-reis2-2/+3
2009-04-24 * algebra/syntax.spad.pamphlet (new$Identifier): New.dos-reis1-0/+1
2009-04-23 * algebra/strap/TSETCAT.lsp: Remove.dos-reis2-3/+7
* algebra/strap/TSETCAT-.lsp: Likewise.
2009-04-23 * interp/c-util.boot (extendsCategoryForm): Use current categorydos-reis2-1/+8
body instead of previous previous version of it. * algebra/Makefile.pamphlet: Remove ES from bootstrap layer. Build it (and dependencies) at layer 1. * algebra/strap/ES.lsp: Remove. * algebra/strap/ES-.lsp: Likewise. * algebra/boolean.spad.pamphlet (Boolean): Don't use outputForm.
2009-04-23 * interp/compiler.boot ($IOFormDomains): New.dos-reis1-3/+10
(compAtom): Allow implicit coercion to IO forms for values of fundamental types. (compSymbol): Likewise. (compQuote): Likewise. * algebra/aggcat.spad.pamphlet (coerce$BinaryRecursiveAggregate): Don't hard code empty bracket.
2009-04-23 * interp/sys-constants.boot ($SystemInlinableConstructorNames):dos-reis2-1/+2
Include Identifier. * interp/compiler.boot (compElt): Fix up 0 and 1 shenannigan. * algebra/boolean.spad.pamphlet (Reference): Use Identifier. * algebra/Makefile.pamphlet (axiom_algebra_bootstrap): Remove REF. (axiom_algebra_bootstrap_last_layer): Likewise. * algebra/strap/REF.lsp: Remove.
2009-04-20 * interp/sys-constants.boot ($Identifier): New.dos-reis3-1/+9
* interp/compiler.boot (compQuote): Use the target mode if appropriate. * interp/i-spec2.boot (upQUOTE): Likewise. * algebra/syntax.spad.pamphlet: Use Identifier in lieu of Symbol.
2009-04-20 * interp/br-con.boot: Use textEditor() to get editor program.dos-reis5-10/+13
* interp/br-saturn.boot: Likewise. * interp/compat.boot: Likewise. * interp/i-util.boot (textEditor): Define here. * interp/g-util.boot: Likewise.
2009-04-20 * interp/msgdb.boot (substituteSegmentedMsg): Handle %x specifier.dos-reis1-0/+2