texlive[49348] Master/texmf-dist: l3kernel (7dec18)

commits+karl at tug.org commits+karl at tug.org
Fri Dec 7 23:52:08 CET 2018


Revision: 49348
          http://tug.org/svn/texlive?view=revision&revision=49348
Author:   karl
Date:     2018-12-07 23:52:08 +0100 (Fri, 07 Dec 2018)
Log Message:
-----------
l3kernel (7dec18)

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.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-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md	2018-12-07 22:52:08 UTC (rev 49348)
@@ -7,6 +7,18 @@
 
 ## [Unreleased]
 
+## [2018-12-06]
+
+### Changed
+
+- Apply `\par` only at the end of vertical boxes
+- Move `\int_rand:n` to stable
+- Move `\<var>_rand_item:N` to stable
+
+### Fixed
+
+- Bu in `\lua_shipout_e:n` (see #503)
+
 ## [2018-11-19]
 
 ### Added
@@ -164,7 +176,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-11-19...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2018-12-06...HEAD
+[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
 [2018-10-31]: https://github.com/latex3/latex3/compare/2018-10-26...2018-10-31
 [2018-10-26]: https://github.com/latex3/latex3/compare/2018-10-19...2018-10-26

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2018-12-07 22:52:08 UTC (rev 49348)
@@ -1,7 +1,7 @@
 LaTeX3 Programming Conventions
 ==============================
 
-Release 2018-11-19
+Release 2018-12-06
 
 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-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex	2018-12-07 22:52:08 UTC (rev 49348)
@@ -52,7 +52,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2018-11-19}
+\date{Released 2018-12-06}
 
 \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-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex	2018-12-07 22:52:08 UTC (rev 49348)
@@ -30,7 +30,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2018-11-19}
+\date{Released 2018-12-06}
 
 \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-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex	2018-12-07 22:52:08 UTC (rev 49348)
@@ -30,7 +30,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2018-11-19}
+\date{Released 2018-12-06}
 
 \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-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex	2018-12-07 22:52:08 UTC (rev 49348)
@@ -30,7 +30,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2018-11-19}
+\date{Released 2018-12-06}
 
 \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-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex	2018-12-07 22:52:08 UTC (rev 49348)
@@ -51,7 +51,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2018-11-19}
+\date{Released 2018-12-06}
 
 \pagenumbering{roman}
 \maketitle

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -21,7 +21,7 @@
 % for those people who are interested.
 %
 %<*driver|generic|package>
-\def\ExplFileDate{2018-11-19}%
+\def\ExplFileDate{2018-12-06}%
 %</driver|generic|package>
 %<*driver>
 \documentclass[full]{l3doc}
@@ -49,7 +49,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -138,7 +138,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %
@@ -1364,7 +1364,8 @@
 %
 % \TeX{} ends these boxes directly with the internal \emph{end_graf}
 % routine. This means that there is no \cs{par} at the end of vertical
-% boxes unless we insert one.
+% boxes unless we insert one. Thus all vertical boxes include a \cs{par}
+% just before closing the color group.
 %
 % \begin{macro}{\vbox:n}
 % \TestFiles{m3box003.lvt}
@@ -1373,9 +1374,9 @@
 %   Put a vertical box directly into the input stream.
 %    \begin{macrocode}
 \cs_new_protected:Npn \vbox:n #1
