aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2011-11-02 Add compiler support for implicit parameters.dos-reis2-10/+98
* interp/compiler.boot (bindPredicateExistentials): Rename from constructorCondition. Now return a substitution on success, otherwise failure. (solveEquation): New. (solveSubsumption): Likewise. (deduceImplicitParameters): Likewise. (evaluateConstructorModemap): Use it. Tidy.
2011-10-31 * interp/i-funsel.boot (evalMmCond0): Tidy. Call evalMmGuard todos-reis3-9/+65
validate modemap evaluation. (evalMmGuard): New. (evalMmCat): Do not call orderMmCatStack here. The stack is already ordered by evalMmGuard, sole caller. (hasCate): Handle domain query variables. (unifyStruct): Call unifyQueryStruct for query variables. (unifyQueryStruct): New. * interp/g-util.boot (postComposeSubst): New. (queryVar?): Likewise.
2011-10-31null x ~> x = nil cleanupdos-reis1-35/+35
2011-10-31 * interp/compiler.boot (evaluateConstructorModemap): Rename fromdos-reis4-22/+50
substituteInfoFunctorModemap. (constructorCondition): New. * interp/define.boot (compDefineCategory2): Compute dual signature early on. (compDefineFunctor1): Likewise. (typingKind): New. (deduceImplicitParameters): Use it. * interp/database.boot (modemapsFromCategory): Take a first argument as a DB. Tidy. Adjust caller. Add constructor condition. (modemapsFromFunctor): Likewise. Lose last argument. (mkDatabasePred): Remove. (formal2Pattern): Likewise.
2011-10-30 * interp/define.boot (compDefineCategory2): Compute dual signaturedos-reis3-22/+22
early on. (compDefineFunctor1): Likewise. * interp/database.boot (modemapsFromCategory): Take a first argument as a DB. Tidy. Adjust caller. (modemapsFromFunctor): Likewise. Lose last argument. (mkDatabasePred): Remove. (formal2Pattern): Likewise.
2011-10-30 * interp/define.boot (compDefineCategory2): Compute dual signaturedos-reis3-11/+17
early on. * interp/database.boot (modemapsFromCategory): Take a first argument as a DB. Tidy. Adjust caller.
2011-10-30 * interp/sys-macros.lisp (MKPF1): Tidy.dos-reis12-113/+203
* interp/sys-constants.boot ($QueryVariables): New. * interp/define.boot ($whreDecls): Remove. (checkRepresentation): Take a DB as first parameter. Adjust Callers. (buildConstructorCondition): New (deduceImplicitParameters): Likewise (compDefineCategory2): Use it. (compDefineFunctor1): Likewise. (typeDependencyPath): Remove. (inferConstructorImplicitParameters): Likewise. * interp/compiler.boot (compTopLevel): Do not bind $whereDecls. (recordDeclarationInSideCondition): Take additional reference parameter to the list of processed decls. Adjust callers. (compWhere): Record any side decls in compilation environment. * interp/c-util.boot (makeCompilationData): Initialize implicit data. (dbParameters): New. (dbImplicitData): New accessor macro. (dbImplicitParameters): New. (dbImplicitConstraints): Likewise. (dbSubstituteFormals): Likewise. (dbSubstituteQueries): Likewise. * interp/database.boot (fixUpPredicate): Tidy. * boot/utility.boot (applySubst): Early exit on identity substitution. (applySubst!): Likewise. (applySubstNQ): Likewise. * boot/ast.boot (bfIS1): Accept pattern matching against Boolean constant true.
2011-10-29 * interp/daase.lisp (dbCompilerData): New accessor macro.dos-reis6-32/+67
(dbBeingDefined?): Adjust. * interp/c-util.boot (makeCompilationData): New. (dbFormalSubst): New accessor macro. (dbSubstituteFormals): New. * interp/define.boot ($pairlis): Remove. (NRTmakeCategoryAlist): Use dbSubstituteFormals. (NRTgetLookupFunction): Likewise. (compDefineCategory2): Likewise. Set dbCompilerData and dbFormalSubst. (compDefineFunctor1): Likewise. * interp/functor.boot (ProcessCond): Use dbSubstituteFormals. * interp/lisplib.boot (NRTgenInitialAttributeAlist): Likewise. (makePredicateBitVector): Likewise. (finalizeLisplib): Do not set $pairlis.
2011-10-29 * interp/nruncomp.boot (NRTaddDeltaCode): Take a DB parameter.dos-reis3-35/+45
Adjust callers. (NRTdescendCodeTran): Likewise. * interp/define.boot (makeDomainTemplate): Lose second argument. Adjust callers. (NRTgetLookupFunction): Take a DB as first argument. Adjust callers. (NRTextendsCategory1): Likewise. (extendsCategory): Likewise. (compDefineFunctor1): Do not find $template. Set dbTemplate.
2011-10-29 * interp/define.boot ($atList, $sigList): Remove.dos-reis2-25/+38
(compSignature): Take a fourth parameter. (compCategoryItem): Take two more parameters. (compCategory): Create references to signature and attribute lists and pass them to callees.
2011-10-29 * interp/lisplib.boot (makePredicateBitVector): Take a DB argument.dos-reis6-10/+24
Set dbPredicates. (compConLib1): Set dbPredicates to nil. (compDefineLisplib): Likewise. (finalizeLisplib): Write dbPredicates. * boot/tokens.boot (copyTree): Do not translate. * boot/utility.boot (topyTree): Implement. Export.
2011-10-29 * interp/define.boot (getInfovecCode): Take a DB argument. Passdos-reis7-212/+36
it to callees. Adjust caller. * interp/database.boot (getConstructorPredicates): If contructor is being defined, return the predicates as currently known. * interp/daase.lisp (INITIAL-GETDATABASE): Remove (fillDatabasesInCore): Adjust.
2011-10-29 * interp/compiler.boot (compHasFormat): Simplify type form.dos-reis3-3/+7
2011-10-29 * interp/nruncomp.boot (mkDomainCatName): Remove.dos-reis5-8/+20
* interp/daase.lisp (DATABSE): Add new field TEMPLATE. (dbTemplate): New macro accessor. * interp/clam.boot (clearCategoryCaches): Clear dbTemplate. * interp/define.boot (DomainSubstitutionFunction): Generate code to access or set dbTemplate.
2011-10-28 * interp/daase.lisp (DATABASE): Add new field CAPSULE-DEFINITIONS.dos-reis7-24/+25
(dbCapsuleDefinitions): New macro accessor. * interp/functor.boot (encodeFunctionName): Set it. * interp/lisplib.boot ($lisplibVariableAlist): Remove. ($lisplibSignatureAlist): Likewise. (writeCapsuleLevelDefinitions): New. (finalizeLisplib): Use it. (mergeSignatureAndLocalVarAlists): Remove. * interp/clam.boot (clearCategoryCaches): Use mkDomainCatName. * interp/define.boot (DomainSubstitutionFunction): Likewise.
2011-10-28 * interp/database.boot (orderPredTran): Tidy.dos-reis2-72/+49
(interactiveModemapForm): Likewise. (getDCFromSystemModemap): Likewise. (getDomainFromMm): Likewise. (getAllModemapsFromDatabase): Likewise. (getModemapsFromDatabase): Likewise. (getSystemModemaps): Likewise. (getInCoreModemaps): Likewise. (flattenSignatureList): Likewise.
2011-10-28 * interp/define.boot ($lisplibCategory): Remove.dos-reis4-12/+18
(compDefineCategory1): Adjust. (compDefineCategory2): Likewise. (compDefineCategory): Likewise. (compDefineFunctor1): Likewise. * interp/lisplib.boot (finalizeLisplib): Likewise. * interp/br-data.boot (getParentsFor): Lose last paramater.
2011-10-28 * interp/sys-globals.boot ($lisplibModemapAlist): Remove.dos-reis5-45/+66
* interp/lisplib.boot (compileConstructorLib): Do not bind $lisplibModemapAlist. (compDefineLisplib): Likewise. * interp/database.boot (modemapsFromCategory): Rename from augLisplibModmapsFromCategory. Tidy. Avoid use of special variable $lisplibModemapAlist. (modemapsFromFunctor): Rename from augmentLisplibFromFunctor. Tidy. Avoid use of special variable $lisplibModemapAlist. * interp/define.boot (compDefineCategory2): Adjust. (compDefineFunctor1): Likewise.
2011-10-27 * algebra/stream.spad.pamphlet (Stream): Tidy accessors.dos-reis5-26/+34
2011-10-27 Support use of any natural number literal as constant name.dos-reis6-35/+75
* interp/postpar.boot (postNormalizeName): Remove. (postLhsOfDefinition): New. (postDef): Use it. (postMDef): Likewise. (postForm): Remove dead code. (postSignature): Internalize names of exported operators. * interp/i-intern.boot (mkAtree2): For package call resolution, use internal names. * interp/compiler.boot (compAtomWithModemap): Use externalName for name reported in diagnostic. (compIntegerLiteral): New. (compAtom): Use it. (compElt): Look up modemaps for internal names. (getModemapList): Likewise. * interp/g-util.boot (normalizeName): New. (internalName): Likewise. (externalName): Likewise.
2011-10-26minor cleanupsdos-reis3-4/+4
2011-10-26 * interp/postpar.boot (postSignature): Tidy.dos-reis10-125/+116
* interp/parse.boot (transCategoryItem): Remove as dead code. * interp/lisplib.boot (finalizeLisplib): Remove use of removeZeroOne. * interp/cattable.boot (categoryParts): Tidy.
2011-10-26 Restore Clozure CL-based build. CCL's FFI interfacedos-reis3-1/+13
changed at some point in time. * lisp/core.lisp.in (AxiomCore) [CCL]: Import and export FFI-related symbols.
2011-10-25 * interp/compiler.boot (getFormModemaps): Tidy checking of "elt"dos-reis2-8/+12
and "setelt" modemaps.
2011-10-25 * algebra/modmon.spad.pamphlet (ModMonic): Rename second parameterdos-reis2-17/+24
from Rep to P. Addd capsule-level definition for Rep. [setPoly]: Adjust parameter type. [coerce]: Likewise. [UnVectorise]: Restrict reduction to %, then coerce to Rep. [monomial]: Add appropriate coercion to Rep.
2011-10-25 * algebra/perman.spad.pamphlet (Permanent): Specify type of localdos-reis23-105/+153
variable j. * algebra/patmatch1.spad.pamphlet (PatternMatchTools): Tidy. * algebra/padic.spad.pamphlet: Restrict type of literal constants. * algebra/sttf.spad.pamphlet: Likewise. * algebra/puiseux.spad.pamphlet: Likewise. * algebra/odealg.spad.pamphlet (SystemODESolver) [applyLodo0]: Specify type of local variable ans. * algebra/numtheor.spad.pamphlet (IntegerNumberTheoryFunctions): Tidy. * algebra/naalgc.spad.pamphlet (MonadWithUnit) [rightPower]: Specify type of local variable res. [leftPower]: Likewise. * algebra/lodop.spad.pamphlet (NonCommutativeOperatorDivision) [leftLcm]: Specify type of local variable v. * algebra/intfact.spad.pamphlet (IntegerRoots) [approxSqrt]: Specify type of local variables old and new. * algebra/elfuts.spad.pamphlet (EllipticFunctionsUnivariateTaylorSeries): Restrict types of literal constants. * algebra/ffnb.spad.pamphlet (FiniteFieldNormalBasisExtensionByPolynomial): Likewise. * algebra/fnla.spad.pamphlet (FreeNilpotentLie): Likewise. * algebra/intaux.spad.pamphlet (IntegrationResult): Likewise. * algebra/defintef.spad.pamphlet (ElementaryFunctionDefiniteIntegration) [checkSMP]: Specify type in the definition of local variable n. * algebra/combinat.spad.pamphlet (IntegerCombinatoricFunctions): Tidy definition of local variables. * algebra/clifford.spad.pamphlet (CliffordAlgebra): Specify type in the definition of local variables k, exchanges, bz. * algebra/catdef.spad.pamphlet (CartesianTensor): Specify type in the definition of local varibles rx and offz. Remove useless variables zol, xol, oly, and zoly.
2011-10-24 * interp/compiler.boot (compArgumentsAndTryAgain): Fail only ifdos-reis2-2/+6
elaboration of all arguments fails.
2011-10-24 * interp/compiler.boot (compOrCroak1): Drop last argument. Tidy.dos-reis7-21/+70
(mostSpecificTriple): New. (compAtomWithModemap): Use it to resolve ambiguous constants. (formatConstantCandidates): New. (compForm1): Do try to compile constants 0 and 1 with compToApply. * algebra/polycat.spad.pamphlet (FiniteAbelianMonoidRing) [binomThmExpt]: Tidy. (UnivariatePolynomialCategory) [pseudoDivide]: Likewise. * algebra/float.spad.pamphlet (Float) [log]: Specificy type for local variable `l'. * interp/format.boot (formatUnabbreviatedSig): Handle constants.
2011-10-23 * interp/g-opt.boot ($VMsideEffectFreeOperators): Include %fdecode.dos-reis5-19/+35
* interp/lisp-backend.boot: Expand it. * algebra/sf.spad.pamphlet (DoubleFloat): Remove %fmanexpr import. Use %fdecode to access Lisp-level double-float decoding. [mantissa]: Rewrite. [exponent]: Likewise. [negative?]: Likewise. [positive?]: Likewise. [manexp]: Likewise. * algebra/view2D.spad.pamphlet (TwoDimensionalViewport): Tidy.
2011-10-23 * interp/compiler.boot (compForm2): Simplify. Don't bother withdos-reis2-19/+7
subsumption. Exit early on empty modemap candidate list.
2011-10-23 * interp/compiler.boot (compAtomWithModemap): Handle code-gen here.dos-reis7-58/+71
2011-10-22 * interp/br-op2.boot (htSayExplicitExports): Don't forget possibledos-reis13-51/+80
constant marker in exported signatures. * interp/cattable.boot (simpHas): Likewise. * interp/format.boot (form2String1): Likewise. * interp/i-eval.boot (evaluateSignature): Likewise. * interp/i-funsel.boot (hasCaty): Likewise. (hasAttSig): Likewise. * interp/define.boot (extendsCategory): Likewise. (extendsCategoryBasic): Likewise. (catExtendsCat?): Likewise. (mkExportFromDescription): New. (mkCategoryPackage): Use it. * boot/tokens.boot: Add new selectors: mapOpsig, mapOperation, mapPredicate, and mapImpl.
2011-10-22 * boot/tokens.boot: Add new selectors: mapOperation, mapSignature,dos-reis12-37/+59
mapTarget, mapSource, mapKind. * algebra/data.spad.pamphlet (SystemInteger) [min, max]: Disambiguate with explicit type annotation. (SystemNonNetativeInteger) [min, max]: Likewise. * algebra/color.spad.pamphlet (Color) [sample]: Remove parenthesis. * algebra/ffnb.spad.pamphlet (FiniteFieldNormalBasisExtensionByPolynomial) [sizeOfGroundField]: Likewise. * algebra/matrix.spad.pamphlet (SquareMatrix) [dimension]: Likewise. * algebra/view3D.spad.pamphlet: Likewise. * algebra/viewDef.spad.pamphlet: Likewise. * algebra/regset.spad.pamphlet (RegularTriangularSetCategory) [unitIdealIfCan]: Remove, was useless. * algebra/sregset.spad.pamphlet (SquareFreeRegularTriangularSet) [unitIdealIfCan]: Likewise. * algebra/triset.spad.pamphlet (GeneralTriangularSet) [unitIdealIfCan]: Likewise.
2011-10-21 * algebra/boolean.spad.pamphlet (Boolean) [sample]: Removedos-reis2-1/+5
definition, as it is not exported.
2011-10-21 Workaround proclamation bug in GCLdos-reis5-11/+33
* boot/utility.boot (firstNonblankPosition): Do not declare.
2011-10-21 * interp/define.boot (compDefineCapsuleFunction): Reimplementdos-reis7-25/+26
signature inference. (hasSigInTargetCategory): Implement what the documentation says: infer the signature from the target category, not local declaration.
2011-10-20 * interp/define.boot (checkRepresentation): Prepare for generaldos-reis2-22/+44
constant definition syntax. (compDefine1): Likewise. (compDefineCategory1): Likewise. (compDefineFunctor1): Likewise. (compDefineCapsuleFunction): Likewise. (doIt): Likewise. (isMacro): Tidy.
2011-10-20 * interp/lisplib.boot (isDomainForm): Handle conditionals.dos-reis2-1/+5
2011-10-19 * interp/postpar.boot (postDef): Do not include list of nil formsdos-reis4-28/+34
as special cases. * interp/parse.boot (parseDEF): Tidy. * interp/define.boot (checkRepresentation): Likewise. (compDefine1): Likewise. (macroExpand): Likewise. (compDefineCategory1): Likewise. (compDefineCategory2): Likewise. (compDefineFunctor1): Likewise. (compDefWhereClause): Likewise. (compDefineCapsuleFunction): Likewise. (isMacro): Likewise.
2011-10-19 * interp/postpar.boot (postNormalizeName): New.dos-reis11-32/+56
(postAtom): Use it. (postMDef): Do not generate artificial list of nils. Leave left-hand-side as written in source code. * interp/compiler.boot (compMacro): Tidy. * interp/define.boot (checkRepresentation): Likewise. * interp/parse.boot (parseMDEF): Likewise. * algebra/syntax.spad.pamphlet (MacroAst): Adjust.
2011-10-19 * interp/property.lisp: Move output-related content to i-output.boo.dos-reis5-130/+76
Remove.
2011-10-19misc cleanupdos-reis3-3/+3
2011-10-18 * interp/postpar.boot (displayPreCompilationErrors): Dot not checkdos-reis18-89/+75
for interactive mode. (postBigFloat): Likewise. (postDef): Likewise. (postMDef): Likewise. (tuple2List): Likewise. (postReduce): Likewise. (postQUOTE): Remove. (postQuot): Likewise. (postOp): Likewise. (postTran): Adjust. * interp/newaux.lisp: Replace %LET with ':='. * interp/property.lisp: Likewise. * interp/g-util.boot (getTypeOfSyntax): Likewise. * interp/define.boot (checkRepresentation): Likewise. (doIt): Likewise. * interp/compiler.boot (compSetq): Likewise. (compRecoverGuard): Likewise. (compReduce1): Likewise. * interp/c-util.boot (lhsOfAssignment): Likewise. (isAlmostSimple): Likewise. * interp/c-doc.boot (recordAttributeDocumentation): Likewise. * interp/parse.boot (parseLeftArrow): Remove. (parseLETD): Likewise. (parseAssign): Rename from parseLET. * algebra/syntax.spad.pamphlet (SpadAst): Handle both cases.
2011-10-18 * interp/spad-parser.boot (parseSegmentTail): Tidy.dos-reis9-51/+39
* interp/postpar.boot (postSEGMENT): Remove. (postTupleCollect): Likewise. (postBootNotEqual): Likewise. * interp/parsing.lisp (CHAR-EQ): Remove. (CHAR-NE): Likewise. (getToken): Likewise. * interp/newaux.lisp: Remove "^=" as legitimate operator. * interp/lexing.boot (geToken): Rename from getSpadToken. * interp/i-intern.boot (mkAtree3): Check for new form of universal segment. * interp/parse.boot (parseSegment): Likewise. * algebra/seg.spad.pamphlet (Segment): Use .. instead of SEGMENT. (SegmentFunctions2): Likewise. (UniversalSegment): Likewise.
2011-10-17 * lisp/core.lisp.in: Add ref and deref to support references.dos-reis15-775/+692
* interp/sys-constants.boot ($OperatorFunctionNames): Add "by" and "..". * interp/spad.lisp: Tidy. * interp/spad-parser.boot: New parsers. * interp/preparse.lisp: Remove dead codes. * interp/parsing.lisp (MATCH-ADVANCE-KEYWORD): Remove. * interp/parse.boot (doParseCategory): Rename from parseCategory. * interp/newaux.lisp: Tidy. * interp/lexing.boot (getSpadToken): New. (Keywords): Remove 'when'. (matchKeywordNext): New. (matchSpecial): Likewise. (matchAdvanceSpecial): Likewise. (matchAdvanceGlyph): Likewise. * interp/fnewmeta.lisp: Move variable definitions to preparse.lisp. Remove Lisp based parsers. Remove file. * interp/c-doc.boot (recordAttributeDocumentation): Fix thinko. * interp/bootlex.lisp (GET-BOOT-TOKEN): Remove. * interp/Makefile.in: Adjust dependencies. * boot/parser.boot (bpChar): New. (bpPattern): Allow character constants.
2011-10-16 * algebra/boolean.spad.pamphlet (Boolean): Implement defaultdos-reis8-18/+34
Boolean operators in terms of Logic operators. (PropositionalFormula): Implement Logic operators instead of Boolean operators. * algebra/exposed.lsp.pamphlet: Expose PropositionalFormulaFunctions1 and PropositionalFormulaFunctions2.
2011-10-12 * interp/spad-parser.spad: New parsing functions.dos-reis5-71/+67
* interp/fnewmeta.lisp: Use them, (PARSE-Return): Remove. (PARSE-Throw): Likewise. (PARSE-Jump): Likewise. (PARSE-Exit): Likewise. (PARSE-Leave): Likewise. (PARSE-ElseClause): Likewise. (PARSE-Label): Likewise.
2011-10-12 * algebra/boolean.spad.pamphlet (Reference) [elt]: Remove.dos-reis21-1478/+1486
[setelt]: Likewise. * algebra/lodof.spad.pamphlet: Adjust use. * algebra/float.spad.pamphlet: Likewise. * algebra/divisor.spad.pamphlet: Likewise. * algebra/curve.spad.pamphlet: Likewise. * algebra/card.spad.pamphlet: Likewise. * algebra/algext.spad.pamphlet: Likewise. * algebra/op.spad.pamphlet: Likewise. * algebra/suls.spad.pamphlet: Likewise. * algebra/sups.spad.pamphlet: Likewise. * algebra/supxs.spad.pamphlet: Likewise. * algebra/suts.spad.pamphlet: Likewise. * algebra/symbol.spad.pamphlet: Likewise. * algebra/view3D.spad.pamphlet: Likewise. * algebra/viewDef.spad.pamphlet: Likewise.
2011-10-12 * interp/lexing.boot (matchAdvanceKeyword): New.dos-reis7-139/+150
* interp/spad-parser.boot: New parsing functions. * interp/fnewmeta.lisp: Use them. (PARSE-NewExpr): Remove. (PARSE-Command): Likewise. (PARSE-SpecialKeyWord): Likewise. (PARSE-TokenOption): Likewise. (PARSE-PrimaryOrQM): Likewise. (PARSE-InfixWith): Likewise. (PARSE-With): Likewise. (PARSE-Inline): Likewise. (PARSE-Quanifier): Likewise. (PARSE-QuantifiedVariable): Likewise. (PARSE-Infix): Likewise. (PARSE-Prefix): Likewise. (PARSE-Suffix): Likewise. (PARSE-TokTail): Likewise. (PARSE-Qualification): Likewise. (PARSE-Primary): Likewise. (PARSE-PrimaryNoFloat): Likewise. (PARSE-Quad): Likewise.
2011-10-11 * interp/lexing.boot (matchAdvanceString): New.dos-reis7-183/+118
* interp/spad-parser.boot: New parsing functions. * interp/fnewmeta.lisp: Use them. (PARSE-VarForm): Remove. (PARSE-Scripts): Likewise. (PARSE-ScriptItem): Likewise. (PARSE-AnyId): Likewise. * interp/parsing.lisp (PARSE-OperatorFunctionName): Remove. (MATCH-ADVANCE-STRING): Likewise.