aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-11-11 * interp/compiler.boot (applyMapping): Emit special call fordos-reis6-6/+50
domain producing mapping variables. (compWithMappingMode): Coerce constructors to function objets. (compFormWithModemap): Constructor calls are direct calls. Everything else is ordinary indirect call. * interp/g-opt.boot (optCall): Handle function objects. * interp/nruncomp.boot (NRTencode): Encode the elaboration of atomic forms, not the source level form. * testsuite/compiler/ctor-mapping.spad: New.
2011-11-10 * algebra/boolean.spad.pamphlet (IndexedBits) [Not, Or, And]: Remove.dos-reis5-31/+18
Implement ~. \/, and /\ instead. * algebra/si.spad.pamphlet (SingleInteger): Likewise. * algebra/pattern.spad.pamphlet (Pattern): Adjust. * algebra/string.spad.pamphlet (CharacterClass): Likewise.
2011-11-10 * interp/daase.lisp (dbLookupFunction): New accessor macro.dos-reis5-18/+32
* interp/c-util.boot (lookupDefiningFunction): Use it. Tidy. * interp/define.boot ($lookupFunction): Remove. (getInfovecCode): Use dbLookupFunction. (compDefineFunctor1): Set it. Do not emit %incomplete anymore. * interp/lisplib.boot (writeLookupFunction): New. (finalizeLisplib): Use it.
2011-11-09 * interp/define.boot (compDefineFunctor1): Clear dbTemplate beforedos-reis3-1/+26
compilation starts. * interp/lisplib.boot (writeLoadInfo): New. (writeTemplate): Likewise. (finalizeLisplib): Use it to write template.
2011-11-09 * interp/define.boot (compFunctorBody): First argument is now a DB.dos-reis30-105/+139
Adjustt caller. (incompleteFunctorBody): Likewise. * interp/bc-matrix.boot: Use toString instead of STRINGIMAGE where appropriate. * interp/bc-solve.boot: Likewise. * interp/bc-util.boot: Likewise. * interp/br-con.boot: Likewise. * interp/br-op1.boot: Likewise. * interp/br-saturn.boot: Likewise. * interp/c-doc.boot: Likewise. * interp/c-util.boot: Likewise. * interp/clam.boot: Likewise. * interp/format.boot: Likewise. * interp/functor.boot: Likewise. * interp/g-timer.boot: Likewise. * interp/htsetvar.boot: Likewise. * interp/i-funsel.boot: Likewise. * interp/i-map.boot: Likewise. * interp/i-output.boot: Likewise. * interp/i-resolv.boot: Likewise. * interp/i-special.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/i-util.boot: Likewise. * interp/msg.boot: Likewise. * interp/newfort.boot: Likewise. * interp/parse.boot: Likewise. * interp/pathname.boot: Likewise. * interp/setvars.boot: Likewise. * interp/showimp.boot: Likewise. * interp/slam.boot: Likewise. * interp/trace.boot: Likewise.
2011-11-08fix thinkosdos-reis2-2/+2
2011-11-07Fix thinkodos-reis1-1/+1
2011-11-07 * interp/lisplib.boot (isDomainForm): Tidy.dos-reis2-0/+5
2011-11-07 * interp/lisplib.boot (getConstructorOpsAndAtts): Fold content indos-reis3-15/+21
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-reis5-78/+32
* 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-07 * utils/vm.H: Redefine value representation.dos-reis2-76/+101
2011-11-06 * interp/c-doc.boot (checkBalance): Fix a latent logic bug.dos-reis3-23/+24
* algebra/Makefile.in: Tidy.
2011-11-05 * algebra/Makefile.in: Rework bootstrap dependency.dos-reis2-373/+859
2011-11-04 * interp/functor.boot (compCategories): Take second parameter asdos-reis5-40/+40
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-reis2-2/+14
(loadLib): Exit early on builtin constructors. (loadDB): Likewise.
2011-11-02 * interp/spad-parser.boot (parseSpadFile): Use $lineStack notdos-reis4-37/+43
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-reis3-5/+15
* interp/define.boot (NRTmakeCategoryAlist): Use it. (compDefineFunctor1): Likewise.
2011-11-02 Add compiler support for implicit parameters.dos-reis4-21/+109
* 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.