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.
Professor and Senior Scientist
Director, Methodology and Data Analysis Center
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
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
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
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?