From b3225c4301e7724de481f410444fef5463799b9d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 14 Jan 2020 03:00:43 +0000 Subject: CTAN sync 202001140300 --- macros/latex/contrib/l3kernel/l3news11.tex | 206 +++++++++++++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 macros/latex/contrib/l3kernel/l3news11.tex (limited to 'macros/latex/contrib/l3kernel/l3news11.tex') diff --git a/macros/latex/contrib/l3kernel/l3news11.tex b/macros/latex/contrib/l3kernel/l3news11.tex new file mode 100644 index 0000000000..b88e7d2420 --- /dev/null +++ b/macros/latex/contrib/l3kernel/l3news11.tex @@ -0,0 +1,206 @@ +% Copyright 2017 The LaTeX3 Project +\documentclass{ltnews} + +\PassOptionsToPackage{colorlinks}{hyperref} + +\usepackage{csquotes} +\usepackage{hologo} +\usepackage{ragged2e} +\usepackage{underscore} + + +%%% wrong in ltnews.cls ... so some tmp fix here at the moment: +\makeatletter +\renewcommand{\subsubsection}{% + \@startsection + {subsubsection}{2}{\leftmargini}{-1.5ex \@plus -1ex \@minus -.2ex}% + {1sp}{\@subheadingfont}% +} +\makeatother + + +\AtBeginDocument{% + \renewcommand*{\LaTeXNews}{\LaTeX3~News}% + \RaggedRight + \setlength\parindent{1em}% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\publicationmonth{February} +\publicationyear{2018} +\publicationissue{11} + +% Avoid hyphenation of csnames +\makeatletter +\protected\edef\cs#1{% + \noexpand\path{\@backslashchar#1}% +} +\makeatother + +\begin{document} + +\maketitle + +\tableofcontents + + +\section{Move of sources from Subversion to Git} + +The \LaTeX{} team have used a variety of version control systems over the life +of the \LaTeX3 sources. For a long time we maintained the \LaTeX3 sources in +Subversion (\textsc{svn}) but also provided a read-only clone of them on GitHub using +SubGit from TMate Software~\cite{SubGit} to synchronize the two +repositories---a solution that worked very well. + +We have now retired the Subversion repository and completely moved over to Git, +with the master \LaTeX3 repository hosted on GitHub: +\url{https://github.com/latex3/latex3}. This new approach means we are (slowly) +adopting some new approaches to development, for example branches and accepting +pull requests. + +\subsection{Version identifiers} + +Following this change, we have removed Subversion \verb=$Id= lines from the +\LaTeX3 sources. At present, we will be retaining \cs{GetIdInfo} as there are +several possible use cases. The \LaTeX3 sources now have only release date +strings as identifiers. However, the team recommend that package authors +include version information directly in \cs{ProvidesExplPackage} (or similar) +lines. + +\section{\pkg{expl3} updates and extensions} + +Work has continued on the codebase over the last year, with both small +changes/fixes and more substantial changes taking place. The following sections +summarise some of the more notable changes. + +\subsection{\pkg{l3sort} moves to the kernel} + +Sorting is an important ability, and for some time the team have provided a +stand-alone \pkg{l3sort} to support this. The functionality has seen wide take +up, and so has now been integrated directly into the kernel. This took place in +parallel with some interface changes to \enquote{round out} the code. + +\subsection{Boolean functions} + +For some time, the team have been aware that boolean expressions can fail in +certain circumstances, leading to low-level errors. This is linked to two +features of the long-standing \cs{bool_if:n(TF)} function: expandable operation +and short-circuit evaluation. + +Addressing that has meant two changes: altering \cs{bool_if:n(TF)} to +\emph{always} evaluate each part of the expression, and introducing new +short-circuit functions without the issue. The latter are |lazy| in \pkg{expl3} +terms: +\begin{itemize} +\item \cs{bool_lazy_all:n(TF)} +\item \cs{bool_lazy_and:nn(TF)} +\item \cs{bool_lazy_any:n(TF)} +\item \cs{bool_lazy_or:nn(TF)} +\end{itemize} +These new, stable functions are now the recommended way of handling boolean +evaluations. Package authors are encouraged to employ these new functions as +appropriate. + +\subsection{Revision of \pkg{l3file}} + +Large parts of \pkg{l3file} have been revised to give a better separation of +path/file/extension. This has resulted in addition of a number of new support +functions and variables. + +At the same time, new experimental functions have been added to utilise a +number of useful primitives in \hologo{pdfTeX}{}: \cs{file_get_mdfive_hash:nN}, +\cs{file_get_size:nN} and \cs{file_get_timestamp:nN}. Currently, \hologo{XeTeX} +does not support getting file size/timestamp information: this is available in +other engines. + +Paralleling these changes, we have added (experimental) support for shell +escape to the \pkg{l3sys} module, most notably \cs{sys_shell_now:n}. A range of +test booleans are also available to check whether shell escape is enabled. + +\subsection{Detection of \cs{cs_generate_variant:Nn} errors} + +The ability to generate variants is an important feature of \pkg{expl3}. At +the same time, there are crucial aspects of this approach that can be +misunderstood by users. In particular, the requirement that variants map +correctly to an underlying \verb|N|- or \verb|n|-type base function is sometimes +misunderstood. + +To help detect and correct these cases, \cs{cs_generate_variant:Nn} now +carries out error checking on it's arguments, and raises a warning where +it is mis-applied. At present, the team have avoided making this an error +as it is likely to be seen by end users rather than directly by package +developers. In time, we are likely to revisit this and tighten up +further on this key requirement. + +\subsection{Accessing random data} + +To support randomised data selection, we have introduced a family of +experimental functions which use underlying engine support for random values, +and provide one entry at random from the data type. + +At the same time, we have addresses some issues with uniformity stemming from +the random number function used by \hologo{pdfTeX}{} and inherited by other +engines. This means that \pkg{expl3}'s \textsc{fpu} will generate \emph{pseudo}-random +values across the range of possible outputs. + +\subsection{More powerful debugging} + +A new set of debugging functions have been added to the kernel. These allow +debug code to be enabled locally using the new option \verb|enable-debug| along +with functions \cs{debug_on:n} and \cs{debug_off:n}. A companying this change, we +have improved the handling of global/local consistency in variable setting. + +\subsection{Mark-up changes in \pkg{l3doc}} + +Since the introduction of the \verb|__| syntax to mark internal function, the +need for explicit mark-up of internal material in sources has been negated. +As such, we have now dropped the requirement to mark internal material with +\verb|[aux]| when using \pkg{l3doc}. Instead, the status of functions and +variables is auto-detected from the presence of \verb|__|. For cases where +non-standard names are used for internal code, the mark up \verb|[int]| is +retained, \emph{e.g.} +\begin{verbatim} +\begin{macro}[int]{\l@expl@enable@debug@bool} +\end{verbatim} + +\section{\pkg{l3build} updates} + +Work on \pkg{l3build} has continued in parallel with \pkg{expl3} work, in +particular continuing to develop features to allow wider use of the tool. + +Paralleling the move of the \LaTeX3 codebase to Git, \pkg{l3build} now has it's +own separate Git repository: \url{https://github.com/latex3/l3build}. This will +enable us to involve other developers in the Lua code required for the build +system. At the same time, we have split the code into a number of small source +files, again to ease development both for the team ourselves and for potential +collaborators. + +Another major change is that \pkg{l3build} can now retain the structure of +source repositories when creating a CTAN archive. Whilst the team favor `flat' +source set ups, other users prefer structures approaches. Most notably, this +new \pkg{l3build} functionality means that it is now used to carry out +\pkg{beamer} releases. + +The other major new feature is a new approach to multiple test set ups, which +replaces the older \verb|--testfiledir| option. In the new approach, separate +configuration files are listed in the main \verb|build.lua| script, and can be +selected manually using a new \verb|--config| switch. This new approach allows +complex test set ups to be run in a totally automated fashion, which is +important for kernel testing. + +Some changes to the normalisation routines have been carried out, some to deal +with upcoming \hologo{LuaTeX} changes, others to address aspects which show up +only in some tests. This has required \verb|.tlg| updates in some cases: as far +as possible, we strive to avoid requiring changes to the reference files. + +\begin{thebibliography}{10} + \raggedright + \bibitem{SubGit} + \emph{SubGit}, TMate Software, \url{https://subgit.com} + \bibitem{project-publications} + Links to various publications by members of the \LaTeX{} Project Team. + \newblock \url{https://www.latex-project.org/publications}. +\end{thebibliography} + +\end{document} -- cgit v1.2.3