Age | Commit message (Collapse) | Author | Files | Lines |
|
The infrastructure put in place in the last few commits now enables
better indirect calls ('SPADCALL') to operations implemented in the
same capsule. The improvement here is that the limitation of
unconditional definition is removed. Now, even conditional
definitions are resolved as long as the its predicate and the
predicate of the current function match.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(GETSTR): Likewise.
* interp/sys-macros.lisp (INTERNL): Likewise.
* interp/macros.lisp: Move content to vmlisp.lisp. Remove.
* interp/Makefile.in: Adjust.
* interp/debug.lisp: Now import sys-macros
* interp/fname.lisp: Likewise.
* interp/format.boot: Likewise.
* interp/g-timer.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/ht-util.boot: Likewise.
* interp/htcheck.boot: Likewise.
* interp/htsetvar.boot: Likewise.
* interp/monitor.lisp: Likewise.
* interp/newaux.lisp: Likewise.
* interp/newfort.boot: Likewise.
* interp/nlib.lisp: Likewise.
* interp/postpar.boot: Likewise.
* interp/profile.boot: Likewise.
* interp/server.boot: Likewise.
* interp/setvars.boot: Likewise.
* interp/setvart.boot: Likewise.
* interp/sfsfun.boot: Likewise.
* interp/simpbool.boot: Likewise.
* interp/spad.lisp: Likewise.
* interp/termrw.boot: Likewise.
* interp/topics.boot: Likewise.
|
|
* lisp/core.lisp.in (maxIndex): Define and export.
* interp/bootlex.lisp: Adjust.
* interp/parsing.lisp: Likewise.
* interp/macros.lisp: Likewise.
(DROPTRAILINGBLANKS): Remove.
(BLANKP): Likewise.
(NONBLANKLOC): Likewise.
* interp/io.boot (trimTrailingBlank): New.
(firstNonblankCharPosition): Likewise.
* interp/preparse.lisp: Use them. Adjust.
* interp/sys-macros.lisp (char): Remove.
* interp/vmlisp.lisp (MAXINDEX): Likewise.
* interp/br-search.boot (pmTransFilter): Fix bogus uses of char.
* interp/debug.lisp: Likewise.
* interp/g-util.boot: Likewise.
* interp/ht-root.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
|
|
* interp/preparse.lisp (INITIAL-SUBSTRING): Remove.
* interp/g-util.boot (stringPrefix?): Remove.
* interp/compiler.boot (compTypeOf): Remove.
(comp3): Don't call it.
|
|
* interp/c-util.boot (backendCompileSLAM): Remove.
(backendCompileSPADSLAM): Tidy.
(backendCompile2): Adjust.
|
|
%imulmod.
* algebra/si.spad.pamphlet (SingleInteger): Likewise.
* interp/c-util.boot (devaluate): Use # in lieu of QVSIZE.
* interp/g-opt.boot: %ilfshift and %irshift are now builtin
side-effect free operations.
* interp/lisp-backend.boot: Translate them.
* interp/g-util.boot (mergeSort): Avoid QSDIFFERENCE.
* interp/slam.boot: Likewise.
* interp/sys-macros.lisp: Likewise.
* interp/macros.lisp: Avoid QVMAXINDEX.
* interp/vmlisp.lisp (QSDIFFERENCE): Remove.
(QSGREATERP): Likewise.
(QSLEFTSHIFT): Likewise.
(QSLESSP): Likewise.
(QSMAX): Likewise.
(QSMIN): Likewise.
(QSMINUS): Likewise.
(QSMINUSP): Likewise.
(QSODDP): Likewise.
(QSABSVAL): Likewise.
(QSPLUS): Likewise.
(QSZEROP): Likewise.
(QVMAXINDEX): Likewise.
(QVSIZE): Likewise.
(ZERO?): Likewise.
|
|
* interp/clammed.boot: Use it in lieu of GENSYMP.
* interp/debug.lisp: Likewise.
* interp/g-opt.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/i-analy.boot: Likewise.
* interp/trace.boot: Likewise.
* interp/vmlisp.lisp (GENSYMP): 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.
|
|
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.
|
|
(optimize!): Call it.
(optimizeFunctionDef): Simplify.
|
|
* interp/g-opt.boot (cleanLoop!): Rename from removeLoopExitTag!.
Adjust caller. Rewrite as a prefix walk.
|
|
|
|
(splitAssignments!): Use it.
* algebra/multpoly.spad.pamphlet (SparseMultivariatePolynomial):
Fix thinko.
|
|
(spliceSeqArgs): Splice sequences drapped in %scope cloths too.
|
|
* interp/functor.boot (optFunctorBody): Generate %seq form, not PROGN.
(DescendCode): Likewise.
* interp/c-util.boot (displayComp): Fix thinko.
|
|
(reduceXLAM!): Likewise.
(optimizeFunctionDef): Call them before simplifyVMForm.
* interp/g-util.boot (mkSeq): New.
(abstraction?): Likewise.
(walkWith!): Likewise.
|
|
(spliceSeqArgs): Tidy.
* algebra/gdpoly.spad.pamphlet
(GeneralDistributedMultivariatePolynomial): Fix thinko.
|
|
handle %bind and LET forms.
* interp/g-util.boot (spliceSeqArgs): Recurse into %seq forms.
|
|
(spliceSeqArgs): Use it.
|
|
* interp/g-util.boot (spliceSeqArgs): New.
* interp/g-opt.boot (changeVariableDefinitionToStore): Call it
before recursing on %seq forms.
|
|
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.
|
|
* interp/define.boot: Likewise.
* interp/g-opt.boot: Likewise.
* interp/g-util.boot: Likewise. Rename mkLabelled to mkScope.
|
|
(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.
|
|
* 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.
|
|
* interp/functor.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/slam.boot: Likewise.
* interp/topics.boot: Likewise.
* interp/trace.boot: Likewise.
|
|
(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.
|
|
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.
|
|
* 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.
|
|
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.
|
|
* 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.
|
|
|
|
* 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.
|
|
(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.
|
|
(builtinFunctorName?): Likewise.
(builtinConstructor?): Likewise.
(superType): Exit early if builtin functor or non-domain form.
* algebra/Makefile.in: Flesh out bootstrap dependencies.
|
|
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.
|
|
* 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.
|
|
(isDomainForm): Tidy.
(isFunctor): Likewise.
(compDefineExports): Remove as no longer used.
* interp/sys-utility.boot (loadExports): Likewise.
* interp/g-util.boot (get0, get1, get2): Tidy.
|
|
*interp/interop.boot: Move OpenAxiom relevant code to define.boot
and nrunfast.boot. Remove.
|
|
getConstructorModemapFromDB. Adjust callers.
|
|
dollar as objects, not as value.
(newLookupInCategories): Remove deadcode.
(newExpandGoGetTypes): Remove as unused.
|
|
the base domain is a parameter.
* interp/g-util.boot (formalVarNumber): New.
* lisp/core.lisp.in (readIntegerIfCan): Likewise.
|
|
|