aboutsummaryrefslogtreecommitdiff
path: root/src/interp/i-funsel.boot
AgeCommit message (Collapse)AuthorFilesLines
2011-10-31 * interp/i-funsel.boot (evalMmCond0): Tidy. Call evalMmGuard todos-reis1-9/+43
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-31null x ~> x = nil cleanupdos-reis1-35/+35
2011-10-22 * interp/br-op2.boot (htSayExplicitExports): Don't forget possibledos-reis1-2/+2
constant marker in exported signatures. * interp/cattable.boot (simpHas): Likewise. * interp/format.boot (form2String1): Likewise. * interp/i-eval.boot (evaluateSignature): Likewise. * interp/i-funsel.boot (hasCaty): Likewise. (hasAttSig): Likewise. * interp/define.boot (extendsCategory): Likewise. (extendsCategoryBasic): Likewise. (catExtendsCat?): Likewise. (mkExportFromDescription): New. (mkCategoryPackage): Use it. * boot/tokens.boot: Add new selectors: mapOpsig, mapOperation, mapPredicate, and mapImpl.
2011-10-02 * boot/utility.boot (objectAssoc): New. Export.dos-reis1-20/+20
* 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-09-07 * interp/lisplib.boot (finalizeLisplib): Finalize documentaiondos-reis1-1/+1
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-05 * interp/daase.lisp (GETDATABASE): Do not handle PREDICATES anddos-reis1-1/+1
ATTRIBUTES selectors anymore. * interp/database.boot (getConstructorPredicates): Rename from getConstructorPredicatesFromDB. Adjust callers. (getConstructorAttributes): Rename from getConstructorAttributesFromDB. Adjust callers.
2011-08-12 * boot/ast.boot (shoeCompTran1): Translate extended vector-forms.dos-reis1-1/+1
* interp/c-util.boot: Use vector instead of LIST2VEC. * interp/define.boot: Likewise. * interp/i-coerce.boot: Likewise. * interp/i-coerfn.boot: Likewise. * interp/i-funsel.boot: Likewise. * interp/i-map.boot: Likewise. * interp/i-special.boot: Likewise. * interp/interop.boot: Likewise. * interp/nruncomp.boot: Likewise. * interp/slam.boot: Likewise.
2011-08-06cleanupdos-reis1-21/+21
2011-08-04cleanupdos-reis1-1/+1
2011-05-20more cleanupdos-reis1-4/+3
2011-05-19more cleanupdos-reis1-1/+1
2011-04-29 * interp/cattable.boot (hasCat): Add type. Accept onlydos-reis1-3/+3
instantiation forms. (simpHasPred): Adjust call to hasCat. * interp/i-funsel.boot (hasCaty): Likewise.
2011-04-26cleanupdos-reis1-230/+230
2011-04-22more cleanupdos-reis1-3/+3
2011-04-22 * boot/utility.boot (copyList): Define.dos-reis1-8/+8
(append!): Likewise. * boot/tokens.boot: Do not translate nconc.
2011-04-21 * boot/tokens.boot: Don't rename nreverse.dos-reis1-11/+11
* boot/utility.boot (reverse!): Define. * boot/parser.boot: Use reverse! instead of NREVERSE. * boot/ast.boot: Generate reverse! forms instead of NREVERSE.
2011-04-19cleanupdos-reis1-3/+3
2011-04-15misc cleanupdos-reis1-2/+2
2011-03-05 * interp/as.boot: Use getConstructorAbbreviationFromDB.dos-reis1-2/+2
* interp/br-con.boot: Likewise. * interp/br-data.boot: Likewise. * interp/br-prof.boot: Likewise. * interp/br-util.boot: Likewise. * interp/c-doc.boot: Likewise. * interp/clammed.boot: Likewise. * interp/database.boot: Likewise. * interp/define.boot: Likewise. * interp/format.boot: Likewise. * interp/functor.boot: Likewise. * interp/g-cndata.boot: Likewise. * interp/i-funsel.boot: Likewise. * interp/i-output.boot: Likewise. * interp/lisplib.boot: Likewise. * interp/pspad1.boot: Likewise.
2011-02-24some cleanupsdos-reis1-14/+14
2010-12-29 * interp/g-opt.boot ($VMsideEffectFreeOperators): Include %strlength.dos-reis1-2/+2
* interp/g-util.boot: Expand it. * algebra/string.spad.pamphlet (String): Remove use of QCSIZE.
2010-12-28Character constants clean updos-reis1-1/+1
2010-12-19more cleanupdos-reis1-1/+1
2010-12-12More clean up on string vs symbol confusionsdos-reis1-3/+3
2010-12-12Tidy expression matching against stringsdos-reis1-2/+2
2010-12-11 * boot/ast.boot (bfMmeber): Tidy.dos-reis1-6/+6
* interp/alql.boot: Clean up. * interp/br-con.boot: Likewise. * interp/br-op1.boot: Likewise. * interp/br-op2.boot: Likewise. * interp/br-saturn.boot: Likewise. * interp/br-search.boot: Likewise. * interp/br-util.boot: Likewise. * interp/c-doc.boot: Likewise. * interp/format.boot: Likewise. * interp/g-error.boot: Likewise. * interp/i-funsel.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/mark.boot: Likewise. * interp/msgdb.boot: Likewise. * interp/newfort.boot: Likewise. * interp/pspad1.boot: Likewise. * interp/trace.boot: Likewise.
2010-07-12cleanupsdos-reis1-6/+6
2010-07-11 * interp/database.boot (markUnique): Remove.dos-reis1-5/+5
($FunctionDescriptorTail): Likewise. (getOperationAlistFromLisplib): Likewise. (getOplistForConstructorForm): Adjust. * interp/br-op1.boot (getDomainOpTable): Likewise. * interp/br-op2.boot (koOps): Likewise. * interp/define.boot (genDomainViewList): Likewise. * interp/i-analy.boot (namedConstant): Likewise. * interp/i-coerce.boot (getConstantFromDomain): Likewise. * interp/i-funsel.boot (isOpInDomain): Likewise. (findCommonSigInDomain): Likewise. (findUniqueOpInDomain): Likewise. (hasSig): Likewise. * interp/i-spec2.boot (constantInDomain?): Likewise. * interp/trace.boot (spadTrace): Likewise. * interp/lisplib.boot (transformOperationAlist): Simplify.
2010-06-04 * interp/buildom.boot (UnionEqual): Don't COERCE to FUNCTION. Usedos-reis1-1/+1
eval. Use middle end opcodes instead of EQCAR. (coerceUn2E): Likewise.
2010-06-04 * interp/br-con.boot: More cleanup.dos-reis1-6/+6
* 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.
2010-05-29More support middle end logical operatorsdos-reis1-13/+13
2010-05-29 * interp/i-funsel.boot: Support middle end logical operators.dos-reis1-23/+21
($constructorExposureList): Remove as unused.
2010-05-28 * interp/sys-utility.boot (eval): Define here.dos-reis1-1/+1
* interp/br-con.boot: Use it. * interp/br-op1.boot: Likewise. * interp/br-saturn.boot: Likewise. * interp/cattable.boot: Likewise. * interp/ht-util.boot: Likewise. * interp/htsetvar.boot: Likewise. * interp/i-funsel.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/interop.boot: Likewise. * interp/server.boot: Likewise. * interp/showimp.boot: Likewise. * interp/trace.boot: Likewise. * interp/sys-macros.lisp (eval): Move to sys-utility.boot.
2010-05-23 * boot/tokens.boot: gensym is now candidate for renaming.dos-reis1-1/+1
* boot/ast.boot: Replace GENSYM with gensym. * interp/buildom.boot: Likewise. * interp/clam.boot: Likewise. * interp/clammed.boot: Likewise. * interp/compiler.boot: Likewise. * interp/define.boot: Likewise. * interp/fortcall.boot: Likewise. * interp/g-opt.boot: Likewise. * interp/i-coerce.boot: Likewise. * interp/i-coerfn.boot: Likewise. * interp/i-funsel.boot: Likewise. * interp/i-map.boot: Likewise. * interp/i-spec1.boot: Likewise. * interp/i-spec2.boot: Likewise. * interp/macex.boot: Likewise. * interp/nruncomp.boot: Likewise. * interp/nrunopt.boot: Likewise. * interp/parse.boot: Likewise. * interp/pf2atree.boot: Likewise. * interp/pf2sex.boot: Likewise. * interp/postpar.boot: Likewise. * interp/ptrees.boot: Likewise. * interp/server.boot: Likewise. * interp/slam.boot: Likewise. * interp/sys-constants.boot: Likewise. * interp/wi1.boot: Likewise. * interp/wi2.boot: Likewise.
2010-05-09More cleanupsdos-reis1-2/+2
2010-05-09More cleanupsdos-reis1-3/+3
2010-05-09Cleanup STRCONC usesdos-reis1-2/+2
2010-05-09 * interp/cattable.boot: Replace call to CONS with bracket syntax.dos-reis1-21/+21
* interp/clammed.boot: Likewise. * interp/cparse.boot: Likewise. * interp/dq.boot: Likewise. * interp/fortcall.boot: Likewise. * interp/g-boot.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-spec1.boot: Likewise. * interp/i-spec2.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/incl.boot: Likewise. * interp/interop.boot: Likewise. * interp/lisplib.boot: Likewise. * interp/msgdb.boot: Likewise. * interp/newfort.boot: Likewise. * interp/nruncomp.boot: Likewise. * interp/nrunopt.boot: Likewise. * interp/rulesets.boot: Likewise. * interp/scan.boot: Likewise. * interp/termrw.boot: Likewise. * interp/wi2.boot: Likewise.
2010-05-09 * interp/cparse.boot: Replace call to cons with bracket syntax.dos-reis1-18/+18
* interp/cstream.boot: Likewise. * interp/database.boot: Likewise. * interp/define.boot: Likewise. * interp/g-boot.boot: Likewise. * interp/g-util.boot: Likewise. * interp/i-analy.boot: Likewise. * interp/i-coerce.boot: Likewise. * interp/i-funsel.boot: Likewise. * interp/i-output.boot: Likewise. * interp/i-spec1.boot: Likewise. * interp/i-spec2.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/incl.boot: Likewise. * interp/int-top.boot: Likewise. * interp/macex.boot: Likewise. * interp/msgdb.boot: Likewise. * interp/pile.boot: Likewise. * interp/posit.boot: Likewise. * interp/ptrees.boot: Likewise. * interp/scan.boot: Likewise. * interp/setvars.boot: Likewise. * interp/trace.boot: Likewise. * interp/types.boot: Likewise.
2010-05-08 * interp/as.boot: Replace uses of RPLACA and RPLACD with explicitdos-reis1-8/+8
assignment to first and rest fields. * interp/astr.boot: Likewise. * interp/br-con.boot: Likewise. * interp/br-data.boot: Likewise. * interp/br-op1.boot: Likewise. * interp/br-saturn.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/compiler.boot: Likewise. * interp/compress.boot: Likewise. * interp/cparse.boot: Likewise. * interp/cstream.boot: Likewise. * interp/database.boot: Likewise. * interp/define.boot: Likewise. * interp/dq.boot: Likewise. * interp/functor.boot: Likewise. * interp/g-opt.boot: Likewise. * interp/g-util.boot: Likewise. * interp/guess.boot: Likewise. * interp/ht-util.boot: Likewise. * interp/i-analy.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-spec1.boot: Likewise. * interp/i-spec2.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/i-util.boot: Likewise. * interp/interop.boot: Likewise. * interp/mark.boot: Likewise. * interp/modemap.boot: Likewise. * interp/msgdb.boot: Likewise. * interp/newfort.boot: Likewise. * interp/nruncomp.boot: Likewise. * interp/nrunopt.boot: Likewise. * interp/packtran.boot: Likewise. * interp/showimp.boot: Likewise. * interp/termrw.boot: Likewise. * interp/topics.boot: Likewise. * interp/trace.boot: Likewise. * interp/wi2.boot: Likewise. * interp/word.boot: Likewise.
2010-05-07 * interp/as.boot: Miscellaneous cleanup.dos-reis1-5/+5
* interp/ax.boot: Likewise. * interp/br-con.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/clammed.boot: Likewise. * interp/compiler.boot: Likewise. * interp/database.boot: Likewise. * interp/cstream.boot: Likewise. * interp/define.boot: Likewise. * interp/diagnostics.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-util.boot: Likewise. * interp/ht-util.boot: Likewise. * interp/htsetvar.boot: Likewise. * interp/i-analy.boot: Likewise. * interp/i-coerce.boot: Likewise. * interp/i-funsel.boot: Likewise. * interp/i-intern.boot: Likewise. * interp/i-map.boot: Likewise. * interp/i-output.boot: Likewise. * interp/i-spec1.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/interop.boot: Likewise. * interp/lisplib.boot: Likewise. * interp/mark.boot: Likewise. * interp/msgdb.boot: Likewise. * interp/newfort.boot: Likewise. * interp/nrunfast.boot: Likewise. * interp/nrungo.boot: Likewise. * interp/pathname.boot: Likewise. * interp/pf2atree.boot: Likewise. * interp/pf2sex.boot: Likewise. * interp/pspad1.boot: Likewise. * interp/record.boot: Likewise. * interp/setvars.boot: Likewise. * interp/trace.boot: Likewise. * interp/wi1.boot: Likewise. * interp/wi2.boot: Likewise.
2010-05-06 * interp/wi2.boot: Replace INTEGERP, STRINGP, SYMBOLP, CONSP withdos-reis1-13/+13
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?
2009-10-15 * interp/buildom.boot: Tidy. dos-reis1-1/+2
2009-10-14 * interp/i-funsel.boot (findFunctionInDomain): Fix thinko.dos-reis1-1/+1
2009-09-29 * interp/i-funsel.boot (matchMmSig): Fix thinko from revision 1297.dos-reis1-1/+1
2009-09-26More cleanupdos-reis1-5/+5
2009-09-26More cleanupdos-reis1-1/+1
2009-09-26 * interp/: More cleanup.dos-reis1-101/+101
2009-09-26 * interp/as.boot: Clean up.dos-reis1-25/+25
* 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.
2009-09-25 * boot/ast.boot (bfMember): Improve a bit.dos-reis1-14/+14
* boot/tokens.boot: Don't rename 'is' and 'inst'. * boot/parser.boot: Use 'in' instead of 'MEMQ' where approrpriate. * interp/: Likewise.