texlive[49405] Master/texmf-dist: l3kernel (13dec18)

commits+karl at tug.org commits+karl at tug.org
Thu Dec 13 23:53:27 CET 2018


Revision: 49405
          http://tug.org/svn/texlive?view=revision&revision=49405
Author:   karl
Date:     2018-12-13 23:53:27 +0100 (Thu, 13 Dec 2018)
Log Message:
-----------
l3kernel (13dec18)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/l3kernel/README.md
    trunk/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex
    trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.lua
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md	2018-12-13 22:53:27 UTC (rev 49405)
@@ -7,6 +7,16 @@
 
 ## [Unreleased]
 
+## [2018-12-12]
+
+## Changed
+
+- Move `\tl_range:nnn` to stable
+
+## Fixed
+
+- Loading in ConTeXt MkIV
+
 ## [2018-12-11]
 
 - Enable `\char_generate:nn` to create active tokens with XeTeX
@@ -180,7 +190,8 @@
 - Step func­tions have been added for dim vari­ables,
   e.g. `\dim_step_in­line:nnnn`
 
-[Unreleased]: https://github.com/latex3/latex3/compare/2018-12-11...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2018-12-12...HEAD
+[2018-12-12]: https://github.com/latex3/latex3/compare/2018-12-11...2018-12-12
 [2018-12-11]: https://github.com/latex3/latex3/compare/2018-12-06...2018-12-11
 [2018-12-06]: https://github.com/latex3/latex3/compare/2018-11-19...2018-12-06
 [2018-11-19]: https://github.com/latex3/latex3/compare/2018-10-31...2018-11-19

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2018-12-13 22:53:27 UTC (rev 49405)
@@ -1,7 +1,7 @@
 LaTeX3 Programming Conventions
 ==============================
 
-Release 2018-12-11
+Release 2018-12-12
 
 Overview
 --------

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex	2018-12-13 22:53:27 UTC (rev 49405)
@@ -52,7 +52,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2018-12-11}
+\date{Released 2018-12-12}
 
 \pagenumbering{roman}
 \maketitle

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex	2018-12-13 22:53:27 UTC (rev 49405)
@@ -30,7 +30,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2018-12-11}
+\date{Released 2018-12-12}
 
 \begin{document}
 

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex	2018-12-13 22:53:27 UTC (rev 49405)
@@ -30,7 +30,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2018-12-11}
+\date{Released 2018-12-12}
 
 \newcommand{\TF}{\textit{(TF)}}
 

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex	2018-12-13 22:53:27 UTC (rev 49405)
@@ -30,7 +30,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2018-12-11}
+\date{Released 2018-12-12}
 
 \newcommand{\TF}{\textit{(TF)}}
 

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex	2018-12-13 22:53:27 UTC (rev 49405)
@@ -51,7 +51,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2018-12-11}
+\date{Released 2018-12-12}
 
 \pagenumbering{roman}
 \maketitle

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -21,7 +21,7 @@
 % for those people who are interested.
 %
 %<*driver|generic|package>
-\def\ExplFileDate{2018-12-11}%
+\def\ExplFileDate{2018-12-12}%
 %</driver|generic|package>
 %<*driver>
 \documentclass[full]{l3doc}
@@ -49,7 +49,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -138,7 +138,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %
@@ -1236,79 +1236,6 @@
 %   \meta{shell command}.
 % \end{function}
 %
