% 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 \LaTeX3 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 \LaTeX3 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}