Age | Commit message (Collapse) | Author | Files | Lines |
|
free argument in a unary pure function call if it is used exactly once.
* algebra/integer.spad.pamphlet (Integer) [reducedSystem]: Fix typo.
|
|
* algebra/poly.spad.pamphlet: Likewise.
* interp/define.boot (spadCompileOrSetq): Tidy replacement info.
* interp/i-output.boot ($BinaryOperators): New.
(binaryInfix?): Tidy.
|
|
(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.
|
|
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.
|
|
Implement ~. \/, and /\ instead.
* algebra/si.spad.pamphlet (SingleInteger): Likewise.
* algebra/pattern.spad.pamphlet (Pattern): Adjust.
* algebra/string.spad.pamphlet (CharacterClass): Likewise.
|
|
* algebra/Makefile.in: Tidy.
|
|
|
|
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.
|
|
|
|
|
|
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.
|
|
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.
|
|
(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.
|
|
* 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.
|
|
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.
|
|
definition, as it is not exported.
|
|
(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.
|
|
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/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.
|
|
Boolean operators in terms of Logic operators.
(PropositionalFormula): Implement Logic operators instead of
Boolean operators.
* algebra/exposed.lsp.pamphlet: Expose
PropositionalFormulaFunctions1 and PropositionalFormulaFunctions2.
|
|
[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.
|
|
* 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.
|
|
* 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.
|
|
* 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.
|
|
* 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.
|
|
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.
|
|
* 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.
|
|
* algebra/list.spad.pamphlet (IndexedList): Fold definition into
List. Remove.
* algebra/exposed.lsp.pamphlet: Don't expose ILIST.
* algebra/Makefile.in: Adjust.
|
|
(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.
|
|
CoercibleTo Symbol and CoercibleTo String properties.
* algebra/symbol.spad.pamphlet (Symbol): Make RetractableTo Identifier.
|
|
instead of coercion from Identifier to String.
|
|
convert from Identifier.
|
|
(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.
|
|
(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.
|
|
initdb.daase before bootstrap.
|
|
($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.
|
|
* interp/database.boot (loadDBIfnecessary): New.
(dbMutable?): Likewise.
* interp/lisplib.boot (finalizeLisplib): Record mutable property.
|
|
* 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.
|
|
(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
|
|
database tables if algebra is not complete yet.
* interp/Makefile.in (${SAVESYS}): Simplify.
* algebra/Makefile.in (strap-stamp): Make the destination directory.
|
|
[divide]: Tidy.
* algebra/Makefile.in (strap-0/%.$(FASLEXT)): Copy generated Lisp
files if keeping intermediate files.
|
|
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.
|
|
(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.
|
|
(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.
|
|
|
|
|
|
(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.
|
|
COERCE. Eliminate second argument.
(expandStr2bytevec): Use MAP instead of COERCE.
* algebra/data.spad.pamphlet (ByteBuffer) [coerce]: Adjust call to
%bytevec2str.
|
|
* 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.
|