-  { \tex_vbox:D { \color_group_begin: #1 \color_group_end: } }
+  { \tex_vbox:D { \color_group_begin: #1 \par \color_group_end: } }
 \cs_new_protected:Npn \vbox_top:n #1
-  { \tex_vtop:D { \color_group_begin: #1 \color_group_end: } }
+  { \tex_vtop:D { \color_group_begin: #1 \par \color_group_end: } }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -1388,12 +1389,12 @@
 \cs_new_protected:Npn \vbox_to_ht:nn #1#2
   {
     \tex_vbox:D to \@@_dim_eval:n {#1}
-      { \color_group_begin: #2 \color_group_end: }
+      { \color_group_begin: #2 \par \color_group_end: }
   }
 \cs_new_protected:Npn \vbox_to_zero:n #1
   {
     \tex_vbox:D to \c_zero_dim
-      { \color_group_begin: #1 \color_group_end: }
+      { \color_group_begin: #1 \par \color_group_end: }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -1408,13 +1409,13 @@
 \cs_new_protected:Npn \vbox_set:Nn #1#2
   {
     \tex_setbox:D #1 \tex_vbox:D
-      { \color_group_begin: #2 \color_group_end: }
+      { \color_group_begin: #2 \par \color_group_end: }
   }
 \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { }
 \cs_new_protected:Npn \vbox_gset:Nn #1#2
   {
     \tex_global:D \tex_setbox:D #1 \tex_vbox:D
-      { \color_group_begin: #2 \color_group_end: }
+      { \color_group_begin: #2 \par \color_group_end: }
   }
 \cs_generate_variant:Nn \vbox_set:Nn  { c }
 \cs_generate_variant:Nn \vbox_gset:Nn { c }
@@ -1432,13 +1433,13 @@
 \cs_new_protected:Npn \vbox_set_top:Nn #1#2
   {
     \tex_setbox:D #1 \tex_vtop:D
-      { \color_group_begin: #2 \color_group_end: }
+      { \color_group_begin: #2 \par \color_group_end: }
   }
 \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { }
 \cs_new_protected:Npn \vbox_gset_top:Nn #1#2
   {
     \tex_global:D \tex_setbox:D #1 \tex_vtop:D
-      { \color_group_begin: #2 \color_group_end: }
+      { \color_group_begin: #2 \par \color_group_end: }
   }
 \cs_generate_variant:Nn \vbox_set_top:Nn { c }
 \cs_generate_variant:Nn \vbox_gset_top:Nn { c }
@@ -1455,13 +1456,13 @@
 \cs_new_protected:Npn \vbox_set_to_ht:Nnn #1#2#3
   {
     \tex_setbox:D #1 \tex_vbox:D to \@@_dim_eval:n {#2}
-      { \color_group_begin: #3 \color_group_end: }
+      { \color_group_begin: #3 \par \color_group_end: }
   }
 \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { }
 \cs_new_protected:Npn \vbox_gset_to_ht:Nnn #1#2#3
   {
     \tex_global:D \tex_setbox:D #1 \tex_vbox:D to \@@_dim_eval:n {#2}
-      { \color_group_begin: #3 \color_group_end: }
+      { \color_group_begin: #3 \par \color_group_end: }
   }
 \cs_generate_variant:Nn \vbox_set_to_ht:Nnn  { c }
 \cs_generate_variant:Nn \vbox_gset_to_ht:Nnn { c }
@@ -1494,6 +1495,7 @@
 \cs_generate_variant:Nn \vbox_gset:Nw { c }
 \cs_new_protected:Npn \vbox_set_end:
   {
+        \par
       \color_group_end:
     \c_group_end_token
   }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %
@@ -193,25 +193,6 @@
 %   group level.
 % \end{function}
 %
-% \section{Additions to \pkg{l3clist}}
-%
-% \begin{function}[EXP, added = 2016-12-06]
-%   {\clist_rand_item:N, \clist_rand_item:n, \clist_rand_item:c}
-%   \begin{syntax}
-%     \cs{clist_rand_item:N} \meta{clist~var}
-%     \cs{clist_rand_item:n} \Arg{comma list}
-%   \end{syntax}
-%   Selects a pseudo-random item of the \meta{comma list}.  If the
-%   \meta{comma list} has no item, the result is empty.  This not
-%   yet available in \XeTeX{}.
-%   \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{Additions to \pkg{l3coffins}}
 %
 % \begin{function}{\coffin_resize:Nnn, \coffin_resize:cnn}
@@ -439,15 +420,6 @@
 %
 % \section{Additions to \pkg{l3int}}
 %
-% \begin{function}[EXP, added = 2018-05-05]{\int_rand:n}
-%   \begin{syntax}
-%     \cs{int_rand:n} \Arg{intexpr}
-%   \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{}.
-% \end{function}
-%
 % \begin{function}[EXP, added = 2018-11-03]{\int_sign:n}
 %   \begin{syntax}
 %     \cs{int_sign:n} \Arg{intexpr}
@@ -458,15 +430,6 @@
 %
 % \section{Additions to \pkg{l3intarray}}
 %
-% \begin{function}[EXP, added = 2018-05-05]{\intarray_rand_item:N}
-%   \begin{syntax}
-%     \cs{intarray_rand_item:N} \meta{intarray~var}
-%   \end{syntax}
-%   Selects a pseudo-random item of the \meta{integer array}.  If the
-%   \meta{integer array} is empty, produce an error.  This is not yet
-%   available in \XeTeX{}.
-% \end{function}
-%
 % \begin{function}[added = 2018-05-05]{\intarray_gset_rand:Nnn, \intarray_gset_rand:Nn}
 %   \begin{syntax}
 %     \cs{intarray_gset_rand:Nnn} \meta{intarray~var} \Arg{minimum} \Arg{maximum}
@@ -752,21 +715,6 @@
 %   \end{texnote}
 % \end{function}
 %
-% \begin{function}[EXP, added = 2016-12-06]{\seq_rand_item:N, \seq_rand_item:c}
-%   \begin{syntax}
-%     \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{}.
-%   \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}[added = 2017-11-28]
 %   {\seq_const_from_clist:Nn,  \seq_const_from_clist:cn}
 %   \begin{syntax}
@@ -1288,23 +1236,6 @@
 %   \meta{shell command}.
 % \end{function}
 %
-% \begin{function}[EXP, added = 2016-12-06]
-%   {\tl_rand_item:N, \tl_rand_item:c, \tl_rand_item:n}
-%   \begin{syntax}
-%     \cs{tl_rand_item:N} \meta{tl~var}
-%     \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{}.
-%   \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-02-17, updated = 2017-07-15]
 %   {\tl_range:Nnn, \tl_range:nnn}
 %   \begin{syntax}
@@ -1313,28 +1244,63 @@
 %   \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).  Positive
-%   \meta{indices} are counted
-%   from the start of the \meta{token list}, $1$~being the first item, and
-%   negative \meta{indices} are counted from the end of the token list,
-%   $-1$~being the last item.  If either of \meta{start index} or
-%   \meta{end index} is~$0$, the result is empty.  For instance,
+%   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}
-%     \iow_term:x { \tl_range:nnn { abcd~{e{}}f } { 2 } { 5 } }
-%     \iow_term:x { \tl_range:nnn { abcd~{e{}}f } { -4 } { -1 } }
-%     \iow_term:x { \tl_range:nnn { abcd~{e{}}f } { -2 } { -1 } }
-%     \iow_term:x { \tl_range:nnn { abcd~{e{}}f } { 0 } { -1 } }
+%     \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}
-%   prints \verb*|bcd {e{}}|, \verb*|cd {e{}}f|, \verb*|{e{}}f| and an empty
-%   line to the terminal. The \meta{start index} must always be smaller than
-%   or equal to the \meta{end index}: if this is not the case then no output
-%   is generated. Thus
+%   Here are some more interesting examples. The calls
 %   \begin{verbatim}
-%     \iow_term:x { \tl_range:nnn { abcd~{e{}}f } { 5 } { 2 } }
-%     \iow_term:x { \tl_range:nnn { abcd~{e{}}f } { -1 } { -4 } }
+%     \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}
-%   both yield empty token lists.  For improved performance, see
-%   \cs{tl_range_braced:nnn} and \cs{tl_range_unbraced:nnn}.
+%   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}
@@ -1720,39 +1686,6 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \subsection{Additions to \pkg{l3clist}}
-%
-%    \begin{macrocode}
-%<@@=clist>
-%    \end{macrocode}
-%
-% \begin{macro}{\clist_rand_item:n, \clist_rand_item:N, \clist_rand_item:c}
-% \begin{macro}{\@@_rand_item:nn}
-%   The |N|-type function is not implemented through the |n|-type
-%   function for efficiency: for instance comma-list variables do not
-%   require space-trimming of their items.  Even testing for emptyness
-%   of an |n|-type comma-list is slow, so we count items first and use
-%   that both for the emptyness test and the pseudo-random integer.
-%   Importantly, \cs{clist_item:Nn} and \cs{clist_item:nn} only evaluate
-%   their argument once.
-%    \begin{macrocode}
-\cs_new:Npn \clist_rand_item:n #1
-  { \exp_args:Nf \@@_rand_item:nn { \clist_count:n {#1} } {#1} }
-\cs_new:Npn \@@_rand_item:nn #1#2
-  {
-    \int_compare:nNnF {#1} = 0
-      { \clist_item:nn {#2} { \int_rand:nn { 1 } {#1} } }
-  }
-\cs_new:Npn \clist_rand_item:N #1
-  {
-    \clist_if_empty:NF #1
-      { \clist_item:Nn #1 { \int_rand:nn { 1 } { \clist_count:N #1 } } }
-  }
-\cs_generate_variant:Nn \clist_rand_item:N { c }
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
 % \subsection{Additions to \pkg{l3coffins}}
 %
 %    \begin{macrocode}
@@ -2740,18 +2673,6 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\seq_rand_item:N, \seq_rand_item:c}
-%   Importantly, \cs{seq_item:Nn} only evaluates its argument once.
-%    \begin{macrocode}
-\cs_new:Npn \seq_rand_item:N #1
-  {
-    \seq_if_empty:NF #1
-      { \seq_item:Nn #1 { \int_rand:nn { 1 } { \seq_count:N #1 } } }
-  }
-\cs_generate_variant:Nn \seq_rand_item:N { c }
-%    \end{macrocode}
-% \end{macro}
-%
 % \begin{macro}{\seq_const_from_clist:Nn, \seq_const_from_clist:cn}
 %   Almost identical to \cs{seq_set_from_clist:Nn}.
 %    \begin{macrocode}
@@ -5099,19 +5020,6 @@
 %
 % \subsubsection{Other additions to \pkg{l3tl}}
 %
-% \begin{macro}{\tl_rand_item:n, \tl_rand_item:N, \tl_rand_item:c}
-%   Importantly \cs{tl_item:nn} only evaluates its argument once.
-%    \begin{macrocode}
-\cs_new:Npn \tl_rand_item:n #1
-  {
-    \tl_if_blank:nF {#1}
-      { \tl_item:nn {#1} { \int_rand:nn { 1 } { \tl_count:n {#1} } } }
-  }
-\cs_new:Npn \tl_rand_item:N { \exp_args:No \tl_rand_item:n }
-\cs_generate_variant:Nn \tl_rand_item:N { c }
-%    \end{macrocode}
-% \end{macro}
-%
 % 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}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %
@@ -692,6 +692,22 @@
 %   \end{texnote}
 % \end{function}
 %
+% \begin{function}[EXP, added = 2016-12-06]
+%   {\clist_rand_item:N, \clist_rand_item:n, \clist_rand_item:c}
+%   \begin{syntax}
+%     \cs{clist_rand_item:N} \meta{clist~var}
+%     \cs{clist_rand_item:n} \Arg{comma list}
+%   \end{syntax}
+%   Selects a pseudo-random item of the \meta{comma list}.  If the
+%   \meta{comma list} has no item, the result is empty.
+%   \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 comma lists}
 %
 % \begin{function}[updated = 2015-08-03]{\clist_show:N, \clist_show:c}
@@ -1932,6 +1948,33 @@
 % \end{macro}
 % \end{macro}
 %
+% \begin{macro}{\clist_rand_item:n, \clist_rand_item:N, \clist_rand_item:c}
+% \begin{macro}{\@@_rand_item:nn}
+%   The |N|-type function is not implemented through the |n|-type
+%   function for efficiency: for instance comma-list variables do not
+%   require space-trimming of their items.  Even testing for emptyness
+%   of an |n|-type comma-list is slow, so we count items first and use
+%   that both for the emptyness test and the pseudo-random integer.
+%   Importantly, \cs{clist_item:Nn} and \cs{clist_item:nn} only evaluate
+%   their argument once.
+%    \begin{macrocode}
+\cs_new:Npn \clist_rand_item:n #1
+  { \exp_args:Nf \@@_rand_item:nn { \clist_count:n {#1} } {#1} }
+\cs_new:Npn \@@_rand_item:nn #1#2
+  {
+    \int_compare:nNnF {#1} = 0
+      { \clist_item:nn {#2} { \int_rand:nn { 1 } {#1} } }
+  }
+\cs_new:Npn \clist_rand_item:N #1
+  {
+    \clist_if_empty:NF #1
+      { \clist_item:Nn #1 { \int_rand:nn { 1 } { \clist_count:N #1 } } }
+  }
+\cs_generate_variant:Nn \clist_rand_item:N { c }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
 % \subsection{Viewing comma lists}
 %
 % \begin{macro}{\clist_show:N, \clist_show:c, \clist_log:N, \clist_log:c, \@@_show:NN}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %
@@ -122,16 +122,12 @@
 % \end{variable}
 %
 % \begin{macro}{\color_group_begin:, \color_group_end:}
-%   Grouping for color is almost the same as using the basic \cs{group_begin:}
-%   and \cs{group_end:} functions.  However, in vertical mode the end-of-group
-%   needs a \tn{par}, which in horizontal mode does nothing.
+%   Grouping for color is the same as using the basic \cs{group_begin:}
+%   and \cs{group_end:} functions.  However, for semantic reasons, they
+%   are renamed here.
 %    \begin{macrocode}
 \cs_new_eq:NN \color_group_begin: \group_begin:
-\cs_new_protected:Npn \color_group_end:
-  {
-      \par
-    \group_end:
-  }
+\cs_new_eq:NN \color_group_end:   \group_end:
 %    \end{macrocode}
 % \end{macro}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -77,7 +77,7 @@
 %
 % \title{The \cls{l3doc} class}
 % \author{\Team}
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 % \maketitle
 % \tableofcontents
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -61,7 +61,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %
@@ -554,23 +554,23 @@
 %<*package>
 \ProvidesExplFile
 %<*dvipdfmx>
-  {l3dvidpfmx.def}{2018-11-19}{}
+  {l3dvidpfmx.def}{2018-12-06}{}
   {L3 Experimental driver: dvipdfmx}
 %</dvipdfmx>
 %<*dvips>
-  {l3dvips.def}{2018-11-19}{}
+  {l3dvips.def}{2018-12-06}{}
   {L3 Experimental driver: dvips}
 %</dvips>
 %<*dvisvgm>
-  {l3dvisvgm.def}{2018-11-19}{}
+  {l3dvisvgm.def}{2018-12-06}{}
   {L3 Experimental driver: dvisvgm}
 %</dvisvgm>
 %<*pdfmode>
-  {l3pdfmode.def}{2018-11-19}{}
+  {l3pdfmode.def}{2018-12-06}{}
   {L3 Experimental driver: PDF mode}
 %</pdfmode>
 %<*xdvipdfmx>
-  {l3xdvidpfmx.def}{2018-11-19}{}
+  {l3xdvidpfmx.def}{2018-12-06}{}
   {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-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 % \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-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 % \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-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -47,7 +47,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %
@@ -795,6 +795,15 @@
 %   is not yet available in \XeTeX{}.
 % \end{function}
 %
+% \begin{function}[EXP, added = 2018-05-05]{\int_rand:n}
+%   \begin{syntax}
+%     \cs{int_rand:n} \Arg{intexpr}
+%   \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{}.
+% \end{function}
+%
 % \section{Viewing integers}
 %
 % \begin{function}{\int_show:N, \int_show:c}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %
@@ -112,6 +112,14 @@
 %   error occurs.
 % \end{function}
 %
+% \begin{function}[EXP, added = 2018-05-05]{\intarray_rand_item:N}
+%   \begin{syntax}
+%     \cs{intarray_rand_item:N} \meta{intarray~var}
+%   \end{syntax}
+%   Selects a pseudo-random item of the \meta{integer array}.  If the
+%   \meta{integer array} is empty, produce an error.
+% \end{function}
+%
 % \subsection{Implementation notes}
 %
 % It is a wrapper around the \tn{fontdimen} primitive, used to store

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %
@@ -232,7 +232,7 @@
 %    \begin{macrocode}
 \cs_new:Npn \lua_now:e #1 { \@@_now:n {#1} }
 \cs_new:Npn \lua_now:n #1 { \lua_now:e { \exp_not:n {#1} } }
-\cs_new_protected:Npn \lua_shipout_e:n #1 { \@@_shiphout:n {#1} }
+\cs_new_protected:Npn \lua_shipout_e:n #1 { \@@_shipout:n {#1} }
 \cs_new_protected:Npn \lua_shipout:n #1
   { \lua_shipout_e:n { \exp_not:n {#1} } }
 \cs_new:Npn \lua_escape:e #1 { \@@_escape:n {#1} }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -42,7 +42,7 @@
 % }
 %
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %
@@ -289,6 +289,21 @@
 %   \end{texnote}
 % \end{function}
 %
+% \begin{function}[EXP, added = 2016-12-06]{\seq_rand_item:N, \seq_rand_item:c}
+%   \begin{syntax}
+%     \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{}.
+%   \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{Recovering values from sequences with branching}
 %
 % The functions in this section combine tests for non-empty sequences
@@ -1702,6 +1717,18 @@
 % \end{macro}
 % \end{macro}
 %
+% \begin{macro}{\seq_rand_item:N, \seq_rand_item:c}
+%   Importantly, \cs{seq_item:Nn} only evaluates its argument once.
+%    \begin{macrocode}
+\cs_new:Npn \seq_rand_item:N #1
+  {
+    \seq_if_empty:NF #1
+      { \seq_item:Nn #1 { \int_rand:nn { 1 } { \seq_count:N #1 } } }
+  }
+\cs_generate_variant:Nn \seq_rand_item:N { c }
+%    \end{macrocode}
+% \end{macro}
+%
 % \subsection{Mapping to sequences}
 %
 % \begin{macro}{\seq_map_break:}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %
@@ -1009,6 +1009,23 @@
 %   \end{texnote}
 % \end{function}
 %
+% \begin{function}[EXP, added = 2016-12-06]
+%   {\tl_rand_item:N, \tl_rand_item:c, \tl_rand_item:n}
+%   \begin{syntax}
+%     \cs{tl_rand_item:N} \meta{tl~var}
+%     \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{}.
+%   \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}
@@ -2964,6 +2981,19 @@
 % \end{macro}
 % \end{macro}
 %
+% \begin{macro}{\tl_rand_item:n, \tl_rand_item:N, \tl_rand_item:c}
+%   Importantly \cs{tl_item:nn} only evaluates its argument once.
+%    \begin{macrocode}
+\cs_new:Npn \tl_rand_item:n #1
+  {
+    \tl_if_blank:nF {#1}
+      { \tl_item:nn {#1} { \int_rand:nn { 1 } { \tl_count:n {#1} } } }
+  }
+\cs_new:Npn \tl_rand_item:N { \exp_args:No \tl_rand_item:n }
+\cs_generate_variant:Nn \tl_rand_item:N { c }
+%    \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-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2018-12-07 22:52:08 UTC (rev 49348)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2018-11-19}
+% \date{Released 2018-12-06}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2018-12-07 22:52:08 UTC (rev 49348)
@@ -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-11-19}%
+\def\ExplFileDate{2018-12-06}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -4981,6 +4981,13 @@
   }
 \cs_new:Npn \tl_item:Nn { \exp_args:No \tl_item:nn }
 \cs_generate_variant:Nn \tl_item:Nn { c }
+\cs_new:Npn \tl_rand_item:n #1
+  {
+    \tl_if_blank:nF {#1}
+      { \tl_item:nn {#1} { \int_rand:nn { 1 } { \tl_count:n {#1} } } }
+  }
+\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_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 }
@@ -6148,6 +6155,12 @@
       { \exp_args:Nf \__seq_item:nwn { \int_eval:n { #1 - 1 } } }
   }
 \cs_generate_variant:Nn \seq_item:Nn { c }
+\cs_new:Npn \seq_rand_item:N #1
+  {
+    \seq_if_empty:NF #1
+      { \seq_item:Nn #1 { \int_rand:nn { 1 } { \seq_count:N #1 } } }
+  }
+\cs_generate_variant:Nn \seq_rand_item:N { c }
 \cs_new:Npn \seq_map_break:
   { \prg_map_break:Nn \seq_map_break: { } }
 \cs_new:Npn \seq_map_break:n
@@ -8224,6 +8237,19 @@
   { \tl_trim_spaces_apply:nN {#1} \__clist_item_n_strip:n }
 \cs_new:Npn \__clist_item_n_strip:n #1 { \__clist_item_n_strip:w #1 , }
 \cs_new:Npn \__clist_item_n_strip:w #1 , { \exp_not:n {#1} }
+\cs_new:Npn \clist_rand_item:n #1
+  { \exp_args:Nf \__clist_rand_item:nn { \clist_count:n {#1} } {#1} }
+\cs_new:Npn \__clist_rand_item:nn #1#2
+  {
+    \int_compare:nNnF {#1} = 0
+      { \clist_item:nn {#2} { \int_rand:nn { 1 } {#1} } }
+  }
+\cs_new:Npn \clist_rand_item:N #1
+  {
+    \clist_if_empty:NF #1
+      { \clist_item:Nn #1 { \int_rand:nn { 1 } { \clist_count:N #1 } } }
+  }
+\cs_generate_variant:Nn \clist_rand_item:N { c }
 \cs_new_protected:Npn \clist_show:N { \__clist_show:NN \msg_show:nnxxxx }
 \cs_generate_variant:Nn \clist_show:N { c }
 \cs_new_protected:Npn \clist_log:N { \__clist_show:NN \msg_log:nnxxxx }
@@ -23476,30 +23502,30 @@
 \cs_generate_variant:Nn \hbox_unpack:N { c }
 \cs_generate_variant:Nn \hbox_unpack_clear:N { c }
 \cs_new_protected:Npn \vbox:n #1
-  { \tex_vbox:D { \color_group_begin: #1 \color_group_end: } }
+  { \tex_vbox:D { \color_group_begin: #1 \par \color_group_end: } }
 \cs_new_protected:Npn \vbox_top:n #1
-  { \tex_vtop:D { \color_group_begin: #1 \color_group_end: } }
+  { \tex_vtop:D { \color_group_begin: #1 \par \color_group_end: } }
 \cs_new_protected:Npn \vbox_to_ht:nn #1#2
   {
     \tex_vbox:D to \__box_dim_eval:n {#1}
-      { \color_group_begin: #2 \color_group_end: }
+      { \color_group_begin: #2 \par \color_group_end: }
   }
 \cs_new_protected:Npn \vbox_to_zero:n #1
   {
     \tex_vbox:D to \c_zero_dim
-      { \color_group_begin: #1 \color_group_end: }
+      { \color_group_begin: #1 \par \color_group_end: }
   }
 \__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { }
 \cs_new_protected:Npn \vbox_set:Nn #1#2
   {
     \tex_setbox:D #1 \tex_vbox:D
-      { \color_group_begin: #2 \color_group_end: }
+      { \color_group_begin: #2 \par \color_group_end: }
   }
 \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { }
 \cs_new_protected:Npn \vbox_gset:Nn #1#2
   {
     \tex_global:D \tex_setbox:D #1 \tex_vbox:D
-      { \color_group_begin: #2 \color_group_end: }
+      { \color_group_begin: #2 \par \color_group_end: }
   }
 \cs_generate_variant:Nn \vbox_set:Nn  { c }
 \cs_generate_variant:Nn \vbox_gset:Nn { c }
@@ -23507,13 +23533,13 @@
 \cs_new_protected:Npn \vbox_set_top:Nn #1#2
   {
     \tex_setbox:D #1 \tex_vtop:D
-      { \color_group_begin: #2 \color_group_end: }
+      { \color_group_begin: #2 \par \color_group_end: }
   }
 \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { }
 \cs_new_protected:Npn \vbox_gset_top:Nn #1#2
   {
     \tex_global:D \tex_setbox:D #1 \tex_vtop:D
-      { \color_group_begin: #2 \color_group_end: }
+      { \color_group_begin: #2 \par \color_group_end: }
   }
 \cs_generate_variant:Nn \vbox_set_top:Nn { c }
 \cs_generate_variant:Nn \vbox_gset_top:Nn { c }
@@ -23521,13 +23547,13 @@
 \cs_new_protected:Npn \vbox_set_to_ht:Nnn #1#2#3
   {
     \tex_setbox:D #1 \tex_vbox:D to \__box_dim_eval:n {#2}
-      { \color_group_begin: #3 \color_group_end: }
+      { \color_group_begin: #3 \par \color_group_end: }
   }
 \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { }
 \cs_new_protected:Npn \vbox_gset_to_ht:Nnn #1#2#3
   {
     \tex_global:D \tex_setbox:D #1 \tex_vbox:D to \__box_dim_eval:n {#2}
-      { \color_group_begin: #3 \color_group_end: }
+      { \color_group_begin: #3 \par \color_group_end: }
   }
 \cs_generate_variant:Nn \vbox_set_to_ht:Nnn  { c }
 \cs_generate_variant:Nn \vbox_gset_to_ht:Nnn { c }
@@ -23549,6 +23575,7 @@
 \cs_generate_variant:Nn \vbox_gset:Nw { c }
 \cs_new_protected:Npn \vbox_set_end:
   {
+        \par
       \color_group_end:
     \c_group_end_token
   }
@@ -23891,11 +23918,7 @@
 \cs_new_protected:Npn \box_use_clear:c { \box_use_drop:c }
 %% File: l3color-base.dtx Copyright(C) 2011,2012,2014,2016-2018 The LaTeX3 Project
 \cs_new_eq:NN \color_group_begin: \group_begin:
-\cs_new_protected:Npn \color_group_end:
-  {
-      \par
-    \group_end:
-  }
+\cs_new_eq:NN \color_group_end:   \group_end:
 \cs_new_protected:Npn \color_ensure_current:
   {
     \driver_color_pickup:N \l__color_current_tl
@@ -24751,7 +24774,7 @@
 \cs_undefine:N \lua_now:e
 \cs_new:Npn \lua_now:e #1 { \__lua_now:n {#1} }
 \cs_new:Npn \lua_now:n #1 { \lua_now:e { \exp_not:n {#1} } }
-\cs_new_protected:Npn \lua_shipout_e:n #1 { \__lua_shiphout:n {#1} }
+\cs_new_protected:Npn \lua_shipout_e:n #1 { \__lua_shipout:n {#1} }
 \cs_new_protected:Npn \lua_shipout:n #1
   { \lua_shipout_e:n { \exp_not:n {#1} } }
 \cs_new:Npn \lua_escape:e #1 { \__lua_escape:n {#1} }
@@ -24932,6 +24955,7 @@
     \group_end:
   }
 %% File: l3candidates.dtx Copyright (C) 2012-2018 The LaTeX3 Project
+
 \cs_new_protected:Npn \mode_leave_vertical:
   {
     \if_mode_vertical:
@@ -25034,19 +25058,6 @@
     \box_set_eq:NN #1 \l__box_internal_box
   }
 \cs_generate_variant:Nn \box_viewport:Nnnnn { c }
-\cs_new:Npn \clist_rand_item:n #1
-  { \exp_args:Nf \__clist_rand_item:nn { \clist_count:n {#1} } {#1} }
-\cs_new:Npn \__clist_rand_item:nn #1#2
-  {
-    \int_compare:nNnF {#1} = 0
-      { \clist_item:nn {#2} { \int_rand:nn { 1 } {#1} } }
-  }
-\cs_new:Npn \clist_rand_item:N #1
-  {
-    \clist_if_empty:NF #1
-      { \clist_item:Nn #1 { \int_rand:nn { 1 } { \clist_count:N #1 } } }
-  }
-\cs_generate_variant:Nn \clist_rand_item:N { c }
 \fp_new:N \l__coffin_sin_fp
 \fp_new:N \l__coffin_cos_fp
 \prop_new:N \l__coffin_bounding_prop
@@ -25541,12 +25552,6 @@
   { \seq_set_from_inline_x:Nnn #1 {#2} { #3 {##1} } }
 \cs_new_protected:Npn \seq_gset_from_function:NnN #1#2#3
   { \seq_gset_from_inline_x:Nnn #1 {#2} { #3 {##1} } }
-\cs_new:Npn \seq_rand_item:N #1
-  {
-    \seq_if_empty:NF #1
-      { \seq_item:Nn #1 { \int_rand:nn { 1 } { \seq_count:N #1 } } }
-  }
-\cs_generate_variant:Nn \seq_rand_item:N { c }
 \cs_new_protected:Npn \seq_const_from_clist:Nn #1#2
   {
     \tl_const:Nx #1
@@ -27061,13 +27066,6 @@
     #2 #1
     \exp_args:Nc \__tl_build_end_loop:NN { \cs_to_str:N #1 ' } #2
   }
-\cs_new:Npn \tl_rand_item:n #1
-  {
-    \tl_if_blank:nF {#1}
-      { \tl_item:nn {#1} { \int_rand:nn { 1 } { \tl_count:n {#1} } } }
-  }
-\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 }

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2018-12-07 22:52:08 UTC (rev 49348)
@@ -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-11-19}%
+\def\ExplFileDate{2018-12-06}%
 \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	2018-12-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2018-12-07 22:52:08 UTC (rev 49348)
@@ -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-11-19}%
+\def\ExplFileDate{2018-12-06}%
 \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-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def	2018-12-07 22:52:08 UTC (rev 49348)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
 \ProvidesExplFile
-  {l3dvidpfmx.def}{2018-11-19}{}
+  {l3dvidpfmx.def}{2018-12-06}{}
   {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-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def	2018-12-07 22:52:08 UTC (rev 49348)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
 \ProvidesExplFile
-  {l3dvips.def}{2018-11-19}{}
+  {l3dvips.def}{2018-12-06}{}
   {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-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def	2018-12-07 22:52:08 UTC (rev 49348)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
 \ProvidesExplFile
-  {l3dvisvgm.def}{2018-11-19}{}
+  {l3dvisvgm.def}{2018-12-06}{}
   {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-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def	2018-12-07 22:52:08 UTC (rev 49348)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
 \ProvidesExplFile
-  {l3pdfmode.def}{2018-11-19}{}
+  {l3pdfmode.def}{2018-12-06}{}
   {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-07 22:51:38 UTC (rev 49347)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def	2018-12-07 22:52:08 UTC (rev 49348)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
 \ProvidesExplFile
-  {l3xdvidpfmx.def}{2018-11-19}{}
+  {l3xdvidpfmx.def}{2018-12-06}{}
   {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