-% \begin{function}[EXP, added = 2017-02-17, updated = 2017-07-15]
-%   {\tl_range:Nnn, \tl_range:nnn}
-%   \begin{syntax}
-%     \cs{tl_range:Nnn} \meta{tl~var} \Arg{start index} \Arg{end index}
-%     \cs{tl_range:nnn} \Arg{token list} \Arg{start index} \Arg{end index}
-%   \end{syntax}
-%   Leaves in the input stream the items from the \meta{start index} to the
-%   \meta{end index} inclusive.  Spaces and braces are preserved between
-%   the items returned (but never at either end of the list).  
-%
-%   Here \meta{start index} and \meta{end index} should be integer denotations.
-%   For describing in detail the functions' behavior, let $m$ and $n$ be the start
-%   and end index respectively. If either is $0$, the result is empty. A positive
-%   index means `start counting from the left end', a negative index means
-%   `start counting from the right end'. Let $l$ be the count of the token list.
-%
-%   The \emph{actual start point} is determined as $M=m$ if~$m>0$ and as $M=l+m+1$
-%   if~$m<0$. Similarly the \emph{actual end point} is $N=n$ if~$n>0$ and $N=l+n+1$
-%   if~$n<0$. If $M>N$, the result is empty. Otherwise it consists of all items from
-%   position $M$ to position $N$ inclusive; for the purpose of this rule, we can
-%   imagine that the token list extends at infinity on either side, with void items
-%   at positions $s$ for $s\le0$ or $s>l$.
-
-%   Spaces in between items in the actual range are preserved. Spaces at either end
-%   of the token list will be removed anyway (think to the token list being passed to
-%   |\tl_trim_spaces:n| to begin with.
-%   
-%   Thus, with $l=7$ as in the examples below, all of the following are equivalent
-%   and result in the whole token list
-%   \begin{verbatim}
-%     \tl_range:nnn { abcd~{e{}}fg } { 1 } { 7 }
-%     \tl_range:nnn { abcd~{e{}}fg } { 1 } { 12 }
-%     \tl_range:nnn { abcd~{e{}}fg } { -7 } { 7 }
-%     \tl_range:nnn { abcd~{e{}}fg } { -12 } { 7 }
-%   \end{verbatim}
-%   Here are some more interesting examples. The calls
-%   \begin{verbatim}
-%     \iow_term:x { \tl_range:nnn { abcd{e{}}fg } { 2 } { 5 } }
-%     \iow_term:x { \tl_range:nnn { abcd{e{}}fg } { 2 } { -3 } }
-%     \iow_term:x { \tl_range:nnn { abcd{e{}}fg } { -6 } { 5 } }
-%     \iow_term:x { \tl_range:nnn { abcd{e{}}fg } { -6 } { -3 } }
-%   \end{verbatim}
-%   are all equivalent and will print |bcd{e{}}| on the terminal; similarly
-%   \begin{verbatim}
-%     \iow_term:x { \tl_range:nnn { abcd~{e{}}fg } { 2 } { 5 } }
-%     \iow_term:x { \tl_range:nnn { abcd~{e{}}fg } { 2 } { -3 } }
-%     \iow_term:x { \tl_range:nnn { abcd~{e{}}fg } { -6 } { 5 } }
-%     \iow_term:x { \tl_range:nnn { abcd~{e{}}fg } { -6 } { -3 } }
-%   \end{verbatim}
-%   are all equivalent and will print |bcd {e{}}| on the
-%   terminal (note the space in the middle). To the contrary,
-%   \begin{verbatim}
-%     \tl_range:nnn { abcd~{e{}}f } { 2 } { 4 }
-%   \end{verbatim}
-%   will discard the space after `d`.
-%   
-%   If we want to get the items from the third to the last, the call
-%   is |\tl_range:nnn { <tl> } { 3 } { -1 }|. Similarly, for discarding
-%   the last item, we can do |\tl_range:nnn { <tl> } { 1 } { -2 }|.
-%   
-%   The behavior of \cs{tl_range:Nnn} is exactly the same, acting on the
-%   contents of the tl variable.
-%   
-%   For improved performance, see  \cs{tl_range_braced:nnn} and
-%   \cs{tl_range_unbraced:nnn}.
-%   \begin{texnote}
-%     The result is returned within the \tn{unexpanded}
-%     primitive (\cs{exp_not:n}), which means that the \meta{item}
-%     does not expand further when appearing in an \texttt{x}-type
-%     argument expansion.
-%   \end{texnote}
-% \end{function}
-%
 % \begin{function}[EXP, added = 2017-07-15]
 %   {
 %     \tl_range_braced:Nnn, \tl_range_braced:cnn, \tl_range_braced:nnn,
@@ -5020,34 +4947,15 @@
 %
 % \subsubsection{Other additions to \pkg{l3tl}}
 %
-% Some preliminary code is needed for the \cs{tl_range:nnn} family of functions.
-%
-% \begin{macro}{\tl_range:Nnn, \tl_range:cnn, \tl_range:nnn}
 % \begin{macro}{\tl_range_braced:Nnn, \tl_range_braced:cnn, \tl_range_braced:nnn}
 % \begin{macro}
 %   {\tl_range_unbraced:Nnn, \tl_range_unbraced:cnn, \tl_range_unbraced:nnn}
 % \begin{macro}
 %   {
-%     \@@_range:Nnnn, \@@_range:nnnNn, \@@_range:nnNn, \@@_range_skip:w,
 %     \@@_range_braced:w, \@@_range_collect_braced:w,
 %     \@@_range_unbraced:w, \@@_range_collect_unbraced:w,
-%     \@@_range:w, \@@_range_skip_spaces:n, \@@_range_collect:nn,
-%     \@@_range_collect:ff, \@@_range_collect_space:nw,
-%     \@@_range_collect_N:nN, \@@_range_collect_group:nN,
 %   }
-%   To avoid checking for the end of the token list at every step, start
-%   by counting the number $l$ of items and \enquote{normalizing} the
-%   bounds, namely clamping them to the interval $[0,l]$ and dealing
-%   with negative indices.  More precisely, \cs{@@_range_items:nnNn}
-%   receives the number of items to skip at the beginning of the token
-%   list, the index of the last item to keep, a function among
-%   \cs{@@_range:w}, \cs{@@_range_braced:w}, \cs{@@_range_unbraced:w},
-%   and the token list itself.  If nothing should be kept, leave |{}|:
-%   this stops the \texttt{f}-expansion of \cs{tl_head:f} and that
-%   function produces an empty result.  Otherwise, repeatedly call
-%   \cs{@@_range_skip:w} to delete |#1| items from the input stream (the
-%   extra brace group avoids an off-by-one shift).  For the braced
-%   version \cs{@@_range_braced:w} sets up
+%   For the braced version \cs{@@_range_braced:w} sets up
 %   \cs{@@_range_collect_braced:w} which stores items one by one in an
 %   argument after the semicolon.  The unbraced version is almost
 %   identical.  The version preserving braces and spaces starts by
@@ -5056,15 +4964,8 @@
 %   |{| \Arg{collected} \meta{tokens} |}|, whose head is the collected
 %   tokens and whose tail is what remains of the original token list.
 %   This form makes it easier to move tokens to the \meta{collected}
-%   tokens.  Depending on the first token of the tail, either just move
-%   it (if it is a space) or also decrement the number of items left to
-%   find.  Eventually, the result is a brace group followed by the rest
-%   of the token list, and \cs{tl_head:f} cleans up and gives the result
-%   in \cs{exp_not:n}.
+%   tokens.
 %    \begin{macrocode}
-\cs_new:Npn \tl_range:Nnn { \exp_args:No \tl_range:nnn }
-\cs_generate_variant:Nn \tl_range:Nnn { c }
-\cs_new:Npn \tl_range:nnn { \@@_range:Nnnn \@@_range:w }
 \cs_new:Npn \tl_range_braced:Nnn { \exp_args:No \tl_range_braced:nnn }
 \cs_generate_variant:Nn \tl_range_braced:Nnn { c }
 \cs_new:Npn \tl_range_braced:nnn { \@@_range:Nnnn \@@_range_braced:w }
@@ -5073,44 +4974,6 @@
 \cs_generate_variant:Nn \tl_range_unbraced:Nnn { c }
 \cs_new:Npn \tl_range_unbraced:nnn
   { \@@_range:Nnnn \@@_range_unbraced:w }
-\cs_new:Npn \@@_range:Nnnn #1#2#3#4
-  {
-    \tl_head:f
-      {
-        \exp_args:Nf \@@_range:nnnNn
-          { \tl_count:n {#2} } {#3} {#4} #1 {#2}
-      }
-  }
-\cs_new:Npn \@@_range:nnnNn #1#2#3
-  {
-    \exp_args:Nff \@@_range:nnNn
-      {
-        \exp_args:Nf \@@_range_normalize:nn
-          { \int_eval:n { #2 - 1 } } {#1}
-      }
-      {
-        \exp_args:Nf \@@_range_normalize:nn
-          { \int_eval:n {#3} } {#1}
-      }
-  }
-\cs_new:Npn \@@_range:nnNn #1#2#3#4
-  {
-    \if_int_compare:w #2 > #1 \exp_stop_f: \else:
-      \exp_after:wN { \exp_after:wN }
-    \fi:
-    \exp_after:wN #3
-    \int_value:w \int_eval:n { #2 - #1 } \exp_after:wN ;
-    \exp_after:wN { \exp:w \@@_range_skip:w #1 ; { } #4 }
-  }
-\cs_new:Npn \@@_range_skip:w #1 ; #2
-  {
-    \if_int_compare:w #1 > 0 \exp_stop_f:
-      \exp_after:wN \@@_range_skip:w
-      \int_value:w \int_eval:n { #1 - 1 } \exp_after:wN ;
-    \else:
-      \exp_after:wN \exp_end:
-    \fi:
-  }
 \cs_new:Npn \@@_range_braced:w #1 ; #2
   { \@@_range_collect_braced:w #1 ; { } #2 }
 \cs_new:Npn \@@_range_unbraced:w #1 ; #2
@@ -5131,79 +4994,11 @@
     \fi:
     { #2 #3 }
   }
-\cs_new:Npn \@@_range:w #1 ; #2
-  {
-    \exp_args:Nf \@@_range_collect:nn
-      { \@@_range_skip_spaces:n {#2} } {#1}
-  }
-\cs_new:Npn \@@_range_skip_spaces:n #1
-  {
-    \tl_if_head_is_space:nTF {#1}
-      { \exp_args:Nf \@@_range_skip_spaces:n {#1} }
-      { { } #1 }
-  }
-\cs_new:Npn \@@_range_collect:nn #1#2
-  {
-    \int_compare:nNnTF {#2} = 0
-      {#1}
-      {
-        \exp_args:No \tl_if_head_is_space:nTF { \use_none:n #1 }
-          {
-            \exp_args:Nf \@@_range_collect:nn
-              { \@@_range_collect_space:nw #1 }
-              {#2}
-          }
-          {
-            \@@_range_collect:ff
-              {
-                \exp_args:No \tl_if_head_is_N_type:nTF { \use_none:n #1 }
-                  { \@@_range_collect_N:nN }
-                  { \@@_range_collect_group:nn }
-                #1
-              }
-              { \int_eval:n { #2 - 1 } }
-          }
-      }
-  }
-\cs_new:Npn \@@_range_collect_space:nw #1 ~ { { #1 ~ } }
-\cs_new:Npn \@@_range_collect_N:nN #1#2 { { #1 #2 } }
-\cs_new:Npn \@@_range_collect_group:nn #1#2 { { #1 {#2} } }
-\cs_generate_variant:Nn \@@_range_collect:nn { ff }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % \end{macro}
-% \end{macro}
 %
-% \begin{macro}[EXP]{\@@_range_normalize:nn}
-%   This function converts an \meta{index} argument into an explicit
-%   position in the token list (a result of $0$ denoting \enquote{out of
-%   bounds}).  Expects two explicit integer arguments: the \meta{index}
-%   |#1| and the string count~|#2|.  If |#1| is negative, replace it by
-%   $|#1| + |#2| + 1$, then limit to the range $[0, |#2|]$.
-%    \begin{macrocode}
-\cs_new:Npn \@@_range_normalize:nn #1#2
-  {
-    \int_eval:n
-      {
-        \if_int_compare:w #1 < 0 \exp_stop_f:
-          \if_int_compare:w #1 < -#2 \exp_stop_f:
-            0
-          \else:
-            #1 + #2 + 1
-          \fi:
-        \else:
-          \if_int_compare:w #1 < #2 \exp_stop_f:
-            #1
-          \else:
-            #2
-          \fi:
-        \fi:
-      }
-  }
-%    \end{macrocode}
-% \end{macro}
-%
 % \subsection{Additions to \pkg{l3token}}
 %
 % \begin{variable}{\c_catcode_active_space_tl}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -77,7 +77,7 @@
 %
 % \title{The \cls{l3doc} class}
 % \author{\Team}
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 % \maketitle
 % \tableofcontents
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -61,7 +61,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %
@@ -554,23 +554,23 @@
 %<*package>
 \ProvidesExplFile
 %<*dvipdfmx>
-  {l3dvidpfmx.def}{2018-12-11}{}
+  {l3dvidpfmx.def}{2018-12-12}{}
   {L3 Experimental driver: dvipdfmx}
 %</dvipdfmx>
 %<*dvips>
-  {l3dvips.def}{2018-12-11}{}
+  {l3dvips.def}{2018-12-12}{}
   {L3 Experimental driver: dvips}
 %</dvips>
 %<*dvisvgm>
-  {l3dvisvgm.def}{2018-12-11}{}
+  {l3dvisvgm.def}{2018-12-12}{}
   {L3 Experimental driver: dvisvgm}
 %</dvisvgm>
 %<*pdfmode>
-  {l3pdfmode.def}{2018-12-11}{}
+  {l3pdfmode.def}{2018-12-12}{}
   {L3 Experimental driver: PDF mode}
 %</pdfmode>
 %<*xdvipdfmx>
-  {l3xdvidpfmx.def}{2018-12-11}{}
+  {l3xdvidpfmx.def}{2018-12-12}{}
   {L3 Experimental driver: xdvipdfmx}
 %</xdvipdfmx>
 %</package>

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %
@@ -797,11 +797,22 @@
 %   third-party package \pkg{morewrites}), this macro is saved here
 %   under a private name.  The complicated code ensures that
 %   \cs{@@_new:N} is not \tn{outer} despite plain \TeX{}'s \tn{newread}
-%   being \tn{outer}.
+%   being \tn{outer}. For \ConTeXt{}, we have to deal with the fact
+%   that \tn{newread} works like our own: it actually checks before
+%   altering definition.
 %    \begin{macrocode}
 %<*package>
 \exp_args:NNf \cs_new_protected:Npn \@@_new:N
   { \exp_args:NNc \exp_after:wN \exp_stop_f: { newread } }
+\cs_if_exist:NT \normalend
+  {
+    \cs_new_eq:NN \@@_new_aux:N \@@_new:N
+    \cs_set_protected:Npn \@@_new:N #1
+      {
+        \cs_undefine:N #1
+        \@@_new_aux:N #1
+      }
+  }
 %</package>
 %    \end{macrocode}
 % \end{macro}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 % \maketitle
 %
 % \begin{documentation}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 % \maketitle
 %
 % \begin{documentation}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -47,7 +47,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %
@@ -333,7 +333,9 @@
 local floor      = math.floor
 local format     = string.format
 local gsub       = string.gsub
-local kpse_find  = kpse.find_file
+if not resolvers then
+  local kpse_find  = kpse.find_file
+end
 local lfs_attr   = lfs.attributes
 local md5_sum    = md5.sum
 local open       = io.open
@@ -345,6 +347,13 @@
 local utf8_char  = unicode.utf8.char
 %    \end{macrocode}
 %
+%   Deal with Con\TeX{}t: doesn't use |kpse| library.
+%    \begin{macrocode}
+if resolvers then
+  kpse_find = resolvers.findfile
+end
+%    \end{macrocode}
+%
 % \begin{macro}[int]{escapehex}
 %   An internal auxiliary to convert a string to the matching hex escape.
 %   This works on a byte basis: extension to handled UTF-8 input is

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -42,7 +42,7 @@
 % }
 %
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %
@@ -1026,6 +1026,79 @@
 %   \end{texnote}
 % \end{function}
 %
+% \begin{function}[EXP, added = 2017-02-17, updated = 2017-07-15]
+%   {\tl_range:Nnn, \tl_range:nnn}
+%   \begin{syntax}
+%     \cs{tl_range:Nnn} \meta{tl~var} \Arg{start index} \Arg{end index}
+%     \cs{tl_range:nnn} \Arg{token list} \Arg{start index} \Arg{end index}
+%   \end{syntax}
+%   Leaves in the input stream the items from the \meta{start index} to the
+%   \meta{end index} inclusive.  Spaces and braces are preserved between
+%   the items returned (but never at either end of the list).  
+%
+%   Here \meta{start index} and \meta{end index} should be integer denotations.
+%   For describing in detail the functions' behavior, let $m$ and $n$ be the start
+%   and end index respectively. If either is $0$, the result is empty. A positive
+%   index means `start counting from the left end', a negative index means
+%   `start counting from the right end'. Let $l$ be the count of the token list.
+%
+%   The \emph{actual start point} is determined as $M=m$ if~$m>0$ and as $M=l+m+1$
+%   if~$m<0$. Similarly the \emph{actual end point} is $N=n$ if~$n>0$ and $N=l+n+1$
+%   if~$n<0$. If $M>N$, the result is empty. Otherwise it consists of all items from
+%   position $M$ to position $N$ inclusive; for the purpose of this rule, we can
+%   imagine that the token list extends at infinity on either side, with void items
+%   at positions $s$ for $s\le0$ or $s>l$.
+%
+%   Spaces in between items in the actual range are preserved. Spaces at either end
+%   of the token list will be removed anyway (think to the token list being passed to
+%   |\tl_trim_spaces:n| to begin with.
+%   
+%   Thus, with $l=7$ as in the examples below, all of the following are equivalent
+%   and result in the whole token list
+%   \begin{verbatim}
+%     \tl_range:nnn { abcd~{e{}}fg } { 1 } { 7 }
+%     \tl_range:nnn { abcd~{e{}}fg } { 1 } { 12 }
+%     \tl_range:nnn { abcd~{e{}}fg } { -7 } { 7 }
+%     \tl_range:nnn { abcd~{e{}}fg } { -12 } { 7 }
+%   \end{verbatim}
+%   Here are some more interesting examples. The calls
+%   \begin{verbatim}
+%     \iow_term:x { \tl_range:nnn { abcd{e{}}fg } { 2 } { 5 } }
+%     \iow_term:x { \tl_range:nnn { abcd{e{}}fg } { 2 } { -3 } }
+%     \iow_term:x { \tl_range:nnn { abcd{e{}}fg } { -6 } { 5 } }
+%     \iow_term:x { \tl_range:nnn { abcd{e{}}fg } { -6 } { -3 } }
+%   \end{verbatim}
+%   are all equivalent and will print |bcd{e{}}| on the terminal; similarly
+%   \begin{verbatim}
+%     \iow_term:x { \tl_range:nnn { abcd~{e{}}fg } { 2 } { 5 } }
+%     \iow_term:x { \tl_range:nnn { abcd~{e{}}fg } { 2 } { -3 } }
+%     \iow_term:x { \tl_range:nnn { abcd~{e{}}fg } { -6 } { 5 } }
+%     \iow_term:x { \tl_range:nnn { abcd~{e{}}fg } { -6 } { -3 } }
+%   \end{verbatim}
+%   are all equivalent and will print |bcd {e{}}| on the
+%   terminal (note the space in the middle). To the contrary,
+%   \begin{verbatim}
+%     \tl_range:nnn { abcd~{e{}}f } { 2 } { 4 }
+%   \end{verbatim}
+%   will discard the space after `d`.
+%   
+%   If we want to get the items from the third to the last, the call
+%   is |\tl_range:nnn { <tl> } { 3 } { -1 }|. Similarly, for discarding
+%   the last item, we can do |\tl_range:nnn { <tl> } { 1 } { -2 }|.
+%   
+%   The behavior of \cs{tl_range:Nnn} is exactly the same, acting on the
+%   contents of the tl variable.
+%   
+%   For improved performance, see  \cs{tl_range_braced:nnn} and
+%   \cs{tl_range_unbraced:nnn}.
+%   \begin{texnote}
+%     The result is returned within the \tn{unexpanded}
+%     primitive (\cs{exp_not:n}), which means that the \meta{item}
+%     does not expand further when appearing in an \texttt{x}-type
+%     argument expansion.
+%   \end{texnote}
+% \end{function}
+%
 % \section{Viewing token lists}
 %
 % \begin{function}[updated = 2015-08-01]{\tl_show:N, \tl_show:c}
@@ -2994,6 +3067,145 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\tl_range:Nnn, \tl_range:cnn, \tl_range:nnn}
+% \begin{macro}
+%   {
+%     \@@_range:Nnnn, \@@_range:nnnNn, \@@_range:nnNn, \@@_range_skip:w,
+%     \@@_range:w, \@@_range_skip_spaces:n, \@@_range_collect:nn,
+%     \@@_range_collect:ff, \@@_range_collect_space:nw,
+%     \@@_range_collect_N:nN, \@@_range_collect_group:nN,
+%   }
+%   To avoid checking for the end of the token list at every step, start
+%   by counting the number $l$ of items and \enquote{normalizing} the
+%   bounds, namely clamping them to the interval $[0,l]$ and dealing
+%   with negative indices.  More precisely, \cs{@@_range_items:nnNn}
+%   receives the number of items to skip at the beginning of the token
+%   list, the index of the last item to keep, a function which is either
+%   \cs{@@_range:w} or the token list itself.  If nothing should be kept,
+%   leave |{}|: this stops the \texttt{f}-expansion of \cs{tl_head:f} and that
+%   function produces an empty result.  Otherwise, repeatedly call
+%   \cs{@@_range_skip:w} to delete |#1| items from the input stream (the
+%   extra brace group avoids an off-by-one shift).  For the braced
+%   version \cs{@@_range_braced:w} sets up
+%   \cs{@@_range_collect_braced:w} which stores items one by one in an
+%   argument after the semicolon. Depending on the first token of the tail,
+%   either just move  it (if it is a space) or also decrement the number of
+%   items left to find.  Eventually, the result is a brace group followed by
+%   the rest of the token list, and \cs{tl_head:f} cleans up and gives the
+%   result in \cs{exp_not:n}.
+%    \begin{macrocode}
+\cs_new:Npn \tl_range:Nnn { \exp_args:No \tl_range:nnn }
+\cs_generate_variant:Nn \tl_range:Nnn { c }
+\cs_new:Npn \tl_range:nnn { \@@_range:Nnnn \@@_range:w }
+\cs_new:Npn \@@_range:Nnnn #1#2#3#4
+  {
+    \tl_head:f
+      {
+        \exp_args:Nf \@@_range:nnnNn
+          { \tl_count:n {#2} } {#3} {#4} #1 {#2}
+      }
+  }
+\cs_new:Npn \@@_range:nnnNn #1#2#3
+  {
+    \exp_args:Nff \@@_range:nnNn
+      {
+        \exp_args:Nf \@@_range_normalize:nn
+          { \int_eval:n { #2 - 1 } } {#1}
+      }
+      {
+        \exp_args:Nf \@@_range_normalize:nn
+          { \int_eval:n {#3} } {#1}
+      }
+  }
+\cs_new:Npn \@@_range:nnNn #1#2#3#4
+  {
+    \if_int_compare:w #2 > #1 \exp_stop_f: \else:
+      \exp_after:wN { \exp_after:wN }
+    \fi:
+    \exp_after:wN #3
+    \int_value:w \int_eval:n { #2 - #1 } \exp_after:wN ;
+    \exp_after:wN { \exp:w \@@_range_skip:w #1 ; { } #4 }
+  }
+\cs_new:Npn \@@_range_skip:w #1 ; #2
+  {
+    \if_int_compare:w #1 > 0 \exp_stop_f:
+      \exp_after:wN \@@_range_skip:w
+      \int_value:w \int_eval:n { #1 - 1 } \exp_after:wN ;
+    \else:
+      \exp_after:wN \exp_end:
+    \fi:
+  }
+\cs_new:Npn \@@_range:w #1 ; #2
+  {
+    \exp_args:Nf \@@_range_collect:nn
+      { \@@_range_skip_spaces:n {#2} } {#1}
+  }
+\cs_new:Npn \@@_range_skip_spaces:n #1
+  {
+    \tl_if_head_is_space:nTF {#1}
+      { \exp_args:Nf \@@_range_skip_spaces:n {#1} }
+      { { } #1 }
+  }
+\cs_new:Npn \@@_range_collect:nn #1#2
+  {
+    \int_compare:nNnTF {#2} = 0
+      {#1}
+      {
+        \exp_args:No \tl_if_head_is_space:nTF { \use_none:n #1 }
+          {
+            \exp_args:Nf \@@_range_collect:nn
+              { \@@_range_collect_space:nw #1 }
+              {#2}
+          }
+          {
+            \@@_range_collect:ff
+              {
+                \exp_args:No \tl_if_head_is_N_type:nTF { \use_none:n #1 }
+                  { \@@_range_collect_N:nN }
+                  { \@@_range_collect_group:nn }
+                #1
+              }
+              { \int_eval:n { #2 - 1 } }
+          }
+      }
+  }
+\cs_new:Npn \@@_range_collect_space:nw #1 ~ { { #1 ~ } }
+\cs_new:Npn \@@_range_collect_N:nN #1#2 { { #1 #2 } }
+\cs_new:Npn \@@_range_collect_group:nn #1#2 { { #1 {#2} } }
+\cs_generate_variant:Nn \@@_range_collect:nn { ff }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_range_normalize:nn}
+%   This function converts an \meta{index} argument into an explicit
+%   position in the token list (a result of $0$ denoting \enquote{out of
+%   bounds}).  Expects two explicit integer arguments: the \meta{index}
+%   |#1| and the string count~|#2|.  If |#1| is negative, replace it by
+%   $|#1| + |#2| + 1$, then limit to the range $[0, |#2|]$.
+%    \begin{macrocode}
+\cs_new:Npn \@@_range_normalize:nn #1#2
+  {
+    \int_eval:n
+      {
+        \if_int_compare:w #1 < 0 \exp_stop_f:
+          \if_int_compare:w #1 < -#2 \exp_stop_f:
+            0
+          \else:
+            #1 + #2 + 1
+          \fi:
+        \else:
+          \if_int_compare:w #1 < #2 \exp_stop_f:
+            #1
+          \else:
+            #2
+          \fi:
+        \fi:
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
 % \subsection{Viewing token lists}
 %
 % \begin{macro}{\tl_show:N, \tl_show:c, \tl_log:N, \tl_log:c, \@@_show:NN}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2018-12-13 22:53:27 UTC (rev 49405)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-12-11}
+% \date{Released 2018-12-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2018-12-13 22:53:27 UTC (rev 49405)
@@ -63,7 +63,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx Copyright (C) 1990-2018 The LaTeX3 Project
-\def\ExplFileDate{2018-12-11}%
+\def\ExplFileDate{2018-12-12}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -4988,6 +4988,104 @@
   }
 \cs_new:Npn \tl_rand_item:N { \exp_args:No \tl_rand_item:n }
 \cs_generate_variant:Nn \tl_rand_item:N { c }
+\cs_new:Npn \tl_range:Nnn { \exp_args:No \tl_range:nnn }
+\cs_generate_variant:Nn \tl_range:Nnn { c }
+\cs_new:Npn \tl_range:nnn { \__tl_range:Nnnn \__tl_range:w }
+\cs_new:Npn \__tl_range:Nnnn #1#2#3#4
+  {
+    \tl_head:f
+      {
+        \exp_args:Nf \__tl_range:nnnNn
+          { \tl_count:n {#2} } {#3} {#4} #1 {#2}
+      }
+  }
+\cs_new:Npn \__tl_range:nnnNn #1#2#3
+  {
+    \exp_args:Nff \__tl_range:nnNn
+      {
+        \exp_args:Nf \__tl_range_normalize:nn
+          { \int_eval:n { #2 - 1 } } {#1}
+      }
+      {
+        \exp_args:Nf \__tl_range_normalize:nn
+          { \int_eval:n {#3} } {#1}
+      }
+  }
+\cs_new:Npn \__tl_range:nnNn #1#2#3#4
+  {
+    \if_int_compare:w #2 > #1 \exp_stop_f: \else:
+      \exp_after:wN { \exp_after:wN }
+    \fi:
+    \exp_after:wN #3
+    \int_value:w \int_eval:n { #2 - #1 } \exp_after:wN ;
+    \exp_after:wN { \exp:w \__tl_range_skip:w #1 ; { } #4 }
+  }
+\cs_new:Npn \__tl_range_skip:w #1 ; #2
+  {
+    \if_int_compare:w #1 > 0 \exp_stop_f:
+      \exp_after:wN \__tl_range_skip:w
+      \int_value:w \int_eval:n { #1 - 1 } \exp_after:wN ;
+    \else:
+      \exp_after:wN \exp_end:
+    \fi:
+  }
+\cs_new:Npn \__tl_range:w #1 ; #2
+  {
+    \exp_args:Nf \__tl_range_collect:nn
+      { \__tl_range_skip_spaces:n {#2} } {#1}
+  }
+\cs_new:Npn \__tl_range_skip_spaces:n #1
+  {
+    \tl_if_head_is_space:nTF {#1}
+      { \exp_args:Nf \__tl_range_skip_spaces:n {#1} }
+      { { } #1 }
+  }
+\cs_new:Npn \__tl_range_collect:nn #1#2
+  {
+    \int_compare:nNnTF {#2} = 0
+      {#1}
+      {
+        \exp_args:No \tl_if_head_is_space:nTF { \use_none:n #1 }
+          {
+            \exp_args:Nf \__tl_range_collect:nn
+              { \__tl_range_collect_space:nw #1 }
+              {#2}
+          }
+          {
+            \__tl_range_collect:ff
+              {
+                \exp_args:No \tl_if_head_is_N_type:nTF { \use_none:n #1 }
+                  { \__tl_range_collect_N:nN }
+                  { \__tl_range_collect_group:nn }
+                #1
+              }
+              { \int_eval:n { #2 - 1 } }
+          }
+      }
+  }
+\cs_new:Npn \__tl_range_collect_space:nw #1 ~ { { #1 ~ } }
+\cs_new:Npn \__tl_range_collect_N:nN #1#2 { { #1 #2 } }
+\cs_new:Npn \__tl_range_collect_group:nn #1#2 { { #1 {#2} } }
+\cs_generate_variant:Nn \__tl_range_collect:nn { ff }
+\cs_new:Npn \__tl_range_normalize:nn #1#2
+  {
+    \int_eval:n
+      {
+        \if_int_compare:w #1 < 0 \exp_stop_f:
+          \if_int_compare:w #1 < -#2 \exp_stop_f:
+            0
+          \else:
+            #1 + #2 + 1
+          \fi:
+        \else:
+          \if_int_compare:w #1 < #2 \exp_stop_f:
+            #1
+          \else:
+            #2
+          \fi:
+        \fi:
+      }
+  }
 \cs_new_protected:Npn \tl_show:N { \__tl_show:NN \tl_show:n }
 \cs_generate_variant:Nn \tl_show:N { c }
 \cs_new_protected:Npn \tl_log:N { \__tl_show:NN \tl_log:n }
@@ -10322,6 +10420,15 @@
 \prg_generate_conditional_variant:Nnn \ior_open:Nn { c } { T , F , TF }
 \exp_args:NNf \cs_new_protected:Npn \__ior_new:N
   { \exp_args:NNc \exp_after:wN \exp_stop_f: { newread } }
+\cs_if_exist:NT \normalend
+  {
+    \cs_new_eq:NN \__ior_new_aux:N \__ior_new:N
+    \cs_set_protected:Npn \__ior_new:N #1
+      {
+        \cs_undefine:N #1
+        \__ior_new_aux:N #1
+      }
+  }
 \cs_new_protected:Npn \__kernel_ior_open:Nn #1#2
   {
     \ior_close:N #1
@@ -24958,7 +25065,6 @@
     \group_end:
   }
 %% File: l3candidates.dtx Copyright (C) 2012-2018 The LaTeX3 Project
-
 \cs_new_protected:Npn \mode_leave_vertical:
   {
     \if_mode_vertical:
@@ -27069,9 +27175,6 @@
     #2 #1
     \exp_args:Nc \__tl_build_end_loop:NN { \cs_to_str:N #1 ' } #2
   }
-\cs_new:Npn \tl_range:Nnn { \exp_args:No \tl_range:nnn }
-\cs_generate_variant:Nn \tl_range:Nnn { c }
-\cs_new:Npn \tl_range:nnn { \__tl_range:Nnnn \__tl_range:w }
 \cs_new:Npn \tl_range_braced:Nnn { \exp_args:No \tl_range_braced:nnn }
 \cs_generate_variant:Nn \tl_range_braced:Nnn { c }
 \cs_new:Npn \tl_range_braced:nnn { \__tl_range:Nnnn \__tl_range_braced:w }
@@ -27080,44 +27183,6 @@
 \cs_generate_variant:Nn \tl_range_unbraced:Nnn { c }
 \cs_new:Npn \tl_range_unbraced:nnn
   { \__tl_range:Nnnn \__tl_range_unbraced:w }
-\cs_new:Npn \__tl_range:Nnnn #1#2#3#4
-  {
-    \tl_head:f
-      {
-        \exp_args:Nf \__tl_range:nnnNn
-          { \tl_count:n {#2} } {#3} {#4} #1 {#2}
-      }
-  }
-\cs_new:Npn \__tl_range:nnnNn #1#2#3
-  {
-    \exp_args:Nff \__tl_range:nnNn
-      {
-        \exp_args:Nf \__tl_range_normalize:nn
-          { \int_eval:n { #2 - 1 } } {#1}
-      }
-      {
-        \exp_args:Nf \__tl_range_normalize:nn
-          { \int_eval:n {#3} } {#1}
-      }
-  }
-\cs_new:Npn \__tl_range:nnNn #1#2#3#4
-  {
-    \if_int_compare:w #2 > #1 \exp_stop_f: \else:
-      \exp_after:wN { \exp_after:wN }
-    \fi:
-    \exp_after:wN #3
-    \int_value:w \int_eval:n { #2 - #1 } \exp_after:wN ;
-    \exp_after:wN { \exp:w \__tl_range_skip:w #1 ; { } #4 }
-  }
-\cs_new:Npn \__tl_range_skip:w #1 ; #2
-  {
-    \if_int_compare:w #1 > 0 \exp_stop_f:
-      \exp_after:wN \__tl_range_skip:w
-      \int_value:w \int_eval:n { #1 - 1 } \exp_after:wN ;
-    \else:
-      \exp_after:wN \exp_end:
-    \fi:
-  }
 \cs_new:Npn \__tl_range_braced:w #1 ; #2
   { \__tl_range_collect_braced:w #1 ; { } #2 }
 \cs_new:Npn \__tl_range_unbraced:w #1 ; #2
@@ -27138,63 +27203,6 @@
     \fi:
     { #2 #3 }
   }
-\cs_new:Npn \__tl_range:w #1 ; #2
-  {
-    \exp_args:Nf \__tl_range_collect:nn
-      { \__tl_range_skip_spaces:n {#2} } {#1}
-  }
-\cs_new:Npn \__tl_range_skip_spaces:n #1
-  {
-    \tl_if_head_is_space:nTF {#1}
-      { \exp_args:Nf \__tl_range_skip_spaces:n {#1} }
-      { { } #1 }
-  }
-\cs_new:Npn \__tl_range_collect:nn #1#2
-  {
-    \int_compare:nNnTF {#2} = 0
-      {#1}
-      {
-        \exp_args:No \tl_if_head_is_space:nTF { \use_none:n #1 }
-          {
-            \exp_args:Nf \__tl_range_collect:nn
-              { \__tl_range_collect_space:nw #1 }
-              {#2}
-          }
-          {
-            \__tl_range_collect:ff
-              {
-                \exp_args:No \tl_if_head_is_N_type:nTF { \use_none:n #1 }
-                  { \__tl_range_collect_N:nN }
-                  { \__tl_range_collect_group:nn }
-                #1
-              }
-              { \int_eval:n { #2 - 1 } }
-          }
-      }
-  }
-\cs_new:Npn \__tl_range_collect_space:nw #1 ~ { { #1 ~ } }
-\cs_new:Npn \__tl_range_collect_N:nN #1#2 { { #1 #2 } }
-\cs_new:Npn \__tl_range_collect_group:nn #1#2 { { #1 {#2} } }
-\cs_generate_variant:Nn \__tl_range_collect:nn { ff }
-\cs_new:Npn \__tl_range_normalize:nn #1#2
-  {
-    \int_eval:n
-      {
-        \if_int_compare:w #1 < 0 \exp_stop_f:
-          \if_int_compare:w #1 < -#2 \exp_stop_f:
-            0
-          \else:
-            #1 + #2 + 1
-          \fi:
-        \else:
-          \if_int_compare:w #1 < #2 \exp_stop_f:
-            #1
-          \else:
-            #2
-          \fi:
-        \fi:
-      }
-  }
 \group_begin:
   \char_set_catcode_active:N *
   \char_set_lccode:nn { `* } { `\ }

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2018-12-13 22:53:27 UTC (rev 49405)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx Copyright (C) 1990-2018 The LaTeX3 Project
-\def\ExplFileDate{2018-12-11}%
+\def\ExplFileDate{2018-12-12}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \def\tempa{LaTeX2e}%

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.lua	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.lua	2018-12-13 22:53:27 UTC (rev 49405)
@@ -34,7 +34,9 @@
 local floor      = math.floor
 local format     = string.format
 local gsub       = string.gsub
-local kpse_find  = kpse.find_file
+if not resolvers then
+  local kpse_find  = kpse.find_file
+end
 local lfs_attr   = lfs.attributes
 local md5_sum    = md5.sum
 local open       = io.open
@@ -44,6 +46,9 @@
 local sprint     = tex.sprint
 local write      = tex.write
 local utf8_char  = unicode.utf8.char
+if resolvers then
+  kpse_find = resolvers.findfile
+end
 local function escapehex(str)
   write((gsub(str, ".",
     function (ch) return format("%02X", byte(ch)) end)))

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2018-12-13 22:53:27 UTC (rev 49405)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx Copyright (C) 1990-2018 The LaTeX3 Project
-\def\ExplFileDate{2018-12-11}%
+\def\ExplFileDate{2018-12-12}%
 \let\ExplLoaderFileDate\ExplFileDate
 \ProvidesPackage{expl3}
   [%

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def	2018-12-13 22:53:27 UTC (rev 49405)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
 \ProvidesExplFile
-  {l3dvidpfmx.def}{2018-12-11}{}
+  {l3dvidpfmx.def}{2018-12-12}{}
   {L3 Experimental driver: dvipdfmx}
 \cs_new_eq:NN \__driver_literal:e \tex_special:D
 \cs_new_protected:Npn \__driver_literal:n #1

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def	2018-12-13 22:53:27 UTC (rev 49405)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
 \ProvidesExplFile
-  {l3dvips.def}{2018-12-11}{}
+  {l3dvips.def}{2018-12-12}{}
   {L3 Experimental driver: dvips}
 \cs_new_eq:NN \__driver_literal:e \tex_special:D
 \cs_new_protected:Npn \__driver_literal:n #1

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def	2018-12-13 22:53:27 UTC (rev 49405)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
 \ProvidesExplFile
-  {l3dvisvgm.def}{2018-12-11}{}
+  {l3dvisvgm.def}{2018-12-12}{}
   {L3 Experimental driver: dvisvgm}
 \cs_new_eq:NN \__driver_literal:e \tex_special:D
 \cs_new_protected:Npn \__driver_literal:n #1

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def	2018-12-13 22:53:27 UTC (rev 49405)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
 \ProvidesExplFile
-  {l3pdfmode.def}{2018-12-11}{}
+  {l3pdfmode.def}{2018-12-12}{}
   {L3 Experimental driver: PDF mode}
 \cs_new_eq:NN \__driver_literal:e \tex_special:D
 \cs_new_protected:Npn \__driver_literal:n #1

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def	2018-12-13 22:50:26 UTC (rev 49404)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def	2018-12-13 22:53:27 UTC (rev 49405)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
 \ProvidesExplFile
-  {l3xdvidpfmx.def}{2018-12-11}{}
+  {l3xdvidpfmx.def}{2018-12-12}{}
   {L3 Experimental driver: xdvipdfmx}
 \cs_new_eq:NN \__driver_literal:e \tex_special:D
 \cs_new_protected:Npn \__driver_literal:n #1



More information about the tex-live-commits mailing list