1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
% Copyright 2011 The LaTeX Project
\documentclass{ltnews}
\PassOptionsToPackage{colorlinks}{hyperref}
\usepackage{metalogo,ragged2e}
\AtBeginDocument{
\renewcommand{\LaTeXNews}{\LaTeX3~News}
\RaggedRight
}
\usepackage{hologo}
\publicationmonth{June}
\publicationyear{2011}
\publicationissue{6}
\begin{document}
\maketitle
\noindent
A key aim of releasing `stable' \LaTeX3 material to CTAN is to allow users to
benefit from new ideas \emph{now}, and also to raise the profile of usable
\LaTeX3 ideas. This is clearly being successful, with \pkg{xparse} being of
particular utility to end users. This increase in interest has been
particularly notable on the new
\href{http://tex.stackexchange.com/}{TeX.SX Q\&A site}.
\section{The \LaTeX3 Team expands}
Raising interest in \LaTeX3 developments has inevitably led to feedback on
cases where the code base has required attention. It has also attracted new
programmers to using \LaTeX3 ideas, some more than others! Bruno Le Floch has
over the past few months made many useful contributions to \LaTeX3, and we are
very pleased that he has recently joined The \LaTeX{} Project.
Bruno has taken a particular interest in improving the performance and
reliability of the \pkg{expl3} language. This has already resulted in new
implementations for the \texttt{prop} and \texttt{seq} data types. At the same
time, he has identified and fixed several edge-case issues in core \pkg{expl3}
macros.
\section{The `Big Bang'}
In parallel to Bruno's improvements, Joseph Wright initiated a series of `Big
Bang' improvements to \LaTeX3. The aim of the Big Bang was to address a number
of long-standing issues with the \LaTeX3 code base. Development has taken place
over many years, with the status of some of the resulting code being less
than clear, even to members of The \LaTeX{} Project! At the same time, different
conventions had been applied to different parts of the code, which made reading
some of the code rather `interesting'. A key part of the Big Bang has been to
address these issues, cleaning up the existing code and ensuring that the
status of each part is clear.
The arrangement of \LaTeX3 code is now the same in the development
repository and on CTAN, and splits the code into three parts.
\begin{description}
\item[\pkg{l3kernel}] The core of \LaTeX3, code which
is expected to be used in a \LaTeX3 kernel in more or less the
current form. Currently, this part is made up of the \LaTeX3
programming layer, \pkg{expl3}.
\item[\pkg{l3packages}] \LaTeXe{} packages making use of \LaTeX3
concepts and with stable interfaces. The \pkg{xparse} and
\pkg{xtemplate} packages are the core of this area. While many of
the \emph{ideas} explored here may eventually appear in a \LaTeX3
kernel, the interfaces here are tied to \LaTeXe{}.
\item[\pkg{l3experimental}] \LaTeXe{} packages which explore more
experimental \LaTeX3 ideas, and which may see interface changes as
development continues. Over time, we expect code to move from this area
to either \pkg{l3kernel} or \pkg{l3packages}, as appropriate.
\end{description}
In addition to these release areas, the development code also features a
\pkg{l3trial} section for exploring code ideas. Code in \pkg{l3trial} may be
used to improve or replace other parts of \LaTeX3, or may simply be dropped!
As well as these improvements to the \emph{code} used in \LaTeX3, much of the
documentation for \pkg{expl3} has been made more precise as part of the Big
Bang. This means that \texttt{source3.pdf} is now rather longer than it was
previously, but also should mean that many of the inaccuracies in earlier
versions have been removed. Of course, we are very pleased to receive
suggestions for further improvement.
\section{\LaTeX3 on GitHub}
The core development repository for \LaTeX3 is held in an SVN repository, which
is \href{http://www.latex-project.org/code.html}{publicly viewable \emph{via}
the Project website}. However, this interface misses out on some of the `bells
and whistles' of newer code-hosting sites such as
\href{http://gitbug.com/}{GitHub} and \href{http://bitbucket.org/}{BitBucket}.
We have therefore established a mirror of the master repository on GitHub%
\footnote{\url{http://github.com/latex3/svn-mirror}}. This is kept in
synchronisation with the main SVN repository by Will Robertson (or at least
by his laptop!).
The GitHub mirror offers several useful features for people who wish to
follow the \LaTeX3 code changes. GitHub offers facilities such as highlighted
differences and notification of changes. It also makes it possible for
non-Team members to submit patches for \LaTeX3 as `pull requests' on
GitHub.
As well as offering a convenient interface to the \LaTeX3 code, the GitHub
site also includes an issue database\footnote{%
\url{http://github.com/latex3/svn-mirror/issues}}. Given the very
active nature of \LaTeX3 development, and the transitory nature of many
of the issues, this provides a better approach to tracking issues than
the main \LaTeX{} bug database\footnote{\url{http://www.latex-project.org/bugs.html}}.
Developers and users are
therefore asked to report any issues with \LaTeX3 code \emph{via} the GitHub
database, rather than on the main Project homepage.
Discussion on the \href{http://www.latex-project.org/code.html}{\mbox{LaTeX-L} mailing list}
is also encouraged.
\section{Next steps}
The `Big Bang' involves making a number of changes to \pkg{expl3} function
names, and is likely to break at least some third-party code. As a result,
the updates will not appear on the \TeX{} Live 2011 DVD release, but will
instead be added to \TeX{} Live once regular updates restart (probably
August).
Bruno is working on a significant overhaul of the \pkg{l3fp} floating-point
unit for \LaTeX3. He has developed an approach which allows expandable
parsing of floating-point expressions, which will eventually allow syntax
such as
\begin{verbatim}
\fp_parse:n { 3 * 4 ( ln(5) + 1 ) }
\end{verbatim}
This will result in some changes in the interface for floating-point numbers, but
we feel that the long-term benefit is worth a small amount of recoding in other
areas.
Joseph has completed documentation of the \pkg{xgalley} module, and this is
currently being discussed. Joseph is hoping to move on to implement other
more visible ideas based on the \pkg{xtemplate} concept over the next few
months.
\end{document}
|