2011-12-27 Gabriel Dos Reis * interp/g-opt.boot (coagulateWhenSeries): Simplify. (packWhen!): Likewise. (unnestWhen!): Tidy. (removeScope!): Handle %when forms. 2011-12-27 Gabriel Dos Reis * interp/g-opt.boot (exitScope?): Now return an expression or nil. (cancelScopeLeave!): Tidy. 2011-12-27 Gabriel Dos Reis * algebra/prs.spad.pamphlet (PseudoRemainderSequence): Tidy. 2011-12-27 Gabriel Dos Reis * interp/g-opt.boot (changeVariableDefinitionToStore): Tidy. Remove handling of IF forms as no longer relevant. * algebra/matfuns.spad.pamphlet (MatrixLinearAlgebraFunctions) [rank]: Tidy. 2011-12-27 Gabriel Dos Reis * algebra/matfuns.spad.pamphlet (InnerMatrixLinearAlgebraFunctions) [rank]: Tidy. 2011-12-24 Gabriel Dos Reis * interp/g-opt.boot (unnestWhen!): Recurse into more control structures. 2011-12-24 Gabriel Dos Reis * algebra/rep2.spad.pamphlet (RepresentationPackage2) [areEquivalent?]: Tidy. 2011-12-18 Gabriel Dos Reis * interp/g-opt.boot (unnestWhen!): New. (packWhen!): Simplify. (optimize!): Run before changeVariableDefinitionToStore. 2011-12-17 Gabriel Dos Reis * interp/g-opt.boot (removeScope!): New. (optimize!): Call it. (optimizeFunctionDef): Simplify. 2011-12-17 Gabriel Dos Reis * interp/compiler.boot (compColon): Handle multiple declarations properly. 2011-12-17 Gabriel Dos Reis * interp/compiler.boot (finishVectorCollect): Rename from optCollectVector. Move here. (compRepeatOrCollect): Use it. 2011-12-16 Gabriel Dos Reis * interp/g-opt.boot (freeIteratorFirstValues): New. (cleanLoop!): Use it. * interp/lisp-backend.boot ($freeVarName): Remove. (loopVarInit): Do not generate initializer for free iterators. Adjust callers. (massageFreeVarInits): Remove. Adjust caller. 2011-12-16 Gabriel Dos Reis * interp/compiler.boot (finishListCollect): New. (compRepeatOrCollect): Use it. * interp/g-opt.boot (optCollectVector): Likewise. * interp/lisp-backend.boot (expandCollect): Likewise. 2011-12-15 Gabriel Dos Reis * interp/g-util.boot (prefixWalk!): New. * interp/g-opt.boot (cleanLoop!): Rename from removeLoopExitTag!. Adjust caller. Rewrite as a prefix walk. 2011-12-15 Gabriel Dos Reis * interp/g-opt.boot (removeLoopExitTag!): New. (optimize!): Run it first. * interp/compiler.boot (nullifyTargetingLeaves): Remove. (massageLoop): Likewise. (compRepeatOrCollect): Don't call it anymore. 2011-12-15 Gabriel Dos Reis * interp/compiler.boot: Rename %loop to %repeat. Propagate. * interp/g-opt.boot: Likewise. * interp/i-map.boot: Likewise. * interp/i-special.boot: Likewise. * interp/lisp-backend.boot: Likewise. * interp/slam.boot: Likewise. 2011-12-15 Gabriel Dos Reis * interp/g-opt.boot (modified?): Tidy. 2011-12-15 Gabriel Dos Reis * lisp/core.lisp.in: Do not require SB-SPROF or SB-POSIX on Windows. 2011-12-14 Gabriel Dos Reis * interp/g-opt.boot (packWhen!): Tidy. 2011-12-14 Gabriel Dos Reis * interp/g-opt.boot (exitScope?): New. (packWhen!): Use it. (coagulateWhenSeries): Tidy. (cancelScopeLeave!): Likewise. 2011-12-14 Gabriel Dos Reis * interp/g-opt.boot (removeNeedleesLeave): Remove. (optScope): Adjust. (removeLeave!): New. (optimize!): Run it at the very beginning. 2011-12-13 Gabriel Dos Reis * interp/g-opt.boot (optSeq): Remove. Adjust callers. 2011-12-13 Gabriel Dos Reis * interp/g-opt.boot (replaceableTemporary?): Remove. (optSeq,getRidOfTemps): Likewise. (optSeq): Rewrite. * interp/slam.boot (compileRecurrenceRelation): Tidy. 2011-12-13 Gabriel Dos Reis * interp/g-opt.boot (removeJunk!): Rename from removeSeq! (cancelScopeLeave!): New. (inlineLocals!): Tidy. (optimize!): Run cancelScopeLeave! right after removeJunk!. 2011-12-12 Gabriel Dos Reis * interp/g-opt.boot: Rework. Schedule conditional splitting before changing %LETs to %stores. Run beta reduction and condtional splitting afterward, one more time. (optimizeFunctionDef): Simplify. 2011-12-12 Gabriel Dos Reis * interp/g-opt.boot (packWhen!): Tidy. (spliceSeq!): New. (optimize!): Run splice! packWhen! twice. 2011-12-11 Gabriel Dos Reis * interp/g-util.boot (liftAassignments!): New. (splitAssignments!): Use it. * algebra/multpoly.spad.pamphlet (SparseMultivariatePolynomial): Fix thinko. 2011-12-11 Gabriel Dos Reis * interp/g-opt.boot (inlineLocals!): Single-used temporaries should go. (spliceSeqArgs): Splice sequences drapped in %scope cloths too. 2011-12-11 Gabriel Dos Reis * interp/compiler.boot (compColon): Give initial %undefined value to local variable declarations which are not definitions. * interp/lisp-backend.boot (expandToVMForm): Translate %undefined. 2011-12-10 Gabriel Dos Reis * interp/g-opt.boot (optSeq): Remove splicePROGN as redundant. * interp/functor.boot (optFunctorBody): Generate %seq form, not PROGN. (DescendCode): Likewise. * interp/c-util.boot (displayComp): Fix thinko. 2011-12-10 Gabriel Dos Reis * interp/g-opt.boot (optSeq): Remove seqToCOND as now redundant with packWhen!. 2011-12-10 Gabriel Dos Reis * boot/parser.boot (bpArgtypeList): Accept mapping types. * boot/ast.boot (bfType): New. * boot/translator.boot (genDeclaration): Use it. * boot/utility.boot (every?): New. Export. (any?): Likewise. (takeWhile): Lilkewise. 2011-12-10 Gabriel Dos Reis * interp/g-opt.boot (mkDefault): New. (coagulateWhenSeries): Likewise. (packWhen!): Likewise. Use them. (optimize!): Call it. Tidy. 2011-12-09 Gabriel Dos Reis * interp/lisp-backend.boot (loopVarInit): Generate VM forms, not Lisp. (expandIN): Likewise. (expandON): Likewise. (expandSTEP): Likewise. (expandUNTIL): Likewise. (expandWHILE): Likewise. (expandSUCHTHAT): Likewise. (expandInit): Likewise. (expandIterators): Likewise. (massageFreeVarInits): Likewise. (expandLoop): optimize! then expand. 2011-12-09 Gabriel Dos Reis * interp/g-opt.boot (packWehn!): New. (optimize!): Use it. 2011-12-07 Gabriel Dos Reis * interp/g-opt.boot (tranformIF!): New. (optimize!): Likewise. Abstract from optimizeFunctionDef. (optimize): New. (optimizeFunctionDef): Use optimize!. (simplifyVMForm): Do not call optIF2COND. (optIF2COND): Remove. * interp/compiler.boot (compHasFormat): Use optimize! in lieu of simplifyVMForm. * interp/nruncomp.boot (NRTencode): Use optimize. (NRTsetVector4a): Likewise. 2011-12-07 Gabriel Dos Reis * interp/g-opt.boot: %writeString, %writeNewline and %writeLine are side-effect full. (removeSeq!): Tidy. Skip side-effectfree statements. 2011-12-07 Gabriel Dos Reis * interp/g-opt.boot (removeSeq!): New. (inlineLocals!): Likewise. (optimizeFunctionDef): Use them. (optSeq): Tidy. * interp/buildom.boot (seteltRecordFun): Tidy. * interp/clam.boot (compHash): Likewise. 2011-12-07 Gabriel Dos Reis * interp/g-opt.boot (groupTranscients!): New. (reduceXLAM!): Likewise. (optimizeFunctionDef): Call them before simplifyVMForm. * interp/g-util.boot (mkSeq): New. (abstraction?): Likewise. (walkWith!): Likewise. 2011-12-07 Gabriel Dos Reis * interp/compiler.boot (compReduce1): Tidy. * interp/define.boot (compDefineCategory2): Likewise. * interp/nruncomp.boot (buildFunctor): Likewise. * interp/slam.boot (compileRecurrenceRelation): Likewise. * interp/lisp-backend.boot (expandSeq): Use PROGN in absence of EXIT. 2011-12-06 Gabriel Dos Reis * interp/compiler.boot (setqMultipleExplicit): Introduced temporary variables are local to the assignment. 2011-12-06 Gabriel Dos Reis * interp/compiler.boot (compResolveCall): Update description. (compRetractGuard): Tidy. (compRecoverDomain): Likewise. (compRecoverGuard): Likewise. (compAlternativeGuard): Likewise. (compMatchAlternative): Likewise. (compMatch): Likewise. 2011-12-05 Gabriel Dos Reis * interp/g-util.boot (splitAssignments): Rework. (spliceSeqArgs): Tidy. * algebra/gdpoly.spad.pamphlet (GeneralDistributedMultivariatePolynomial): Fix thinko. 2011-12-05 Gabriel Dos Reis * interp/g-opt.boot (changeVariableDefinitionToStore): Separately handle %bind and LET forms. * interp/g-util.boot (spliceSeqArgs): Recurse into %seq forms. 2011-12-04 Gabriel Dos Reis * interp/compiler.boot (freeVarUsage): Handle %bind and LET. 2011-12-04 Gabriel Dos Reis * interp/g-util.boot (splitAssignments): New. (spliceSeqArgs): Use it. 2011-12-03 Gabriel Dos Reis * interp/lisp-backend.boot (hasNoExit?): New. (expandSeq): Likewise. Use it. Expand %seq forms. 2011-12-03 Gabriel Dos Reis * interp/compiler.boot: Use %seq in lieu of PROGN. * interp/g-util.boot (spliceSeqArgs): New. * interp/g-opt.boot (changeVariableDefinitionToStore): Call it before recursing on %seq forms. 2011-12-03 Gabriel Dos Reis * interp/compiler.boot (setqMultiple): Handle lhs and rhs of type Cross instance. * interp/g-util.boot ($DomainNames): Include Cross. * interp/cattable.boot (genCategoryTable): Do not eval Cross. It is bogus to prepopulate the table with builtin functors anyway. * algebra/triset.spad.pamphlet (PolynomialSetUtilitiesPackage)[removeRedundantFactors]: Do not define `c' and `d' in conditional. Make the initializer conditional. 2011-12-03 Gabriel Dos Reis * interp/nruncomp.boot (washFunctorBody) [clean]: Clean %when forms too. 2011-12-03 Gabriel Dos Reis * interp/compiler.boot: Replace %labelled with %scope. * interp/define.boot: Likewise. * interp/g-opt.boot: Likewise. * interp/g-util.boot: Likewise. Rename mkLabelled to mkScope. 2011-12-02 Gabriel Dos Reis * interp/g-opt.boot (groupVariableDefinitions): Simplify a bit. (optimizeFunctionDef): Likewise. Change %LET to %store before simplification. (simplifyVMForm): Do not call changeVariableDefinitionToStore. 2011-12-02 Gabriel Dos Reis * interp/g-util.boot (hasNoLeave?): Move from g-opt.boot. (mkLabelled): New. (mkBind): Likewise. * interp/g-opt.boot (groupVariableDefinitions): Use them. * algebra/aggcat.spad.pamphlet (ListAggregate) [merge!]: Declare local variables `r' and `s' before assigning to them. 2011-12-02 Gabriel Dos Reis * interp/g-opt.boot (iteratorName): New. (changeLoopVarDefsToStore): Likewise. (changeVariableDefinitionToStore): Use it. Tidy. (groupVariableDefinitions): Tidy. 2011-12-02 Gabriel Dos Reis * interp/buildom.boot (seteltRecordFun): Change EXIT to %exit. * interp/clam.boot (compHash):Likewise. * interp/g-opt.boot (changeVariableDefinitionToStore): Likewise. (jumpToToplevel?): Likewise. (groupVariableDefinitions): Likewise. (changeLeaveToExit): Likewise. (optLabelled): Likewise. (optSeq): Likewise. * interp/lisp-backend.boot: Translate %exit to EXIT. 2011-12-02 Gabriel Dos Reis * interp/buildom.boot (setelt): Change SEQ to %seq. * interp/clam.boot (compHash): Likewise. * interp/compiler.boot (freeVarUsage): Likewise. (canReturn): Likewise. * interp/i-special.boot (compileIs): Likewise. * interp/g-opt.boot (changeVariableDefinitionToStore): Likewise. (jumpToToplevel?): Likewise. (groupVariableDefinitions): Likewise. (changeLeaveToExit): Likewise. (optLabelled): Likewise. (optSeq): Rename from optSEQ. Adjust callers. * interp/lisp-backend.boot: Translate %seq to SEQ. 2011-12-02 Gabriel Dos Reis Fix SF/3448433 * interp/br-util.boot (bcPred): Do not compare pred against a string. 2011-12-02 Gabriel Dos Reis * interp/g-opt.boot (modified?): Examine the rhs too. 2011-12-01 Gabriel Dos Reis * interp/g-opt.boot (changeVariableDefinitionToStore): Handle SEQ forms too. (groupVariableDefinitions): Handle %bind and %loop forms. * interp/lisp-backend.boot (expandLoop): Special code for case where there is explicit exit condition, for better pretty-printing. 2011-12-01 Gabriel Dos Reis * interp/g-opt.boot (groupVariableDefinitions): Look through %labelled and %lambda. (optimizeFunctionDef): Use copyTree, not COPY. Simplify. (simplifyVMForm): Perform changeVariableDefinitionToStore and groupVariableDefinitions on abstraction forms. 2011-12-01 Gabriel Dos Reis * interp/define.boot (compDefineCategory): Lose prefix parameter. It is always nil. Adjust caller. (compDefineCategory1): Likewise. (compDefineCategory2): Likewise. (compDefineFunctor): Likewise. (compDefineFunctor1): Likewise. Bind it to nil. * interp/lisplib.boot (compDefineLisplib): Likewise. 2011-12-01 Gabriel Dos Reis * interp/compiler.boot (compSeq1): Generate %labelled forms. (coerceExit): Likewise. (compRepeatOrCollect): Likewise. (replaceExitEtc): Tidy. (canReturn): Likewise. (compIterate): Generate %lave form. (nullifyTargetingLeaves): Move out of massageLoop. (massageLoop): Adjust. * interp/define.boot (compDefineCapsuleFunction): Generate %labelled form for the body. * interp/g-opt.boot: Now handle %labelled and %leave forms. (optLabelled): Rename from optCatch. 2011-12-01 Gabriel Dos Reis * interp/buildom.boot (UnionEqual): Use %lambda, not %lam. (coerceUn2E): Likewise. * interp/compiler.boot (massageLoop): %leave now takes a label as first argument. * interp/lisp-backend.boot (expandLeave): New. Expand accordingly. 2011-11-30 Gabriel Dos Reis * interp/define.boot (registerInlinableDomain): Lose last argument. Recursively nominate constructor argument for inlining. Adjust callers. * interp/c-util.boot: Tidy. * algebra/Makefile.in: Tidy. 2011-11-30 Gabriel Dos Reis * interp/c-util.boot (clearReplacement): Clear redex replacement. (registerRedexForm): New. (redexForm): Likewise. (inlineDirectCall): Inline functions with known redex forms. (foldExportedFunctionReferences): Compute redex forms. (backendCompileILAM): Remove as unused. (backendCompile2): Adjust. (massageBackendCode): Likeiwse. * interp/define.boot (compDefineCapsuleFunction): Clear replacement info. 2011-11-29 Gabriel Dos Reis * boot/tokens.boot (absKind, absParms, absBody): New selectors. * interp/compiler.boot (canReturn): Handle %lambda forms. (compUnnamedMapping): Generate %lambda forms. Don't optimize them yet. * interp/g-opt.boot: %lambda forms are side-effect free. * interp/lisp-backend.boot: Translate them. 2011-11-29 Gabriel Dos Reis * interp/g-opt.boot (isSimpleForm): Remove as unused. (floatableVMForm?): New. (modified?): Rename form varIsAssigned. (canInlineVarDefinition): Tidy. Allow intermediate temporaries initialized from variables to be inlined if not modified. (optBind): Tidy. 2011-11-28 Gabriel Dos Reis * interp/nruncomp.boot (genDeltaEntry): Use $ for the domain of computation it if is the expanded form of the current domain. 2011-11-28 Gabriel Dos Reis * interp/c-util.boot (inlineDirectCall): Inline a non-side effect free argument in a unary pure function call if it is used exactly once. * algebra/integer.spad.pamphlet (Integer) [reducedSystem]: Fix typo. 2011-11-28 Gabriel Dos Reis * interp/define.boot (encodeCatform): Handle $ here. * interp/nruncomp.boot (deltaTran): assocIndex now handles $. (getLocalIndex): Likewise. (NRTencode): Handle $ before calling assocIndex. (assocIndex): Handle $. 2011-11-27 Gabriel Dos Reis * interp/nruncomp.boot (genDeltaEntry): Replace Rep with its value if it is the domain of computation. 2011-11-27 Gabriel Dos Reis * interp/database.boot (dbDefaultPackage?): New. * interp/define.boot (compDefine1): Avoid encodeItem when symbolName is meant. (mkRepititionAssoc): Move from functor.boot (encodeItem): Likewise. (getCaps): Likewise. Tidy. (encodeFunctionName): Likewise. 2011-11-27 Gabriel Dos Reis * interp/define.boot (assignCapsuleFunctionSlot): Slot original signature too. * interp/nruncomp.boot (genDeltaEntry): Likewise. (getLocalIndex): Tidy. (changeDirectoryInSlot1): Tidy. (vectorLocation): Add a kind of operation as fourth argument. Adjust caller. Do not reconstruct the signature. (NRTsubstDelta): Remove as no longer used. 2011-11-26 Gabriel Dos Reis * interp/nruncomp.boot (assocIndex): Rename from NRTassocIndex. Adjust callers. 2011-11-26 Gabriel Dos Reis * interp/define.boot (assignCapsuleFunctionSlot): Do not call NRTisExported?. Determine operation kind locally. Do not store implement slot on the used entity list. * interp/nruncomp.boot (genDeltaEntry): Likewise. (deltaTran): Simplify. (NRTisExported?): Remove. (vectorLocation): Adjust. 2011-11-26 Gabriel Dos Reis * algebra/indexedp.spad.pamphlet: Avoid direct use or RPLACD. * algebra/poly.spad.pamphlet: Likewise. * interp/define.boot (spadCompileOrSetq): Tidy replacement info. * interp/i-output.boot ($BinaryOperators): New. (binaryInfix?): Tidy. 2011-11-26 Gabriel Dos Reis * interp/nruncomp.boot (genDeltaEntry): Split first argument into separate arguments (operation and modemap). Adjust callers. 2011-11-26 Gabriel Dos Reis * interp/c-util.boot (updateCapsuleDirectory): Simplify. * interp/define.boot (compDefineCapsuleFunction): Call it from here. * interp/functor.boot (DescendCode): Not here. 2011-11-26 Gabriel Dos Reis * interp/define.boot ($NRTdeltaList): Remove. ($NRTdeltaListComp): Likeewise. (compDefineFunctor1): Do not bind them. (assignCapsuleFunctionSlot): Use dbUsedEntities. * interp/nruncomp.boot (NRTaddDeltaCode): Likewise. (dbEntitySlot): New. (NRTassocIndex): Use it. (genDeltaEntry): Use dbUsedEntities. (getLocalIndex): Likewise. (vectorLocation): Likewise. (NRTsubstDelta): Likewise. 2011-11-25 Gabriel Dos Reis * interp/br-con.boot (conOpPage1): Fix typo. * interp/c-util.boot (registerConstructor): New. (currentConstructor): Likewise. (makeCompilationData): Initialize dbEntityBuffer. (dbEntityBuffer): New. (dbUsedEntities): Likewise. (dbEntityCount): Likewise. * interp/compiler.boot: Adjust call to getLocalIndex, NRTassocIndex * interp/define.boot: Likewise. ($NRTdeltaLength): Remove. * interp/nruncomp.boot: Likewise. 2011-11-25 Gabriel Dos Reis * interp/define.boot (processDefinitionParameters): New. Abstract from compDefineCapsuleFunction. (compDefineCapsuleFunction): Use it. Tidy. 2011-11-25 Gabriel Dos Reis * interp/define.boot: Rearrange order of some definitions. (getArgumentMode): Tidy. (hasSigInTargetCategory): Likewise. (refineDefinitionSignature): New. Abstract from compDefineCapsuleFunction. (compDefineCapsuleFunction): Use it. Tidy. 2011-11-24 Gabriel Dos Reis * interp/define.boot ($suffix): Remove toplevel declaration. (localOperation?): New. (compDefineCapsuleFunction): Increment $suffix. Check for local and exported function definition here. (compile): Move capsule-local function processing out. 2011-11-24 Gabriel Dos Reis * interp/define.boot: Tidy. * interp/functor.boot: Likewise. * interp/g-util.boot: Likewise. * interp/slam.boot: Likewise. * interp/topics.boot: Likewise. * interp/trace.boot: Likewise. 2011-11-24 Gabriel Dos Reis * interp/nruncomp.boot (changeDirectoryInSlot1,sigloc): Add first parameter as a DB. Adjust caller. (NRTsubstDelta): Tidy. 2011-11-23 Gabriel Dos Reis * interp/functor.boot (findOperatorImplementations): Rename from LookUpSigSlots. Tidy. Adjust caller. (makeMissingFunctionEntry): Remove as unused. 2011-11-23 Gabriel Dos Reis * interp/define.boot ($CheckVectorList): Remove. (compDefineFunctor1): Do not bind it. (reportOnFunctorCompilation): Do not call displayMissingFunctions. (displayMissingFunctions): Remove as useless. * interp/functor.boot (SetFunctionSlots): Do not set slot in the first vector of $catvecList. * interp/nruncomp.boot (buildFunctor): Remove makeCatvecCode, emptyVector, domainShell. Do not call NRTcheckVector. (NRTcheckVector): Remove as useless. 2011-11-23 Gabriel Dos Reis * interp/nruncomp.boot (NRTaddDeltaCode): Do not guard the loop by the values in the first vector in $catvecList. It is pointless. 2011-11-23 Gabriel Dos Reis * interp/functor.boot (SigSlotsMatch): Remove. Adjust caller. (LookUpSigSlots): Tidy. 2011-11-22 Gabriel Dos Reis * interp/define.boot (compile): Take the signature as third argument. Adjust callers. (compDefineFunctor1): Do not bind $functionLocations. (compDefineCapsuleFunction): Do not update. * interp/lisplib.boot (transformOperationAlist): Do not consult $functionLocations. 2011-11-22 Gabriel Dos Reis * interp/define.boot (assignCapsuleFunctionSlot): Move from nruncomp.boot. Rename from NRTassignCapsuleFunctionSlot. Take first parameter as a DB. Adjust callers. (compDefineCapsuleFunction): Tidy. 2011-11-21 Gabriel Dos Reis * interp/nruncomp.boot (getLocalIndex): Rename from NRTgetLocalIndex. Adjust callers. * interp/compiler.boot: Adjust. * interp/define.boot: Likewise. 2011-11-18 Gabriel Dos Reis * interp/category.boot (FindFundAncs): Tidy. Access input in accordance with documented abstract structure. 2011-11-17 Gabriel Dos Reis * interp/i-eval.boot (evaluateType): Handle % and and signatures. (evaluateFormAsType): Handle builtin constructor instantiations. 2011-11-16 Gabriel Dos Reis * interp/category.boot (mkCategory): Tidy. (SigListUnion): Likewise. The last argument is not a vector buffer. (JoinInner): Use a vector buffer for scratch space to compute the initial principal ancestor. Simplify copy logic. * interp/g-util.boot (mkBuffer): New. (bufferData): New. (buffeLength): Likewise. (resizeBuffer): Likewise. (bufferToVector): Likwise. * lisp/core.lisp.in (mkVector): New. Export. 2011-11-15 Gabriel Dos Reis * interp/category.boot (JoinInner): Remove effective dead code controlled by originalvector which has non-changing value false. 2011-11-15 Gabriel Dos Reis * interp/category.boot (JoinInner): Use idiomatic Boot for loops. 2011-11-14 Gabriel Dos Reis * interp/category.boot ($NewCatVec): Remove. (SigListUnion): Take the principal ancestor as third argument. Use it instead of $NewCatVec. Adjust caller. (JoinInner): Do not bind $NewCatVec. Introduce local variable principal. Tidy. 2011-11-13 Gabriel Dos Reis * interp/category.boot (filterConditionalCategories): Split out of JoinInner. (JoinInner): Call it. 2011-11-13 Gabriel Dos Reis * interp/category.boot (SigListMember): Remove as deadcode. (SigEqual): Remove. (predicateImplies): Rename from PredImplies. Rework it to match documentation. Adjust callers. (CondAncestorP): Adjust arguments in call to predicateImplies. (JoinInner): Likewise. 2011-11-13 Gabriel Dos Reis * lisp/core.lisp.in: Export %sysInit. * interp/sys-driver.boot (%sysInit): Don't redefine. Reset function binding. 2011-11-13 Gabriel Dos Reis * interp/category.boot (JoinInner): Tidy. 2011-11-13 Gabriel Dos Reis Fix SF/3436999 * utils/storage.H: Revert accidental commit of unfinished changes. 2011-11-13 Gabriel Dos Reis * interp/sys-driver.boot (initializeDatabases): Honor --initial-db. (initializeGlobalState): Don't bind $compileDefaultsOnly. * interp/sys-globals.boot ($compileDefaultsOnly): Remove. * interp/define.boot (compDefineCategory): Adjust. (compDefineCategory1): Likewise. (compDefineFunctor1): Clear dbCapsuleDefinitions. * interp/lisplib.boot (compDefineLisplib): Tidy. * interp/daase.lisp (BROWSEOPEN): Use dbSourceFile. (GETDATABASE): Likewise. (LOCALNRLIB): Likewise. (WRITE-BROWSEDB): Likewise. * algebra/Makefile.in (COMPILE_SPAD): Specifiy initial DB. (BOOTSTRAP): Likewise. 2011-11-12 Gabriel Dos Reis * interp/br-data.boot (buildLibdbConEntry): Exit early if argument is a builtin constructor. (mkDependentsHashTable): Filter out builtin constructors. * interp/cattable.boot (genCategoryTable): Likewise. * interp/database.boot (getConstructorModemap): Load the contructor if necessary and try again before failing. * interp/define.boot (NRTgetLookupFunction): Handle multiple inheritance of domains. (getBaseExports): Rename from getExportCategory. Adjust caller. Handle multiple inheritance of domains. (extendsCategory): Do not reference $functorForm. Take it from the DB argument. (getTargetFromRhs): Do not optimize codegen. 2011-11-11 Gabriel Dos Reis * interp/define.boot (getTargetFromRhs): Do not try to record references to used entities. 2011-11-11 Gabriel Dos Reis * interp/define.boot (compDefineCapsuleFunction): Take first argument as a DB for the current constructor. Adjust callers. (compile): Likewise. (spadCompileOrSetq): Likewise. (compileConstructor): Likewise. (compileConstructor1): Likewise. 2011-11-11 Gabriel Dos Reis * interp/br-data.boot: Change NRTEVAL to %eval. * interp/c-util.boot: Likewise. * interp/define.boot: Likewise. * interp/nruncomp.boot: Likewise. * interp/nrunfast.boot: Likewise. * interp/showimp.boot: Likewise. 2011-11-11 Gabriel Dos Reis * interp/c-util.boot (dbByteList): New accessor macro. * interp/define.boot ($byteVec): Remove. (getInfovecCode): Do not bind it. (makeGoGetSlot): Take DB as first parameter. Adjust caller. Update dbByteList. (NRTmakeCategoryAlist): Adjust. 2011-11-10 Gabriel Dos Reis * interp/compiler.boot (applyMapping): Emit special call for 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 Gabriel Dos Reis * algebra/boolean.spad.pamphlet (IndexedBits) [Not, Or, And]: Remove. Implement ~. \/, and /\ instead. * algebra/si.spad.pamphlet (SingleInteger): Likewise. * algebra/pattern.spad.pamphlet (Pattern): Adjust. * algebra/string.spad.pamphlet (CharacterClass): Likewise. 2011-11-09 Gabriel Dos Reis * interp/daase.lisp (dbLookupFunction): New accessor macro. * 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 Gabriel Dos Reis * interp/define.boot (compDefineFunctor1): Clear dbTemplate before compilation starts. * interp/lisplib.boot (writeLoadInfo): New. (writeTemplate): Likewise. (finalizeLisplib): Use it to write template. 2011-11-08 Gabriel Dos Reis * interp/define.boot (compFunctorBody): First argument is now a DB. 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-07 Gabriel Dos Reis * interp/lisplib.boot (isDomainForm): Tidy. 2011-11-07 Gabriel Dos Reis * interp/lisplib.boot (getConstructorOpsAndAtts): Fold content in called. Remove. (getFunctorOpsAndAtts): Simplify. (getSlotFromFunctor): Rework. * interp/define.boot (getInfovecCode): Bind $byteVec and $byteAddress here. (compDefineFunctor1): Not here. 2011-11-06 Gabriel Dos Reis * interp/compiler.boot ($compileOnlyCertainItems): Remove. * 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 Gabriel Dos Reis * utils/vm.H: Redefine value representation. 2011-11-05 Gabriel Dos Reis * interp/c-doc.boot (checkBalance): Fix a latent logic bug. * algebra/Makefile.in: Tidy. 2011-11-05 Gabriel Dos Reis * algebra/Makefile.in: Rework bootstrap dependency. 2011-11-04 Gabriel Dos Reis * interp/functor.boot (compCategories): Take second parameter as 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 Gabriel Dos Reis * interp/lisplib.boot (findModule): Tidy. (loadLib): Exit early on builtin constructors. (loadDB): Likewise. 2011-11-02 Gabriel Dos Reis * interp/spad-parser.boot (parseSpadFile): Use $lineStack not 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 Gabriel Dos Reis * interp/c-util.boot (dbSubstituteAllQuantified): New. * interp/define.boot (NRTmakeCategoryAlist): Use it. (compDefineFunctor1): Likewise. 2011-11-02 Gabriel Dos Reis Add compiler support for implicit parameters. * 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 Gabriel Dos Reis Add interpreter support for implicit parameters. * interp/i-funsel.boot (evalMmCond0): Tidy. Call evalMmGuard to 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-30 Gabriel Dos Reis * interp/compiler.boot (evaluateConstructorModemap): Rename from 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 Gabriel Dos Reis * interp/sys-macros.lisp (MKPF1): Tidy. * 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 Gabriel Dos Reis * interp/daase.lisp (dbCompilerData): New accessor macro. (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 Gabriel Dos Reis * interp/nruncomp.boot (NRTaddDeltaCode): Take a DB parameter. 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 Gabriel Dos Reis * interp/define.boot ($atList, $sigList): Remove. (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 Gabriel Dos Reis * interp/lisplib.boot (makePredicateBitVector): Take a DB argument. 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 Gabriel Dos Reis * interp/define.boot (getInfovecCode): Take a DB argument. Pass 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 Gabriel Dos Reis * interp/compiler.boot (compHasFormat): Simplify type form. 2011-10-28 Gabriel Dos Reis * interp/nruncomp.boot (mkDomainCatName): Remove. * 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 Gabriel Dos Reis * interp/daase.lisp (DATABASE): Add new field CAPSULE-DEFINITIONS. (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 Gabriel Dos Reis * interp/database.boot (orderPredTran): Tidy. (interactiveModemapForm): Likewise. (getDCFromSystemModemap): Likewise. (getDomainFromMm): Likewise. (getAllModemapsFromDatabase): Likewise. (getModemapsFromDatabase): Likewise. (getSystemModemaps): Likewise. (getInCoreModemaps): Likewise. (flattenSignatureList): Likewise. 2011-10-28 Gabriel Dos Reis * interp/define.boot ($lisplibCategory): Remove. (compDefineCategory1): Adjust. (compDefineCategory2): Likewise. (compDefineCategory): Likewise. (compDefineFunctor1): Likewise. * interp/lisplib.boot (finalizeLisplib): Likewise. * interp/br-data.boot (getParentsFor): Lose last paramater. 2011-10-27 Gabriel Dos Reis * interp/sys-globals.boot ($lisplibModemapAlist): Remove. * 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-26 Gabriel Dos Reis * algebra/stream.spad.pamphlet (Stream): Tidy accessors. 2011-10-26 Gabriel Dos Reis Support use of any natural number literal as constant name. * 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-25 Gabriel Dos Reis * interp/postpar.boot (postSignature): Tidy. * interp/parse.boot (transCategoryItem): Remove as dead code. * interp/lisplib.boot (finalizeLisplib): Remove use of removeZeroOne. * interp/cattable.boot (categoryParts): Tidy. 2011-10-25 Gabriel Dos Reis * lisp/core.lisp.in (AxiomCore) [CCL]: Import and export FFI-related symbols. 2011-10-25 Gabriel Dos Reis * interp/compiler.boot (getFormModemaps): Tidy checking of "elt" and "setelt" modemaps. 2011-10-25 Gabriel Dos Reis * algebra/modmon.spad.pamphlet (ModMonic): Rename second parameter 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-24 Gabriel Dos Reis * algebra/perman.spad.pamphlet (Permanent): Specify type of local 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 Gabriel Dos Reis * interp/compiler.boot (compArgumentsAndTryAgain): Fail only if elaboration of all arguments fails. 2011-10-23 Gabriel Dos Reis * interp/compiler.boot (compOrCroak1): Drop last argument. Tidy. (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 Gabriel Dos Reis * interp/g-opt.boot ($VMsideEffectFreeOperators): Include %fdecode. * 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 Gabriel Dos Reis * interp/compiler.boot (compForm2): Simplify. Don't bother with subsumption. Exit early on empty modemap candidate list. 2011-10-22 Gabriel Dos Reis * interp/compiler.boot (compAtomWithModemap): Handle code-gen here. 2011-10-22 Gabriel Dos Reis * interp/br-op2.boot (htSayExplicitExports): Don't forget possible 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 Gabriel Dos Reis * boot/tokens.boot: Add new selectors: mapOperation, mapSignature, 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 Gabriel Dos Reis * algebra/boolean.spad.pamphlet (Boolean) [sample]: Remove definition, as it is not exported. 2011-10-21 Gabriel Dos Reis Workaround proclamation bug in GCL * boot/utility.boot (firstNonblankPosition): Do not declare. 2011-10-21 Gabriel Dos Reis * interp/define.boot (compDefineCapsuleFunction): Reimplement signature inference. (hasSigInTargetCategory): Implement what the documentation says: infer the signature from the target category, not local declaration. 2011-10-20 Gabriel Dos Reis * interp/define.boot (checkRepresentation): Prepare for general constant definition syntax. (compDefine1): Likewise. (compDefineCategory1): Likewise. (compDefineFunctor1): Likewise. (compDefineCapsuleFunction): Likewise. (doIt): Likewise. (isMacro): Tidy. 2011-10-20 Gabriel Dos Reis * interp/lisplib.boot (isDomainForm): Handle conditionals. 2011-10-19 Gabriel Dos Reis * interp/postpar.boot (postDef): Do not include list of nil forms 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 Gabriel Dos Reis * interp/postpar.boot (postNormalizeName): New. (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 Gabriel Dos Reis * interp/property.lisp: Move output-related content to i-output.boo. Remove. 2011-10-18 Gabriel Dos Reis * interp/postpar.boot (displayPreCompilationErrors): Dot not check 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-17 Gabriel Dos Reis * interp/spad-parser.boot (parseSegmentTail): Tidy. * 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 Gabriel Dos Reis * lisp/core.lisp.in: Add ref and deref to support references. * 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 Gabriel Dos Reis * algebra/boolean.spad.pamphlet (Boolean): Implement default 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 Gabriel Dos Reis * interp/spad-parser.spad: New parsing functions. * 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 Gabriel Dos Reis * algebra/boolean.spad.pamphlet (Reference) [elt]: Remove. [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-11 Gabriel Dos Reis * interp/lexing.boot (matchAdvanceKeyword): New. * 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 Gabriel Dos Reis * interp/lexing.boot (matchAdvanceString): New. * 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. 2011-10-10 Gabriel Dos Reis * interp/lexing.boot (matchString): New. * interp/fnewmeta.lisp: Use it. * interp/parsing.lisp: Likewise. (MATCH-STRING): Remove. 2011-10-10 Gabriel Dos Reis * interp/metalex.lisp (DEFUN-PARSE-TOKEN): Remove. Move remaining to parsing.lisp. * interp/fnewmeta.lisp (PARSE-IntegerTok): Remove. (PARSE-FloatTok): Likewise. (PARSE-FormalParameter): Likewise. (PARSE-FormalParameterTok): Likewise. (PARSE-String): Likewise. (PARSE-Name): Likewise. 2011-10-10 Gabriel Dos Reis * interp/postpar.boot: Remove functions and references to Scripts. 2011-10-08 Gabriel Dos Reis * interp/lexing.boot: New tokenizer functions. * interp/parsing.lisp: Use them. * interp/metalex.lisp: Likewise. (GET-SPECIAL-TOKEN): Remove. * interp/bootlex.lisp: Likewise. Remove old tokenizers, 2011-10-07 Gabriel Dos Reis * interp/lexing.boot: Include sys-macros. Add more tokenizer functions. * interp/fnewmeta.lisp: Use them. * interp/parsing.lisp: Likewise. * interp/bootlex.lisp: Likewise. * interp/spad.lisp: Likewise. (NEXT-BOOT-LINE): Remove. * interp/metalex.lisp: Remove old lexing routines. * interp/Makefile.in (lexing.$(FASLEXT)): Adjust dependency. * boot/tokens.boot: newString is no longer builtin library function. (shoeDictCons): Use makeString not newString. * lisp/core.lisp.in (listToString): Fix typo. 2011-10-05 Gabriel Dos Reis * lisp/core.lisp.in (eof?): New. (listToString): Likewise. (formatToString): Likewise. * boot/tokens.boot: Add fifth as builtin library function. 2011-10-04 Gabriel Dos Reis * interp/lexing.boot: Add support for Token abstract datatype. * interp/bootlex.lisp: Use it. * interp/fnewmeta.lisp: Likewise. * interp/metalex.lisp: Likewise. Remove old token structure and associated functions. 2011-10-04 Gabriel Dos Reis * interp/lexing.boot (stackClear!): Fix typo. Add new grammar reduction abstract datatype facility. * interp/fnewmeta.lisp: Use it. * interp/parsing.lisp: Likewise. * interp/bootlex.lisp (SPAD): Use popStack1. * interp/spad-parser.boot (parseSpadFile): Likewise. * interp/metalex.lisp: Remove REDUCTION and associated functions. 2011-10-04 Gabriel Dos Reis * interp/lexing.boot: New. * interp/metalex.lisp: Include it. Use new stack datatype support. * interp/parsing.lisp: Use new stack datatype support. * interp/Makefile.in: Adjust. 2011-10-03 Gabriel Dos Reis * boot/utility.boot (symbolAssoc): Rename from assocSymbol. Export. * interp/functor.boot: Remove getAbbreviation, mkAbbrev, addsuffix. * interp/sys-utility.boot (symbolAssoc): Remove as redundant. (scalarTarget): New. * interp/bc-matrix.boot: Use symbolTarget instead of symbolLassoc. * interp/br-con.boot: Use QLASSQ instead of symbolTarget. * interp/br-data.boot: Likewise. * interp/br-op1.boot: Likewise. * interp/br-prof.boot: Likewise. * interp/br-saturn.boot: Likewise. * interp/br-search.boot: Likewise. * interp/buildom.boot: Likewise. * interp/c-doc.boot: Likewise. * interp/c-util.boot: Likewise. * interp/cattable.boot: Likewise. * interp/clam.boot: Likewise. * interp/define.boot: Likewise. * interp/format.boot: Likewise. * interp/g-timer.boot: Likewise. * interp/g-util.boot: Likewise. * interp/ht-util.boot: Likewise. * interp/htsetvar.boot: Likewise. * interp/i-intern.boot: Likewise. * interp/i-map.boot: Likewise. * interp/i-object.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/lisplib.boot: Likewise. * interp/profile.boot: Likewise. * interp/trace.boot: Likewise. * interp/vmlisp.lisp (assoc): Tidy. 2011-10-03 Gabriel Dos Reis * interp/comp.lisp: Remove. * interp/setvart.boot: Remove setting of 'compiler' options. * interp/setvars.boot (setAsharpArgs): Remove. (describeAsharpArgs): Likewise. (setInputLibrary): Likewise. (setOutputLibrary): Likewise. (describeInputLibraryArgs): Likewise. (describeOutputLibraryArgs): Likewise. 2011-10-02 Gabriel Dos Reis * lisp/core.lisp.in: Do not use CCL in AxiomCore. * boot/translator.boot (packageBody): Tidy. * boot/scanner.boot (shoeOrdToNum): Remove. * boot/includer.boot (shoeBiteOff): Remove. (shoeFileName): Likewise. (shoeFnFileName): Likewise. 2011-10-01 Gabriel Dos Reis * boot/utility.boot (objectAssoc): New. Export. * boot/ast.boot: Use it. instead of ASSOC. * boot/translator.boot (packageBody): Tidy. * interp/astr.boot: Use objectAssoc instead of ASSQ. * interp/br-con.boot: Likewise. * interp/br-op1.boot: Likewise. * interp/br-saturn.boot: Likewise. * interp/buildom.boot: Likewise. * interp/c-util.boot: Likewise. * interp/category.boot: Likewise. * interp/clam.boot: Likewise. * interp/compiler.boot: Likewise. * interp/define.boot: Likewise. * interp/functor.boot: Likewise. * interp/g-util.boot: Likewise. * interp/i-coerce.boot: Likewise. * interp/i-coerfn.boot: Likewise. * interp/i-funsel.boot: Likewise. * interp/i-object.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/int-top.boot: Likewise. * interp/lisplib.boot: Likewise. * interp/msg.boot: Likewise. * interp/posit.boot: Likewise. * interp/termrw.boot: Likewise. * interp/trace.boot: Likewise. * interp/sys-utility.boot (upwardCut): New. * interp/spad.lisp: Use it. * interp/util.lisp: Likewise. * interp/spaderror.lisp: Likewise. * interp/vmlisp.lisp (ASSEMBLE): Remove. (ASSQ): Likewise. (MEMQ): Likewise. (NAMEDERRSET): Likewise. (ORADDTEMPDEFS): Likewise. * interp/macros.lisp (QLASSQ): Move to vmlisp.lisp. (LASSQ): Remove. 2011-10-01 Gabriel Dos Reis * boot/parser.boot (bpImport): Accept long names for used namespaces. * boot/translator.boot (packageBody): Tidy. (translateToplevel): Likewise. (getIntermediateLispFile): Likewise. * interp/sys-os.boot: Import System.Foreign. 2011-10-01 Gabriel Dos Reis * boot/utility.boot: Define BOOTTRAN namespace. (setUnion): New. (setDifference): New. * boot/translator.boot (packageBody): New. (translateToplevel): Use it. Translate namespace definition. * boot/tokens.boot: Replace bitmask with bitref. Do not translate setDifference and setUnion. * boot/parser.boot (bpDef): Now include namespace definition. (bpComma): Remove namespace rule as subsumed by Where rule. * boot/Makefile.in: Remove dependencies on initial-env.lisp. (AXIOM_LOCAL_LISP_sources): Remove as unused, (boot_sources): Remove as redundant with boot_SOURCES. * boot/initial-env.lisp: Remove. 2011-09-30 Gabriel Dos Reis * boot/utility.boot (firstNonblankPosition): New. (firstBlankPosition): Likewis. * boot/translator.boot (reallyPrettyPrint): New. (genOptimizeOptions): Use it. (evalBootFile): Tidy. (shoePPtoFile): Remove as deadcode. (shoeAddbootIfNec): Rewrite. (shoeAddStringIfNec): Remove. * boot/scanner.boot (shoeNextLine): Use firstNonblankPosition. (shoeEsc): Likewise. (shoePossFloat): Likewise. * boot/initial-env.lisp ($IEEE): Remove. (*LISP-BIN-FILETYPE*): Likewise. (*LISP-SOURCE-FILETYPE*): Likewise. (SHOEPRETTYPRINT1): Likewise, (REALLYPRETTYPRINT): Likewise. (SHOENOPRETTYPRINT): Likewise. (STRPOS): Likewise. (STRPOSL): Likewise. (shoeReadLisp): Likewise. 2011-09-30 Gabriel Dos Reis * interp/br-data.boot (lefts): Iterate directly over table. (mkUsersHashTable): Likewise. (mkDependentsHashTable): Likewise. (domainsOf): Likewise. * interp/br-op1.boot (dbShowOpAllDomains): Likewise. * interp/cattable.boot (showCategoryTable): Likewise. (displayCategoryTable): Likewise. (simpTempCategoryTable): Likewise. (simpCategoryTable): Likewise. (genTempCategoryTable): Likewise. (compressHashTable): Likewise. (updateCategoryTableForCategory): Likewise. (clearTempCategoryTable): Likewise. * interp/clam.boot (displayHashtable): Likewise. (reportHashCacheStats): Likewise. (reportInstantiations): Likewise. (globalHashtableStats): Likewise. * interp/guess.boot (buildWordTable): Likewise. * interp/i-syscmd.boot (writify): Likewise. * interp/scan.boot (scanDictCons): Likewise. (scanPunCons): Likewise. * interp/slam.boot (hashCount): Likewise. * interp/topics.boot (mkTopicHashTable): Likewise. (addTopic2Documentation): Likewise. (topics): Likewise. (listOfTopics): Likewise. * interp/word.boot (buildWordTable): Likewise. (writeFunctionTables): Likewise. (bootSearch): Likewise. 2011-09-30 Gabriel Dos Reis * boot/ast.boot (bfTableIteratorBindingForm): New. (bfExpandTableIters): Use it. * boot/initial-env.lisp (HKEYS): Remove. * boot/tokens.boot (shoeDictCons): Iterate directly over shoeKeyTable. (shoePunCons): Likewise. * boot/translator.boot (shoeReport): Iterate directly over $bootUsed. (shoeXReport): Likewise. 2011-09-29 Gabriel Dos Reis * boot/ast.boot (bfFor): Tidy. Handle hashtable iterator forms. (bfIterateTable): New. (separateIterators): Likewise. (bfExpandTableIters): Likewise. (bfLp1): Use them. 2011-09-20 Gabriel Dos Reis * algebra/annacat.spad.pamphlet: Remove. * algebra/routines.spad.pamphlet: Likewise. * algebra/functions.spad.pamphlet: Likewise. * algebra/tools.spad.pamphlet: Likewise. * algebra/cont.spad.pamphlet: Likewise. * algebra/fortran.spad.pamphlet: Likewise. * algebra/fortmac.spad.pamphlet: Likewise. * algebra/fortpak.spad.pamphlet: Likewise. 2011-09-19 Gabriel Dos Reis * algebra/asp.spad.pamphlet: Remove. * algebra/c02.spad.pamphlet: Likewise. * algebra/c05.spad.pamphlet: Likewise. * algebra/c06.spad.pamphlet: Likewise. * algebra/d01.spad.pamphlet: Likewise. * algebra/d02.spad.pamphlet: Likewise. * algebra/d03.spad.pamphlet: Likewise. * algebra/e01.spad.pamphlet: Likewise. * algebra/e02.spad.pamphlet: Likewise. * algebra/e04.spad.pamphlet: Likewise. * algebra/f01.spad.pamphlet: Likewise. * algebra/f02.spad.pamphlet: Likewise. * algebra/f04.spad.pamphlet: Likewise. * algebra/f07.spad.pamphlet: Likewise. * algebra/s.spad.pamphlet: Likewise. * algebra/d01Package.spad.pamphlet: Likewise. * algebra/d02Package.spad.pamphlet: Likewise. * algebra/d03Package.spad.pamphlet: Likewise. * algebra/e04Package.spad.pamphlet: Likewise. * algebra/d01agents.spad.pamphlet: Likewise. * algebra/d01routine.spad.pamphlet: Likewise. * algebra/d01transform.spad.pamphlet: Likewise. * algebra/d01weights.spad.pamphlet: Likewise. * algebra/d02agents.spad.pamphlet: Likewise. * algebra/d02routine.spad.pamphlet: Likewise. * algebra/d03agents.spad.pamphlet: Likewise. * algebra/d03routine.spad.pamphlet: Likewise. * algebra/e04agents.spad.pamphlet: Likewise. * algebra/e04routine.spad.pamphlet: Likewise. 2011-09-15 Gabriel Dos Reis * algebra/axtimer.as.pamphlet: Remove. * algebra/ffrac.as.pamphlet: Likewise. * algebra/herm.as.pamphlet: Likewise. * algebra/interval.as.pamphlet: Likewise. * algebra/invnode.as.pamphlet: Likewise. * algebra/invrender.as.pamphlet: Likewise. * algebra/invtypes.as.pamphlet: Likewise. * algebra/invutils.as.pamphlet: Likewise. * algebra/iviews.as.pamphlet: Likewise. * algebra/ndftip.as.pamphlet: Likewise. * algebra/nepip.as.pamphlet: Likewise. * algebra/noptip.as.pamphlet: Likewise. * algebra/nqip.as.pamphlet: Likewise. * algebra/nrc.as.pamphlet: Likewise. * algebra/nsfip.as.pamphlet: Likewise. 2011-09-15 Gabriel Dos Reis * algebra/alql.spad.pamphlet (IndexCard): Now satisfies CoercibleFrom String. Remove explicit coerce export. * algebra/carten.spad.pamphlet (CartesianTensor): Remove explicit coerce export. Add satisfaction of CoercibleFrom appropriate domains. * algebra/color.spad.pamphlet (Palette): Relace explicit coerce export with CoercibleTo %. * algebra/constant.spad.pamphlet (InnerAlgebraicNumber): Likewise. * algebra/dpolcat.spad.pamphlet (DifferentialVariableCategory): Likewise. 2011-09-13 Gabriel Dos Reis * utils/Makefile.in (libOpenAxiom_HEADERS): Include vm.H. (libOpenAxiom_SOURCES): Include vm.cc * utils/vm.cc: New. * utils/vm.H: Likwise. 2011-09-12 Gabriel Dos Reis * interp/g-opt.boot (optList): Tidy. 2011-09-11 Gabriel Dos Reis * interp/compiler.boot (finishLambdaExpression): Tidy. (extractCodeAndConstructTriple): Likewise. * interp/g-opt.boot (optCall): Likewise. ($VMsideEffectFreeOperators): Include %function * interp/lisp-backend.boot: Translate %function. 2011-09-11 Gabriel Dos Reis * interp/lisplib.boot (isFunctor): Noe recognize Mapping as a functor. * interp/g-opt.boot (doInlineCall): Tidy one more time. ($VMsideEffectFreeOperators): Move %aplly to $simpleVMoperators. (optLET): Remove as unused. * interp/lisp-backend.boot (expandApply): New. Register as expander for %apply forms. * interp/define.boot (getXmode): New. (displayMissingFunctions): Use it instead of getmode. (compDefineCapsuleFunction): Likewise. (addDomain): Likewise. (getSignature): Likewise. (compile): Likewise. (compJoin): Likewise. * interp/compiler.boot (comp3): Likewise. (compWithMappingMode): Likewise. (applyMapping): Generate %apply form. (compApplication): Likewise. (autoCoerceByModemap): Likewise. (extractCodeAndConstructTriple): Handle %apply forms. (setqSingle): For domain variables, put corresponding macro forms in the environment. * algebra/ore.spad.pamphlet (Automorphism): Define Rep as a constant. Adjust; include explicit uses of rep and per. 2011-09-10 Gabriel Dos Reis Remove IndexedList. * algebra/list.spad.pamphlet (IndexedList): Fold definition into List. Remove. * algebra/exposed.lsp.pamphlet: Don't expose ILIST. * algebra/Makefile.in: Adjust. 2011-09-10 Gabriel Dos Reis * interp/g-opt.boot (doInlineCall): Tidy. (canInlineVarDefinition): Likewise. 2011-09-10 Gabriel Dos Reis * interp/macros.lisp (COERCE-FAILURE-MSG): Remove. (check-subtype): Likewise. (check-union): Likewise. (MAKE-REASONABLE): Move to diagnostic.boot. Rename. (assert): Move to sys-macros.lisp. * interp/g-opt.boot ($VMsideEffectFreeOperators): Include %retract and %pullback. (optRetract): Tidy. (optPullback): New. * interp/diagnostics.boot (makeReasonable): New. (moanRetract): Likewise. Use it. * interp/buildom.boot (mkNewUnionFunList): Simplify. (mkUnionFunList): Likewise. 2011-09-10 Gabriel Dos Reis * interp/g-opt.boot (doInlineCall): New. (optCall): Use it to implement inline functions. ($VMsideEffectFreeOperators): Include %apply and STRINGIMAGE. ($simpleVMoperators): STRINGIMAGE is promoted. (canInlineVarDefinition): Tidy. (optBind): Likewise. 2011-09-09 Gabriel Dos Reis * interp/g-opt.boot (optXLAMCond): Remove as useless. (optCONDtail): Likewise. 2011-09-09 Gabriel Dos Reis * interp/g-opt.boot (optIadd): Remork. (optIsub): Likewise. (optIdec): New. * algebra/string.spad.pamphlet (IndexedString): Fold definition into String. Remove. (Character): Tidy. (CharacterClass): Likewise. * algebra/exposed.lsp.pamphlet: Do not expose ISTRING. 2011-09-09 Gabriel Dos Reis * algebra/syntax.spad.pamphlet (Identifier): Remove CoercibleTo Symbol and CoercibleTo String properties. * algebra/symbol.spad.pamphlet (Symbol): Make RetractableTo Identifier. 2011-09-08 Gabriel Dos Reis * algebra/op.spad.pamphlet (BasicOperator): Use string$String instead of coercion from Identifier to String. 2011-09-08 Gabriel Dos Reis * algebra/string.spad.pamphlet (String) [string]: New overload to convert from Identifier. 2011-09-08 Gabriel Dos Reis * interp/c-util.boot (builtinCategoryName?): Move to g-util.boot. (builtinFunctorName?): Likewise. (builtinConstructor?): Likewise. (superType): Exit early if builtin functor or non-domain form. * algebra/Makefile.in: Flesh out bootstrap dependencies. 2011-09-07 Gabriel Dos Reis * interp/sys-globals.boot ($clamList): Do not include hasFileProperty. * interp/database.boot (loadDBIfnecessary): Tidy. * interp/clammed.boot (hasFileProperty): Remove as unused. * interp/lisplib.boot (putFileProperty): Likewise. (getLisplib): Likewise. (getLisplibNoCache): Likewise. (getFileProperty): Likewise. (hasfilePropertyNoCache): Likewise. (unInstantiate): Likewise. (killNestedInstantiations): Likewise. (isNestedInstantiations): Likewise. (loadFunctor): Likewise. (getLisplibVersion): Likewise. (Operators): Likewise. (compDefineLisplib): Don't LOCALDATABASE if building system algebra. 2011-09-07 Gabriel Dos Reis * interp/lisplib.boot (finalizeLisplib): Finalize documentaion only if not bootstrapping. (isFunctor): Tidy. * interp/g-util.boot (superType): Tidy. * interp/database.boot (getDualSignature): Rename from getDualSignatureFromDB. Adjust callers. * interp/c-util.boot (isKnownCategory): Remove. (diagnoseUnknownType): Use isCategoryForm. * interp/bootlex.lisp (GET-INTEGER-IN-RADIX): Use SPAD_SYNTAX_ERROR. * interp/metalex.lisp (GET-STRING-TOKEN): Likewise. * interp/parsing.lisp (MUST): Likewise. * algebra/boolean.spad.pamphlet (Refrence) [coerce]: Bypass conversion to Identifier. * algebra/domain.spad.pamphlet (ContructorKind): Tidy. 2011-09-07 Gabriel Dos Reis * interp/nruncomp.boot (NRTaddInner): Use the dual signature. * interp/lisplib.boot (writeDualSignature): New. (finalizeLisplib): Likewise. * interp/define.boot (compDefineCategory2): Compute dual signature. (compDefineFunctor1): Likewise. * interp/daase.lisp (LOCALNRLIB): Juts read dual signature info; don't compute it. 2011-09-07 Gabriel Dos Reis * interp/define.boot (compDefineFunctor1): Augment the envionment with current instantiation. * interp/c-util.boot (isSubset): Accept values of current instantiation as values of the current domain. 2011-09-07 Gabriel Dos Reis * interp/compiler.boot (compImport): Don't do anything if bootstrapping: there is no much to import for now. * interp/define.boot (getOperationAlist): Get the isFunctor property directly. (addDomain): Call isDomainForm. 2011-09-06 Gabriel Dos Reis * interp/lisplib.boot (isFunctor): Tidy. 2011-09-06 Gabriel Dos Reis * interp/define.boot (compDefineFunctor1): Set dbConstructorModemap before compiling functor body. 2011-09-05 Gabriel Dos Reis * interp/define.boot: Use DB for current constructor. (mkCategoryPackage): Category defaults are packages, not domains. * interp/functor.boot (encodeFunctionName): Use current constructor DB. First argument is now a DB. Adjust caller. * algebra/domain.spad.pamphlet (DomainConstructo) [functorData]: Use getInfovec. 2011-09-05 Gabriel Dos Reis Stop using LOADED symbol property of constructors. * interp/daase.lisp (DATABASE) [LOAD-PATH]: New field. (dbLoadPath): New accessor. (INITIAL-GETDATABASE): Tidy. * interp/database.boot: Use dbLoadPath and dbLoaded?. * interp/lisplib.boot: Likewise. * interp/nrunfast.boot: Likewise. * interp/showimp.boot: Likewise. * interp/br-util.boot (isLoaded?): Remove as unused. 2011-09-05 Gabriel Dos Reis * interp/define.boot: Remove $LISPLIB. * interp/functor.boot: Likewise. * interp/lisplib.boot: Likewise. * interp/patches.lisp: Likewise. * interp/sys-globals.boot: Likewise. 2011-09-05 Gabriel Dos Reis * interp/define.boot (compDefineFunctor1): Do not set $lisplibFunctions. * interp/lisplib.boot: Remove $lisplibOpAlist. * interp/nruncomp.boot: Likewise. 2011-09-05 Gabriel Dos Reis * interp/nruncomp.boot (updateSlot1DataBase)e: Remove. (newLookupInCategories1): Remove. (newLookupInCategories): Do not call it. * interp/define.boot ($isOpPackageName): Remove. (compDefinFunctor1): Do not emit slot1 database info for category defaulta. ($lisplibSlot1): Remove. * interp/lisplib.boot: Likewise. (finalizeLisplib): Do not write slot1 info. 2011-09-04 Gabriel Dos Reis * interp/lisplib.boot (writeCategory): New, (finalizeLisplib): Use it. Write category bodies in generated Lisp code file. * interp/daase.lisp (GETDATABASE) [CONSTRUCTORCATEGORY]: Don't bother with package and domain constructors. * interp/database.boot (getConstructorCategory): Rename from getConstructorCategoryFromDB. Reimplement, Adjusr callers. 2011-09-04 Gabriel Dos Reis * interp/daase.lisp (GETDATABASE): Do not handle PREDICATES and ATTRIBUTES selectors anymore. * interp/database.boot (getConstructorPredicates): Rename from getConstructorPredicatesFromDB. Adjust callers. (getConstructorAttributes): Rename from getConstructorAttributesFromDB. Adjust callers. 2011-09-04 Gabriel Dos Reis * interp/lisplib.boot (writeAbbreviation): New. (writePredicates): Likewise. (finalizeLisplib): Use them. * interp/daase.lisp (squeezeCopy): New, Use it in place of SQUEEZE. 2011-09-04 Gabriel Dos Reis * interp/lisplib.boot: Likewise. * interp/define.boot: Remove $lisplibAncestors. 2011-09-04 Gabriel Dos Reis * interp/br-data.boot: Don't use $lisplibParents. * interp/define.boot: Likewise. * interp/lisplib.boot: Likewise. 2011-09-03 Igor Pashev Gabriel Dos Reis * lib/pixmap.c: Include standard header. * include/xpm.h: Remove. 2011-09-03 Gabriel Dos Reis * interp/property.lisp: Remove unused codes. * interp/g-util.boot (superType): If domain is $ then use current information. * interp/daase.lisp: Tidy. * interp/c-util.boot (extendsCategoryForm): Temporarily disable uses of information not coming from on-the-fly category compilation. * interp/br-data.boot (getParentsFor): Change first parameter to a DB. Adjust callers. * algebra/Makefile.in: Adjust dependencies. 2011-08-30 Gabriel Dos Reis * algebra/Makefile.in: Simplify bootstrap rules. Build initdb.daase before bootstrap. 2011-08-29 Gabriel Dos Reis * interp/lisplib.boot (laodIfNecessaryAndExists): Remove as unused. (loadLibIfnecessary): Fold definition into loadIfNecessary. (loadDB): New. (writeAttributes): Likewise. (finalizeLisplib): Use it. * interp/daase.lisp (MAKE-DATABASES): Fix SQUEEZE snafu. * interp/c-util.boot (extendsCategoryForm): Prefer existing translation of category definition to re-evaluation on the fly. 2011-08-29 Gabriel Dos Reis * interp/lisplib.boot (loadLib): Remove deadcode. (isDomainForm): Tidy. (isFunctor): Likewise. (compDefineExports): Remove as no longer used. * interp/sys-utility.boot (loadExports): Likewise. * interp/g-util.boot (get0, get1, get2): Tidy. 2011-08-29 Gabriel Dos Reis * interp/lisplib.boot (writePrincipals): New. (finalizeLisplib): Use it. 2011-08-28 Gabriel Dos Reis * interp/define.boot (compDefineCategory2): Mark begining and end of definition processing. (compDefineFunctor1): Likewise. * interp/daase.lisp (dbPrincipals): New accessor. * interp/br-data.boot (getDefaultPackageClients): Fix thinko. * interp/lisplib.boot (writeAncestors): New. (finalizeLisplib): Use it 2011-08-27 Gabriel Dos Reis * interp/lisplib.boot (writeInstanceCache): Remove. (finalizeLisplib): Don't call it. 2011-08-27 Gabriel Dos Reis * interp/daase.lisp (DATABASE): Add new field BEING-DEFINED. (dbBeingMacro?): New accessor. (GETDATABASE): Tidy. 2011-08-25 Gabriel Dos Reis Remove $lisplibAttributes. * interp/define.boot (compDefineFunctor1): Tidy. (compCapsuleInner): Add a DB first parameter. Adjust callers. * interp/lisplib.boot (NRTgenInitialAttributeAlist): Likewise. (simplifyAttributeAlist): Likewise. * interp/nruncomp.boot (changeDirectoryInSlot1): Likewise. (buildFunctor): Change first parameter to DB. Adjust caller. 2011-08-25 Gabriel Dos Reis * interp/lisplib.boot (autoLoad): Lose first parameter. Adjust callers. (unloadOneConstructor): Likewise. * interp/category.boot (isCategoryForm): Rewrite. * interp/patches.lisp (mkAutoLoad): Move to lisplib.boot. 2011-08-25 Gabriel Dos Reis * interp/compiler.boot (compHasFormat): Take environment argument. Adjust callers. * interp/define.boot (NRTmakeCategoryAlist): Likewise. * interp/functor.boot (ProcessCond): Likewise. * interp/lisplib.boot (NRTgenFinalAttributeAlist): Likewise. (predicateBitIndex): Likewise. (predicateBitRef): Likewise. (makePredicateBitVector): Likewise. (transHasCode): Likewise. 2011-08-25 Gabriel Dos Reis * interp/hashcode.boot: Remove. *interp/interop.boot: Move OpenAxiom relevant code to define.boot and nrunfast.boot. Remove. 2011-08-25 Gabriel Dos Reis * interp/define.boot ($mutableDomain): Remove. Adjust users. ($mutableDomains): Likewise. * interp/database.boot (dbMutable?): Remove. * interp/clam.boot (addToclam): Remove as unused. * algebra/modmon.spad.pamphlet: Do not make MoMonic mutable. * algebra/defaults.spad.pamphlet: Do not make RepeatedSquaring and RepeatedDoubling, FiniteLinearAggregateSort mutable. 2011-08-24 Gabriel Dos Reis * interp/daase.lisp (dbArity, dbInstanceCache): New accessors. * interp/database.boot (loadDBIfnecessary): New. (dbMutable?): Likewise. * interp/lisplib.boot (finalizeLisplib): Record mutable property. 2011-08-23 Gabriel Dos Reis * algebra/Makefile.in: Support construction initial DB profile. * interp/database.boot (printInitdbInfo): New. (printAllInitdbInfo): Likewise. * interp/sys-driver.boot (initializeDatabases): Exit early if constructing initial DB profile. (buildInitdbHandler): New. Handle --build-initdb. * utils/command.cc (driver_table): Add map for --build-initdb. 2011-08-23 Gabriel Dos Reis * interp/sys-driver.boot (initializeDatabases): New. (initializeGlobalState): Use it. * interp/spad-parser.boot (parseSpadFile): Tidy. * interp/g-cndata.boot (installConstructor): Exit early it global table not initialized. * interp/database.boot (makeInitialDB): New. (populateDBFromFile): Likewise. * interp/daase.lisp: Introduce more DB accessors. * interp/br-util.boot (dbSourceFile): Remove. * interp/br-con.boot (kdPageInfo): Use getConstructorSourceFileFromDB instead of dbSourceFile. (kPage): Likewise. * algebra/Makefile.in (SPADFILES): Include domain.spad 2011-08-22 Gabriel Dos Reis * interp/sys-driver.boot (initializeGlobalState): Construct database tables if algebra is not complete yet. * interp/Makefile.in (${SAVESYS}): Simplify. * algebra/Makefile.in (strap-stamp): Make the destination directory. 2011-08-22 Gabriel Dos Reis * interp/metalex.lisp (LINE-HANDLER, NEXT-LINE, XCAPE): Remove. (XTOKENREADER, GET-TOKEN, NEXT-META-LINE): Likewise. (META_ERROR_HANDLER, META-SYNTAX-ERROR, META-META-ERROR-HANLER): Likewise. * interp/debug.lisp: Do not set /XCAPE property. * interp/bootlex.lisp (INIT-BOOT/SPAD-READER): Do not set XTOKENRADER, LINE-HANDLER, META_ERROR_HANDLER. 2011-08-22 Gabriel Dos Reis * interp/daase.lisp: Remove NILADIC field from DATABASE structure. (dbNiladic?): Remove. Adjust users. (WRITE-INTERP): Don't write NILADIC field. 2011-08-22 Gabriel Dos Reis * interp/define.boot (substNames): Lose second parameter. Adjust callsers. (evalAndSub): Likewise. (augModmapsFromCategory): Likewise. (genDomainView): Likewise. (augModemapsFromCategoryRep): Remove as deadcode. (genDomainOps): Lose first parameter. Adjust callers. 2011-08-21 Gabriel Dos Reis * interp/database.boot (getConstructorModemap): Rename from getConstructorModemapFromDB. Adjust callers. 2011-08-21 Gabriel Dos Reis * interp/database.boot (niladicConstructor?): Rename from niladicConstructorFromDB. Use getConstructorFormFromDB. Adjust callers. 2011-08-21 Gabriel Dos Reis * interp/define.boot ($lisplibAbbreviation): Remove. Adjust users. ($lisplibForm): Likewise. * interp/c-doc.boot (finalizeDocumentation): Take constructor's name as parameter. Adjust callers. * interp/lisplib.boot (compileDocumentation): Likewise. (WriteKind): New. (writeConstructorForm): Likewise. (writeOperations): Likewise. (WriteConstructorModemap): Likewise. (finalizeLisplib): Use them. 2011-08-21 Gabriel Dos Reis * interp/lisplib.boot (leaveIfErrors): Take kind as argument. (writeInfo): New. (writeSuperDomain): Likewise. (finalizeLisplib): Use it. Take constructor as argument. * interp/define.boot ($lisplibSuperDomain): Remove. Adjust users. ($lisplibKind): Remove Adjust users. (emitSubdomainInfo): Set dbSuperDomain. (incompleteFunctorBody): Likewise. * interp/daase.lisp: Add new database accessors. (GETDATABASE): Fix handling of superDomain property. * interp/br-util.boot (dbConstructorKind): Remove. * interp/br-con.boot: Remove deadcode. (dbShowCons1): Adjust. * interp/br-saturn.boot (dbShowConsKinds): Likewise. 2011-08-21 Gabriel Dos Reis * interp/sys-globals.boot ($compileExportOnly): Remove. * interp/sys-driver.boot (initializeGlobalState): Don't set it. * interp/define.boot (skipCategoryPackage?): Adjust. (compDefineFunctor): Likewise. (compDefineFunctor1): Likewise. (incompleteFunctorBody): New. (compFunctorBody): Use it. 2011-08-20 Gabriel Dos Reis * interp/sys-utility.boot (constructorDB): New. * interp/daase.lisp (dbNiladic?): New. Use it to access niladic property. of a constructor. * interp/database.boot: Import daase. (niladicContructorFromDB): Use it. * interp/define.boot (compDefineCategory): Don't write compilerInfo garbage. (compDefineFunctor1): Likewise. (compDefineCategory2): Set niladic property. (compDefineFunctor): Likewise. * interp/lisplib.boot (loadLib): Do not set niladic property. It is now a side-effect of loading. (loadLibNoUpdate): Do not check for version. (makeConstructorAutoload): Do not set niladic property. (initializeLisplib): Do not emit code to check version. (mkCtorDBForm): New. (writeNiladic?): Likewise. (finalizeLisplib): Do not set niladic property. * interp/patches.lisp: Remove deadcode. * interp/sys-constants.boot (MAJOR-VERSION): Remove. 2011-08-20 Gabriel Dos Reis * algebra/polycat.spad.pamphlet (UnivariatePolynomialCategory) [divide]: Tidy. * algebra/Makefile.in (strap-0/%.$(FASLEXT)): Copy generated Lisp files if keeping intermediate files. 2011-08-19 Gabriel Dos Reis * interp/category.boot (mkOr): Taken environment as parameter. Adjust callers. (mkOr2): Likewise. (mkAnd): Likewise. (mkAnd2): Likewise. (FindFundAncs): Likewise. (CatEval): Likewise. (AncestorP): Likewise. (CondAncestorP): Likewise. (DescendantP): Likewise. * interp/compiler.boot (compMapCond): Likewise. (compMapCond'): Likewise. * interp/define.boot (formatPred): Likewise. (formatInfo): Likewise. (addInfo): Likewise. (knownPred): Likewise. * interp/functor.boot (InvestigateConditions): Likewise. (ICformat): Likewise. 2011-08-18 Alfredo Portes * sman/sman.c: Do not try to start graphic components if binaries are not present. * include/cfuns.h: Make writeablep and readablep arguments const. * lib/cfuns-c.c: Likewise. 2011-08-18 Gabriel Dos Reis * interp/momdemap.boot: Fold content into compiler.boot and define.boot. Remove. * Makefile.in: Adjust dependencies. 2011-08-18 Gabriel Dos Reis * interp/c-util.boot: Use category accessors. * interp/category.boot: Likewise. * interp/modemap.boot: Likewise. 2011-08-18 Gabriel Dos Reis * interp/c-util.boot (categoryAssociatedTypes): Rename from categoryHierarchy. Adjust callers. (categoryPrincipals): New. (categoryAncestors): Likewise. (categoryLocals): Likewise. (categoryParameters): Likewise. (extendsCategoryForm): Use them. * interp/category.boot: Likewise. * interp/cattable.boot: Likewise. * interp/define.boot: Likewise. * interp/functor.boot: Likewise. * interp/modemap.boot: Likewise. * interp/nruncomp.boot: Likewise. * interp/database.boot (getCategoryAttributes): Remove. (getPrincipalAncestors): Likewise. (getCategoryParents): Likewise. * algebra/domain.spad.pamphlet (Category): Adjust. 2011-08-16 Gabriel Dos Reis * interp/c-util.boot (categoryPrincipals): New. (categoryAncestors): Likewise. * interp/functor.boot (DescendCodeAdd): Tidy. (DescendCodeVarAdd): Fix thinko. Iterator over $domainShell. Don't pretend constants have ELT implementations. * interp/nruncomp.boot (buildFunctor): Tidy. 2011-08-16 Gabriel Dos Reis * interp/modemap.boot (addModemap0): Don't special-case CategoryDefaults. * interp/define.boot (processFunctor): Fold into caller. Remove. * interp/clam.boot (recordInstantiation1): Do not special case CategoryDefaults and RepeatedSquaring. * interp/functor.boot (DescendCode): Lose last argument, for it is always $. Adjust body. Adjust caller. * interp/nruncomp.boot (buildFunctor): $catNames should not be a fluid variable. Rename to viewNames. 2011-08-15 Gabriel Dos Reis * interp/functor.boot (setVector0, setVector12, setVector3, mkDomainFomer, setVector5, mkVectorWithDeferral): Remove as dead codes. 2011-08-14 Gabriel Dos Reis * interp/g-opt.boot (optCollectVector): Generate VM forms. (optIinc): New. Register as new transformer. * interp/c-util.boot ($middleEndMacroList): Remove. (middleEndExpand): Don't check for Lisp-level macros anymore. 2011-08-14 Gabriel Dos Reis * interp/compiler.boot (compSeq1): Tidy. (cpmpSeqItem): Likewise. (replaceExitEtc): Likewise. (massageLoop): Don't check for TAGGEDexit anymore. 2011-08-14 Gabriel Dos Reis * interp/lisp-backend.boot ($freeVarName): New global constant. (loopVarInit): New. (expandIN): Use it. (expandON): Likewise. (expandSTEP): Likewise. (massageFreeVarInits): New. (expandLoop): Use it. * interp/fnewmeta.lisp (PARSE-QuantifiedVariable): Tidy. (PARSE-AnyId): Likewise. (PARSE-Variable): New. Allow scope-of-type specification for loop variable. (PARSE-Iterator): Use it. * interp/compiler.boot (massage_llop): Don't check $mayHaveFreeIteratorVariables. (compRepeatOrCollect): Don't bind it. (classifyIteratorVariable): New. (complainIfShadowing): Remove as no longer needed. (compStepIterator): Use it. Tidy. (compONIterator, compINIterator): New. Split out of compIterator. (compIterator): Refactor. * interp/functor.boot (optFunctorBody): Fix thinko. * interp/g-opt.boot (optCollectVector): A STEP iterator may have a storage class. * algebra/clip.spad.pamphlet: Fix loop variable scope. * algebra/ffpoly.spad.pamphlet: Likewise. * algebra/fparfrac.spad.pamphlet: Likewise. * algebra/gdpoly.spad.pamphlet: Likewise. * algebra/ghensel.spad.pamphlet: Likewise. * algebra/groebsol.spad.pamphlet: Likewise. * algebra/intfact.spad.pamphlet: Likewise. * algebra/matfuns.spad.pamphlet: Likewise. * algebra/moddfact.spad.pamphlet: Likewise. * algebra/numtheor.spad.pamphlet: Likewise. * algebra/permgrps.spad.pamphlet: Likewise. * algebra/pfbr.spad.pamphlet: Likewise. * algebra/pgcd.spad.pamphlet: Likewise. * algebra/pleqn.spad.pamphlet: Likewise. * algebra/pseudolin.spad.pamphlet: Likewise. * algebra/radeigen.spad.pamphlet: Likewise. * algebra/radix.spad.pamphlet: Likewise. * algebra/regset.spad.pamphlet: Likewise. * algebra/rep2.spad.pamphlet: Likewise. * algebra/sgcf.spad.pamphlet: Likewise. * algebra/smith.spad.pamphlet: Likewise. * algebra/sregset.spad.pamphlet: Likewise. * algebra/syssolp.spad.pamphlet: Likewise. * algebra/zerodim.spad.pamphlet: Likewise. * algebra/crfp.spad.pamphlet: Remove capsule-level declaration of local variables. * algebra/galfact.spad.pamphlet: Likewise. * algebra/mathml.spad.pamphlet: Likewise. * algebra/numode.spad.pamphlet: Likewise. * algebra/tex.spad.pamphlet: Likewise. * algebra/updecomp.spad.pamphlet: Likewise. 2011-08-13 Gabriel Dos Reis * interp/compiler.boot (compRepeatOrCollect): Set $loopKind directly. (complainIfShadowing): Don't complain when collecting. * algebra/contfrac.spad.pamphlet: Remove capsule-level declaration of local variables. * algebra/cycles.spad.pamphlet: Likewise. * algebra/cyclotom.spad.pamphlet: Likewise. * algebra/ddfact.spad.pamphlet: Likewise. * algebra/fortpak.spad.pamphlet: Likewise. * algebra/lingrob.spad.pamphlet: Likewise. * algebra/numode.spad.pamphlet: Likewise. * algebra/numquad.spad.pamphlet: Likewise. * algebra/out.spad.pamphlet: Likewise. * algebra/perman.spad.pamphlet: Likewise. * algebra/view2D.spad.pamphlet: Likewise. 2011-08-13 Gabriel Dos Reis * algebra/integer.spad.pamphlet (Integer): Remove attribute infinite. 2011-08-13 Gabriel Dos Reis * interp/c-util.boot (instantiationArgs): New. (domainDirectory): Likewise. (domainLookupFunction): Likewise. (domainOperatorTable): Likewise. (domainAttributes): Likewise. (domainPredicates): Likewise. (domainData): Likewise. * interp/buildom.boot: Use new domain accessors. * interp/functor.boot: Likewise. * interp/interop.boot: Likewise. * interp/nruncomp.boot: Likewise. * interp/nrunfast.boot: Likewise. 2011-08-12 Gabriel Dos Reis * boot/ast.boot (shoeCompTran1): Translate extended vector-forms. * interp/c-util.boot: Use vector instead of LIST2VEC. * interp/define.boot: Likewise. * interp/i-coerce.boot: Likewise. * interp/i-coerfn.boot: Likewise. * interp/i-funsel.boot: Likewise. * interp/i-map.boot: Likewise. * interp/i-special.boot: Likewise. * interp/interop.boot: Likewise. * interp/nruncomp.boot: Likewise. * interp/slam.boot: Likewise. 2011-08-12 Gabriel Dos Reis * interp/nrunfast.boot (newLookupInTable): Compare domain and dollar as objects, not as value. (newLookupInCategories): Remove deadcode. (newExpandGoGetTypes): Remove as unused. 2011-08-11 Gabriel Dos Reis * interp/define.boot (NRTgetLookupFunction): Handle the case where the base domain is a parameter. * interp/g-util.boot (formalVarNumber): New. * lisp/core.lisp.in (readIntegerIfCan): Likewise. 2011-08-11 Gabriel Dos Reis * interp/define.boot (extendsCategoryBasic): Handle attribute third argument too. 2011-08-10 Gabriel Dos Reis * interp/lisp-backend.boot (expandBytevec2str): Use MAP instead of COERCE. Eliminate second argument. (expandStr2bytevec): Use MAP instead of COERCE. * algebra/data.spad.pamphlet (ByteBuffer) [coerce]: Adjust call to %bytevec2str. 2011-08-10 Gabriel Dos Reis * algebra/float.spad.pamphlet (Float): Tidy. * algebra/fortmac.spad.pamphlet (MachineInteger): Likewise. * algebra/fspace.spad.pamphlet (FunctionSpace): Likewise. * algebra/integer.spad.pamphlet (Integer): Likewise. * algebra/mkfunc.spad.pamphlet (InputForm): Likewise. * algebra/newpoly.spad.pamphlet (RecursivePolynomialCategory): Likewise. * input/knot.input.pamphlet: Likewise. * input/knot2.input.pamphlet: Likewise. * input/mult3d.input.pamphlet: Likewise. * input/multKnot.input.pamphlet: Likewise. * input/r21bugsbig.input.pamphlet: Likewise. * input/tutchap2.input.pamphlet: Likewise. 2011-08-10 Gabriel Dos Reis * algebra/Makefile.in (oa_strap_0_sources): Don't include OM. (axiom_algebra_layer_0): Don't include OM, OMCONN, OMDEV. (axiom_algebra_layer_4): Don't include OMENC. (axiom_algebra_layer_14): Don't include OMPKG. (axiom_algebra_layer_19): Don't include OMERR, OMERRK. (axiom_algebra_layer_20): Don't include OMEXPR. * algebra/omcat.spad.pamphlet: Remove. * algebra/omdev.spad.pamphlet: Remove. * algebra/omerror.spad.pamphlet: Remove. * algebra/omserver.spad.pamphlet: Remove. * algebra/openmath.spad.pamphlet: Remove. 2011-08-09 Gabriel Dos Reis * interp/setvart.boot: Remoe OpenMath description. * interp/setvars.boot (setOutputOpenMath): Remove. (describeOutputOpenMath): Likewise. * algebra/Makefile.in (axiom_algebra_layer_14): Don't include OMSERVER. * algebra/float.spad.pamphlet (Float): Remove OpenMath exports. * algebra/fraction.spad.pamphlet (Fraction): Likewise. * algebra/gaussian.spad.pamphlet (Complex): Likewise. * algebra/integer.spad.pamphlet (Integer): Likewise. * algebra/list.spad.pamphlet (List): Likewise. * algebra/sf.spad.pamphlet (DoubleFloat): Likewise. * algebra/si.spad.pamphlet (SingleInteger): Likewise. * algebra/string.spad.pamphlet (String): Likewise. * algebra/symbol.spad.pamphlet (Symbol): Likewise. 2011-08-08 Gabriel Dos Reis * interp/define.boot (NRTgetLookupFunction): Take an environment argument. Adjust caller. (NRTextendsCategory1): Likewise. (extendsCategory): Likewise. (extendsCategoryBasic): Likewise. (catExtendsCat?): Likewise. 2011-08-08 Gabriel Dos Reis * interp/c-util.boot (categoryHierarchy): New. * interp/category.boot (mkCategory): Use it. * interp/define.boot (NRTgetLookupFunction): Tidy. (catExtendsCat?): Lose last argument. Adjust callers. 2011-08-07 Gabriel Dos Reis * interp/define.boot (templateVal): Fold into expantTypeArgs. Remove. 2011-08-05 Gabriel Dos Reis * interp/define.boot (extendsCategoryBasic0): Fold into extendsCategoryBasic. Remove. 2011-08-05 Gabriel Dos Reis * boot/tokens.boot: Remove unused and antiquated tokens. * interp/i-output.boot: Escape caret. 2011-08-05 Gabriel Dos Reis * algebra/boolean.spad.pamphlet (Boolean) [test]: Remove. 2011-08-04 Gabriel Dos Reis * boot/ast.boot (bfFlattenSeq): Rewrite. (bfMKPROGN): Tidy. 2011-08-03 Gabriel Dos Reis * boot/ast.boot (bfSTEP): Synthetize artificial variable for unnamed loop index. 2011-07-14 Gabriel Dos Reis * boot/ast.boot (bfIS1): Tidy test for cons cells. 2011-07-13 Gabriel Dos Reis * interp/functor.boot (CategoryPrint): Move from category.boot. (DomainPrint1): Tidy. (PacPrint): Likewise. (DomainPrintSubst): Likewise. 2011-07-13 Gabriel Dos Reis * boot/tokens.boot: copyString, copyTree, and copyVector are now builtin library functions. * interp/br-util.boot: Use copyVector instead of COPY-SEQ. * interp/category.boot: Likewise. * interp/define.boot: Likewise. * interp/functor.boot: Likewise. * interp/i-coerfn.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/newfort.boot: Likewise. 2011-07-13 Gabriel Dos Reis * interp/category.boot: Remove dead codes. * interp/define.boot (hasFullSignature): Tidy. 2011-07-10 Gabriel Dos Reis * interp/c-util.boot (categoryExports): New. * interp/category.boot (mkCategory): Use it. (DropImplementations): Tidy. 2011-07-07 Gabriel Dos Reis * gui/debate.cc (start_interpreter): Do not forget core command line options. Separate them from options to the base Lisp runtime system. 2011-07-05 Gabriel Dos Reis * interp/br-util.boot ($charUnderscore): Move to br-search.boot where it is used. * interp/br-search.boot (pmPreparse): Tidy. (mkGrepPattern1): Likewise. (genSearch): Don't try to remove default operations; they have already been left out by grepSplit. (docSearch): Likewise. * interp/br-con.boot (dbShowConsDoc1): Don't confusingly enclose a straightline documentation in a list. * interp/br-op1.boot (dbShowOpDocumentation): Remove redundant test. * interp/br-op2.boot (kFormatSlotDomain): Call isConstructorName only on identifiers. * interp/br-saturn.boot (displayDomainOp): Tidy. (bcConform1): Likewise. 2011-07-05 Gabriel Dos Reis * gui/gui.pro.in [Mac OS X]: Don't build application bundle. 2011-07-04 Gabriel Dos Reis * graph/view2D/process2d.c: Include "cfuns.h? before other local headers. * graph/view2D/control2d.c: Likewise. * graph/view2D/main2d.c: Likewise. * graph/view3D/process3d.c: Likewise. * graph/view3D/main3d.c: Likewise. * graph/view3D/surface3d.c: Likewise. 2011-07-04 Gabriel Dos Reis * interp/setvars.boot: Remove support for script formula. * interp/setvart.boot: Likewise. * interp/diagnostics.boot (sayBrightlyNT1): Move from macros.lisp. (sayBrightly1): Likewise. (sayBrightlyNT): Likewise. (sayBrightly): Likewise. (sayBrightlyI): Likewise. (sayMSG): Likewise. (sayTeX): Likewise. (sayMSG2File): Likewise. * interp/i-output.boot (formulaFormat): Remove. (output): Adjust. * interp/macros.lisp (sayMSGNT): Remove. (sayFORTRAN): Likewise. (sayFORMULA): Likewise. ($formulaOutputstream): Likewise. * interp/sys-globals.boot ($formulaOutputstream): Remove. * interp/spad.lisp ($formulaFormat): Remove. * algebra/exposed.lsp.pamphlet: Do not expose ScriptFormulaFormat and ScriptFormulaFormat1. * algebra/exposed.lsp.pamphlet: Remove. 2011-07-04 Gabriel Dos Reis * interp/int-top.boot (SpadInterpretStream): Remove binding of $erMsgToss, as it is never assigned to. (phIntReportMsgs): Adjust. (phReportMsgs): Likewise. * interp/msg.boot (showMsgPos?): Likewise. (initImPr): Likewise. 2011-07-03 Gabriel Dos Reis * interp/vmlisp.lisp (PRINTEXP): Remove. * interp/br-data.boot: Use writeString, writeChar, and writeLine. * interp/c-util.boot: Likewise. * interp/diagnostics.boot: Likewise. * interp/fortcall.boot: Likewise. * interp/i-output.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/i-util.boot: Likewise. * interp/lisplib.boot: Likewise. * interp/msgdb.boot: Likewise. * interp/newfort.boot: Likewise. * interp/record.boot: Likewise. * interp/g-opt.boot ($VMsideEffectFreeOperators): Include %writeString, %writeNewline, %writeLine. * interp/lisp-backend.boot: Translate them. 2011-07-03 Gabriel Dos Reis * boot/tokens.boot: flushOutput, writeNewline, writeString are new builtin library functions. * boot/utility.boot (finishLine): New exported function. * interp/i-output.boot (formulaFormat): Use it. (texFormat): Likewise. (texFormat1): Likewise. (mathmlFormat): Likewise. (output): Remove case for TextWriter. 2011-07-02 Gabriel Dos Reis * interp/macros.lisp (sayALGEBRA): Remove as duplicate of sayMSG. * interp/i-output.boot: Replace sayALGBEBRA with sayMSG. * interp/msg.boot (ncHardError): Remove dead variable ergMsg. (ncBug): Likewise. 2011-07-01 Gabriel Dos Reis * gui/conversation.h (OutputTextArea): Now inherit from QTextEditor, for the nth time. (OutputTextArea::sizeHint): Declare as override. * gui/conversation.cc (OutputTextArea::OutputTextArea): Make the output text editor read only. Disallow vertical scroll bars. (OutputTextArea::sizeHint): Give a tight estimate. (OutputTextArea::add_paragraph): Tidy. (OutputTextArea::add_text): Likewise. (Exchange::reply_to_query): Toggle the mouse in busy state after submitting query. (Conversation::read_reply): Untoggle mouse' busy state if last output text was read. 2011-06-30 Gabriel Dos Reis * sman/sman.c (main): Don't start Hyperdoc if no X11 server is running. 2011-06-30 Gabriel Dos Reis * interp/modemap.boot: Cleanup inactive codes. 2011-06-27 Gabriel Dos Reis * utils/Makefile.in (libOpenAxiom_SOURCES): Include filesystem.cc * include/open-axiom.h (Filesystem): New. * gui/debate.cc (Debate::Debate): Initialize fs data member. * gui/debate.h (Debate): Declare it. 2011-06-26 Gabriel Dos Reis * utils/storage.H (Memory::Arena): Extend. (Memory::Factory): Add iterators. Make bidirectional. 2011-06-26 Gabriel Dos Reis * algebra/sf.spad.pamphlet (DoubleFloat) [nan?]: New export. * algebra/clip.spad.pamphlet (TwoDimensionalPlotClipping): Use it instead of %fNan?. * algebra/plot.spad.pamphlet (Plot): Likewise. 2011-06-25 Gabriel Dos Reis * sman/Makefile.in (oa_OpenAxiom_ldflags): New. (spadclient_LDADD): Use it. (sman_LDADD): Likewise. 2011-06-25 Gabriel Dos Reis * share/algebra/libaxiom.al: Remove. * algebra/libdb.text: Likewise. 2011-06-25 Gabriel Dos Reis * sman/sman.c (main): Don't start the graphics and no X11 server is running. 2011-06-23 Gabriel Dos Reis * utils/command.cc (build_rts_options) [clozure_runtime]: Request no read of initialization file instead of quiet mode. (execute_core): Set arg[0] to the about-to-bed-executed program. 2011-06-22 Gabriel Dos Reis * driver/Makefile.in (open_axiom_LDADD): Use library archives for linking, to prevent accidental use of dynamic libraries. 2011-06-22 Gabriel Dos Reis * interp/br-con.boot: Remove reference to asharp constructors. * interp/br-op2.boot: Likewise. * interp/br-saturn.boot: Likewise. * interp/br-util.boot: Likewise. * interp/c-util.boot: Likewise. * interp/cattable.boot: Likewise. * interp/database.boot: Likewise. * interp/lisplib.boot: Likewise. * interp/nrunfast.boot: Likewise. 2011-06-22 Gabriel Dos Reis Fix ECL-based build failure. * interp/sys-driver.boot (loadExposureGroupData): Use getSystemModulePath to look up system modules. 2011-06-22 Gabriel Dos Reis * boot/ast.boot (shoeEVALANDFILEACTQ): Remove. (bfMain): Don't use it. (translateToplevelExpression): Likewise. * interp/Makefile.in (stamp): $(AUTO) is no more. (all-interpsys): Likewise. 2011-06-22 Gabriel Dos Reis * interp/spaderror.lisp (trapNumericErrors): Fix typo. 2011-06-22 Gabriel Dos Reis * interp/g-opt.boot ($VMsideEffectFreeOperators): Include FUNCALL. ($simpleVMoperators): Include SPADCALL. 2011-06-22 Gabriel Dos Reis * interp/br-search.boot (dbReadLines): Don't include end-of-stream marker. 2011-06-22 Gabriel Dos Reis * interp/g-opt.boot (optCond): Remove unreachable code. (opt2bit): Tidy. (opt2bool): Likewise. * interp/bits.lisp (TRUTH-TO-BIT): Remove. (BIT-TO-TRUTH): Likewise. (BVEC-MAKE-FULL): Likewise. (BVEC-ELT): Likewise. (BVEC-SETELT): Likewise. 2011-06-21 Gabriel Dos Reis * interp/Makefile.in (OBJS): Remove foam_l.$(FASLEXT), $(ASCOMP). (ASCOMP, ASAUTO): Remove. * interp/axext_l.lisp: Remove. * interp/foam_l.lisp: Likewise. * interp/ax.boot: Likewise. * interp/as.boot: Likewise. * interp/daase.lisp: Adjust. * interp/i-syscmd.boot: Likewise. 2011-06-21 Gabriel Dos Reis * interp/buildom.boot (MappingCategory): Take argument by value. 2011-06-21 Gabriel Dos Reis * interp/compiler.boot: Remove reference to $SingleFloat. * interp/foam_l.lisp: Likewise. * interp/fortcall.boot: Likewise. * interp/sys-constants.boot: Likewise. * lisp/core.lisp.in: Likewise. 2011-06-20 Gabriel Dos Reis * lisp/core.lisp.in (%fNaN?): New. * interp/spaderror.lisp (trapNumericErrors): Handle ARITHMETIC-ERROR too. * interp/g-opt.boot ($VMsideEffectFreeOperators): Include %fNaN?. * algebra/clip.spad.pamphlet (TwoDimensionalPlotClipping): Use it. * algebra/plot.spad.pamphlet (Plot): Likewise. 2011-06-20 Gabriel Dos Reis * interp/spaderror.lisp ($numericFailure): Remove. (trapNumericErrors): Define for non-GCL RTS. Tidy GCL-based definition. * algebra/draw.spad.pamphlet: trapNumericErrors now returns a value of type Maybe T. * algebra/plot.spad.pamphlet: Likewise. * algebra/plot3d.spad.pamphlet: Likewise. 2011-06-20 Gabriel Dos Reis * Makefile.am (OA_GRAPHICS_TARGETS): Fix thinko. 2011-06-20 Gabriel Dos Reis * utils/storage.H (Memory::Storage::acquire): Remove. (Memory::SinglyLinkedStorage::acquire): Likewise. (Memory::DoublyLinkedStorage): New. * utils/storage.cc (acquire_storage_with_header): Rename from Storage::acquire. Make template. (OneWayLinkHeader): Rename from SingleLinkHeader. (TwoWayLinkHeader): New. 2011-06-15 Gabriel Dos Reis * lib/fnct_key.c (handle_function_key): Explicitly cast the null pointer sentinel to a pointer type. 2011-06-15 Gabriel Dos Reis * sman/sman.c: utils.h no longer exists. 2011-06-11 Gabriel Dos Reis * scripts/document.in: Remove. 2011-06-09 Gabriel Dos Reis * graph/view3D/header.h (swap): Remove. 2011-06-06 Gabriel Dos Reis * lisp/core.lisp.in (%escapeSequenceAverseHost?): New. * interp/msgdb.boot (brightPrint0): Use it. 2011-06-05 Gabriel Dos Reis * utils/command.cc (default_driver): New. (preprocess_arguments): Use it. Honor --no-gui on Windows. (OPENAXIOM_DEFAULT_DRIVER): Remove. 2011-06-04 Gabriel Dos Reis * driver/main.cc (upgrade_environment): Augment PATH for Windows DLL search. 2011-06-04 Gabriel Dos Reis * driver/Makefile.in (open-axiom$(EXEEXT)): Link statically. * boot/ast.boot: Remove debugging statement. 2011-05-28 Gabriel Dos Reis * interp/sys-utility.boot (displayTextFile): New. * interp/i-syscmd.boot (summary): Use it. (copyright): Likewise. * algebra/net.spad.pamphlet: Replace closeFile with closeStream. * boot/translator.boot: Likewise. * interp/as.boot: Likewise. * interp/ax.boot: Likewise. * interp/br-saturn.boot: Likewise. * interp/br-search.boot: Likewise. 2011-05-28 Gabriel Dos Reis * lisp/core.lisp.in (readExpr): New. * interp/as.boot: Replace READLINE with readLine. * interp/br-data.boot: Likewise. * interp/br-saturn.boot: Likewise. * interp/br-search.boot: Likewise. * interp/c-doc.boot: Likewise. * interp/cstream.boot: Likewise. * interp/g-error.boot: Likewise. * interp/ht-root.boot: Likewise. * interp/htcheck.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/msgdb.boot: Likewise. * interp/server.boot: Likewise. * interp/topics.boot: Likewise. * interp/compat.boot (READLINE): Remove. * interp/sys-macros.lisp (shoeConsole): Remove. (shoeInputFile): Likewise. (shoeread-line): Likewise. * boot/ast.boot (bfQ): %nothing only needs EQ. * algebra/files.spad.pamphlet (File) [read!, readIfCan!]: Use readExpr instead of VMREAD. Avoid PLACEP (TextFile) [readLine!, readLineIfCan!]: Likewise. 2011-05-28 Gabriel Dos Reis * interp/intfile.boot: Remove. 2011-05-28 Gabriel Dos Reis * lisp/core.lisp.in: Define and export readLine and readbyte. * interp/sys-utility.boot (readByteFromFile): Remove. * boot/tokens.boot: Don't rename readLine and readByte. * boot/includer.boot (shoeReadLine): Remove. (bRgen1): Adjust. Use resdLine. * algebra/net.spad.pamphlet (InputBinaryFile): Use readByte from the runtime system. 2011-05-25 Gabriel Dos Reis * boot/ast.boot (shoeCompTran1): Translate arguments to vector constructor too. 2011-05-20 Gabriel Dos Reis * interp/modemap.boot (augModemapsFromDomain): Don't add modemaps for element types of Vector or List aggregates. * algebrar/: Adjust algebras that depended on this behaviour. 2011-05-20 Gabriel Dos Reis * interp/compiler.boot (compConstructorCategory): Rewrite. 2011-05-19 Gabriel Dos Reis * algebra/aggcat.spad.pamphlet (Aggregate) [more?,less?,size?]: Move to StreamAggregate. * algebra/array2.spad.pamphlet (TwoDimensionalArrayCategory): Don't implement them. * algebra/tree.spad.pamphlet (Tree): Likewise. 2011-05-19 Gabriel Dos Reis * interp/i-analy.boot (bottomUpForm0): Tidy. * interp/i-eval.boot (evalForm): Likewise. * interp/buildom.boot (formalRecordField): New. (eltRecordFun): Use it. (seteltRecordFun): New. * interp/g-opt.boot (optSETRECORDELT): Remove. (optRECORDCOPY): Likewise. * interp/vmlisp.lisp (MAKE-VEC): Likewise. 2011-05-19 Gabriel Dos Reis * interp/i-eval.boot (evalForm): Adjust. * interp/buildom.boot (mkRecordFun): New. (eltRecordFun): Likewise. (copyRecordFun): Likewise. (mkRecordFunList): Use them. * interp/g-opt.boot (optMkRecord): Remove. (optRECORDELT): Likewise. * interp/lisp-backend.boot: Translate %vcopy. 2011-05-18 Gabriel Dos Reis * interp/buildom.boot (lookupInDomainVector): Establish a new binding for $lookupDefaults. 2011-05-18 Gabriel Dos Reis * interp/buildom.boot (mkEnumerationFunList): Include enum constants in the operation list. 2011-05-18 Gabriel Dos Reis * interp/buildom.boot (Enumeration): Provide implementation of constants. 2011-05-18 Gabriel Dos Reis * boot/translator.boot: Remove bindings of $GenVarCounter. * boot/parser.boot (bpOutItem): Bind it here. 2011-05-17 Gabriel Dos Reis * interp/buildom.boot (EnumerationCategory): Rewrite. * interp/compiler.boot (compEnumCat): New. Compile EnumerationCategory forms. 2011-05-16 Gabriel Dos Reis * boot/ast.boot (bfAtScope): New. * boot/parser.boot (bpDo): Accept scoped expressions. * boot/translator.boot: Cleanup. 2011-05-15 Gabriel Dos Reis * boot/tokens.boot: "do" is now a keyword. * boot/ast.boot (bfDo): New. * boot/parser.boot (bpDo): New. (bpReturn): Include do-expressions. * interp/vmlisp.lisp (do): Remove. 2011-05-15 Gabriel Dos Reis * boot/ast.boot (shoeCompTran1): Don't indiscriminately walk CASE forms. Translate %Namespace forms too. * boot/parser.boot (bpApplication): Include Namespace too. 2011-05-14 Gabriel Dos Reis * boot/parser.boot (bpNamedScope): New. (bpApplication): Call it. 2011-05-13 Gabriel Dos Reis * boot/utility.boot (charPosition): New. * boot/scanner.boot (shoeAccumulateLines): Use it. (shoeS): Likewise. 2011-05-12 Gabriel Dos Reis * boot/initial-env.lisp (MAKE-HASHTABLE): Remove. (BEVC-MAKE-FULL): Likewise. (MAKE-BVEC): Likewise. * boot/tokens.boot (shoeKeyTableCons): Adjust. (shoePunCons): Likewise. (shoeDfu): Likewise. (shoeXref): Likewise. 2011-05-07 Gabriel Dos Reis * algebra/table.spad.pamphlet (HashTable): Use tableValue instead of HGET. Use tableLength instead of HCOUNT. 2011-05-04 Gabriel Dos Reis * boot/initial-env.lisp (shoeOpenOutputFile): Remove. Adjust callers to use outputTextFile. 2011-05-03 Gabriel Dos Reis * boot/initial-env.lisp (shoeOpenInputFile): Remove. Adjust callers to use inputTextFile with try/finally. 2011-05-02 Gabriel Dos Reis * boot/ast.boot (idList?, charList?, stringLits?): New. (bfMember): Use them for special cases. * boot/parser.boot (bpDefinition): Stop support MDEF forms. (bpMdef, bpMDefTail): Remove. * boot/tokens.boot: "==>" is no longer a token. 2011-05-02 Gabriel Dos Reis * interp/c-util.boot (categoryRef, domainRef, canonicalForm) (instantiatorCtor, instantiatorArgs, categoryExports): New. 2011-05-01 Gabriel Dos Reis * boot/parser.boot (bpDefinition): Accept macro definition starting with the keyword "MACRO". * boot/translator.boot (exportNames): Export them in all evaluation contexts. * interp/c-util.boot: "macro" is now a keyword. * interp/define.boot: Likewise. * interp/g-util.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/postpar.boot: Likewise. 2011-05-01 Gabriel Dos Reis * interp/macros.lisp (WI, tryLine, embrace indentNB, tryBreak) (tryBreakNB, MARKHASH): Remove. * interp/spad.lisp (NEWNAMTRANS): Likewise. * interp/sys-macros.lisp: Remove more Lispy junk. 2011-05-01 Gabriel Dos Reis * boot/utility.boot (applySubstNQ): New. * interp/compiler.boot (finishLambdaExpression): Use it. * interp/i-intern.boot (mkAtreeExpandMacros): Likewise. * interp/i-map.boot (addMap): Likewise. * interp/vmlisp.lisp (SUBLISNQ, SUBANQ, SUBB): Remove. 2011-05-01 Gabriel Dos Reis * interp/vmlisp.lisp (EQSUBSTLIST): Remove. * interp/c-util.boot (eqSubstAndCopy, eqSubst): Likewise. Adjust callers. 2011-04-30 Gabriel Dos Reis * interp/buildom.boot: Replace use of EQSUBSTLIST with applySubst. * interp/c-util.boot: Likewise. * interp/cattable.boot: Likewise. * interp/compiler.boot: Likewise. * interp/define.boot: Likewise. * interp/format.boot: Likewise. * interp/functor.boot: Likewise. * interp/hashcode.boot: Likewise. * interp/i-output.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/lisplib.boot: Likewise. * interp/modemap.boot: Likewise. * interp/rulesets.boot: Likewise. * interp/slam.boot: Likewise. * interp/sys-macros.lisp (APPLYR, TAILFN, TAIL, rplac): Remove as unused. 2011-04-30 Gabriel Dos Reis * boot/tokens.boot: Don't rename append. * boot/parser.boot (bpTyping): Support universally quantified types. * boot/ast.boot: Rewrite APPEND as append. (%Forall): New AST node. * boot/translator.boot: Translate it. 2011-04-30 Gabriel Dos Reis * boot/ast.boot (bfAppend): Write in full. * interp/ptrees.boot (pfAppend): Likewise. 2011-04-30 Gabriel Dos Reis * interp/vmlisp.lisp (NREMOVE): Remove. (EFFACE): Likewise. * interp/sys-utility.boot (remove!): New. 2011-04-29 Gabriel Dos Reis * interp/vmlisp.lisp (remove): Remove. (REMOVEQ, NREMOVEQ): Likewise. * boot/utility.boot (removeSymbol, removeScalar, removeValue) (remove): New. * boot/ast.boot (bfMDef): Use applySubst in lieu of SUBLIS. 2011-04-29 Gabriel Dos Reis * boot/utility.boot (assocSymbol): New. (applySubst): Likewise. Export. * boot/ast.boot: Use it. Remove SUBLIS and SUBLISLIS. * interp/ax.boot: Likewise. * interp/br-con.boot: Likewise. * interp/br-op1.boot: Likewise. * interp/br-op2.boot: Likewise. * interp/br-prof.boot: Likewise. * interp/br-saturn.boot: Likewise. * interp/buildom.boot: Likewise. * interp/c-doc.boot: Likewise. * interp/c-util.boot: Likewise. * interp/cattable.boot: Likewise. * interp/compiler.boot: Likewise. 2011-04-29 Gabriel Dos Reis * interp/cattable.boot (hasCat): Add type. Accept only instantiation forms. (simpHasPred): Adjust call to hasCat. * interp/i-funsel.boot (hasCaty): Likewise. 2011-04-27 Gabriel Dos Reis * boot/ast.boot (bfReduceCollect): Delegate to bfDoCollect if op is append or append!. 2011-04-27 Gabriel Dos Reis * boot/ast.boot (bfCollect): Use bfDoCollect. (bfListReduce): Remove. 2011-04-27 Gabriel Dos Reis * boot/ast.boot (bfMakeCollectInsn): Fix thinko. 2011-04-27 Gabriel Dos Reis * interp/br-util.boot (dbInfovec): Move to c-util.boot 2011-04-25 Gabriel Dos Reis * boot/translator.boot (inAllContexts): New. (translateToplevel): Use it. * boot/parser.boot (bpImport): Accept namespace import. 2011-04-24 Gabriel Dos Reis * boot/initial-env.lisp (MEMQ): Remove. * boot/ast.boot (shoeATOMs): Don't use it. (isDynamicVariable): Likewise. (shoeCompTran1): Likewise. * boot/translator.boot (defuse1): Likewise. 2011-04-24 Gabriel Dos Reis * boot/ast.boot (bfMakeCollectInsn): New. (bfDoCollect): Tidy. 2011-04-24 Gabriel Dos Reis * boot/ast.boot (bfDoCollect): New. Implement one-pass list comprehension. (bfListReduce): Use it. 2011-04-23 Gabriel Dos Reis * boot/ast.boot (bf0APPEND): Remove. (bf0COLLECT): Likewise. (bfCollect): Tidy. 2011-04-23 Gabriel Dos Reis * lisp/core.lisp.in: Export basic types and compiler data types. * interp/modemap.boot (knownInfo): Fix latent bug uncovered by type declarations. * boot/ast.boot: Remove type definitions. (bfIN): Handle DOT as loop variable. (bfON): Likewise. Allow a loop variable to iterator over its own tails. * boot/parser.boot (bfTyping): Simplify. (bpSimpleMapping): Fix thinko. 2011-04-22 Gabriel Dos Reis * boot/tokens.boot: Don't translate setDifference. * boot/initial-env.lisp (SETDIFFERNECE): Remove. * boot/translator.boot (evalBootFile): Rename form EVAL-BOOT-FILE. * boot/utility.boot (setDifference): Define. * interp/unlisp.lisp (ListMemberQ?): Remove. (ListRemoveQ): Likewise. (AlistAssocQ): Likewise. 2011-04-21 Gabriel Dos Reis * boot/utility.boot (copyList): Define. (append!): Likewise. * boot/tokens.boot: Do not translate nconc. 2011-04-21 Gabriel Dos Reis * boot/tokens.boot: Don't translate lastNode anymore. * boot/utility.boot (lastNode): Define. 2011-04-21 Gabriel Dos Reis * boot/utility.boot (objectMember?): Don't rely non tail recursion removal. (reverse): Define. * boot/tokens.boot: Don't rename reverse anymore. * boot/ast.boot: Generate reverse forms instead of REVERSE. 2011-04-21 Gabriel Dos Reis * boot/tokens.boot: Don't rename nreverse. * boot/utility.boot (reverse!): Define. * boot/parser.boot: Use reverse! instead of NREVERSE. * boot/ast.boot: Generate reverse! forms instead of NREVERSE. 2011-04-20 Gabriel Dos Reis * interp/sys-utility.boot (substitute): Define. (substitute!): Likewise. * boot/utility.boot: Do not rely on tail recursion removal. * boot/tokens.boot: Don't translate substitute and substitute!. * boot/ast.boot (bfLp1): Tidy. 2011-04-19 Gabriel Dos Reis * boot/tokens.boot: charUpcase, charDowncase, stringUpcase, singDowncase, valueEq? are new builtin functions. * boot/ast.boot (bfMembr): Tidy. 2011-04-19 Gabriel Dos Reis * interp/newfort.boot: Likewise. * interp/define.boot (orderBySubsumption): Fix thinko. * interp/boot-pkg.lisp: Use BOOTTRAN package. Don't import names individually. * boot/utility.boot: New. * boot/translator.boot (exportNames): Fix thinko. * boot/tokens.boot: Add charEq? and scalarEq? builtiin functions. * boot/ast.boot (bfMember): Generate call to symbolMember? for membership tests for symbols. 2011-04-19 Gabriel Dos Reis * boot/ast.boot (%Module): Now take three arguments. * boot/parser.boot (bpModuleInterface): Rename from bpExports. (bpModuleExports): New. (bpModule): Now allow specification of exported names. 2011-04-17 Gabriel Dos Reis * boot/tokens.boot: Translate maxIndex to MAXINDEX. 2011-04-16 Gabriel Dos Reis * boot/tokens.boot (shoeIdChar): Accept "!" too. 2011-04-14 Gabriel Dos Reis * interp/msgdb.boot: Use stringChar more often. 2011-04-11 Gabriel Dos Reis * lisp/core.lisp.in: Include SB-SPROF when profiling SBCL-based build. 2011-04-10 Gabriel Dos Reis * lisp/core.lisp.in (compileLispFile): Tell ECL that the linker is a C++ compiler. 2011-03-22 Gabriel Dos Reis * algebra/op.spad.pamphlet (BasicOperator) [display]: Now return a Maybe (List O -> O) value. [input]: Now return a Maybe(List SEX -> SEX). * algebra/kl.spad.pamphlet (Kernel): Adjust. * algebra/pattern.spad.pamphlet (Pattern): Likewise. 2011-03-20 Gabriel Dos Reis * interp/g-opt.boot ($VMsideEffectFreeOperators): Include %bytevec2str and %str2bytevec opcode. * interp/lisp-backend.boot: Expand them. * algebra/data.spad.pamphlet (ByteBuffer): Tidy. 2011-03-19 Gabriel Dos Reis * boot/translator.boot (FC): Remove. (FBO): Likewise. (FEV): Likewise. (shoeGeneralFC): Likewise. (shoeFindName): Likewise. (shoeFindName2): Likewise. (shoeTransform2): Likewise. * boot/scanner.boot (shoeLineToks): Don't support `)package' line anymore. * boot/includer.boot: Remove support for `)package', `)include', `)includelisp', `)includelines' lines. (shorPackageStartsAt): Remove. (shorFindLines): Likewise. (shoeFileInput): Likewise. (shoeLispFileInput): Likewise. (shoeLineFileInput): Likewise. (shoeFunctionFileInput): Likewise. (shoePlainLine?): Reflect removal. (shoeSimpleLine): Likewise. * boot/tokens.boot (charByName): New builtin library function. * algebra/sf.spad.pamphlet (RealNumberSystem): Don't re-export abs. It is already exported by OrderedRing. 2011-03-17 Gabriel Dos Reis * utils/sexpr.H: Support more specialized s-expressions. * utils/sexpr.cc: Likewise. 2011-03-17 Gabriel Dos Reis * utils/storage.H: Rework. * utils/storage.cc: Likewise. 2011-03-16 Gabriel Dos Reis * interp/i-syscmd.boot (compileSpad2Cmd): Remove experimental support for Spad to Aldor translation. (convertSpasToAsFile): Remove. * interp/mark.boot: Remove. * interp/nspadux.lisp: Likewise. * interp/pspad1.boot: Likewise. * interp/pspad2.boot: Likewise. * interp/wi1.boot: Likewise. * interp/wi2.boot: Likewise. * interp/spad.lisp: Don't register removed formatters. * interp/util.lisp: (TRANSLATE-FUNCTIONS): Remove. (BUILD-INTERPSYS): Now take only one argument. * src/share/doc/msgs/s2-us.msgs: Remove diagnostic S2IZ0085. * interp/Makefile.in: Remove rules for building wi1.boot, wi2.boot, mark.boot, pspad1.boot pspad2.boot. 2011-03-12 Gabriel Dos Reis * src/algebra/: Systematically use not zero? when comparing for equality with 0. 2011-03-12 Gabriel Dos Reis * src/algebra/: Systematically use not one? when comparing for equality with 1. 2011-03-12 Gabriel Dos Reis * src/algebra/: Systematically use negative? when comparing for equality with 0. 2011-03-12 Gabriel Dos Reis * src/algebra/: Systematically use negative? when comparing for greater than 0. 2011-03-12 Gabriel Dos Reis * src/algebra/: Systematically use negative? when comparing for less than 0. 2011-03-12 Gabriel Dos Reis * algebra/si.spad.pamphlet (IntegerNumberSystem) [positive?]: Remove definition. (SingleInteger): Simplify implementation of random. * algebra/sf.spad.pamphlet (DoubleFloat): Likewise. [positive?]: Define. * algebra/integer.spad.pamphlet (Integer): Tidy. 2011-03-11 Gabriel Dos Reis * algebra/catdef.spad.pamphlet (OrderedAbelianGroup): Export negative?, abs, sign, with default implementations. (OrderedAbelianMonoid): Export positive?, with default. (OrderedRing): Don't export them. 2011-03-10 Gabriel Dos Reis * algebra/catdef.spad.pamphlet (CharacteristicNonZero) [charthRoot]: Now return Maybe %. (PolynomialFactorizationExplicit) [charthRoot]: Likewise. * algebra/ffcat.spad.pamphlet (FiniteAlgebraicExtensionField): Propagate change. * algebra/fraction.spad.pamphlet (Fraction) [charthRoot]: Likewise. * algebra/poly.spad.pamphlet (UnivariatePolynomialSquareFree): Likewise. * algebra/polycat.spad.pamphlet (PolynomialCategory): Likewise. 2011-03-10 Gabriel Dos Reis * interp/c-util.boot (equalFormTemplate): Tidy comparison of value argument to constructors. 2011-03-10 Gabriel Dos Reis * interp/c-util.boot (mutateArgumentList): New. (inlineDirectCall): Break out of replaceSimpleFunctions. (resolveIndirectCall): Break out of foldSpadcall. (replaceSimpleFunctions): Use them. (foldSpadcall): Remove. (usesVariablesLinearly?): Tidy. (foldExportedFunctionReferences): Don't call foldSpadcall. 2011-03-10 Gabriel Dos Reis * interp/c-util.boot (resolveConstantForm): New. Split out of replaceSimpleFunctions. (foldSpadcall): Use it too. 2011-03-09 Gabriel Dos Reis * algebra/catdef.spad.pamphlet (StepThrough) [nextItem]: Now return Maybe %. * algebra/ffcat.spad.pamphlet: Propagate change. * algebra/fmod.spad.pamphlet: Likewise. * algebra/fraction.spad.pamphlet: Likewise. * algebra/integer.spad.pamphlet: Likewise. * algebra/pfbr.spad.pamphlet: Likewise. * algebra/polycat.spad.pamphlet: Likewise. * algebra/si.spad.pamphlet: Likewise. 2011-03-09 Gabriel Dos Reis * algebra/catdef.spad.pamphlet (EuclideanDomain) [expressIdealMember]: Now returns Maybe List %. * algebra/Makefile.in: Tidy. (axiom_algebra_bootstrap_last_layer): Remove. 2011-03-09 Gabriel Dos Reis * interp/g-opt.boot: %pair, %list, %vector, %bitvector are now considered side-effect free functions. * algebra/boolean.spad.pamphlet: Reflect change. * algebra/Makefile.in (oa_strap_0_sources): Include MAYBE. 2011-03-09 Gabriel Dos Reis * interp/g-opt.boot (semiSimpleRelativeTo?): Consider conditionals. 2011-03-07 Gabriel Dos Reis * algebra/catdef.spad.pamphlet (SemiRing): New category. 2011-03-06 Gabriel Dos Reis * interp/sys-utility.boot (getSystemModulePath): Use systemAlgebraDirectory. * interp/database.boot (pathToDatabase): Use systemDatabaseDirectory. * algebra/integer.spad.pamphlet (Integer) [latex]: Tidy. * algebra/string.spad.pamphlet (Character) [latex]: Likewise. * algebra/Makefile.in: Rework bootstrapping set up. (COMPILE_LISP): Remove. (axiom_algebra_layer_strap): Likewise. (axiom_algebra_layer_strap_objects): Likewise. (axiom_algebra_bootstrap): Likewise. (oa_strap_0_fasls): New. (oa_strap_1_fasls): Likewise. (oa_strap_2_fasls): Likewise. (oa_strap_0_sources): Likewise. (oa_strap_1_sources): Likewise. (oa_strap_2_sources): Likewise. * src/algerab/strap: Remove. 2011-03-06 Gabriel Dos Reis * algebra/si.spad.pamphlet (SingleInteger): Logic is indirectly included through BooleanLogic. 2011-03-06 Gabriel Dos Reis * interp/i-eval.boot (mkEvalable): Simplify. (mkEvalableMapping): Remove. (mkEvalableRecord): Likewise. (mkEvalableUnion): Likewise. 2011-03-06 Gabriel Dos Reis * interp/g-opt.boot ($VMsideEffectFreeOperators): Include %c2s. * interp/lisp-backend.boot: Translate it. * algebra/integer.spad.pamphlet (Integer) [convert]: Tidy. [latex]: Likewise. * algebra/string.spad.pamphlet (Character)[latex]: Likewise. 2011-03-05 Gabriel Dos Reis * interp/as.boot: Use getConstructorAbbreviationFromDB. * interp/br-con.boot: Likewise. * interp/br-data.boot: Likewise. * interp/br-prof.boot: Likewise. * interp/br-util.boot: Likewise. * interp/c-doc.boot: Likewise. * interp/clammed.boot: Likewise. * interp/database.boot: Likewise. * interp/define.boot: Likewise. * interp/format.boot: Likewise. * interp/functor.boot: Likewise. * interp/g-cndata.boot: Likewise. * interp/i-funsel.boot: Likewise. * interp/i-output.boot: Likewise. * interp/lisplib.boot: Likewise. * interp/pspad1.boot: Likewise. 2011-03-04 Gabriel Dos Reis * interp/nrunopt.boot: Move content to define.boot, interop.boot, lisplib.boot, nruncomp.boot, showimp.boot. Delete. 2011-03-02 Gabriel Dos Reis * interp/nrungo.boot: Move content to buildom.boot, i-map.boot, i-special.boot, nrunfast.boot. Delete. 2011-03-02 Gabriel Dos Reis * interp/i-eval.boot (mkEvalable): Exit early on niladic constructors. * interp/define.boot (compDefineFunctor1): If bootstrapping, mark functor as incomplete. * interp/c-util.boot (lookupDefiningFunction): Don't look into incomplete domains. 2011-02-28 Gabriel Dos Reis * interp/info.boot: Move content to modemap.boot. Delete. 2011-02-28 Gabriel Dos Reis * interp/i-code.boot: Move content to i-coerce.boot. Delete. 2011-02-28 Gabriel Dos Reis * algebra/boolean.spad.pamphlet (PropositionalFormula): Implement true and false. Fix thinko in notFormula. 2011-02-27 Gabriel Dos Reis * interp/i-analy.boot (elaborateTree): New. * interp/i-special.boot (bottomUpProposition): Likewise. (upand): Use it to handle propositional formula. (upor): Likewise. 2011-02-27 Gabriel Dos Reis * interp/i-analy.boot (bottomUpWithArgModesets): Split out of bottomUp. (bottomUp): Call it. 2011-02-27 Gabriel Dos Reis * interp/Makefile.in (OBJS): Remove i-spec1.$(FASLEXT) and i-spec2.$(FASLEXT). Add i-special.$(FASLEXT). * interp/i-spec1.boot, interp/i-spec2.boot: Move content to i-special.boot. Remove. 2011-02-27 Gabriel Dos Reis * algebra/outform.spad.pamphlet (OutputForm) [infix?]: Rewrite. 2011-02-26 Gabriel Dos Reis * interp/g-opt.boot (optCond): Recognize conjunction and disjunction forms. 2011-02-26 Gabriel Dos Reis * interp/nruncomp.boot (optDeltaEntry): Don't SPADCALL the constant producing function. * interp/c-util.boot (getFunctionReplacement): Use comptileTimeBindingOf. (lookupDefiningFunction): Tidy. * interp/g-opt.boot (compileTimeBindingOf): Move to c-util.boot. 2011-02-26 Gabriel Dos Reis * interp/g-opt.boot (canInlineVarDefinition): Observe order of evaluation. 2011-02-25 Gabriel Dos Reis * interp/g-opt.boot (optNot): Push %not inside conditionals. (optCond): Remove ineffectual transformation. 2011-02-25 Gabriel Dos Reis * interp/parse.boot (parseLessEqual): Remove. 2011-02-25 Gabriel Dos Reis * algebra/fmod.spad.pamphlet (IntegerMod): Simplify implementation. 2011-02-24 Gabriel Dos Reis * boot/tokens.boot: makeSymbol is not a builtin function. * boot/ast.boot: Use makeSymbol in place of INTERN. * boot/parser.boot: Likewise. * boot/scanner.boot: Likewise. * boot/translator.boot: Likewise. * interp/alql.boot: Likewise. * interp/as.boot: Likewise. * interp/ax.boot: Likewise. * interp/bc-matrix.boot: Likewise. * interp/bc-solve.boot: Likewise. * interp/br-con.boot: Likewise. * interp/br-data.boot: Likewise. * interp/br-op2.boot: Likewise. * interp/br-prof.boot: Likewise. * interp/br-search.boot: Likewise. * interp/c-doc.boot: Likewise. * interp/c-util.boot: Likewise. * interp/clam.boot: Likewise. * interp/compiler.boot: Likewise. * interp/define.boot: Likewise. * interp/format.boot: Likewise. * interp/fortcall.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/i-spec1.boot: Likewise. * interp/i-output.boot: Likewise. * interp/i-coerce.boot: Likewise. * interp/i-map.boot: Likewise. * interp/htsetvar.boot: Likewise. * interp/ht-util.boot: Likewise. * interp/g-util.boot: Likewise. * interp/functor.boot: Likewise. * interp/pspad1.boot: Likewise. * interp/pspad2.boot: Likewise. * interp/postpar.boot: Likewise. * interp/pf2sex.boot: Likewise. * interp/parse.boot: Likewise. * interp/packtran.boot: Likewise. * interp/nrunopt.boot: Likewise. * interp/nruncomp.boot: Likewise. * interp/newfort.boot: Likewise. * interp/msgdb.boot: Likewise. * interp/modemap.boot: Likewise. * interp/mark.boot: Likewise. * interp/intfile.boot: Likewise. * interp/interop.boot: Likewise. * interp/incl.boot: Likewise. * interp/word.boot: Likewise. * interp/wi2.boot: Likewise. * interp/wi1.boot: Likewise. * interp/trace.boot: Likewise. * interp/topics.boot: Likewise. * interp/sys-constants.boot: Likewise. * interp/showimp.boot: Likewise. * interp/scan.boot: Likewise. 2011-02-24 Gabriel Dos Reis * interp/sys-macros.lisp (shellEntry): New. * interp/g-util.boot (setShellEntry): Remove. * interp/compiler.boot: Use %store to %tref forms instead of setHSellEntry. * interp/define.boot: Likewise. * interp/functor.boot: Likewise. * interp/nruncomp.boot: Likewise. * interp/nrunfast.boot: Likewise. * interp/showimp.boot: Likewise. * interp/c-util.boot (isSimple): Tidy. (isSideEffectFree): Likewise. (updateCapsuleDirectory): Likewise. 2011-02-23 Gabriel Dos Reis * interp/c-util.boot (isSimple): Accept constructor instantiations. * algebra/formula.spad.pamphlet: Avoid Lispisms. * algebra/mathml.spad.pamphlet: Likewise. * algebra/op.spad.pamphlet: Likewise. * algebra/sex.spad.pamphlet: Likewise. 2011-02-22 Gabriel Dos Reis * boot/tokens.boot: mmSource is a new selector for modemap datatype. * interp/wi1.boot: Likewise. * interp/br-data.boot: Various cleanups. * interp/c-util.boot: Likewise. * interp/compiler.boot: Likewise. * interp/functor.boot: Likewise. * interp/g-util.boot: Likewise. * interp/guess.boot: Likewise. * interp/i-util.boot: Likewise. * interp/mark.boot: Likewise. * interp/msgdb.boot: Likewise. * interp/topics.boot: Likewise. 2011-02-22 Gabriel Dos Reis * interp/g-opt.boot (optCond): Recognize conjunctive guard as nested conditionals. 2011-02-20 Gabriel Dos Reis * interp/parse.boot (transSeq): Aggregate branches of toplevel conditionals so that implications propagate down the pipe. 2011-02-15 Gabriel Dos Reis * interp/compiler.boot (coerceExtraHard): Explicitly fail if autoCoerceByModemap fails. 2011-02-14 Gabriel Dos Reis * interp/compiler.boot (getUnionMode): Remove. (isUnionMode): Move to c-util.boot. (coerceExtraHard): Rework. (belongsTo?): Remove. * interp/c-util.boot (isUnionMode): Moved from compiler.boot. (unionLike?): New. (unionProperty): Likewise. (getInverseEnvironment): Use unionProperty instead of getUnionMode. 2011-02-13 Gabriel Dos Reis * interp/c-util.boot (getSuccessEnvironment): Follow through temporaries designating result of assignment. (getInverseEnvironment): Likewise. 2011-02-13 Gabriel Dos Reis * interp/buildom.boot (mkNewUnionFunList): Align arity of 'case' implementation to declared signature. (mkUnionFunList): Likewise. * interp/compiler.boot (compCase1): 'case' is now unconditionally binary. * interp/g-opt.boot (optCond): Fix thinko. 2011-02-13 Gabriel Dos Reis * interp/g-opt.boot (optCond): Get rid of double negatives when possible. * interp/g-util.boot (assumeProperty): Remove. (flattenVMForm): Likewise. (mkVMForm): Likewise. 2011-02-12 Gabriel Dos Reis * interp/compiler.boot (compCons1): Use coerce not convert. (setqSingle): Likewise. (setqMultiple): Likewise. (compConstruct): Likewise. (compQuote): Likewise. (compElt): Likewise. (compSignatureImport): Likewise. (compComma): Likewise. 2011-02-12 Gabriel Dos Reis * interp/compiler.boot (compExpressionList): Remove. (compForm1): Don't call it. 2011-02-11 Gabriel Dos Reis * interp/g-opt.boot (changeVariableDefinitionToStore): Tidy. 2011-02-11 Gabriel Dos Reis * interp/g-opt.boot (dependentVars): New. (canInlineVarDefinition): Use it to safely inline vardefs. 2011-02-11 Gabriel Dos Reis * interp/compiler.boot (canReturn): Don't check for LET*. * interp/g-opt.boot (optLET*): Remove as we now generate only %bind forms. 2011-02-11 Gabriel Dos Reis * interp/g-opt.boot ($VMsideEffectFreeOperators): Include %funcall and %nothing. * algebra/mkfunc.spad.pamphlet: Use %funcall instead of FUNCALL. 2011-02-10 Gabriel Dos Reis * interp/vmlisp.lisp (VEC-SETELT): Remove. * interp/scan.boot (scanInserts): Use vectorRef. * interp/functor.boot (DescendCode): Don't check for SETELT or QSETREFV forms. * interp/nrunfast.boot (evalSlotDomain): Likewise. 2011-02-10 Gabriel Dos Reis * interp/sys-globals.boot ($evalDomain): Remove. * interp/nrungo.boot (NRTevalDomain): Likewise. Fix callers to call evalDomain. * interp/i-eval.boot (evalDomain): Don't check for $evalDomain anymore. Handle assignment to domain object forms. 2011-02-09 Gabriel Dos Reis Add MappingCategory as a (builtin) category. * interp/sys-constants.boot ($CategoryNames): Include MappingCategory. * interp/g-cndata.boot (unabbrevSpecialForms): Handle MappingCategory, RecordCategory, and UnionCategory. * interp/buildom.boot (MappingCategory): New. * interp/compiler.boot: Elaboration MappingCategory forms. * interp/g-error.boot (needsToSplitMessage): Fix thinko from type-based dispatch done by the Boot translator. * interp/nrunfast.boot (builtinConstructor?): New. (generalizedBuiltinConstructor?): Likewise. (lazyMatch): Use them. (newHasTest): Properly recognize all flavours of category forms. 2011-02-08 Gabriel Dos Reis * interp/sys-constants.boot ($PrimitiveDomainNames): Remove. * interp/category.boot (mkCategory): Drop test for primitive domains. 2011-02-08 Gabriel Dos Reis * interp/category.boot (mkCategory): Don't single out List instantiations in determining NewLocals. 2011-02-08 Gabriel Dos Reis * interp/category.boot(categoryObject?): Rename from isCategory. * interp/c-util.boot: Adjust use. * interp/functor.boot: Likewise. * interp/modemap.boot: Likewise. 2011-02-08 Gabriel Dos Reis * interp/buildom.boot: Don't cache instantiation of builtin domains, as the comment at the top of the file says. 2011-02-08 Gabriel Dos Reis * interp/lisp-backend.boot: Translate %ident? to IDENTP, not SYMBOLP. * interp/compiler.boot (compMatch): test for identifier, not atomic value. * algebra/syntax.spad.pamphlet (Syntax): Tidy. 2011-02-07 Gabriel Dos Reis * boot/tokens.boot: arrayRef is now a builtin function. 2011-02-07 Gabriel Dos Reis * algebra/ituple.spad.pamphlet (InfiniteTuple): Use Stream S as representation, not extended domain (default search does not work for the non-extending categories.) 2011-02-06 Gabriel Dos Reis * interp/g-opt.boot (groupVariableDefinitions): Look into clauses of conditional too. 2011-02-06 Gabriel Dos Reis * interp/c-util.boot (matchingEXIT): New. (simplifySEQ): Use it. 2011-02-05 Gabriel Dos Reis * interp/g-opt.boot ($VMsideEffectFreeOperators): Include %fmanexp. (sideEffectFree?): New. (varIsAssigned): Tidy. (canInlineVarDefinition): Likewise. * interp/boot-pkg.lisp (gensym?): New. * interp/c-util.boot ($NonExpandableOperators): New. (expandableDefinition?): Use it. * algebra/sf.spad.pamphlet (DoubleFloat): Use %fmanexp. 2011-02-05 Gabriel Dos Reis * interp/g-opt.boot ($VMsideEffectFreeOperators): Include inverse hyperbolic functions. * interp/lisp-backend.boot: Expand them. * algebra/sf.spad.pamphlet: Use them. 2011-02-04 Gabriel Dos Reis * interp/g-opt.boot ($VMsideEffectFreeOperators): Remove CGREATERP and GGREATERP. Add VM-level complex number operators. * interp/lisp-backend.boot: Expand them. * algebra/gaussian.spad.pamphlet (ComplexCategory): Use VM form instead of Lisp level forms. * algebra/pfr.spad.pamphlet (PartialFraction): Likewise. * algebra/si.spad.pamphlet (SingleInteger): Likewise. * algebra/symbol.spad.pamphlet (Symbol): Likewise. 2011-02-04 Gabriel Dos Reis * interp/g-opt.boot ($VMsideEffectFreeOperators): Remove more Lisp level operators. Include %property and %bitveclt. * interp/lisp-backend.boot: Expand them. * algebra/si.spad.pamphlet (SingleInteger): Tidy. Use %ismall?. * algebra/domain.spad.pamphlet (DomainConstructo): Use %property. * algebra/outform.spad.pamphlet (OutputForm): Likewise. * algebra/boolean.spad.pamphlet (IndexedBits): Use %bitveclt. 2011-02-03 Gabriel Dos Reis * interp/c-util.boot (mutateConditionalFormWithUnaryFunction): Rename from mutateCONDFormWithUnaryFunction. Update callers (mutateBindingFormWithUnaryFunction): Rename from mutateLETFormWithUnaryFunction. Allow %bind form too. Update callers. 2011-02-03 Gabriel Dos Reis * algebra/stream.spad.pamphlet (Stream): Remove bogus assignment to Rep. Rework local function definitions. 2011-02-03 Gabriel Dos Reis * interp/c-util.boot: Replace COND with %when throught. Use %otherwise instead of %true where appropriate. * interp/define.boot: Likewise. * interp/functor.boot: Likewise. * interp/g-opt.boot: Likewise. * interp/i-code.boot: Likewise. * interp/i-output.boot: Likewise. * interp/i-spec1.boot: Likewise. * interp/i-spec2.boot: Likewise. * interp/i-util.boot: Likewise. * interp/info.boot: Likewise. * interp/modemap.boot: Likewise. * interp/nruncomp.boot: Likewise. * interp/pspad1.boot: Likewise. * interp/pspad2.boot: Likewise. * interp/slam.boot: Likewise. * interp/wi1.boot: Likewise. * interp/wi2.boot: Likewise. * interp/compiler.boot (canReturn): Don't test for COND anymore. 2011-02-03 Gabriel Dos Reis * interp/slam.boot (reportFunctionCompilation): Use %otherwise, not %true for default cases. (reportFunctionCacheAll): Likewise. (compileRecurrenceRelation): Likewise. * interp/lisp-backend.boot (expandTry): Tidy. * interp/g-opt.boot ($VMsideEffectFreeOperators): Include %otherwise. * interp/compiler.boot (compAlternativeGuard): Emit %otherwise form, not Lisp level T form. * interp/clam.boot (compClam): Tidy. (compHash): Likewise. (compHashGlobal): Likewise. 2011-02-02 Gabriel Dos Reis * interp/compiler.boot (finishLambdaExpression): Tidy. Don't generate Lisp code directly. (canReturn): Don't look into CLOSEDFN forms. 2011-02-02 Gabriel Dos Reis * interp/clam.boot: Tidy. * interp/slam.boot: Likewise. 2011-02-02 Gabriel Dos Reis * interp/lisp-backend.boot: New file. Consolidate Common Lisp backend module. * interp/Makefile.in (OBJS): Include it. (lisp-backend.$(FASLEXT)): New rule. 2011-02-01 Gabriel Dos Reis * algebra/files.spad.pamphlet (Library): Remove assignment to Rep. * algebra/lie.spad.pamphlet (AssociatedLieAlgebra): Likewise. (AssociatedJordanAlgebra): Likewise. (LieSquareMatrix): Likewise. 2011-02-01 Gabriel Dos Reis * interp/nrunopt.boot (NRTgetLookupFunction): Explain reason for non-extension. 2011-02-01 Gabriel Dos Reis * interp/compiler.boot (compList): Use %nil form, not NIL. 2011-01-31 Gabriel Dos Reis * interp/g-opt.boot (optCallSpecially): Remove. (optSpeciallCall): Likeise. (optCall): Adjust. (optCallEval): Move to wi2.boot, sole user. 2011-01-31 Gabriel Dos Reis * interp/g-opt.boot (optQSMINUS): Remove. * algebra/data.spad.pamphlet: Tidy. * algebra/plot.spad.pamphlet: Likewise. * algebra/plot3d.spad.pamphlet: Likewise. * algebra/si.spad.pamphlet: Likewise. * algebra/syntax.spad.pamphlet: Likewise. * algebra/list.spad.pamphlet: Remove use of NULL$Lisp. 2011-01-31 Gabriel Dos Reis * interp/g-opt.boot ($VMsideEffectFreeOperators): Remove QCDR, QCAR. SYMBOLP, GREATERP. Add %ibit, %ilength, %ident, %equal. * interp/g-util.boot: Expand them * algebra/any.spad.pamphlet: Tidy. * algebra/catdef.spad.pamphlet: Likewise. * algebra/data.spad.pamphlet: Likewise. * algebra/domain.spad.pamphlet: Likewise. * algebra/float.spad.pamphlet: Likewise. * algebra/fname.spad.pamphlet: Likewise. * algebra/integer.spad.pamphlet: Likewise. * algebra/list.spad.pamphlet: Likewise. * algebra/outform.spad.pamphlet: Likewise. * algebra/random.spad.pamphlet: Likewise. * algebra/sex.spad.pamphlet: Likewise. * algebra/si.spad.pamphlet: Likewise. * algebra/symbol.spad.pamphlet: Likewise. * algebra/syntax.spad.pamphlet: Likewise. 2011-01-29 Gabriel Dos Reis * interp/vmlisp.lisp: Remove QREFELT, QSDEC1, QSETREFV, QSETVELT, QSETVELT-1, QSINC1, QVELT, QVELT-1. * algebra/si.spad.pamphlet: Use %iinc and %idec forms. 2011-01-27 Gabriel Dos Reis * interp/nruncomp.boot (NRTputInHead): Tidy. 2011-01-26 Gabriel Dos Reis * interp/g-util.boot (expandListlit): Tidy. 2011-01-25 Gabriel Dos Reis * interp/compiler.boot (compForm1): Use %listlit form. (compExpressionList): Likewise. (compCons1): Likewise. (compList): Likewise. (compVector): Likewise. * interp/g-timer.boot (timedEvaluate): Likewise. * interp/wi1.boot: Likewise. * interp/slam.boot: Likewise. * interp/nruncomp.boot: Likewise. * interp/i-object.boot: Likewise. * interp/g-opt.boot (optMkRecord): Likewise. (optRECORDCOPY): Likewise. (optLIST): Remove. (optListlit): New. * interp/g-util.boot (optListlit): New. Expand %listlit forms. 2011-01-24 Gabriel Dos Reis * interp/g-opt.boot (optMkRecord): Generate %makepair forms. ($VMsideEffectFreeOperators): Include %listlit and %veclit. * interp/g-util.boot: Translate them. 2011-01-24 Gabriel Dos Reis * algebra/array1.spad.pamphlet: Use %aref instead of %vref. * interp/g-opt.boot (optSETRECORDELT): Tidy code generation. (optRECORDCOPY): Likewise. (optRECORDELT): Likewise. ($VMsideEffectFreeOperators): Include %aref. Translate. 2011-01-18 Gabriel Dos Reis * interp/vmlisp.lisp (FIXP): Remove. * interp/alql.boot: Use integer? instead of FIXP. * interp/br-con.boot: Likewise. * interp/br-op1.boot: Likewise. * interp/c-util.boot: Likewise. * interp/fnewmeta.lisp: Likewise. * interp/ht-root.boot: Likewise. * interp/i-analy.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/i-toplev.boot: Likewise. * interp/interop.boot: Likewise. * interp/lisplib.boot: Likewise. * interp/mark.boot: Likewise. * interp/newfort.boot: Likewise. * interp/nrunfast.boot: Likewise. * interp/pspad1.boot: Likewise. * interp/setvars.boot: Likewise. * interp/showimp.boot: Likewise. * interp/slam.boot: Likewise. * interp/topics.boot: Likewise. * interp/trace.boot: Likewise. * interp/wi1.boot: Likewise. * interp/wi2.boot: Likewise. * interp/word.boot: Likewise. 2011-01-02 Gabriel Dos Reis * interp/g-util.boot: Expand new bit vector operators. * interp/g-opt.boot (opt2bit): New. (opt2bool): Likewise. * interp/bits.lisp (BVEC-SIZE): Remove. (BVEC-COPY): Likewise. (BVEC-CONCAT): Likewise. (BVEC-EQUAL): Likewise. (BVEC-AND): Likewise. (BVEC-OR): Likewise. (BVEC-XOR): Likewise. (BVEC-NAND): Likewise. (BVEC-NOR): Likewise. (BVEC-NOT): Likewise. * algebra/boolean.spad.pamphlet (IndexedBits): Remove uses of Lisp-level functions. 2011-01-02 Gabriel Dos Reis * interp/nrunfast.boot (evalSlotDomain): Expand to VM forms before value argument evaluation. (lazyMatch): Check for %llength too. * interp/g-opt.boot ($VMsideEffectFreeOperators): Include %2bit and %2bool. * interp/g-util.boot: Expand them. * interp/define.boot (compJoin): Check for %llenght too. * algebra/boolean.spad.pamphlet: Tidy. * algebra/domain.spad.pamphlet: Likewise. * algebra/draw.spad.pamphlet: Likewise. * algebra/files.spad.pamphlet: Likewise. * algebra/list.spad.pamphlet: Likewise. * algebra/outform.spad.pamphlet: Likewise. * algebra/sex.spad.pamphlet: Likewise. * algebra/sf.spad.pamphlet: Likewise.