2012-02-27 Gabriel Dos Reis * interp/nruncomp.boot (markOperation): New. (optDeltaEntry): Implement better patch for last change. * interp/compiler.boot (compFormWithModemap): Undo last change. 2012-02-26 Gabriel Dos Reis * interp/compiler.boot (compFormWithModemap): Mark implementation resolution as appropriate. 2012-02-26 Gabriel Dos Reis * interp/compiler.boot (emitLocalCallInsn): Mark external operators as such, and local functions as such. (freeVarUsage): Do not count external and local functions. (extractCode): Tidy. Handle closure literals. * interp/g-opt.boot (optCall): Optimize external calls where possible. %external is a side-effect free operator. 2012-02-26 Gabriel Dos Reis * interp/g-util.boot (usedSymbol?): Remove. (bindingForm?): New. (usesVariable?): Likewise. * interp/compiler.boot (declareUnusedParameters): Use it. * interp/g-opt.boot (inlineLocals): Likewise. (optClosure): Likewise. (optBind): Likewise. * interp/define.boot (compContained): Remove. 2012-02-26 Gabriel Dos Reis * interp/c-util.boot (numOfOccurencesOf): Tidy. * interp/compiler.boot (compUnnamedMapping): Fix thinko. * interp/g-opt.boot (semiSimpleRelativeTo?): Likewise. 2012-02-25 Gabriel Dos Reis * interp/compiler.boot (compTopLevel): Do not bind $killOptimizeIfTrue. (compWithMappingMode): Likewise. (compUnnamedMapping): Likewise. (extractCode): Simplify. * interp/g-opt.boot (optClosure): New. Register. (semiSimpleRelativeTo?): An abstraction is always semisimple. * interp/nruncomp.boot ($killOptimizeIfTrue): Remove. (optDeltaEntry): Don't test for it. 2012-02-25 Gabriel Dos Reis * interp/compiler.boot (extractCode): Rename from extractCodeAndConstructTriple. Change Arity. Tidy. Adjust callers. 2012-02-25 Gabriel Dos Reis * interp/compiler.boot (finishLambdaExpression): Use %closure. (extractCodeAndConstructTriple): Likewise. * interp/g-opt.boot (optCall): Adjust. 2012-02-25 Gabriel Dos Reis * interp/nruncomp.boot (genDeltaEntry): Fix thinko. 2012-02-24 Gabriel Dos Reis * algebra/catdef.spad.pamphlet (BinaryOperatorCategory): New. (BinaryOperation): Likewise. (IdempotentOperatorCategory): Likewise. (SemiGroupOperatorCategory): Likewise. (SemiGroupOperation): Likewise. (MonoidOperatorCategory): Likewise. (MonoidOperation): Likewise. * algebra/exposed.lsp.pamphlet: Expose them. * algebra/Makefile.in (oa_algebra_layer_0): Include IDEMOPC, SGPOPC, SPGOP, MONOPC, BINOPC. (axiom_algebra_layer_1): Include MONOP. 2012-02-24 Gabriel Dos Reis * interp/lexing.boot: "assume" is now also a keyword for the compiler. * interp/spad-parser.boot (parseCategory): Accept exported properties. (parseFormula): New. 2012-02-23 Gabriel Dos Reis * interp/nruncomp.boot (genDeltaEntry): Replace applyFun with %apply. * interp/lisp-backend.boot (expandApply): Remove. Unregister expander. * interp/g-opt.boot (optCall): applyFun is not longer an opcode. Look for %apply. * interp/compiler.boot (applyMapping): Generate ['%call,['%apply,.]] form, not ['%apply,..] form. (extractCodeAndConstructTriple): Tidy. (compApplication): Likewise. 2012-02-19 Gabriel Dos Reis * interp/lexing.boot (getNumberToken): New. (getArgumentDesignator): Likewise. (getToken): Use it. * interp/parsing.lisp (GET-NUMBER-TOKEN): Remove. * interp/bootlex.lisp (INIT-BOOT/SPAD-READER): Move to spad.lisp. (SPAD): Likewise. (READ-SPAD1): Likewise. (TEST): Remove. (GET-ARGUMENT-DESIGNATOR-TOKEN): Likewise. 2012-02-19 Gabriel Dos Reis * interp/compiler.boot (compBuiltinDomain): Compute the exports from parentsOfBuiltinInstance. * interp/buildom.boot (parentsOfBuiltinInstance): Tidy. 2012-02-19 Gabriel Dos Reis * interp/compiler.boot (compBuiltinDomain): Rename from compCat. 2012-02-19 Gabriel Dos Reis * interp/br-data.boot (libConstructorSig): Rename T$ to T for external name printing. Do not call ncParseFromString. 2012-02-15 Gabriel Dos Reis * algebra/catdef.spad.pamphlet (Ring): Extends SemiRing. (Dioid): New. Extend OrderedAbelianMonoid and SemiRing. * algebra/exposed.lsp.pamphlet: Expose Dioid. 2012-02-13 Gabriel Dos Reis * interp/g-util.boot (stripTags): Rename from stripUnionTags. Adjust callers. * interp/database.boot (genericInstanceForm): New. * interp/buildom.boot (parentsOfBuiltinInstance): New. (builtinInstanceForm): Likewise. * interp/br-data.boot (genericParentsOf): New. (parentsOfForm): Use it, (ancestorsRecur): Likewise. * interp/br-con.boot (originInOrder): Use parentsOfForm. 2012-02-12 Gabriel Dos Reis * interp/define.boot (getCatAncestors): Remove. Adjust caller. (depthAssoc): Tidy. (NRTmakeCategoryAlist): Tidy. 2012-02-12 Gabriel Dos Reis * interp/define.boot (NRTcatCompare): Remove. (NRTmakeCategoryAlist): Don't call NRTcatCompare. Tidy. 2012-02-12 Gabriel Dos Reis * interp/define.boot (depthAssocList): Take the cache as second argument. Avoid globals. Adjust Callers. (depthAssoc): Likewise. Adjust Caller. (NRTmakeCategoryAlist): Remove uses of $depthAssocCache. 2012-02-12 Gabriel Dos Reis * algebra/coerce.spad.pamphlet (Type): Redefine as empty Join. * interp/category.boot (Join): Handle empty argument list. 2012-02-11 Gabriel Dos Reis * interp/define.boot (getParentsFor): Lose second parameter. Tidy. Adjust callers. * interp/br-data.boot (getParentsForDomain): Remove. (parentsOf): Call getParentsFor in lieu of getParentsForDomain. (folks): Move to define.boot. 2012-02-11 Gabriel Dos Reis * interp/br-data.boot (ancestorsRecur): Tidy. * interp/define.boot (compDefineCategory2): Likewise. 2012-02-11 Gabriel Dos Reis * interp/br-data.boot (getParentsFor): Move to define.boot. (explodeIfs): Likewise. (getParentsForDomain): Tidy. (ancestorsRecur): Likewise. 2012-02-09 Gabriel Dos Reis * interp/define.boot (mkEvalableCategoryForm): Compile only CATEGORY and SubsetCategory forms. 2012-02-09 Gabriel Dos Reis * interp/database.boot (categoryConstructor?): New. * interp/define.boot (mkEvalableCategoryForm): Use it. Tidy. 2012-02-08 Gabriel Dos Reis * interp/g-opt.boot (optCall): Simplify SPADCALL of atomic function expressions. ($VMsideEffectFreeOperators): Don't include %funcall. ($simpleVMoperators): Include it. 2012-02-07 Gabriel Dos Reis * algebra/Makefile.in (oa_algebra_layer_0): Include FINITE-. 2012-02-06 Gabriel Dos Reis * interp/lisplib.boot (dbLocateModule): New. (findModule): Use it. Simplify. (loadLib): Tidy. (genericLoadDB): New. (loadDB): Use it. (loadDBIfCan): New. * interp/c-util.boot (lookupDefiningFunction): Give up gracefully if the domain of computation is not compiled yet. * algebra/Makefile.in ($(OUT)/SPADAST.$(FASLEXT)): Require $(OUT)/SUCHTAST.$(FASLEXT). 2012-02-04 Gabriel Dos Reis * interp/nruncomp.boot (getLocalIndex): Fast track niladic constructors. * algebra/syntax.spad.pamphlet: Miscellaneous cleanup. 2012-02-03 Gabriel Dos Reis * utils/vm.H: Add more VM data structures. * utils/vm.cc (BasicContext::make_operator): Define. * algebra/Makefile.in (SPADFILES): Include syntax.spad and spad-parser.spad. 2012-01-14 Gabriel Dos Reis * algebra/catdef.spad.pamphlet (Finite) [random]: Provide default implementation. * algebra/boolean.spad.pamphlet (KleeneTrivalentLogic): Now satisfy Finite. Use Maybe Boolean as representation. 2012-01-14 Gabriel Dos Reis * interp/i-util.boot ($intTopLevel): Move to sys-constants.boot. * interp/g-error.boot (returnToTopLevel): Tidy. * interp/macros.lisp (applyWithOutputToString): Likewise. 2012-01-14 Gabriel Dos Reis * interp/spaderror.lisp: Move convent to spad.lisp. Remove. 2012-01-14 Gabriel Dos Reis * interp/patches.lisp: Move content to msgdb.boot. Remove. 2012-01-14 Gabriel Dos Reis * interp/word.boot: Add import and scope statements. Include in final executables. (infix?): Remove as duplicate in match.boot. (prefix?): Likewise. (suffix?): Likewise. * interp/g-error.boot (returnToTopLevel): Tidy. * interp/debug.lisp (/D-2): Use spadThrow in lieu of UNWIND. * interp/patches.lisp (CATCHALL): Remove. (DBRINIT): Likewise. (TOPLEVEL): Likewise. (TOP-LEVEL): Likewise. (UNWIND): Likewise. (RESUME): Likewise. (booFind): Likewise. 2012-01-14 Gabriel Dos Reis * lisp/core.lisp.in (mkIntArray): New. Export. * interp/patches.lisp (/RF): Move to cparse.boot. (/RQ): Likewise. (/RQ,LIB): Likewise. (/RF-1): Likewise. (/EF): Move to spad.lisp. (construct): Remove. (READSPADEXPR): Likewise. (SHAREDITEMS): Likewise. (installStandardTestPackages): Likewise. (spadtestValueHook): Likewise. (testError): Likewise. ($TestOptions): Likewise. (rebuild): Likewise. ($ViewportProcessToWatch): Likewise. (setViewportProcess): Likewise. (waitForViewport): Likewise. * interp/i-analy.boot (pushDownOp?): Use mkIntArray in place of GETZEROVEC. * interp/i-funsel.boot (argCouldBelongToSubdomain): Likewise. * interp/i-intern.boot (flagArguments): Likewise. 2012-01-12 Gabriel Dos Reis * interp/category.boot: Rename AncestorP to ancestor?. Rename DescendantP to descendant?. * interp/define.boot: Likewise. * interp/functor.boot: Likewise. 2012-01-12 Gabriel Dos Reis * boot/parser.boot (bpFunction): New. (bpConstTok): Include it. * boot/ast.boot (bfFunction): New. * boot/tokens.boot: `function' is now a keyword. 2012-01-11 Gabriel Dos Reis * boot/tokens.boot (keywordId): New. * boot/parser.boot (bpSexpKey): Use it. * interp/i-map.boot (mapPredTran): Fix thinko. 2012-01-09 Gabriel Dos Reis * boot/parser.boot (bpRequire): New. Use it throughout this module. 2012-01-08 Gabriel Dos Reis * boot/ast.boot (bfEnum): New. * boot/translator.boot (translateToplevel): Use it to translate enumeration definitions. * interp/types.boot (%ConstructorKind): Use new syntax. 2012-01-01 Gabriel Dos Reis * interp/define.boot (evalCategoryForm): New. (mkCategoryPackage): Use it. (compMakeCategoryObject): Likewise. * interp/nruncomp.boot (NRTsetVector4a): Likewise.