texlive[49692] Master/texmf-dist: l3kernel (13jan19)

commits+karl at tug.org commits+karl at tug.org
Mon Jan 14 00:32:05 CET 2019


Revision: 49692
          http://tug.org/svn/texlive?view=revision&revision=49692
Author:   karl
Date:     2019-01-14 00:32:04 +0100 (Mon, 14 Jan 2019)
Log Message:
-----------
l3kernel (13jan19)

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/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.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
    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	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md	2019-01-13 23:32:04 UTC (rev 49692)
@@ -7,6 +7,18 @@
 
 ## [Unreleased]
 
+## [2019-01-12]
+
+### Changed
+
+- Improved `expl3` loading time with LuaTeX and XeTeX
+- Improved performance of `\ior_map_inline:Nn` and related functions
+
+### Fixed
+
+- Handling of accented characters under mixed case changing in 8-bit engines
+  (see #514)
+
 ## [2019-01-01]
 
 ### Added
@@ -218,7 +230,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/2019-01-01...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2019-01-12...HEAD
+[2019-01-12]: https://github.com/latex3/latex3/compare/2019-01-01...2019-01-12
 [2019-01-01]: https://github.com/latex3/latex3/compare/2018-12-12...2019-01-01
 [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

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2019-01-13 23:32:04 UTC (rev 49692)
@@ -1,7 +1,7 @@
 LaTeX3 Programming Conventions
 ==============================
 
-Release 2019-01-01
+Release 2019-01-12
 
 Overview
 --------
@@ -100,6 +100,6 @@
 
 -----
 
-<p>Copyright (C) 1998-2012,2015-2018 The LaTeX3 Project <br />
+<p>Copyright (C) 1998-2012,2015-2019 The LaTeX3 Project <br />
 <a href="http://latex-project.org/">http://latex-project.org/</a> <br />
 All rights reserved.</p>

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	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex	2019-01-13 23:32:04 UTC (rev 49692)
@@ -52,7 +52,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2019-01-01}
+\date{Released 2019-01-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	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex	2019-01-13 23:32:04 UTC (rev 49692)
@@ -30,7 +30,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2019-01-01}
+\date{Released 2019-01-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	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex	2019-01-13 23:32:04 UTC (rev 49692)
@@ -30,7 +30,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2019-01-01}
+\date{Released 2019-01-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	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex	2019-01-13 23:32:04 UTC (rev 49692)
@@ -30,7 +30,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2019-01-01}
+\date{Released 2019-01-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	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex	2019-01-13 23:32:04 UTC (rev 49692)
@@ -51,7 +51,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2019-01-01}
+\date{Released 2019-01-12}
 
 \pagenumbering{roman}
 \maketitle

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -21,7 +21,7 @@
 % for those people who are interested.
 %
 %<*driver|generic|package>
-\def\ExplFileDate{2019-01-01}%
+\def\ExplFileDate{2019-01-12}%
 %</driver|generic|package>
 %<*driver>
 \documentclass[full]{l3doc}
@@ -49,7 +49,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -138,7 +138,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %
@@ -583,7 +583,7 @@
 %     \vbox_gset_to_ht:Nnw, \vbox_gset_to_ht:cnw
 %   }
 %   \begin{syntax}
-%     \cs{vbox_set_to_wd:Nnw} \meta{box} \Arg{dimexpr} \meta{contents} \cs{vbox_set_end:}
+%     \cs{vbox_set_to_ht:Nnw} \meta{box} \Arg{dimexpr} \meta{contents} \cs{vbox_set_end:}
 %   \end{syntax}
 %   Typesets the \meta{contents} to the height given by the \meta{dimexpr}
 %   and then stores the result inside the \meta{box}. In contrast

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %
@@ -353,9 +353,7 @@
 %   path and the additional paths controlled by \cs{file_path_include:n}.
 %   If found, sets the \meta{str var} to the size of the file in bytes.
 %   Where the file is not found, the \meta{str var} will be empty.
-%   \begin{texnote}
-%     Currently this is not available with \XeTeX{}.
-%   \end{texnote}
+%   This is not available in older versions of \XeTeX{}.
 % \end{function}
 %
 % \begin{function}[added = 2017-07-09]{\file_get_timestamp:nN}
@@ -369,9 +367,7 @@
 %   \meta{minute}\meta{second}\meta{offset}, where the latter may be |Z|
 %   (UTC) or \meta{plus-minus}\meta{hours}|'|\meta{minutes}|'|.
 %   Where the file is not found, the \meta{str var} will be empty.
-%   \begin{texnote}
-%     Currently this is not available with \XeTeX{}.
-%   \end{texnote}
+%   This is not available in older versions of \XeTeX{}.
 % \end{function}
 %
 % \begin{function}[added = 2014-07-02]{\file_if_exist_input:n, \file_if_exist_input:nF}
@@ -451,8 +447,9 @@
 %   $2^{30}-1$, an error occurs.  Entries are generated in the same way
 %   as repeated calls to \cs{int_rand:nn} or \cs{int_rand:n}
 %   respectively, in particular for the second function the
-%   \meta{minimum} is $1$.  This is not yet available in \XeTeX{}.
+%   \meta{minimum} is $1$.
 %   Assignments are always global.
+%   This is not available in older versions of \XeTeX{}.
 % \end{function}
 %
 % \subsection{Working with contents of integer arrays}
@@ -632,7 +629,8 @@
 %   \end{syntax}
 %   Selects a pseudo-random key--value pair from the \meta{property list}
 %   and returns \Arg{key} and \Arg{value}.  If the \meta{property list} is
-%   empty the result is empty.  This is not yet available in \XeTeX{}.
+%   empty the result is empty.
+%   This is not available in older versions of \XeTeX{}.
 %   \begin{texnote}
 %     The result is returned within the \tn{unexpanded}
 %     primitive (\cs{exp_not:n}), which means that the \meta{value}
