Great idea. Why not a list of prefixes of a standard length - say 4 chars - that all variables would need to start with (or would be encouraged to). You would select one from the list, indicate that you had chosen it, and use it for all variable within your style/class (or am I confused). That way, you would begin with a list which was automatically conflict free. Paul Thompson Professor and Senior Scientist Director, Methodology and Data Analysis Center Sanford Research/USD 2301 E 60th St N Sioux Falls, SD 57104 O: 605-312-6462 M: 618-974-0473 H: 605-332-1587 F: 605-328-0401 909 N. Charleston Circle Sioux Falls, SD 57110 605-332-1587 ________________________________ From: Joseph Wright <[log in to unmask]> To: [log in to unmask] Sent: Tuesday, September 11, 2012 4:19 PM Subject: Managing/tracking module prefixes Hello all, Take up of expl3 as a programming language raises new issues both in the code itself and in the wider structures. One area which deserves attention is namespacing: management of module prefixes (and related information). In LaTeX2e, this is handled in a broadly successful but somewhat ad hoc manner, relying on searching over released material to find what prefixes are in use. As expl3 formalises the idea of using a namespace prefix for each module, it seems appropriate to consider a more formal approach to managing these. Looking outside of the TeX world, it is notable that similar concerns come up for example in the Perl community: http://www.cpan.org/modules/04pause.html#namespace. Clearly, our requirements are different as expl3 code is a subset of (La)TeX code, and so management at the CTAN level is inappropriate. I think we can see namespace management in two parts: - 'Outside LaTeX': having a system available for consultation before any code is written. - 'Inside LaTeX': making module information available from within a TeX run. At this stage, I want to focus on the 'outside' part of the question. There are many approaches that one can imagine, varying from the very simple to the very complex. An approach I'd like to raise here is at the low-tech end of the spectrum. I envisage a simple list of module prefixes with associated information: the module name, developer(s), contact details, web site, bug tracker, etc. This would be available in public (CTAN/LaTeX3 SVN), but updates would rely on a simple process: contacting the team and making a request. This could then be made more 'high tech' in the future if necessary. An 'open' list of prefixes offers advantages, for example begin able to 'reserve' prefixes in advance of code release (for the team) and making clear that some prefixes are 'free for all' (perhaps "tmp" and "foo", for example). At the same time, there will be some issues, for example how to handle conflicts and how to make sure information remains up to date. Clearly, any such approach requires agreement within the expl3 developer community. Thus what I am seeking here is in the first instance feedback on this idea. Does this seem sensible, workable and useful? -- Joseph Wright