aboutsummaryrefslogtreecommitdiff
path: root/src/interp
AgeCommit message (Collapse)AuthorFilesLines
2011-11-08fix thinkosdos-reis2-2/+2
2011-11-07Fix thinkodos-reis1-1/+1
2011-11-07 * interp/lisplib.boot (isDomainForm): Tidy.dos-reis1-0/+1
2011-11-07 * interp/lisplib.boot (getConstructorOpsAndAtts): Fold content indos-reis2-15/+11
called. Remove. (getFunctorOpsAndAtts): Simplify. (getSlotFromFunctor): Rework. * interp/define.boot (getInfovecCode): Bind $byteVec and $byteAddress here. (compDefineFunctor1): Not here.
2011-11-07 * interp/compiler.boot ($compileOnlyCertainItems): Remove.dos-reis4-78/+15
* interp/define.boot ($NRTslot1Info): Likewise. (getInfovecCode): Add additional environment argument. Adjust caller. Call NRTmakeSlot1Info here. (NRTgetLookupFunction): Lose second and third arguments. They are derivable from the DB argument. Adjust caller. (compDefineFunctor1): Do not bind $NRTslot1Info. (compDefineCapsuleFunction): Adjust. (compile): Likewise. * interp/i-syscmd.boot (compilerDoitWithScreenedLisplib): Remove. Adjust caller. * interp/nruncomp.boot (NRTmakeSlot1Info): Tak a DB argument. Adjust caller. (mkSlot1sublis): Remove.
2011-11-06 * interp/c-doc.boot (checkBalance): Fix a latent logic bug.dos-reis1-15/+12
* algebra/Makefile.in: Tidy.
2011-11-04 * interp/functor.boot (compCategories): Take second parameter asdos-reis3-39/+27
environment. Adjust callers. (compCategories1): Likewise. (NewbFVectorCopy): Remove as deadcode. (worthlessCode): Tidy. (DescendCode): Take additional environment parameter. Adjust callers. * interp/define.boot (isMacro): Simplify. (wrapDomainSub): Remove. Adjust callers. * algebra/Makefile.in (strap-2/%.$(FASLEXT)): Fix typo.
2011-11-02 * interp/lisplib.boot (findModule): Tidy.dos-reis1-2/+8
(loadLib): Exit early on builtin constructors. (loadDB): Likewise.
2011-11-02 * interp/spad-parser.boot (parseSpadFile): Use $lineStack notdos-reis3-37/+36
BOOT-LINE-STACK. Use try/finally to ensure streams are closed. * interp/spad.lisp (New,ENTRY,2): Use parseNewExpr. * interp/util.lisp (string2SpadTree): Likewise.
2011-11-02 * interp/c-util.boot (dbSubstituteAllQuantified): New.dos-reis2-5/+9
* interp/define.boot (NRTmakeCategoryAlist): Use it. (compDefineFunctor1): Likewise.
2011-11-02 Add compiler support for implicit parameters.dos-reis1-10/+86
* 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-reis2-9/+52
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-reis3-21/+44
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-reis2-22/+18
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-reis2-11/+10
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-reis6-72/+119
* 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-reis5-32/+50
(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-reis2-35/+33
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-reis1-25/+30
(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-reis2-7/+7
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-reis6-212/+27
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-reis2-3/+3
2011-10-29 * interp/nruncomp.boot (mkDomainCatName): Remove.dos-reis4-8/+11
* 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-reis6-24/+12
(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-reis1-72/+37
(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-reis3-12/+8
(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-reis4-45/+52
* 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-reis2-11/+5
2011-10-27 Support use of any natural number literal as constant name.dos-reis4-34/+53
* 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-26 * interp/postpar.boot (postSignature): Tidy.dos-reis4-35/+19
* interp/parse.boot (transCategoryItem): Remove as dead code. * interp/lisplib.boot (finalizeLisplib): Remove use of removeZeroOne. * interp/cattable.boot (categoryParts): Tidy.
2011-10-25 * interp/compiler.boot (getFormModemaps): Tidy checking of "elt"dos-reis1-8/+7
and "setelt" modemaps.
2011-10-24 * interp/compiler.boot (compArgumentsAndTryAgain): Fail only ifdos-reis1-2/+1
elaboration of all arguments fails.
2011-10-24 * interp/compiler.boot (compOrCroak1): Drop last argument. Tidy.dos-reis3-17/+45
(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-reis2-1/+5
* 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-reis1-19/+2
subsumption. Exit early on empty modemap candidate list.
2011-10-23 * interp/compiler.boot (compAtomWithModemap): Handle code-gen here.dos-reis1-5/+14
2011-10-22 * interp/br-op2.boot (htSayExplicitExports): Don't forget possibledos-reis6-15/+24
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-21 * interp/define.boot (compDefineCapsuleFunction): Reimplementdos-reis1-20/+14
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-reis1-22/+33
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-reis1-1/+1
2011-10-19 * interp/postpar.boot (postDef): Do not include list of nil formsdos-reis3-28/+19
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-reis4-25/+35
(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-reis4-130/+71
Remove.
2011-10-19misc cleanupdos-reis3-3/+3
2011-10-18 * interp/postpar.boot (displayPreCompilationErrors): Dot not checkdos-reis11-81/+38
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-reis7-44/+14
* 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-reis12-774/+646
* 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-12 * interp/spad-parser.spad: New parsing functions.dos-reis4-71/+55
* 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 * interp/lexing.boot (matchAdvanceKeyword): New.dos-reis6-139/+126
* 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.