Age | Commit message (Collapse) | Author | Files | Lines |
|
* 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.
|
|
Adjust callers.
(unloadOneConstructor): Likewise.
* interp/category.boot (isCategoryForm): Rewrite.
* interp/patches.lisp (mkAutoLoad): Move to lisplib.boot.
|
|
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.
|
|
* interp/category.boot: Likewise.
* interp/modemap.boot: Likewise.
|
|
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.
|
|
* interp/category.boot (mkCategory): Use it.
* interp/define.boot (NRTgetLookupFunction): Tidy.
(catExtendsCat?): Lose last argument. Adjust callers.
|
|
|
|
(DomainPrint1): Tidy.
(PacPrint): Likewise.
(DomainPrintSubst): Likewise.
|
|
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.
|
|
* interp/define.boot (hasFullSignature): Tidy.
|
|
* interp/category.boot (mkCategory): Use it.
(DropImplementations): Tidy.
|
|
* 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.
|
|
|
|
(instantiatorCtor, instantiatorArgs, categoryExports): New.
|
|
|
|
|
|
* 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.
|
|
|
|
|
|
singDowncase, valueEq? are new builtin functions.
* boot/ast.boot (bfMembr): Tidy.
|
|
|
|
|
|
|
|
* interp/category.boot (mkCategory): Drop test for primitive
domains.
|
|
|
|
instantiations in determining NewLocals.
|
|
* interp/c-util.boot: Adjust use.
* interp/functor.boot: Likewise.
* interp/modemap.boot: Likewise.
|
|
|
|
(REFVECP): Likewise.
(CVECP): Likewise.
(QMEMQ): Likewise.
* interp/bootlex.lisp (TRANSLABEL1): Adjust.
* interp/br-search.boot: Likewise.
* interp/br-util.boot: Likewise.
* interp/c-doc.boot: Likewise.
* interp/category.boot: Likewise.
* interp/database.boot: Likewise.
* interp/debug.lisp: Likewise.
* interp/format.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/g-cndata.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/ggreater.lisp: Likewise.
* interp/guess.boot: Likewise.
* interp/i-coerfn.boot: Likewise.
* interp/i-map.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/i-resolv.boot: Likewise.
* interp/i-spec2.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/interop.boot: Likewise.
* interp/i-util.boot: Likewise.
* interp/union.lisp: Likewise.
* interp/trace.boot: Likewise.
* interp/pspad2.boot: Likewise.
* interp/pathname.boot: Likewise.
* interp/nrunopt.boot: Likewise.
* interp/nrunfast.boot: Likewise.
* interp/nruncomp.boot: Likewise.
* interp/newfort.boot: Likewise.
* interp/msgdb.boot: Likewise.
* interp/msg.boot: Likewise.
* interp/match.boot: Likewise.
* interp/word.boot: Likewise.
|
|
|
|
* interp/compiler.boot (compMacro): Handle parameterized definition.
* interp/define.boot (macroExpand): Likewise.
(macroExpandList): Move case for niladic macros to macroExpand.
* interp/g-util.boot (putMacro): New utility function.
|
|
* interp/br-op1.boot: Likewise.
* interp/br-saturn.boot: Likewise.
* interp/c-util.boot: Likewise.
* interp/category.boot: Likewise.
* interp/clam.boot: Likewise.
* interp/database.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/g-cndata.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/guess.boot: Likewise.
* interp/i-coerce.boot: Likewise.
* interp/i-funsel.boot: Likewise.
* interp/i-intern.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/interop.boot: Likewise.
* interp/newfort.boot: Likewise.
* interp/nruncomp.boot: Likewise.
* interp/nrunfast.boot: Likewise.
* interp/nrunopt.boot: Likewise.
* interp/setvars.boot: Likewise.
* interp/slam.boot: Likewise.
* interp/topics.boot: Likewise.
|
|
* interp/br-util.boot: Likewise.
* interp/category.boot: Likewise.
* interp/compiler.boot: Likewise.
* interp/define.boot: Likewise.
* interp/modemap.boot: Likewise.
* interp/wi2.boot: Likewise.
|
|
|
|
(bpParenthesizedApplication): Use it. New.
(bpPrimary1): Use it to implement function call with explicit
parenthesis as primary.
(bpOperator): Remove.
(bpAssignLHS): Rework. Allow field path after function call.
* boot/translator.boot: Remove debugging statement.
* interp/as.boot: Adjust to new syntax.
* interp/br-con.boot: Likewise.
* interp/br-data.boot: Likewise.
* interp/c-doc.boot: Likewise.
* interp/category.boot: Likewise.
* interp/cattable.boot: Likewise.
* interp/define.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/interop.boot: Likewise.
* interp/nrunopt.boot: Likewise.
* interp/pspad1.boot: Likewise.
* interp/setvars.boot: Likewise.
* interp/trace.boot: Likewise.
|
|
integer?, string?, symbol?, and cons? respectively.
* interp/wi1.boot: Likewise.
* interp/trace.boot: Likewise.
* interp/sys-utility.boot: Likewise.
* interp/showimp.boot: Likewise.
* interp/setvars.boot: Likewise.
* interp/record.boot: Likewise.
* interp/pspad2.boot: Likewise.
* interp/pspad1.boot: Likewise.
* interp/postpar.boot: Likewise.
* interp/posit.boot: Likewise.
* interp/pf2sex.boot: Likewise.
* interp/pf2atree.boot: Likewise.
* interp/parse.boot: Likewise.
* interp/packtran.boot: Likewise.
* interp/nrunopt.boot: Likewise.
* interp/nrungo.boot: Likewise.
* interp/nrunfast.boot: Likewise.
* interp/nruncomp.boot: Likewise.
* interp/newfort.boot: Likewise.
* interp/msgdb.boot: Likewise.
* interp/msg.boot: Likewise.
* interp/modemap.boot: Likewise.
* interp/match.boot: Likewise.
* interp/mark.boot: Likewise.
* interp/interop.boot: Likewise.
* interp/int-top.boot: Likewise.
* interp/i-toplev.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/i-spec2.boot: Likewise.
* interp/i-spec1.boot: Likewise.
* interp/i-resolv.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/i-object.boot: Likewise.
* interp/i-map.boot: Likewise.
* interp/i-intern.boot: Likewise.
* interp/i-funsel.boot: Likewise.
* interp/i-eval.boot: Likewise.
* interp/i-coerfn.boot: Likewise.
* interp/i-coerce.boot: Likewise.
* interp/i-analy.boot: Likewise.
* interp/htsetvar.boot: Likewise.
* interp/htcheck.boot: Likewise.
* interp/ht-util.boot: Likewise.
* interp/ht-root.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/g-opt.boot: Likewise.
* interp/g-error.boot: Likewise.
* interp/g-boot.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/fortcall.boot: Likewise.
* interp/format.boot: Likewise.
* interp/diagnostics.boot: Likewise.
* interp/define.boot: Likewise.
* interp/compress.boot: Likewise.
* interp/compiler.boot: Likewise.
* interp/clammed.boot: Likewise.
* interp/clam.boot: Likewise.
* interp/cformat.boot: Likewise.
* interp/cattable.boot: Likewise.
* interp/category.boot: Likewise.
* interp/c-util.boot: Likewise.
* interp/c-doc.boot: Likewise.
* interp/buildom.boot: Likewise.
* interp/br-util.boot: Likewise.
* interp/br-search.boot: Likewise.
* interp/br-saturn.boot: Likewise.
* interp/br-op2.boot: Likewise.
* interp/br-op1.boot: Likewise.
* interp/br-data.boot: Likewise.
* interp/br-con.boot: Likewise.
* interp/bc-util.boot: Likewise.
* interp/ax.boot: Likewise.
* interp/as.boot: Likewise.
* boot/translator.boot: Likewise.
* boot/ast.boot: Likewise.
* boot/includer.boot: Likewise.
* boot/tokens.boot: Add new replacement for integer?, string?,
symbol? and cons?
|
|
|
|
|
|
* interp/ax.boot: Likewise.
* interp/br-con.boot: Likewise.
* interp/br-data.boot: Likewise.
* interp/br-op1.boot: Likewise.
* interp/br-op2.boot: Likewise.
* interp/br-saturn.boot: Likewise.
* interp/br-search.boot: Likewise.
* interp/c-util.boot: Likewise.
* interp/category.boot: Likewise.
* interp/cattable.boot: Likewise.
* interp/clam.boot: Likewise.
* interp/compiler.boot: Likewise.
* interp/cstream.boot: Likewise.
* interp/define.boot: Likewise.
* interp/format.boot: Likewise.
* interp/fortcall.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/g-boot.boot: Likewise.
* interp/g-opt.boot: Likewise.
* interp/g-timer.boot: Likewise.
* interp/guess.boot: Likewise.
* interp/i-analy.boot: Likewise.
* interp/i-coerce.boot: Likewise.
* interp/i-coerfn.boot: Likewise.
* interp/i-eval.boot: Likewise.
* interp/i-funsel.boot: Likewise.
* interp/i-intern.boot: Likewise.
* interp/i-map.boot: Likewise.
* interp/i-object.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/i-resolv.boot: Likewise.
* interp/i-spec1.boot: Likewise.
* interp/i-spec2.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/int-top.boot: Likewise.
* interp/interop.boot: Likewise.
* interp/lisplib.boot: Likewise.
* interp/mark.boot: Likewise.
* interp/modemap.boot: Likewise.
* interp/msg.boot: Likewise.
* interp/msgdb.boot: Likewise.
* interp/newfort.boot: Likewise.
* interp/nrunfast.boot: Likewise.
* interp/nrungo.boot: Likewise.
* interp/nrunopt.boot: Likewise.
* interp/pf2atree.boot: Likewise.
* interp/pile.boot: Likewise.
* interp/pspad1.boot: Likewise.
* interp/ptrees.boot: Likewise.
* interp/scan.boot: Likewise.
* interp/sfsfun.boot: Likewise.
* interp/showimp.boot: Likewise.
* interp/slam.boot: Likewise.
* interp/trace.boot: Likewise.
* interp/wi1.boot: Likewise.
* interp/word.boot: Likewise.
|
|
* boot/ast.boot: Use "~=" instead of "^=".
* boot/includer.boot: Likewise.
* boot/translator.boot: Likewise.
* interp/as.boot: Likewise.
* interp/bc-misc.boot: Likewise.
* interp/bc-solve.boot: Likewise.
* interp/bc-util.boot: Likewise.
* interp/br-con.boot: Likewise.
* interp/br-data.boot: Likewise.
* interp/br-op1.boot: Likewise.
* interp/br-op2.boot: Likewise.
* interp/br-prof.boot: Likewise.
* interp/br-saturn.boot: Likewise.
* interp/br-search.boot: Likewise.
* interp/br-util.boot: Likewise.
* interp/c-doc.boot: Likewise.
* interp/c-util.boot: Likewise.
* interp/category.boot: Likewise.
* interp/cattable.boot: Likewise.
* interp/clam.boot: Likewise.
* interp/clammed.boot: Likewise.
* interp/compiler.boot: Likewise.
* interp/database.boot: Likewise.
* interp/define.boot: Likewise.
* interp/format.boot: Likewise.
* interp/fortcall.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/g-cndata.boot: Likewise.
* interp/g-opt.boot: Likewise.
* interp/g-timer.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/guess.boot: Likewise.
* interp/ht-root.boot: Likewise.
* interp/ht-util.boot: Likewise.
* interp/htsetvar.boot: Likewise.
* interp/i-analy.boot: Likewise.
* interp/i-code.boot: Likewise.
* interp/i-coerce.boot: Likewise.
* interp/i-coerfn.boot: Likewise.
* interp/i-eval.boot: Likewise.
* interp/i-funsel.boot: Likewise.
* interp/i-intern.boot: Likewise.
* interp/i-map.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/i-resolv.boot: Likewise.
* interp/i-spec1.boot: Likewise.
* interp/i-spec2.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/i-toplev.boot: Likewise.
* interp/i-util.boot: Likewise.
* interp/int-top.boot: Likewise.
* interp/interop.boot: Likewise.
* interp/intfile.boot: Likewise.
* interp/lisplib.boot: Likewise.
* interp/macex.boot: Likewise.
* interp/mark.boot: Likewise.
* interp/match.boot: Likewise.
* interp/modemap.boot: Likewise.
* interp/msg.boot: Likewise.
* interp/msgdb.boot: Likewise.
* interp/newfort.boot: Likewise.
* interp/nruncomp.boot: Likewise.
* interp/nrunfast.boot: Likewise.
* interp/nrungo.boot: Likewise.
* interp/nrunopt.boot: Likewise.
* interp/parse.boot: Likewise.
* interp/pathname.boot: Likewise.
* interp/pf2atree.boot: Likewise.
* interp/pf2sex.boot: Likewise.
* interp/postpar.boot: Likewise.
* interp/profile.boot: Likewise.
* interp/pspad1.boot: Likewise.
* interp/pspad2.boot: Likewise.
* interp/record.boot: Likewise.
* interp/scan.boot: Likewise.
* interp/setvars.boot: Likewise.
* interp/simpbool.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.
|
|
(SourceLevelSubsume): Remove.
(SourceLevelSubset): Likewise.
* interp/sys-globals.boot: Likewise.
* interp/define.boot: Tidy.
* interp/functor.boot: Likewise.
* interp/info.boot: Likewise.
* algebra/si.spad.pamphlet: Don't set $noSubsets.
* algebra/fortpak.spad.pamphlet: Don't set $noSubsumption.
* algebra/fortran.spad.pamphlet: Likewise.
* algebra/gdirprod.spad.pamphlet: Likewise.
* algebra/mkfunc.spad.pamphlet: Likewise.
* algebra/oct.spad.pamphlet: Likewise.
* algebra/vector.spad.pamphlet: Likewise.
|
|
* interp/compiler.boot: Likewise.
* interp/define.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/info.boot: Likewise.
* interp/nruncomp.boot: Likewise.
* interp/wi1.boot: Likewise.
* interp/wi2.boot: Likewise.
|
|
* Makefile.pamphlet (AXIOM_SRC_TARGETS): Add all-databases.
src/ChangeLog
2009-01-03 Gabriel Dos Reis <gdr@cs.tamu.edu>
* lisp/core.lisp.in (|%algebraSystemIsComplete|): New.
(|%basicSystemIsComplete|): Use it.
* interp/wi1.boot (setqSingle): Use maximalSuperType.
(coerceSubset): Simplify.
(compCoerce1): Tidy.
* interp/i-resolv.boot (resolveTCat): Use superType.
* interp/lisplib.boot (findConstructorSlotNumber): Use isSubset.
(sigsMatch): Likewise.
(findDomainSlotNumber): Likewise.
* interp/define.boot (compSubDomain1): Reject for complex subdomain
predicate. Support paramterized subdomains.
* interp/daase.lisp (interpOpen): Read superdomain slot.
(getdatabase): Remove adhoc hardcoded superdomain info.
Return superdomain info stored in database.
(localnrlib): Read superdomain info.
(write-interpdb): Write superdomain info.
(database): Add superdomain slot.
* interp/g-util.boot (superType): New.
(maximalSuperType): Rework. Support parameterized subdomains.
(noteSubDomainInfo): New.
(isSubDomain): Rework.
* interp/c-util.boot (isSubset): Rework.
* interp/g-opt.boot (optEQ): Remove.
* interp/g-cndata.boot (getImmediateSuperDomain): Remove.
(maximalSuperType): Move to g-util.boot.
* interp/types.boot (%Constructor): New type specifier.
(%Instantiation): Likewise.
* interp/compiler.boot (primitiveType): Don't return $NegativeInteger.
(maxSuperType): Remove.
(hasType): Use maximalSuperType.
(satisfies): New.
(coerceSubset): Use it. Simplify.
* interp/wi2.boot (smallIntegerStep): Use maximalSuperType.
* interp/sys-constants.boot ($AtVariables): New.
($NegativeInteger): Remove.
($NonPositiveInteger): Likewise.
($CategoryNames): Category is not a category.
* interp/property.lisp: Remove Subsets property settings.
* interp/i-coerce.boot (coerceSubDomain): Simplify.
(coerceImmediateSubDomain): Remove.
(getSubDomainPredicate): Simplify.
* interp/category.boot (SourceLevelSubset): Use isSubDomain.
(MachineLevelSubset): Likewise.
* interp/modemap.boot (mergeModemap): Likewise.
(isSuperDomain): Remove.
(augModemapsFromDomain): Support parameterized subdomains.
* interp/i-util.boot (isSubDomain): Move to g-util.boot.
* Makefile.pamphlet (all-databases): New target.
* interp/Makefile.pamphlet ($(AXIOMSYS)): Push
:open-axiom-algebra-system onto *FEATURES*.
* etc/Makefile.in (all-databases): New target.
|
|
* interp/g-opt.boot (optCall): Likewise.
* interp/functor.boot (SetFunctionSlots): Likewise.
(mkOperatorEntry): Lose first parameter.
(optPackageCall): Remove.
* interp/category.boot (mkCategory): Document. Adjust call to
mkOperatorEntry.
|
|
* interp/compiler.boot: Likewise.
* interp/define.boot: Likewise.
* interp/sys-globals.boot: Likewise.
* interp/wi1.boot ($frontier): Removed, as unused.
* interp/wi2.boot ($attributesName): Likewise.
($goGetList): Likewise.
($NRTaddList): Likewise.
($NRTloadTimeAlist): Likewise.
($lisplibMissingFunctions): Likewise.
($alternateViewList): Likewise.
|
|
* interp/br-op1.boot: Likewise.
* interp/c-doc.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/category.boot: Likewise.
* interp/g-cndata.boot: Likewise.
* interp/i-util.boot: Likewise.
* interp/lisplib.boot: Likewise.
* interp/mark.boot: Likewise.
* interp/wi1.boot: Likewise.
* interp/wi2.boot: Likewise.
|
|
(isPackageType): Likewise.
* interp/lisplib.boot (getSlotFromDomain): Remove.
* interp/macros.lisp (|saySpadMsg|): Remove.
* interp/vmlisp.lisp (qsetq): Remove.
(STATEP, FUNARGP, PAPPP): Likewise.
(LISTOFQUOTES, LISTOFFREES): Likewise.
|
|
* interp/category.boot: Import "g-cndata"
* interp/c-util.boot: Import "g-opt".
* interp/Makefile.pamphlet: Adjust Make rules.
|
|
* lib/cfuns-c.c (openaxiom_is_path_separator): New.
(oa_dirname): Define.
(writeablep): Use it.
* algebra/fname.spad.pamphlet (writable?$FileName): Tidy.
|
|
(isCategoryForm): Likewise. Tidy.
(mkCategory): Likewise.
|