Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Sat, 3 Jan 2009 09:33:00 +0100 Received: by mail.proteosys.com (8.13.8/8.13.8) with ESMTP id n038Wvfx022225 for ; Sat, 3 Jan 2009 09:32:58 +0100 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id n038RYHF003551 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 3 Jan 2009 09:27:34 +0100 Received: from listserv.uni-heidelberg.de (localhost.localdomain [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id n02N1EsG027281; Sat, 3 Jan 2009 09:27:16 +0100 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 170518 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sat, 3 Jan 2009 09:27:16 +0100 Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.210.211]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id n038RFWk009227 for ; Sat, 3 Jan 2009 09:27:15 +0100 Received: from lon1-post-3.mail.demon.net (lon1-post-3.mail.demon.net [195.173.77.150]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id n038R5rJ003484 for ; Sat, 3 Jan 2009 09:27:08 +0100 Received: from morningstar2.demon.co.uk ([80.176.134.7] helo=[192.168.0.4]) by lon1-post-3.mail.demon.net with esmtp (Exim 4.69) id 1LJ1qa-0005bn-eB for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sat, 03 Jan 2009 08:27:04 +0000 User-Agent: Thunderbird 2.0.0.19 (Windows/20081209) MIME-Version: 1.0 References: <308a1ed10901010155r78f82ab3v11fef8d4a776813b@mail.gmail.com> <308a1ed10901010725t35e1c160m6e361d43655b3cb1@mail.gmail.com> <495DDED6.3060504@morningstar2.co.uk> <495E7DC2.7070705@morningstar2.co.uk> <90F3E1AC-9C87-43F7-BE5D-BBF16B4AA7B7@gmail.com> X-Enigmail-Version: 0.95.7 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Message-ID: <495F2159.2010507@morningstar2.co.uk> Date: Sat, 3 Jan 2009 08:27:05 +0000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: A Question about the future of LaTeX3 To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <90F3E1AC-9C87-43F7-BE5D-BBF16B4AA7B7@gmail.com> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-ProteoSys-SPAM-Score: -2.442 () BAYES_00,HOT_NASTY X-Scanned-By: MIMEDefang 2.64 on 213.139.130.197 Return-Path: owner-latex-l@LISTSERV.UNI-HEIDELBERG.DE X-OriginalArrivalTime: 03 Jan 2009 08:33:00.0507 (UTC) FILETIME=[E31762B0:01C96D7D] Status: R X-Status: X-Keywords: X-UID: 5568 Will Robertson wrote: >> I've quickly thrown together a module which does basically this. I've >> called t "l3module" for want of a better name. Source/PDF/ZIP including >> demo available from >> http://www.texdev.net/2009/01/02/tex-and-namespaces-continued/ > > That's neat! > > I assume you're intended for it to be primarily used for user-space macros? Yes, the prefix clash problem is, I think, much more unlikely (and easier to handle using a manually-maintained database of taken values). > What do you think of the idea to add something like this functionality > to xparse, so that any instance of \DeclareDocumentCommand will > automatically populate the list? On the other hand, it's nice to have an > explicit list. I'd thought about this, but at this stage was aiming for a quick "proof of principal" implementation. I wouldn't want to mess with xparse without asking (and in any case, I can't!). Using an explicit list is convenient for checking, but I'd agree that perhaps a hook in \DeclareDocumentCommand would be a neater solution, overall. Doing that, there is a need to think about anything defined after the end of the module (say \AtBeginDocument). I think you'd still want a way to explicitly reserve macro names under those circumstances. I would imagine that if the team want to provide a "name reservation" system, you'd probably integrate \module_details:nn with \ProvidesExplPackage, so that you'd always have some details available. As you'd probably guess, I'd prefer an "internal" function name for this, so perhaps: \module_details:nn {module} { name = xxx, version = xxx, date = xxx, e-mail = xxx, description = xxx } with all of those values compulsory, and then the other details I've suggested as optional. -- Joseph Wright