[latex3-commits] [git/LaTeX3-latex3-latex3] master: Make l3syntax-changes up-to-date (b938fbc)

Bruno Le Floch bruno at le-floch.fr
Thu Apr 19 05:07:42 CEST 2018


Repository : https://github.com/latex3/latex3
On branch  : master
Link       : https://github.com/latex3/latex3/commit/b938fbceb4d9216aa12b23e07602a9a1edfd77ca

>---------------------------------------------------------------

commit b938fbceb4d9216aa12b23e07602a9a1edfd77ca
Author: Bruno Le Floch <bruno at le-floch.fr>
Date:   Wed Apr 18 23:07:42 2018 -0400

    Make l3syntax-changes up-to-date
    
    I got this by looking at all "updated" dates for functions in l3kernel.
    This may miss syntax changes that only affected functions that were
    subsequently updated.  The distinction between bug fixes and syntax
    changes is not always easy to make.


>---------------------------------------------------------------

b938fbceb4d9216aa12b23e07602a9a1edfd77ca
 l3kernel/l3syntax-changes.tex |   84 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 82 insertions(+), 2 deletions(-)

diff --git a/l3kernel/l3syntax-changes.tex b/l3kernel/l3syntax-changes.tex
index 7476cbd..01873c7 100644
--- a/l3kernel/l3syntax-changes.tex
+++ b/l3kernel/l3syntax-changes.tex
@@ -38,8 +38,13 @@ The released version of this bundle is available from CTAN.
 
 \maketitle
 
-This file lists functions whose syntax has changed after August 2011,
-with an approximate date.
+This file describes functions that were expected to be completely
+stable, but whose syntax has changed in ways that may potentially
+require code relying on them to be changed.  This file does not include
+bug-fixes, nor backward-compatible extensions of the syntax, nor changes
+to functions in \pkg{l3candidates}, nor functions that were completely
+deprecated: the latter are listed in \texttt{l3obsolete.txt}.  Only
+changes after August 2011 are listed, with an approximate date.
 
 \section{August 2011}
 
@@ -68,6 +73,16 @@ with an approximate date.
   now trim spaces from each item in the argument.
 \end{itemize}
 
+\section{May 2012}
+
+\begin{itemize}
+  \item The \pkg{l3fp} code has been completely rewritten with a new
+    expandable interface.
+  \item Getting/popping from a comma list or sequence or property list
+    that is empty (or missing the given key) now gives the quark
+    \cs{q_no_value}.
+\end{itemize}
+
 \section{June 2012}
 
 \begin{itemize}
@@ -97,5 +112,70 @@ with an approximate date.
     same way as for example \cs{str_if_eq_x:nn(TF)}.
 \end{itemize}
 
+\section{December 2013}
+
+\begin{itemize}
+  \item In \pkg{l3fp} expressions, the badly named functions |round0|,
+    |round-|, |round+| are now named |trunc|, |floor|, |ceil|.
+\end{itemize}
+
+\section{May 2014}
+
+\begin{itemize}
+  \item Now \cs{int_step_function:nnnN} evaluates its first three
+    arguments (start, step, stop) up front, rather than evaluating them
+    at each step in the loop.  The same holds for the related mappings
+    \cs{int_step_inline:nnnn}, \cs{int_step_variable:nnnNn}, and their
+    analogues for \texttt{dim} and \texttt{fp} datatypes.
+\end{itemize}
+
+\section{July 2014}
+
+\begin{itemize}
+  \item In \pkg{l3fp} expressions, juxtaposition is interpreted as
+    multiplication.  Now the precedence of juxtaposition is set to be
+    the same as if there was an explicit multiplication
+    sign~\texttt{*}.  Previously, juxtaposition would bound more tightly
+    than any other operation.
+\end{itemize}
+
+\section{August 2015}
+
+\begin{itemize}
+  \item The \cs{hbox:n} and related \pkg{l3box} commands now take an
+    \texttt{n}-type argument and provide it braced to the underlying
+    \TeX{} primitive.  The functions \cs{hbox:w} and \cs{hbox_end:} in
+    contrast do not read the contents of the box as a macro argument.
+\end{itemize}
+
+\section{2016}
+
+No change.
+
+\section{July 2017}
+
+\begin{itemize}
+  \item Boolean expressions are now evaluated eagerly, namely both
+    operands of logical \texttt{and} (|&&|) and \texttt{or} (\verb"||")
+    are evaluated even when the result of the logical operation is fixed
+    after determining the first operand.  For lazy evaluation,
+    \cs{bool_lazy_and_p:nn} and related functions are provided.
+\end{itemize}
+
+\section{November 2017}
+
+\begin{itemize}
+  \item Spaces are now preserved inside keys in \pkg{l3keys}, and
+    trimmed at both ends.
+  \item \cs{cs_generate_variant:Nn} is now stricter: it only allows to
+    change \texttt{N}-type arguments to \texttt{c}, and \texttt{n} to
+    \texttt{o}, \texttt{V}, \texttt{v}, \texttt{f}, \texttt{x}.  On the
+    one hand the latter argument types typically give rise to more than
+    one token, not suitable for use by an \texttt{N}-type base function.
+    On the other hand, \texttt{c} variants of \texttt{n} arguments
+    should often be \texttt{v} variants (when the argument is eventually
+    evaluated) or mistakes where the programmer thought the base
+    function was \texttt{N}-type.
+\end{itemize}
 
 \end{document}





More information about the latex3-commits mailing list