aboutsummaryrefslogtreecommitdiff
path: root/src/interp/g-util.boot
AgeCommit message (Collapse)AuthorFilesLines
2016-02-01Better indirect call resolutionGabriel Dos Reis1-0/+12
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.
2015-12-24Tidy uses of apply.Gabriel Dos Reis1-2/+2
2015-12-24Replace FUNCALL with apply.Gabriel Dos Reis1-4/+4
2014-11-27Replace PATHNAME-* Lisp API with filePath* API.dos-reis1-1/+1
2014-11-25Use makeTable instead of MAKE-HASH-TABLEdos-reis1-4/+4
2013-07-02Rever sharp var list changes.dos-reis1-8/+1
2013-07-01Bring closer to GCL-buildability.dos-reis1-1/+18
2013-06-18Misc cleanup.dos-reis1-1/+1
2013-05-11Consistently use OIL opcodes for abstractionsdos-reis1-1/+1
2012-05-23 * interp/vmlisp.lisp (MAKE-CVEC): Remove.dos-reis1-1/+1
(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.
2012-05-08 * boot/tokens.boot: Export char. Do not rename maxIndex.dos-reis1-1/+1
* 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.
2012-05-07 * interp/sys-globals.boot ($insideCompTypeOf): Remove.dos-reis1-13/+0
* interp/preparse.lisp (INITIAL-SUBSTRING): Remove. * interp/g-util.boot (stringPrefix?): Remove. * interp/compiler.boot (compTypeOf): Remove. (comp3): Don't call it.
2012-05-03 * interp/g-opt.boot ($AbstractionOperator): Remove SLAM.dos-reis1-1/+1
* interp/c-util.boot (backendCompileSLAM): Remove. (backendCompileSPADSLAM): Tidy. (backendCompile2): Adjust.
2012-05-01 * algebra/integer.spad.pamphlet (Integer): Use %iaddmod, %isubmod,dos-reis1-1/+1
%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.
2012-04-28 * interp/boot-pkg.lisp (gensym?): Check for non-null object.dos-reis1-1/+1
* 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.
2012-02-26 * interp/g-util.boot (usedSymbol?): Remove.dos-reis1-12/+21
(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-13 * interp/g-util.boot (stripTags): Rename from stripUnionTags.dos-reis1-2/+2
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.
2011-12-18 * interp/g-opt.boot (removeScope!): New.dos-reis1-1/+1
(optimize!): Call it. (optimizeFunctionDef): Simplify.
2011-12-15 * interp/g-util.boot (prefixWalk!): New.dos-reis1-0/+8
* interp/g-opt.boot (cleanLoop!): Rename from removeLoopExitTag!. Adjust caller. Rewrite as a prefix walk.
2011-12-14fix miscdos-reis1-1/+1
2011-12-12 * interp/g-util.boot (liftAassignments!): New.dos-reis1-2/+13
(splitAssignments!): Use it. * algebra/multpoly.spad.pamphlet (SparseMultivariatePolynomial): Fix thinko.
2011-12-11 * interp/g-opt.boot (inlineLocals!): Single-used temporaries should go.dos-reis1-3/+7
(spliceSeqArgs): Splice sequences drapped in %scope cloths too.
2011-12-10 * interp/g-opt.boot (optSeq): Remove splicePROGN as redundant.dos-reis1-0/+4
* interp/functor.boot (optFunctorBody): Generate %seq form, not PROGN. (DescendCode): Likewise. * interp/c-util.boot (displayComp): Fix thinko.
2011-12-07 * interp/g-opt.boot (groupTranscients!): New.dos-reis1-0/+21
(reduceXLAM!): Likewise. (optimizeFunctionDef): Call them before simplifyVMForm. * interp/g-util.boot (mkSeq): New. (abstraction?): Likewise. (walkWith!): Likewise.
2011-12-05 * interp/g-util.boot (splitAssignments): Rework.dos-reis1-4/+10
(spliceSeqArgs): Tidy. * algebra/gdpoly.spad.pamphlet (GeneralDistributedMultivariatePolynomial): Fix thinko.
2011-12-05 * interp/g-opt.boot (changeVariableDefinitionToStore): Separatelydos-reis1-2/+3
handle %bind and LET forms. * interp/g-util.boot (spliceSeqArgs): Recurse into %seq forms.
2011-12-04 * interp/g-util.boot (splitAssignments): New.dos-reis1-0/+11
(spliceSeqArgs): Use it.
2011-12-03 * interp/compiler.boot: Use %seq in lieu of PROGN.dos-reis1-1/+15
* interp/g-util.boot (spliceSeqArgs): New. * interp/g-opt.boot (changeVariableDefinitionToStore): Call it before recursing on %seq forms.
2011-12-03 * interp/compiler.boot (setqMultiple): Handle lhs and rhs of typedos-reis1-1/+2
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 * interp/compiler.boot: Replace %labelled with %scope.dos-reis1-3/+3
* interp/define.boot: Likewise. * interp/g-opt.boot: Likewise. * interp/g-util.boot: Likewise. Rename mkLabelled to mkScope.
2011-12-03 * interp/g-util.boot (hasNoLeave?): Move from g-opt.boot.dos-reis1-0/+23
(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-11-29 * boot/tokens.boot (absKind, absParms, absBody): New selectors.dos-reis1-1/+1
* 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-24 * interp/define.boot: Tidy.dos-reis1-2/+2
* interp/functor.boot: Likewise. * interp/g-util.boot: Likewise. * interp/slam.boot: Likewise. * interp/topics.boot: Likewise. * interp/trace.boot: Likewise.
2011-11-16 * interp/category.boot (mkCategory): Tidy.dos-reis1-0/+32
(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-10-31 * interp/i-funsel.boot (evalMmCond0): Tidy. Call evalMmGuard todos-reis1-0/+9
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-27 Support use of any natural number literal as constant name.dos-reis1-0/+21
* 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-18 * interp/postpar.boot (displayPreCompilationErrors): Dot not checkdos-reis1-1/+1
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-04 * boot/utility.boot (symbolAssoc): Rename from assocSymbol. Export.dos-reis1-6/+5
* 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 Cleanup.dos-reis1-1/+1
2011-10-02 * boot/utility.boot (objectAssoc): New. Export.dos-reis1-6/+7
* 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 * boot/utility.boot: Define BOOTTRAN namespace.dos-reis1-2/+2
(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-08 * interp/c-util.boot (builtinCategoryName?): Move to g-util.boot.dos-reis1-0/+40
(builtinFunctorName?): Likewise. (builtinConstructor?): Likewise. (superType): Exit early if builtin functor or non-domain form. * algebra/Makefile.in: Flesh out bootstrap dependencies.
2011-09-07 * interp/lisplib.boot (finalizeLisplib): Finalize documentaiondos-reis1-3/+3
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-03 * interp/property.lisp: Remove unused codes.dos-reis1-2/+5
* 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-29 * interp/lisplib.boot (loadLib): Remove deadcode.dos-reis1-7/+6
(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-25 * interp/hashcode.boot: Remove.dos-reis1-4/+0
*interp/interop.boot: Move OpenAxiom relevant code to define.boot and nrunfast.boot. Remove.
2011-08-22 * interp/database.boot (getConstructorModemap): Rename fromdos-reis1-1/+1
getConstructorModemapFromDB. Adjust callers.
2011-08-12 * interp/nrunfast.boot (newLookupInTable): Compare domain anddos-reis1-1/+1
dollar as objects, not as value. (newLookupInCategories): Remove deadcode. (newExpandGoGetTypes): Remove as unused.
2011-08-12 * interp/define.boot (NRTgetLookupFunction): Handle the case wheredos-reis1-1/+7
the base domain is a parameter. * interp/g-util.boot (formalVarNumber): New. * lisp/core.lisp.in (readIntegerIfCan): Likewise.
2011-08-06cleanupdos-reis1-15/+15