@@ -4443,34 +4441,39 @@
           \exp_after:wN \@@_tmp:w \l_@@_internal_a_tl
           \@@_loop:nn
         }
-      \cs_set_protected:Npn \@@_tmp:w #1#2#3#4#5#6#7#8
+      \cs_set_protected:Npn \@@_tmp:nnnn #1#2#3#4#5
         {
           \tl_const:cx
             {
-              c_@@_lower_case_
-              \char_generate:nn {#1} { 12 }
+              c_@@_ #1 _case_
               \char_generate:nn {#2} { 12 }
+              \char_generate:nn {#3} { 12 }
               _tl
             }
             {
               \exp_after:wN \exp_after:wN \exp_after:wN
+                \exp_not:N \char_generate:nn {#4} { 13 }
+              \exp_after:wN \exp_after:wN \exp_after:wN
                 \exp_not:N \char_generate:nn {#5} { 13 }
-              \exp_after:wN \exp_after:wN \exp_after:wN
-                \exp_not:N \char_generate:nn {#6} { 13 }
             }
+        }
+      \cs_set_protected:Npn \@@_tmp:w #1#2#3#4#5#6#7#8
+        {
           \tl_const:cx
             {
-              c_@@_upper_case_
-              \char_generate:nn {#5} { 12 }
-              \char_generate:nn {#6} { 12 }
+              c_@@_lower_case_
+              \char_generate:nn {#1} { 12 }
+              \char_generate:nn {#2} { 12 }
               _tl
             }
             {
               \exp_after:wN \exp_after:wN \exp_after:wN
-                \exp_not:N \char_generate:nn {#1} { 13 }
+                \exp_not:N \char_generate:nn {#5} { 13 }
               \exp_after:wN \exp_after:wN \exp_after:wN
-                \exp_not:N \char_generate:nn {#2} { 13 }
+                \exp_not:N \char_generate:nn {#6} { 13 }
             }
+          \@@_tmp:nnnn { upper } {#5} {#6} {#1} {#2}
+          \@@_tmp:nnnn { mixed } {#5} {#6} {#1} {#2}
         }
       \@@_loop:nn
         { 00C0 } { 00E0 }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-%% File: l3coffins.dtx Copyright(C) 2010-2019 The LaTeX3 Project
+%% File: l3coffins.dtx Copyright (C) 2010-2019 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-%% File: l3color-base.dtx Copyright(C) 2011,2012,2014,2016-2019 The LaTeX3 Project
+%% File: l3color-base.dtx Copyright (C) 2011,2012,2014,2016-2019 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -29,7 +29,7 @@
 \askforoverwritefalse
 \preamble
 
-Copyright (C) 1990-2017 The LaTeX3 Project
+Copyright (C) 1990-2017,2019 The LaTeX3 Project
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -77,7 +77,7 @@
 %
 % \title{The \cls{l3doc} class}
 % \author{\Team}
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 % \maketitle
 % \tableofcontents
 %
@@ -1351,6 +1351,8 @@
   { The~deprecated~function(s)~'#1'~should~have~been~removed~on~#2. }
 \msg_new:nnn { l3doc } { date-format }
   { The~date~'#1'~should~be~given~in~YYYY-MM-DD~format. }
+\msg_new:nnn { l3doc } { future-date }
+  { The~added/updated~date~'#2'~of~'#1'~is~in~the~future. }
 \msg_new:nnn { l3doc } { syntax-nested-function }
   {
     The~'syntax'~environment~should~be~used~in~the~
@@ -2370,8 +2372,8 @@
         \bool_set_true:N \l_@@_macro_noTF_bool
         \bool_set_true:N \l_@@_macro_TF_bool
       } ,
-    added .code:n = { \@@_date_set:Nn \l_@@_date_added_tl {#1} },
-    updated .code:n = { \@@_date_set:Nn \l_@@_date_updated_tl {#1} } ,
+    added .code:n = { \@@_date_set_past:Nn \l_@@_date_added_tl {#1} },
+    updated .code:n = { \@@_date_set_past:Nn \l_@@_date_updated_tl {#1} } ,
     deprecated .code:n = { \@@_deprecated_on:n {#1} } ,
     tested .code:n = { } ,
     label .code:n =
@@ -2385,9 +2387,11 @@
   }
 %    \end{macrocode}
 %
-% \begin{macro}{\@@_date_set:Nn}
+% \begin{macro}{\@@_date_set:Nn,\@@_date_set_past:Nn}
 %   Normalize the date into the format \texttt{YYYY-MM-DD}; more
-%   precisely month and day are allowed to be single digits.
+%   precisely month and day are allowed to be single digits.  The
+%   \cs{@@_date_set_past:Nn} function only allows dates in the past (or
+%   same day).
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_date_set:Nn #1#2
   {
@@ -2399,6 +2403,17 @@
         \tl_set:Nn #1 { 1970-01-01 }
       }
   }
+\cs_new_protected:Npn \@@_date_set_past:Nn #1#2
+  {
+    \@@_date_set:Nn #1 {#2}
+    \exp_args:No \@@_date_compare:nNnT
+      {#1} > { \tex_year:D - \tex_month:D - \tex_day:D }
+      {
+        \msg_error:nnxx { l3doc } { future-date }
+          { \tl_to_str:N \l_@@_macro_argument_tl }
+          {#1}
+      }
+  }
 %    \end{macrocode}
 % \end{macro}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -61,7 +61,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-%% File: l3drivers.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3drivers.dtx Copyright (C) 2011-2019 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %
@@ -554,23 +554,23 @@
 %<*package>
 \ProvidesExplFile
 %<*dvipdfmx>
-  {l3dvidpfmx.def}{2019-01-01}{}
+  {l3dvidpfmx.def}{2019-01-12}{}
   {L3 Experimental driver: dvipdfmx}
 %</dvipdfmx>
 %<*dvips>
-  {l3dvips.def}{2019-01-01}{}
+  {l3dvips.def}{2019-01-12}{}
   {L3 Experimental driver: dvips}
 %</dvips>
 %<*dvisvgm>
-  {l3dvisvgm.def}{2019-01-01}{}
+  {l3dvisvgm.def}{2019-01-12}{}
   {L3 Experimental driver: dvisvgm}
 %</dvisvgm>
 %<*pdfmode>
-  {l3pdfmode.def}{2019-01-01}{}
+  {l3pdfmode.def}{2019-01-12}{}
   {L3 Experimental driver: PDF mode}
 %</pdfmode>
 %<*xdvipdfmx>
-  {l3xdvidpfmx.def}{2019-01-01}{}
+  {l3xdvidpfmx.def}{2019-01-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	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %
@@ -1002,11 +1002,11 @@
 \cs_new_protected:Npn \@@_map_inline_loop:NNN #1#2#3
   {
     #2 #3 \l_@@_internal_tl
-    \ior_if_eof:NF #3
-      {
-        \exp_args:No #1 \l_@@_internal_tl
-        \@@_map_inline_loop:NNN #1#2#3
-      }
+    \if_eof:w #3
+      \exp_after:wN \use_none:nnnnnnn
+    \fi:
+      \exp_args:No #1 \l_@@_internal_tl
+      \@@_map_inline_loop:NNN #1#2#3
   }
 %    \end{macrocode}
 % \end{macro}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-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	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-%% File: l3fp-aux.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3fp-aux.dtx Copyright (C) 2011-2019 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-%% File: l3fp-convert.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3fp-convert.dtx Copyright (C) 2011-2019 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-%% File: l3fp-round.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3fp-round.dtx Copyright (C) 2011-2019 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-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	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -47,7 +47,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %
@@ -91,18 +91,21 @@
 %     $\operatorname{asinh} x$, $\operatorname{acosh} x$,
 %     $\operatorname{atanh} x$, $\operatorname{acoth} x$,
 %     $\operatorname{asech} x$, $\operatorname{acsch} x$.
-%   \item Extrema: $\max(x,y,\ldots)$, $\min(x,y,\ldots)$,
+%   \item Extrema: $\max(x_{1},x_{2},\ldots)$, $\min(x_{1},x_{2},\ldots)$,
 %     $\operatorname{abs}(x)$.
-%   \item Rounding functions ($n=0$ by default, $t=\nan$ by default):
-%     $\operatorname{trunc}(x,n)$ rounds towards zero,
-%     $\operatorname{floor}(x,n)$ rounds towards~$-\infty$,
-%     $\operatorname{ceil}(x,n)$ rounds towards~$+\infty$,
-%     $\operatorname{round}(x,n,t)$ rounds to the closest value, with
+%   \item Rouning functions, controlled by two optional
+%     values,  $n$ (number of places, $0$ by default) and
+%       $t$ (behavior on a tie, $\nan$ by default):
+%     \begin{itemize}
+%     \item $\operatorname{trunc}(x,n)$ rounds towards zero,
+%     \item $\operatorname{floor}(x,n)$ rounds towards~$-\infty$,
+%     \item $\operatorname{ceil}(x,n)$ rounds towards~$+\infty$,
+%     \item $\operatorname{round}(x,n,t)$ rounds to the closest value, with
 %     ties rounded to an even value by default, towards zero if $t=0$,
-%     towards $+\infty$ if $t>0$ and towards $-\infty$ if $t<0$.  And
-%     \emph{(not yet)} modulo, and \enquote{quantize}.
-%   \item Random numbers: $\mathop{rand}()$, $\mathop{randint}(m,n)$ in
-%     all engines except \XeTeX{}.
+%     towards $+\infty$ if $t>0$ and towards $-\infty$ if $t<0$. 
+%     \end{itemize}
+%     And \emph{(not yet)} modulo, and \enquote{quantize}.
+%   \item Random numbers: $\mathop{rand}()$, $\mathop{randint}(m,n)$.
 %   \item Constants: \texttt{pi}, \texttt{deg} (one degree in radians).
 %   \item Dimensions, automatically expressed in points, \emph{e.g.},
 %     \texttt{pc} is~$12$.
@@ -1263,13 +1266,13 @@
 %     \cs{fp_eval:n} \{ |rand()| \}
 %   \end{syntax}
 %   Produces a pseudo-random floating-point number (multiple of
-%   $10^{-16}$) between $0$~included and $1$~excluded.  This is not yet
-%   available in \XeTeX{}.  The random seed can be queried using
+%   $10^{-16}$) between $0$~included and $1$~excluded.  This is not available
+%   in older versions of \XeTeX{}.  The random seed can be queried using
 %   \cs{sys_rand_seed:} and set using \cs{sys_gset_rand_seed:n}.
 %   \begin{texnote}
 %     This is based on pseudo-random numbers provided by the engine's
 %     primitive \tn{pdfuniformdeviate} in \pdfTeX{}, \pTeX{}, \upTeX{}
-%     and \tn{uniformdeviate} in \LuaTeX{}.  The underlying code is
+%     and \tn{uniformdeviate} in \LuaTeX{} and \XeTeX{}.  The underlying code is
 %     based on Metapost, which follows an additive scheme recommended in
 %     Section 3.6 of \enquote{The Art of Computer Programming,
 %     Volume~2}.

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %
@@ -791,8 +791,8 @@
 %     \cs{int_rand:nn} \Arg{intexpr_1} \Arg{intexpr_2}
 %   \end{syntax}
 %   Evaluates the two \meta{integer expressions} and produces a
-%   pseudo-random number between the two (with bounds included).  This
-%   is not yet available in \XeTeX{}.
+%   pseudo-random number between the two (with bounds included).
+%   This is not available in older versions of \XeTeX{}.
 % \end{function}
 %
 % \begin{function}[EXP, added = 2018-05-05]{\int_rand:n}
@@ -801,7 +801,7 @@
 %   \end{syntax}
 %   Evaluates the \meta{integer expression} then produces a
 %   pseudo-random number between $1$ and the \meta{intexpr} (included).
-%   This is not yet available in \XeTeX{}.
+%   This is not available in older versions of \XeTeX{}.
 % \end{function}
 %
 % \section{Viewing integers}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %
@@ -213,7 +213,7 @@
 %   |Package| is the standard outcome: see \cs{msg_module_type:n}.
 % \end{function}
 %
-% \begin{function}[EXP, added = 2019-10-10]{\msg_module_name:n}
+% \begin{function}[EXP, added = 2018-10-10]{\msg_module_name:n}
 %   \begin{syntax}
 %     \cs{msg_module_name:n} \Arg{module}
 %   \end{syntax}
@@ -222,7 +222,7 @@
 %   unchanged).
 % \end{function}
 %
-% \begin{function}[EXP, added = 2019-10-10]{\msg_module_type:n}
+% \begin{function}[EXP, added = 2018-10-10]{\msg_module_type:n}
 %   \begin{syntax}
 %     \cs{msg_module_type:n} \Arg{module}
 %   \end{syntax}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %
@@ -294,8 +294,8 @@
 %     \cs{seq_rand_item:N} \meta{seq~var}
 %   \end{syntax}
 %   Selects a pseudo-random item of the \meta{sequence}.  If the
-%   \meta{sequence} is empty the result is empty.  This is not yet
-%   available in \XeTeX{}.
+%   \meta{sequence} is empty the result is empty.
+%   This is not available in older versions of \XeTeX{}.
 %   \begin{texnote}
 %     The result is returned within the \tn{unexpanded}
 %     primitive (\cs{exp_not:n}), which means that the \meta{item}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %
@@ -731,9 +731,7 @@
 %     \emph{only} the Latin alphabet characters A--Z are case-folded
 %     (\emph{i.e.}~the \textsc{ascii} range which coincides with
 %     \textsc{utf-8}). Full \textsc{utf-8} support is available with both
-%     \XeTeX{} and \LuaTeX{}, subject only to the fact that \XeTeX{} in
-%     particular has issues with characters of code above hexadecimal
-%     $0\mathrm{xFFFF}$ when interacting with \cs{tl_to_str:n}.
+%     \XeTeX{} and \LuaTeX{}.
 %   \end{texnote}
 % \end{function}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %
@@ -1016,8 +1016,8 @@
 %     \cs{tl_rand_item:n} \Arg{token list}
 %   \end{syntax}
 %   Selects a pseudo-random item of the \meta{token list}.  If the
-%   \meta{token list} is blank, the result is empty.  This is not yet
-%   available in \XeTeX{}.
+%   \meta{token list} is blank, the result is empty.
+%   This is not available in older versions of \XeTeX{}.
 %   \begin{texnote}
 %     The result is returned within the \tn{unexpanded}
 %     primitive (\cs{exp_not:n}), which means that the \meta{item}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %
@@ -139,10 +139,11 @@
 %     \item $8$ (math subscript)
 %     \item $11$ (letter)
 %     \item $12$ (other)
-%     \item $13$ (active) (not \XeTeX{})
+%     \item $13$ (active)
 %   \end{itemize}
 %   and other values raise an error. The \meta{charcode} may be any one valid
 %   for the engine in use.
+%   Active characters cannot be generated in older versions of \XeTeX{}.
 % \end{function}
 %
 % \begin{variable}[added = 2011-09-05]{\c_catcode_other_space_tl}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2019-01-13 23:32:04 UTC (rev 49692)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
 %
 % \maketitle
 %
@@ -73,7 +73,9 @@
 % As only the data needs to remain at the end of this process, everything
 % is set up inside a group. The only thing that is outside is creating a
 % stream: they are global anyway and it is best to force a stream for
-% all engines.
+% all engines. For performance reasons, some of the code here is very
+% low-level: the material is read during loading \pkg{expl3} in package
+% mode.
 %    \begin{macrocode}
 \ior_new:N \g_@@_data_ior
 \bool_lazy_or:nnTF { \sys_if_engine_luatex_p: } { \sys_if_engine_xetex_p: }
@@ -84,6 +86,29 @@
 %    \begin{macrocode}
       \cs_set_eq:NN \@@_generate:w \tex_Uchar:D
 %    \end{macrocode}
+%   A fast local implementation for generating characters.
+%    \begin{macrocode}
+      \cs_set:Npx \@@_generate:n #1
+        {
+          \sys_if_engine_luatex:TF
+            {
+              \exp_not:N \lua_now:e
+                {
+                  l3kernel.charcat
+                    (
+                      \exp_not:N \tex_number:D #1 ,
+                      \exp_not:N \tex_the:D \tex_catcode:D #1
+                    )
+                }
+            }
+            {
+              \exp_not:N \tex_Ucharcat:D
+                \exp_not:N \tex_number:D #1 ~
+                \c_space_tl
+                \exp_not:N \tex_the:D \tex_catcode:D #1 ~
+            }
+        } 
+%    \end{macrocode}
 % Parse the main Unicode data file for title case exceptions (the one-to-one
 % lower and upper case mappings it contains are all be covered by the \TeX{}
 % data). There are no comments in the main data file so this can be done using
@@ -96,23 +121,22 @@
       \cs_set_protected:Npn \@@_data_auxii:w
         #1 ; #2 ; #3 ; #4 ; #5 ; #6 ; #7 \q_stop
         {
-          \tl_if_blank:nF {#7}
-            {
-              \str_if_eq:nnF {#5} {#7}
-                {
-                  \tl_const:cx
-                    { c_@@_mixed_case_ \@@_generate:w "#1 _tl }
-                    {
-                       \char_generate:nn { "#7 }
-                        { \char_value_catcode:n { "#7 } }
-                    }
-                }
-            }
+          \cs_set_nopar:Npn \l_@@_tmpa_tl {#7}
+          \reverse_if:N \if_meaning:w \l_@@_tmpa_tl \c_empty_tl
+            \cs_set_nopar:Npn \l_@@_tmpb_tl {#5}
+            \reverse_if:N \if_meaning:w \l_@@_tmpa_tl \l_@@_tmpb_tl
+              \tl_const:cx
+                { c_@@_mixed_case_ \@@_generate:w "#1 _tl }
+                { \@@_generate:n { "#7 } }
+            \fi:
+          \fi:
         }
       \ior_map_inline:Nn \g_@@_data_ior
         {
-          \tl_if_blank:nF {#1}
-            { \@@_data_auxi:w #1 \q_stop }
+          \cs_set_nopar:Npn \l_@@_tmpa_tl {#1}
+          \reverse_if:N \if_meaning:w \l_@@_tmpa_tl \c_space_tl
+            \@@_data_auxi:w #1 \q_stop
+          \fi:
         }
       \ior_close:N \g_@@_data_ior
 %    \end{macrocode}
@@ -126,46 +150,37 @@
       \ior_open:Nn \g_@@_data_ior { CaseFolding.txt }
       \cs_set_protected:Npn \@@_data_auxi:w #1 ;~ #2 ;~ #3 ; #4 \q_stop
         {
-          \str_if_eq:nnTF {#2} { C }
-            {
-              \int_compare:nNnF
-                { \char_value_lccode:n {"#1} } = {"#3}
-                {
-                  \tl_const:cx
-                    { c_@@_fold_case_ \@@_generate:w "#1 _tl }
-                    {
-                      \char_generate:nn { "#3 }
-                        { \char_value_catcode:n { "#3 } }
-                    }
-                }
-            }
-            {
-              \str_if_eq:nnT {#2} { F }
-               { \@@_data_auxii:w #1 ~ #3 ~ \q_stop }
-            }
+          \if:w \tl_head:n { #2 ? } C
+            \reverse_if:N \if_int_compare:w
+              \char_value_lccode:n {"#1} = "#3 ~
+              \tl_const:cx
+                { c_@@_fold_case_ \@@_generate:w "#1 _tl }
+                { \@@_generate:n { "#3 } }
+            \fi:
+          \else:
+            \if:w \tl_head:n { #2 ? } F
+              \@@_data_auxii:w #1 ~ #3 ~ \q_stop
+            \fi:
+          \fi:
         }
       \cs_set_protected:Npn \@@_data_auxii:w #1 ~ #2 ~ #3 ~ #4 \q_stop
         {
           \tl_const:cx { c_@@_fold_case_ \@@_generate:w "#1 _tl }
             {
-              \char_generate:nn { "#2 }
-                { \char_value_catcode:n { "#2 } }
-              \char_generate:nn { "#3 }
-                { \char_value_catcode:n { "#3 } }
+              \@@_generate:n { "#2 }
+              \@@_generate:n { "#3 }
               \tl_if_blank:nF {#4}
-                {
-                  \char_generate:nn { "#4 }
-                    { \char_value_catcode:n { "#4 } }
-                }
+                { \@@_generate:n { "#4 } }
             }
         }
       \ior_str_map_inline:Nn \g_@@_data_ior
         {
-          \tl_if_blank:nF {#1}
-            {
-              \str_if_eq:eeF { \tl_head:n {#1} } { \c_hash_str }
-                { \@@_data_auxi:w #1 \q_stop }
-            }
+          \cs_set_nopar:Npn \l_@@_tmpa_tl {#1}
+          \reverse_if:N \if_meaning:w \l_@@_tmpa_tl \c_empty_tl
+             \reverse_if:N \if:w \tl_head:n { #1 ? } \c_hash_str
+               \@@_data_auxi:w #1 \q_stop
+             \fi:
+          \fi:
         }
       \ior_close:N \g_@@_data_ior
 %    \end{macrocode}
@@ -189,31 +204,30 @@
             {
               \tl_const:cx { c_@@_ #2 _case_ \@@_generate:w "#1 _tl }
                 {
-                  \char_generate:nn { "#3 }
-                    { \char_value_catcode:n { "#3 } }
-                  \char_generate:nn { "#4 }
-                    { \char_value_catcode:n { "#4 } }
+                  \@@_generate:n { "#3 }
+                  \@@_generate:n { "#4 }
                   \tl_if_blank:nF {#5}
-                    {
-                      \char_generate:nn { "#5 }
-                        { \char_value_catcode:n { "#5 } }
-                    }
+                    { \@@_generate:n { "#5 } }
                 }
             }
         }
       \ior_str_map_inline:Nn \g_@@_data_ior
         {
-          \tl_if_blank:nF {#1}
-            {
-              \str_if_eq:eeTF { \tl_head:n {#1} } { \c_hash_str }
+          \cs_set_nopar:Npn \l_@@_tmpa_tl {#1}
+          \reverse_if:N \if_meaning:w \l_@@_tmpa_tl \c_empty_tl
+            \if:w \tl_head:n { #1 ? } \c_hash_str
+              \cs_set_nopar:Npx \l_@@_tmpb_tl
                 {
-                  \str_if_eq:eeT
-                    {#1}
-                    { \c_hash_str \c_space_tl Conditional~Mappings }
-                    { \ior_map_break: }
+                  \c_hash_str \c_space_tl
+                  \tl_to_str:n { Conditional~Mappings }
                 }
-                { \@@_data_auxi:w #1 \q_stop }
-            }
+              \if_meaning:w \l_@@_tmpa_tl \l_@@_tmpb_tl
+                \exp_after:wN \exp_after:wN \exp_after:wN \ior_map_break:
+              \fi:
+            \else:
+              \@@_data_auxi:w #1 \q_stop
+            \fi:
+          \fi:
         }
       \ior_close:N \g_@@_data_ior
    \group_end:

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2019-01-13 23:32:04 UTC (rev 49692)
@@ -63,7 +63,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx Copyright (C) 1990-2019 The LaTeX3 Project
-\def\ExplFileDate{2019-01-01}%
+\def\ExplFileDate{2019-01-12}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -10514,11 +10514,11 @@
 \cs_new_protected:Npn \__ior_map_inline_loop:NNN #1#2#3
   {
     #2 #3 \l__ior_internal_tl
-    \ior_if_eof:NF #3
-      {
-        \exp_args:No #1 \l__ior_internal_tl
-        \__ior_map_inline_loop:NNN #1#2#3
-      }
+    \if_eof:w #3
+      \exp_after:wN \use_none:nnnnnnn
+    \fi:
+      \exp_args:No #1 \l__ior_internal_tl
+      \__ior_map_inline_loop:NNN #1#2#3
   }
 \int_const:Nn \c_log_iow  { -1 }
 \int_const:Nn \c_term_iow
@@ -13017,7 +13017,7 @@
       }
   }
 %% File: l3fp.dtx Copyright (C) 2011-2019 The LaTeX3 Project
-%% File: l3fp-aux.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3fp-aux.dtx Copyright (C) 2011-2019 The LaTeX3 Project
 \cs_new_eq:NN \__fp_int_eval:w \tex_numexpr:D
 \cs_new_eq:NN \__fp_int_eval_end: \scan_stop:
 \cs_new_eq:NN \__fp_int_to_roman:w \tex_romannumeral:D
@@ -13596,7 +13596,7 @@
   { Invalid~operation~ (#1) #3 (#2) }
 \__kernel_msg_new:nnn { kernel } { fp-unknown-type }
   { Unknown~type~for~'#1' }
-%% File: l3fp-round.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3fp-round.dtx Copyright (C) 2011-2019 The LaTeX3 Project
 \cs_new:Npn \__fp_parse_word_trunc:N
   { \__fp_parse_function:NNN \__fp_round_o:Nw \__fp_round_to_zero:NNN }
 \cs_new:Npn \__fp_parse_word_floor:N
@@ -18482,7 +18482,7 @@
         { \__fp_asin_auxi_o:NnNww #1 {#3} #4 }
       }
   }
-%% File: l3fp-convert.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3fp-convert.dtx Copyright (C) 2011-2019 The LaTeX3 Project
 \cs_new:Npn \__fp_tuple_convert:Nw #1 \s__fp_tuple \__fp_tuple_chk:w #2 ;
   {
     \int_case:nnF { \__fp_array_count:n {#2} }
@@ -24014,7 +24014,7 @@
           }
       }
   }
-%% File: l3color-base.dtx Copyright(C) 2011,2012,2014,2016-2019 The LaTeX3 Project
+%% File: l3color-base.dtx Copyright (C) 2011,2012,2014,2016-2019 The LaTeX3 Project
 \cs_new_eq:NN \color_group_begin: \group_begin:
 \cs_new_eq:NN \color_group_end:   \group_end:
 \cs_new_protected:Npn \color_ensure_current:
@@ -24037,7 +24037,7 @@
   { \driver_color_spot:nn {#1} {#2} }
 \tl_new:N \l__color_current_tl
 \tl_set:Nn \l__color_current_tl { gray~0 }
-%% File: l3coffins.dtx Copyright(C) 2010-2019 The LaTeX3 Project
+%% File: l3coffins.dtx Copyright (C) 2010-2019 The LaTeX3 Project
 \box_new:N \l__coffin_internal_box
 \dim_new:N \l__coffin_internal_dim
 \tl_new:N  \l__coffin_internal_tl
@@ -24919,6 +24919,26 @@
   {
     \group_begin:
       \cs_set_eq:NN \__char_generate:w \tex_Uchar:D
+      \cs_set:Npx \__char_generate:n #1
+        {
+          \sys_if_engine_luatex:TF
+            {
+              \exp_not:N \lua_now:e
+                {
+                  l3kernel.charcat
+                    (
+                      \exp_not:N \tex_number:D #1 ,
+                      \exp_not:N \tex_the:D \tex_catcode:D #1
+                    )
+                }
+            }
+            {
+              \exp_not:N \tex_Ucharcat:D
+                \exp_not:N \tex_number:D #1 ~
+                \c_space_tl
+                \exp_not:N \tex_the:D \tex_catcode:D #1 ~
+            }
+        }
       \ior_open:Nn \g__char_data_ior { UnicodeData.txt }
       \cs_set_protected:Npn \__char_data_auxi:w
         #1 ; #2 ; #3 ; #4 ; #5 ; #6 ; #7 ; #8 ; #9 ;
@@ -24926,68 +24946,58 @@
       \cs_set_protected:Npn \__char_data_auxii:w
         #1 ; #2 ; #3 ; #4 ; #5 ; #6 ; #7 \q_stop
         {
-          \tl_if_blank:nF {#7}
-            {
-              \str_if_eq:nnF {#5} {#7}
-                {
-                  \tl_const:cx
-                    { c__char_mixed_case_ \__char_generate:w "#1 _tl }
-                    {
-                       \char_generate:nn { "#7 }
-                        { \char_value_catcode:n { "#7 } }
-                    }
-                }
-            }
+          \cs_set_nopar:Npn \l__char_tmpa_tl {#7}
+          \reverse_if:N \if_meaning:w \l__char_tmpa_tl \c_empty_tl
+            \cs_set_nopar:Npn \l__char_tmpb_tl {#5}
+            \reverse_if:N \if_meaning:w \l__char_tmpa_tl \l__char_tmpb_tl
+              \tl_const:cx
+                { c__char_mixed_case_ \__char_generate:w "#1 _tl }
+                { \__char_generate:n { "#7 } }
+            \fi:
+          \fi:
         }
       \ior_map_inline:Nn \g__char_data_ior
         {
-          \tl_if_blank:nF {#1}
-            { \__char_data_auxi:w #1 \q_stop }
+          \cs_set_nopar:Npn \l__char_tmpa_tl {#1}
+          \reverse_if:N \if_meaning:w \l__char_tmpa_tl \c_space_tl
+            \__char_data_auxi:w #1 \q_stop
+          \fi:
         }
       \ior_close:N \g__char_data_ior
       \ior_open:Nn \g__char_data_ior { CaseFolding.txt }
       \cs_set_protected:Npn \__char_data_auxi:w #1 ;~ #2 ;~ #3 ; #4 \q_stop
         {
-          \str_if_eq:nnTF {#2} { C }
-            {
-              \int_compare:nNnF
-                { \char_value_lccode:n {"#1} } = {"#3}
-                {
-                  \tl_const:cx
-                    { c__char_fold_case_ \__char_generate:w "#1 _tl }
-                    {
-                      \char_generate:nn { "#3 }
-                        { \char_value_catcode:n { "#3 } }
-                    }
-                }
-            }
-            {
-              \str_if_eq:nnT {#2} { F }
-               { \__char_data_auxii:w #1 ~ #3 ~ \q_stop }
-            }
+          \if:w \tl_head:n { #2 ? } C
+            \reverse_if:N \if_int_compare:w
+              \char_value_lccode:n {"#1} = "#3 ~
+              \tl_const:cx
+                { c__char_fold_case_ \__char_generate:w "#1 _tl }
+                { \__char_generate:n { "#3 } }
+            \fi:
+          \else:
+            \if:w \tl_head:n { #2 ? } F
+              \__char_data_auxii:w #1 ~ #3 ~ \q_stop
+            \fi:
+          \fi:
         }
       \cs_set_protected:Npn \__char_data_auxii:w #1 ~ #2 ~ #3 ~ #4 \q_stop
         {
           \tl_const:cx { c__char_fold_case_ \__char_generate:w "#1 _tl }
             {
-              \char_generate:nn { "#2 }
-                { \char_value_catcode:n { "#2 } }
-              \char_generate:nn { "#3 }
-                { \char_value_catcode:n { "#3 } }
+              \__char_generate:n { "#2 }
+              \__char_generate:n { "#3 }
               \tl_if_blank:nF {#4}
-                {
-                  \char_generate:nn { "#4 }
-                    { \char_value_catcode:n { "#4 } }
-                }
+                { \__char_generate:n { "#4 } }
             }
         }
       \ior_str_map_inline:Nn \g__char_data_ior
         {
-          \tl_if_blank:nF {#1}
-            {
-              \str_if_eq:eeF { \tl_head:n {#1} } { \c_hash_str }
-                { \__char_data_auxi:w #1 \q_stop }
-            }
+          \cs_set_nopar:Npn \l__char_tmpa_tl {#1}
+          \reverse_if:N \if_meaning:w \l__char_tmpa_tl \c_empty_tl
+             \reverse_if:N \if:w \tl_head:n { #1 ? } \c_hash_str
+               \__char_data_auxi:w #1 \q_stop
+             \fi:
+          \fi:
         }
       \ior_close:N \g__char_data_ior
       \ior_open:Nn \g__char_data_ior { SpecialCasing.txt }
@@ -25006,31 +25016,30 @@
             {
               \tl_const:cx { c__char_ #2 _case_ \__char_generate:w "#1 _tl }
                 {
-                  \char_generate:nn { "#3 }
-                    { \char_value_catcode:n { "#3 } }
-                  \char_generate:nn { "#4 }
-                    { \char_value_catcode:n { "#4 } }
+                  \__char_generate:n { "#3 }
+                  \__char_generate:n { "#4 }
                   \tl_if_blank:nF {#5}
-                    {
-                      \char_generate:nn { "#5 }
-                        { \char_value_catcode:n { "#5 } }
-                    }
+                    { \__char_generate:n { "#5 } }
                 }
             }
         }
       \ior_str_map_inline:Nn \g__char_data_ior
         {
-          \tl_if_blank:nF {#1}
-            {
-              \str_if_eq:eeTF { \tl_head:n {#1} } { \c_hash_str }
+          \cs_set_nopar:Npn \l__char_tmpa_tl {#1}
+          \reverse_if:N \if_meaning:w \l__char_tmpa_tl \c_empty_tl
+            \if:w \tl_head:n { #1 ? } \c_hash_str
+              \cs_set_nopar:Npx \l__char_tmpb_tl
                 {
-                  \str_if_eq:eeT
-                    {#1}
-                    { \c_hash_str \c_space_tl Conditional~Mappings }
-                    { \ior_map_break: }
+                  \c_hash_str \c_space_tl
+                  \tl_to_str:n { Conditional~Mappings }
                 }
-                { \__char_data_auxi:w #1 \q_stop }
-            }
+              \if_meaning:w \l__char_tmpa_tl \l__char_tmpb_tl
+                \exp_after:wN \exp_after:wN \exp_after:wN \ior_map_break:
+              \fi:
+            \else:
+              \__char_data_auxi:w #1 \q_stop
+            \fi:
+          \fi:
         }
       \ior_close:N \g__char_data_ior
    \group_end:
@@ -26810,34 +26819,39 @@
           \exp_after:wN \__tl_tmp:w \l__tl_internal_a_tl
           \__tl_loop:nn
         }
-      \cs_set_protected:Npn \__tl_tmp:w #1#2#3#4#5#6#7#8
+      \cs_set_protected:Npn \__tl_tmp:nnnn #1#2#3#4#5
         {
           \tl_const:cx
             {
-              c__tl_lower_case_
-              \char_generate:nn {#1} { 12 }
+              c__tl_ #1 _case_
               \char_generate:nn {#2} { 12 }
+              \char_generate:nn {#3} { 12 }
               _tl
             }
             {
               \exp_after:wN \exp_after:wN \exp_after:wN
+                \exp_not:N \char_generate:nn {#4} { 13 }
+              \exp_after:wN \exp_after:wN \exp_after:wN
                 \exp_not:N \char_generate:nn {#5} { 13 }
-              \exp_after:wN \exp_after:wN \exp_after:wN
-                \exp_not:N \char_generate:nn {#6} { 13 }
             }
+        }
+      \cs_set_protected:Npn \__tl_tmp:w #1#2#3#4#5#6#7#8
+        {
           \tl_const:cx
             {
-              c__tl_upper_case_
-              \char_generate:nn {#5} { 12 }
-              \char_generate:nn {#6} { 12 }
+              c__tl_lower_case_
+              \char_generate:nn {#1} { 12 }
+              \char_generate:nn {#2} { 12 }
               _tl
             }
             {
               \exp_after:wN \exp_after:wN \exp_after:wN
-                \exp_not:N \char_generate:nn {#1} { 13 }
+                \exp_not:N \char_generate:nn {#5} { 13 }
               \exp_after:wN \exp_after:wN \exp_after:wN
-                \exp_not:N \char_generate:nn {#2} { 13 }
+                \exp_not:N \char_generate:nn {#6} { 13 }
             }
+          \__tl_tmp:nnnn { upper } {#5} {#6} {#1} {#2}
+          \__tl_tmp:nnnn { mixed } {#5} {#6} {#1} {#2}
         }
       \__tl_loop:nn
         { 00C0 } { 00E0 }

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2019-01-13 23:32:04 UTC (rev 49692)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx Copyright (C) 1990-2019 The LaTeX3 Project
-\def\ExplFileDate{2019-01-01}%
+\def\ExplFileDate{2019-01-12}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \def\tempa{LaTeX2e}%

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2019-01-13 23:32:04 UTC (rev 49692)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx Copyright (C) 1990-2019 The LaTeX3 Project
-\def\ExplFileDate{2019-01-01}%
+\def\ExplFileDate{2019-01-12}%
 \let\ExplLoaderFileDate\ExplFileDate
 \ProvidesPackage{expl3}
   [%

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls	2019-01-13 23:32:04 UTC (rev 49692)
@@ -373,6 +373,8 @@
   { The~deprecated~function(s)~'#1'~should~have~been~removed~on~#2. }
 \msg_new:nnn { l3doc } { date-format }
   { The~date~'#1'~should~be~given~in~YYYY-MM-DD~format. }
+\msg_new:nnn { l3doc } { future-date }
+  { The~added/updated~date~'#2'~of~'#1'~is~in~the~future. }
 \msg_new:nnn { l3doc } { syntax-nested-function }
   {
     The~'syntax'~environment~should~be~used~in~the~
@@ -968,8 +970,8 @@
         \bool_set_true:N \l__codedoc_macro_noTF_bool
         \bool_set_true:N \l__codedoc_macro_TF_bool
       } ,
-    added .code:n = { \__codedoc_date_set:Nn \l__codedoc_date_added_tl {#1} },
-    updated .code:n = { \__codedoc_date_set:Nn \l__codedoc_date_updated_tl {#1} } ,
+    added .code:n = { \__codedoc_date_set_past:Nn \l__codedoc_date_added_tl {#1} },
+    updated .code:n = { \__codedoc_date_set_past:Nn \l__codedoc_date_updated_tl {#1} } ,
     deprecated .code:n = { \__codedoc_deprecated_on:n {#1} } ,
     tested .code:n = { } ,
     label .code:n =
@@ -991,6 +993,17 @@
         \tl_set:Nn #1 { 1970-01-01 }
       }
   }
+\cs_new_protected:Npn \__codedoc_date_set_past:Nn #1#2
+  {
+    \__codedoc_date_set:Nn #1 {#2}
+    \exp_args:No \__codedoc_date_compare:nNnT
+      {#1} > { \tex_year:D - \tex_month:D - \tex_day:D }
+      {
+        \msg_error:nnxx { l3doc } { future-date }
+          { \tl_to_str:N \l__codedoc_macro_argument_tl }
+          {#1}
+      }
+  }
 \cs_new_protected:Npn \__codedoc_deprecated_on:n #1
   {
     \__codedoc_date_set:Nn \l__codedoc_tmpa_tl {#1}

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def	2019-01-13 23:32:04 UTC (rev 49692)
@@ -18,9 +18,9 @@
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
 %% 
-%% File: l3drivers.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3drivers.dtx Copyright (C) 2011-2019 The LaTeX3 Project
 \ProvidesExplFile
-  {l3dvidpfmx.def}{2019-01-01}{}
+  {l3dvidpfmx.def}{2019-01-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	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def	2019-01-13 23:32:04 UTC (rev 49692)
@@ -18,9 +18,9 @@
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
 %% 
-%% File: l3drivers.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3drivers.dtx Copyright (C) 2011-2019 The LaTeX3 Project
 \ProvidesExplFile
-  {l3dvips.def}{2019-01-01}{}
+  {l3dvips.def}{2019-01-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	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def	2019-01-13 23:32:04 UTC (rev 49692)
@@ -18,9 +18,9 @@
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
 %% 
-%% File: l3drivers.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3drivers.dtx Copyright (C) 2011-2019 The LaTeX3 Project
 \ProvidesExplFile
-  {l3dvisvgm.def}{2019-01-01}{}
+  {l3dvisvgm.def}{2019-01-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	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def	2019-01-13 23:32:04 UTC (rev 49692)
@@ -18,9 +18,9 @@
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
 %% 
-%% File: l3drivers.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3drivers.dtx Copyright (C) 2011-2019 The LaTeX3 Project
 \ProvidesExplFile
-  {l3pdfmode.def}{2019-01-01}{}
+  {l3pdfmode.def}{2019-01-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	2019-01-13 23:31:16 UTC (rev 49691)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def	2019-01-13 23:32:04 UTC (rev 49692)
@@ -18,9 +18,9 @@
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
 %% 
-%% File: l3drivers.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3drivers.dtx Copyright (C) 2011-2019 The LaTeX3 Project
 \ProvidesExplFile
-  {l3xdvidpfmx.def}{2019-01-01}{}
+  {l3xdvidpfmx.def}{2019-01-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