[latex3-commits] [l3svn] r6787 - Add \int_rand:nn, \seq_rand_item:N etc.

noreply at latex-project.org noreply at latex-project.org
Tue Dec 6 18:32:58 CET 2016


Author: bruno
Date: 2016-12-06 18:32:58 +0100 (Tue, 06 Dec 2016)
New Revision: 6787

Added:
   trunk/l3kernel/testfiles/m3rand001.lvt
   trunk/l3kernel/testfiles/m3rand001.ptex.tlg
   trunk/l3kernel/testfiles/m3rand001.tlg
   trunk/l3kernel/testfiles/m3rand001.uptex.tlg
   trunk/l3kernel/testfiles/m3rand001.xetex.tlg
Removed:
   trunk/l3kernel/testfiles/m3fp-rand001.lvt
   trunk/l3kernel/testfiles/m3fp-rand001.ptex.tlg
   trunk/l3kernel/testfiles/m3fp-rand001.tlg
   trunk/l3kernel/testfiles/m3fp-rand001.uptex.tlg
   trunk/l3kernel/testfiles/m3fp-rand001.xetex.tlg
Modified:
   trunk/l3kernel/l3candidates.dtx
   trunk/l3kernel/l3fp-random.dtx
   trunk/l3kernel/testfiles/m3expl001.luatex.tlg
   trunk/l3kernel/testfiles/m3expl001.ptex.tlg
   trunk/l3kernel/testfiles/m3expl001.tlg
   trunk/l3kernel/testfiles/m3expl001.uptex.tlg
   trunk/l3kernel/testfiles/m3expl001.xetex.tlg
   trunk/l3kernel/testfiles/m3expl003.luatex.tlg
   trunk/l3kernel/testfiles/m3expl003.ptex.tlg
   trunk/l3kernel/testfiles/m3expl003.tlg
   trunk/l3kernel/testfiles/m3expl003.uptex.tlg
   trunk/l3kernel/testfiles/m3expl003.xetex.tlg
Log:
Add \int_rand:nn, \seq_rand_item:N etc.

This adds \int_rand:nn, \seq_rand_item:N, \tl_rand_item:N
(and :n), \clist_rand_item:N (and :n), \prop_rand_key:N,
\prop_rand_value:N, \prop_rand_key_value:N. I've renamed
m3fp-rand001 to m3rand001 because it seemed to make more
sense to test all random-related functions together.


Modified: trunk/l3kernel/l3candidates.dtx
===================================================================
--- trunk/l3kernel/l3candidates.dtx	2016-12-06 13:36:34 UTC (rev 6786)
+++ trunk/l3kernel/l3candidates.dtx	2016-12-06 17:32:58 UTC (rev 6787)
@@ -317,6 +317,23 @@
 %   \cs{clist_show:n} which displays the result in the terminal.
 % \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.  This is only
+%   available in \pdfTeX{} and \LuaTeX{}.
+%   \begin{texnote}
+%     The result is returned within the \tn{unexpanded}
+%     primitive (\cs{exp_not:n}), which means that the \meta{item}
+%     will 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}
@@ -495,6 +512,15 @@
 %   in the log file.
 % \end{function}
 %
+% \begin{function}[EXP, added = 2016-12-06]{\int_rand:nn}
+%   \begin{syntax}
+%     \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 only available in \pdfTeX{} and \LuaTeX{}.
+% \end{function}
+%
 % \section{Additions to \pkg{l3keys}}
 %
 % \begin{function}[added = 2014-08-22]{\keys_log:nn}
@@ -673,6 +699,51 @@
 %   Writes the entries in the \meta{property list} in the log file.
 % \end{function}
 %
+% \begin{function}[EXP, added = 2016-12-06]
+%   {\prop_rand_key:N, \prop_rand_key:c}
+%   \begin{syntax}
+%     \cs{prop_rand_key:N} \meta{prop~var}
+%   \end{syntax}
+%   Selects a pseudo-random key--value pair in the \meta{property list}
+%   and returns the \meta{key}.  If the \meta{property list} is empty
+%   the result is empty.  This is only available in \pdfTeX{} and
+%   \LuaTeX{}.
+% \end{function}
+%
+% \begin{function}[EXP, added = 2016-12-06]
+%   {\prop_rand_value:N, \prop_rand_value:c}
+%   \begin{syntax}
+%     \cs{prop_rand_value:N} \meta{prop~var}
+%   \end{syntax}
+%   Selects a pseudo-random key--value pair in the \meta{property list}
+%   and returns the \meta{value}.  If the \meta{property list} is empty
+%   the result is empty.  This is only available in \pdfTeX{} and
+%   \LuaTeX{}.
+%   \begin{texnote}
+%     The result is returned within the \tn{unexpanded}
+%     primitive (\cs{exp_not:n}), which means that the \meta{value}
+%     will not expand further when appearing in an \texttt{x}-type
+%     argument expansion.
+%   \end{texnote}
+% \end{function}
+%
+% \begin{function}[EXP, added = 2016-12-06]
+%   {\prop_rand_key_value:N, \prop_rand_key_value:c}
+%   \begin{syntax}
+%     \cs{prop_rand_key_value:N} \meta{prop~var}
+%   \end{syntax}
+%   Selects a pseudo-random key--value pair in the \meta{property list}
+%   and returns \Arg{key}\Arg{value}.  If the \meta{property list} is
+%   empty the result is empty.  This is only available in \pdfTeX{} and
+%   \LuaTeX{}.
+%   \begin{texnote}
+%     The result is returned within the \tn{unexpanded}
+%     primitive (\cs{exp_not:n}), which means that the \meta{value}
+%     will not expand further when appearing in an \texttt{x}-type
+%     argument expansion.
+%   \end{texnote}
+% \end{function}
+%
 % \section{Additions to \pkg{l3seq}}
 %
 % \begin{function}[rEXP]
@@ -733,6 +804,21 @@
 %   Writes the entries in the \meta{sequence} in the log file.
 % \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 only
+%   available in \pdfTeX{} and \LuaTeX{}.
+%   \begin{texnote}
+%     The result is returned within the \tn{unexpanded}
+%     primitive (\cs{exp_not:n}), which means that the \meta{item}
+%     will not expand further when appearing in an \texttt{x}-type
+%     argument expansion.
+%   \end{texnote}
+% \end{function}
+%
 % \section{Additions to \pkg{l3skip}}
 %
 % \begin{function}{\skip_split_finite_else_action:nnNN}
@@ -1069,12 +1155,29 @@
 %
 % \begin{function}[added = 2014-08-22]{\tl_log:n}
 %   \begin{syntax}
-%     \cs{tl_log:n} \meta{token list}
+%     \cs{tl_log:n} \Arg{token list}
 %   \end{syntax}
 %   Writes the \meta{token list} in the log file.  See also
 %   \cs{tl_show:n} which displays the result in the terminal.
 % \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 only
+%   available in \pdfTeX{} and \LuaTeX{}.
+%   \begin{texnote}
+%     The result is returned within the \tn{unexpanded}
+%     primitive (\cs{exp_not:n}), which means that the \meta{item}
+%     will not expand further when appearing in an \texttt{x}-type
+%     argument expansion.
+%   \end{texnote}
+% \end{function}
+%
 % \section{Additions to \pkg{l3tokens}}
 %
 % \begin{function}[TF, updated = 2012-12-20]{\peek_N_type:}
@@ -1799,6 +1902,33 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\clist_rand_item:n, \clist_rand_item:N, \clist_rand_item:c}
+% \begin{macro}[aux]{\@@_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} = \c_zero
+      { \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}
@@ -2408,6 +2538,10 @@
 %
 % \subsection{Additions to \pkg{l3int}}
 %
+%    \begin{macrocode}
+%<@@=int>
+%    \end{macrocode}
+%
 % \begin{macro}{\int_log:N, \int_log:c}
 %   Redirect output of \cs{int_show:N} to the log.  This is not just a
 %   copy of \cs{__kernel_register_log:N} because of subtleties
@@ -2428,6 +2562,89 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}[EXP]{\int_rand:nn}
+% \begin{macro}[aux, EXP]
+%   {
+%     \@@_rand:ww, \@@_rand_narrow:n,
+%     \@@_rand_narrow:nnn, \@@_rand_narrow:nnnn
+%   }
+%   Evaluate the argument and filter out the case where the lower
+%   bound~|#1| is more than the upper bound~|#2|.  Then determine
+%   whether the range is narrower than \cs{c__fp_rand_size_int}; |#2-#1|
+%   may overflow for very large positive~|#2| and negative~|#1|.  If the
+%   range is wide, use slower code from \pkg{l3fp}.  If the range is
+%   narrow, call \cs{@@_rand_narrow:nn} \Arg{choices} |{#1}| where
+%   \meta{choices} is the number of possible outcomes.  Then
+%   \cs{@@_rand_narrow:nnnn} receives a random number reduced modulo
+%   \meta{choices}, the random number itself, \meta{choices} and |#1|.
+%   To avoid bias, throw away the random number if it lies in the last,
+%   incomplete, interval of size \meta{choices} in
+%   $[0,\cs{c__fp_rand_size_int}-1]$, and try again.
+%    \begin{macrocode}
+\cs_if_exist:NTF \pdftex_uniformdeviate:D
+  {
+    \cs_new:Npn \int_rand:nn #1#2
+      {
+        \exp_after:wN \@@_rand:ww
+        \__int_value:w \__int_eval:w #1 \exp_after:wN ;
+        \__int_value:w \__int_eval:w #2 ;
+      }
+    \cs_new:Npn \@@_rand:ww #1; #2;
+      {
+        \int_compare:nNnTF {#1} > {#2}
+          {
+            \__msg_kernel_expandable_error:nnnn
+              { kernel } { backward-range } {#1} {#2}
+            \@@_rand:ww #2; #1;
+          }
+          {
+            \int_compare:nNnTF {#1} > \c_zero
+              { \int_compare:nNnTF { #2 - #1 } < \c__fp_rand_size_int }
+              { \int_compare:nNnTF {#2} < { #1 + \c__fp_rand_size_int } }
+                  {
+                    \exp_args:Nf \@@_rand_narrow:nn
+                      { \int_eval:n { #2 - #1 + \c_one } } {#1}
+                  }
+                  { \fp_to_int:n { randint(#1,#2) } }
+          }
+      }
+    \cs_new:Npn \@@_rand_narrow:nn
+      {
+        \exp_args:No \@@_rand_narrow:nnn
+          { \pdftex_uniformdeviate:D \c__fp_rand_size_int }
+      }
+    \cs_new:Npn \@@_rand_narrow:nnn #1#2
+      {
+        \exp_args:Nf \@@_rand_narrow:nnnn
+          { \int_mod:nn {#1} {#2} } {#1} {#2}
+      }
+    \cs_new:Npn \@@_rand_narrow:nnnn #1#2#3#4
+      {
+        \int_compare:nNnTF { #2 - #1 + #3 } > \c__fp_rand_size_int
+          { \@@_rand_narrow:nn {#3} {#4} }
+          { \int_eval:n { #4 + #1 } }
+      }
+  }
+  {
+    \cs_new:Npn \int_rand:nn #1#2
+      {
+        \__msg_kernel_expandable_error:nn { kernel } { fp-no-random }
+        \int_eval:n {#1}
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The following must be added to \pkg{l3msg}.
+%    \begin{macrocode}
+\cs_if_exist:NT \pdftex_uniformdeviate:D
+  {
+    \__msg_kernel_new:nnn { kernel } { backward-range }
+      { Bounds~ordered~backwards~in~\int_rand:nn {#1}~{#2}. }
+  }
+%    \end{macrocode}
+%
 % \subsection{Additions to \pkg{l3keys}}
 %
 %    \begin{macrocode}
@@ -2638,6 +2855,47 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}[EXP]
+%   {
+%     \prop_rand_key:N, \prop_rand_key:c,
+%     \prop_rand_value:N, \prop_rand_value:c,
+%     \prop_rand_key_value:N, \prop_rand_key_value:c
+%   }
+% \begin{macro}[aux, EXP]{\@@_rand:NN, \@@_rand_item:Nw}
+%   Contrarily to |clist|, |seq| and |tl|, there is no function to get
+%   an item of a |prop| given an integer between $1$ and the number of
+%   items, so we write the appropriate code.  There is no bounds
+%   checking because \cs{int_rand:nn} is always within bounds.  At the
+%   end, leave either the key |#3| or the value |#4| in the input
+%   stream.
+%    \begin{macrocode}
+\cs_new:Npn \prop_rand_key:N { \@@_rand:NN \use_i:nnn }
+\cs_new:Npn \prop_rand_value:N { \@@_rand:NN \use_none:n }
+\cs_new:Npn \prop_rand_key_value:N { \@@_rand:NN \@@_rand:nNn }
+\cs_new:Npn \@@_rand:nNn #1#2#3 { \exp_not:n { {#1} {#3} } }
+\cs_new:Npn \@@_rand:NN #1#2
+  {
+    \prop_if_empty:NTF #2 { }
+      {
+        \exp_after:wN \@@_rand_item:Nw \exp_after:wN #1
+        \__int_value:w \int_rand:nn { 1 } { \prop_count:N #2 } #2
+        \q_stop
+      }
+  }
+\cs_new:Npn \@@_rand_item:Nw #1#2 \s_@@ \@@_pair:wn #3 \s_@@ #4
+  {
+    \int_compare:nNnF {#2} > \c_one
+      { \use_i_delimit_by_q_stop:nw { #1 {#3} \exp_not:n {#4} } }
+    \exp_after:wN \@@_rand_item:Nw \exp_after:wN #1
+    \__int_value:w \int_eval:n { #2 - \c_one } \s_@@
+  }
+\cs_generate_variant:Nn \prop_rand_key:N { c }
+\cs_generate_variant:Nn \prop_rand_value:N { c }
+\cs_generate_variant:Nn \prop_rand_key_value:N { c }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
 % \subsection{Additions to \pkg{l3seq}}
 %
 %    \begin{macrocode}
@@ -2745,6 +3003,18 @@
 %    \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}
+%
 % \subsection{Additions to \pkg{l3skip}}
 %
 %    \begin{macrocode}
@@ -4442,6 +4712,19 @@
 %    \end{macrocode}
 % \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{Additions to \pkg{l3tokens}}
 %
 %    \begin{macrocode}

Modified: trunk/l3kernel/l3fp-random.dtx
===================================================================
--- trunk/l3kernel/l3fp-random.dtx	2016-12-06 13:36:34 UTC (rev 6786)
+++ trunk/l3kernel/l3fp-random.dtx	2016-12-06 17:32:58 UTC (rev 6787)
@@ -112,8 +112,9 @@
 %   uniform pseudo-random integer in $[0,2^{28}-1]$.  For instance,
 %   setting~$n$ to (any multiple of) $2^{29}$ gives only even values.
 %   Thus it is only safe to call \cs{pdftex_uniformdeviate:D} with
-%   argument $2^{28}$.  We will also use variants of this number rounded
-%   down to multiples of $10^4$ and $10^8$.
+%   argument $2^{28}$.  This integer is also used in the implementation
+%   of \cs{int_rand:nn}.  We will also use variants of this number
+%   rounded down to multiples of $10^4$ and $10^8$.
 %    \begin{macrocode}
 \cs_new:Npn \@@_rand_uniform:
   { \pdftex_uniformdeviate:D \c_@@_rand_size_int }

Modified: trunk/l3kernel/testfiles/m3expl001.luatex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl001.luatex.tlg	2016-12-06 13:36:34 UTC (rev 6786)
+++ trunk/l3kernel/testfiles/m3expl001.luatex.tlg	2016-12-06 17:32:58 UTC (rev 6787)
@@ -4551,6 +4551,10 @@
 Defining \clist_log:N on line ...
 Defining \clist_log:n on line ...
 Defining \clist_log:c on line ...
+Defining \clist_rand_item:n on line ...
+Defining \__clist_rand_item:nn on line ...
+Defining \clist_rand_item:N on line ...
+Defining \clist_rand_item:c on line ...
 Defining \l__coffin_sin_fp on line ...
 Defining \l__coffin_cos_fp on line ...
 Defining \l__coffin_bounding_prop on line ...
@@ -4615,6 +4619,12 @@
 Defining \int_log:N on line ...
 Defining \int_log:c on line ...
 Defining \int_log:n on line ...
+Defining \int_rand:nn on line ...
+Defining \__int_rand:ww on line ...
+Defining \__int_rand_narrow:nn on line ...
+Defining \__int_rand_narrow:nnn on line ...
+Defining \__int_rand_narrow:nnnn on line ...
+Defining message LaTeX/kernel/backward-range on line ...
 Defining \keys_log:nn on line ...
 Defining \msg_expandable_error:nnnnnn on line ...
 Defining \msg_expandable_error:nnnnn on line ...
@@ -4658,6 +4668,15 @@
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_log:N on line ...
 Defining \prop_log:c on line ...
+Defining \prop_rand_key:N on line ...
+Defining \prop_rand_value:N on line ...
+Defining \prop_rand_key_value:N on line ...
+Defining \__prop_rand:nNn on line ...
+Defining \__prop_rand:NN on line ...
+Defining \__prop_rand_item:Nw on line ...
+Defining \prop_rand_key:c on line ...
+Defining \prop_rand_value:c on line ...
+Defining \prop_rand_key_value:c on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
 Defining \__seq_mapthread_function:wNw on line ...
@@ -4673,6 +4692,8 @@
 Defining \__seq_set_map:NNNn on line ...
 Defining \seq_log:N on line ...
 Defining \seq_log:c on line ...
+Defining \seq_rand_item:N on line ...
+Defining \seq_rand_item:c on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \dim_log:N on line ...
 Defining \dim_log:c on line ...
@@ -4827,6 +4848,9 @@
 Defining \tl_log:N on line ...
 Defining \tl_log:c on line ...
 Defining \tl_log:n on line ...
+Defining \tl_rand_item:n on line ...
+Defining \tl_rand_item:N on line ...
+Defining \tl_rand_item:c on line ...
 Defining \__peek_execute_branches_N_type: on line ...
 Defining \__peek_N_type:w on line ...
 Defining \__peek_N_type_aux:nnw on line ...

Modified: trunk/l3kernel/testfiles/m3expl001.ptex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl001.ptex.tlg	2016-12-06 13:36:34 UTC (rev 6786)
+++ trunk/l3kernel/testfiles/m3expl001.ptex.tlg	2016-12-06 17:32:58 UTC (rev 6787)
@@ -4522,6 +4522,10 @@
 Defining \clist_log:N on line ...
 Defining \clist_log:n on line ...
 Defining \clist_log:c on line ...
+Defining \clist_rand_item:n on line ...
+Defining \__clist_rand_item:nn on line ...
+Defining \clist_rand_item:N on line ...
+Defining \clist_rand_item:c on line ...
 Defining \l__coffin_sin_fp on line ...
 Defining \l__coffin_cos_fp on line ...
 Defining \l__coffin_bounding_prop on line ...
@@ -4586,6 +4590,7 @@
 Defining \int_log:N on line ...
 Defining \int_log:c on line ...
 Defining \int_log:n on line ...
+Defining \int_rand:nn on line ...
 Defining \keys_log:nn on line ...
 Defining \msg_expandable_error:nnnnnn on line ...
 Defining \msg_expandable_error:nnnnn on line ...
@@ -4629,6 +4634,15 @@
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_log:N on line ...
 Defining \prop_log:c on line ...
+Defining \prop_rand_key:N on line ...
+Defining \prop_rand_value:N on line ...
+Defining \prop_rand_key_value:N on line ...
+Defining \__prop_rand:nNn on line ...
+Defining \__prop_rand:NN on line ...
+Defining \__prop_rand_item:Nw on line ...
+Defining \prop_rand_key:c on line ...
+Defining \prop_rand_value:c on line ...
+Defining \prop_rand_key_value:c on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
 Defining \__seq_mapthread_function:wNw on line ...
@@ -4644,6 +4658,8 @@
 Defining \__seq_set_map:NNNn on line ...
 Defining \seq_log:N on line ...
 Defining \seq_log:c on line ...
+Defining \seq_rand_item:N on line ...
+Defining \seq_rand_item:c on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \dim_log:N on line ...
 Defining \dim_log:c on line ...
@@ -4798,6 +4814,9 @@
 Defining \tl_log:N on line ...
 Defining \tl_log:c on line ...
 Defining \tl_log:n on line ...
+Defining \tl_rand_item:n on line ...
+Defining \tl_rand_item:N on line ...
+Defining \tl_rand_item:c on line ...
 Defining \__peek_execute_branches_N_type: on line ...
 Defining \__peek_N_type:w on line ...
 Defining \__peek_N_type_aux:nnw on line ...

Modified: trunk/l3kernel/testfiles/m3expl001.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl001.tlg	2016-12-06 13:36:34 UTC (rev 6786)
+++ trunk/l3kernel/testfiles/m3expl001.tlg	2016-12-06 17:32:58 UTC (rev 6787)
@@ -4542,6 +4542,10 @@
 Defining \clist_log:N on line ...
 Defining \clist_log:n on line ...
 Defining \clist_log:c on line ...
+Defining \clist_rand_item:n on line ...
+Defining \__clist_rand_item:nn on line ...
+Defining \clist_rand_item:N on line ...
+Defining \clist_rand_item:c on line ...
 Defining \l__coffin_sin_fp on line ...
 Defining \l__coffin_cos_fp on line ...
 Defining \l__coffin_bounding_prop on line ...
@@ -4606,6 +4610,12 @@
 Defining \int_log:N on line ...
 Defining \int_log:c on line ...
 Defining \int_log:n on line ...
+Defining \int_rand:nn on line ...
+Defining \__int_rand:ww on line ...
+Defining \__int_rand_narrow:nn on line ...
+Defining \__int_rand_narrow:nnn on line ...
+Defining \__int_rand_narrow:nnnn on line ...
+Defining message LaTeX/kernel/backward-range on line ...
 Defining \keys_log:nn on line ...
 Defining \msg_expandable_error:nnnnnn on line ...
 Defining \msg_expandable_error:nnnnn on line ...
@@ -4649,6 +4659,15 @@
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_log:N on line ...
 Defining \prop_log:c on line ...
+Defining \prop_rand_key:N on line ...
+Defining \prop_rand_value:N on line ...
+Defining \prop_rand_key_value:N on line ...
+Defining \__prop_rand:nNn on line ...
+Defining \__prop_rand:NN on line ...
+Defining \__prop_rand_item:Nw on line ...
+Defining \prop_rand_key:c on line ...
+Defining \prop_rand_value:c on line ...
+Defining \prop_rand_key_value:c on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
 Defining \__seq_mapthread_function:wNw on line ...
@@ -4664,6 +4683,8 @@
 Defining \__seq_set_map:NNNn on line ...
 Defining \seq_log:N on line ...
 Defining \seq_log:c on line ...
+Defining \seq_rand_item:N on line ...
+Defining \seq_rand_item:c on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \dim_log:N on line ...
 Defining \dim_log:c on line ...
@@ -5019,6 +5040,9 @@
 Defining \tl_log:N on line ...
 Defining \tl_log:c on line ...
 Defining \tl_log:n on line ...
+Defining \tl_rand_item:n on line ...
+Defining \tl_rand_item:N on line ...
+Defining \tl_rand_item:c on line ...
 Defining \__peek_execute_branches_N_type: on line ...
 Defining \__peek_N_type:w on line ...
 Defining \__peek_N_type_aux:nnw on line ...

Modified: trunk/l3kernel/testfiles/m3expl001.uptex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl001.uptex.tlg	2016-12-06 13:36:34 UTC (rev 6786)
+++ trunk/l3kernel/testfiles/m3expl001.uptex.tlg	2016-12-06 17:32:58 UTC (rev 6787)
@@ -4522,6 +4522,10 @@
 Defining \clist_log:N on line ...
 Defining \clist_log:n on line ...
 Defining \clist_log:c on line ...
+Defining \clist_rand_item:n on line ...
+Defining \__clist_rand_item:nn on line ...
+Defining \clist_rand_item:N on line ...
+Defining \clist_rand_item:c on line ...
 Defining \l__coffin_sin_fp on line ...
 Defining \l__coffin_cos_fp on line ...
 Defining \l__coffin_bounding_prop on line ...
@@ -4586,6 +4590,7 @@
 Defining \int_log:N on line ...
 Defining \int_log:c on line ...
 Defining \int_log:n on line ...
+Defining \int_rand:nn on line ...
 Defining \keys_log:nn on line ...
 Defining \msg_expandable_error:nnnnnn on line ...
 Defining \msg_expandable_error:nnnnn on line ...
@@ -4629,6 +4634,15 @@
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_log:N on line ...
 Defining \prop_log:c on line ...
+Defining \prop_rand_key:N on line ...
+Defining \prop_rand_value:N on line ...
+Defining \prop_rand_key_value:N on line ...
+Defining \__prop_rand:nNn on line ...
+Defining \__prop_rand:NN on line ...
+Defining \__prop_rand_item:Nw on line ...
+Defining \prop_rand_key:c on line ...
+Defining \prop_rand_value:c on line ...
+Defining \prop_rand_key_value:c on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
 Defining \__seq_mapthread_function:wNw on line ...
@@ -4644,6 +4658,8 @@
 Defining \__seq_set_map:NNNn on line ...
 Defining \seq_log:N on line ...
 Defining \seq_log:c on line ...
+Defining \seq_rand_item:N on line ...
+Defining \seq_rand_item:c on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \dim_log:N on line ...
 Defining \dim_log:c on line ...
@@ -4999,6 +5015,9 @@
 Defining \tl_log:N on line ...
 Defining \tl_log:c on line ...
 Defining \tl_log:n on line ...
+Defining \tl_rand_item:n on line ...
+Defining \tl_rand_item:N on line ...
+Defining \tl_rand_item:c on line ...
 Defining \__peek_execute_branches_N_type: on line ...
 Defining \__peek_N_type:w on line ...
 Defining \__peek_N_type_aux:nnw on line ...

Modified: trunk/l3kernel/testfiles/m3expl001.xetex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl001.xetex.tlg	2016-12-06 13:36:34 UTC (rev 6786)
+++ trunk/l3kernel/testfiles/m3expl001.xetex.tlg	2016-12-06 17:32:58 UTC (rev 6787)
@@ -4529,6 +4529,10 @@
 Defining \clist_log:N on line ...
 Defining \clist_log:n on line ...
 Defining \clist_log:c on line ...
+Defining \clist_rand_item:n on line ...
+Defining \__clist_rand_item:nn on line ...
+Defining \clist_rand_item:N on line ...
+Defining \clist_rand_item:c on line ...
 Defining \l__coffin_sin_fp on line ...
 Defining \l__coffin_cos_fp on line ...
 Defining \l__coffin_bounding_prop on line ...
@@ -4593,6 +4597,7 @@
 Defining \int_log:N on line ...
 Defining \int_log:c on line ...
 Defining \int_log:n on line ...
+Defining \int_rand:nn on line ...
 Defining \keys_log:nn on line ...
 Defining \msg_expandable_error:nnnnnn on line ...
 Defining \msg_expandable_error:nnnnn on line ...
@@ -4636,6 +4641,15 @@
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_log:N on line ...
 Defining \prop_log:c on line ...
+Defining \prop_rand_key:N on line ...
+Defining \prop_rand_value:N on line ...
+Defining \prop_rand_key_value:N on line ...
+Defining \__prop_rand:nNn on line ...
+Defining \__prop_rand:NN on line ...
+Defining \__prop_rand_item:Nw on line ...
+Defining \prop_rand_key:c on line ...
+Defining \prop_rand_value:c on line ...
+Defining \prop_rand_key_value:c on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
 Defining \__seq_mapthread_function:wNw on line ...
@@ -4651,6 +4665,8 @@
 Defining \__seq_set_map:NNNn on line ...
 Defining \seq_log:N on line ...
 Defining \seq_log:c on line ...
+Defining \seq_rand_item:N on line ...
+Defining \seq_rand_item:c on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \dim_log:N on line ...
 Defining \dim_log:c on line ...
@@ -4805,6 +4821,9 @@
 Defining \tl_log:N on line ...
 Defining \tl_log:c on line ...
 Defining \tl_log:n on line ...
+Defining \tl_rand_item:n on line ...
+Defining \tl_rand_item:N on line ...
+Defining \tl_rand_item:c on line ...
 Defining \__peek_execute_branches_N_type: on line ...
 Defining \__peek_N_type:w on line ...
 Defining \__peek_N_type_aux:nnw on line ...

Modified: trunk/l3kernel/testfiles/m3expl003.luatex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl003.luatex.tlg	2016-12-06 13:36:34 UTC (rev 6786)
+++ trunk/l3kernel/testfiles/m3expl003.luatex.tlg	2016-12-06 17:32:58 UTC (rev 6787)
@@ -4552,6 +4552,10 @@
 Defining \clist_log:N on line ...
 Defining \clist_log:n on line ...
 Defining \clist_log:c on line ...
+Defining \clist_rand_item:n on line ...
+Defining \__clist_rand_item:nn on line ...
+Defining \clist_rand_item:N on line ...
+Defining \clist_rand_item:c on line ...
 Defining \l__coffin_sin_fp on line ...
 Defining \l__coffin_cos_fp on line ...
 Defining \l__coffin_bounding_prop on line ...
@@ -4616,6 +4620,12 @@
 Defining \int_log:N on line ...
 Defining \int_log:c on line ...
 Defining \int_log:n on line ...
+Defining \int_rand:nn on line ...
+Defining \__int_rand:ww on line ...
+Defining \__int_rand_narrow:nn on line ...
+Defining \__int_rand_narrow:nnn on line ...
+Defining \__int_rand_narrow:nnnn on line ...
+Defining message LaTeX/kernel/backward-range on line ...
 Defining \keys_log:nn on line ...
 Defining \msg_expandable_error:nnnnnn on line ...
 Defining \msg_expandable_error:nnnnn on line ...
@@ -4659,6 +4669,15 @@
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_log:N on line ...
 Defining \prop_log:c on line ...
+Defining \prop_rand_key:N on line ...
+Defining \prop_rand_value:N on line ...
+Defining \prop_rand_key_value:N on line ...
+Defining \__prop_rand:nNn on line ...
+Defining \__prop_rand:NN on line ...
+Defining \__prop_rand_item:Nw on line ...
+Defining \prop_rand_key:c on line ...
+Defining \prop_rand_value:c on line ...
+Defining \prop_rand_key_value:c on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
 Defining \__seq_mapthread_function:wNw on line ...
@@ -4674,6 +4693,8 @@
 Defining \__seq_set_map:NNNn on line ...
 Defining \seq_log:N on line ...
 Defining \seq_log:c on line ...
+Defining \seq_rand_item:N on line ...
+Defining \seq_rand_item:c on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \dim_log:N on line ...
 Defining \dim_log:c on line ...
@@ -4828,6 +4849,9 @@
 Defining \tl_log:N on line ...
 Defining \tl_log:c on line ...
 Defining \tl_log:n on line ...
+Defining \tl_rand_item:n on line ...
+Defining \tl_rand_item:N on line ...
+Defining \tl_rand_item:c on line ...
 Defining \__peek_execute_branches_N_type: on line ...
 Defining \__peek_N_type:w on line ...
 Defining \__peek_N_type_aux:nnw on line ...

Modified: trunk/l3kernel/testfiles/m3expl003.ptex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl003.ptex.tlg	2016-12-06 13:36:34 UTC (rev 6786)
+++ trunk/l3kernel/testfiles/m3expl003.ptex.tlg	2016-12-06 17:32:58 UTC (rev 6787)
@@ -4523,6 +4523,10 @@
 Defining \clist_log:N on line ...
 Defining \clist_log:n on line ...
 Defining \clist_log:c on line ...
+Defining \clist_rand_item:n on line ...
+Defining \__clist_rand_item:nn on line ...
+Defining \clist_rand_item:N on line ...
+Defining \clist_rand_item:c on line ...
 Defining \l__coffin_sin_fp on line ...
 Defining \l__coffin_cos_fp on line ...
 Defining \l__coffin_bounding_prop on line ...
@@ -4587,6 +4591,7 @@
 Defining \int_log:N on line ...
 Defining \int_log:c on line ...
 Defining \int_log:n on line ...
+Defining \int_rand:nn on line ...
 Defining \keys_log:nn on line ...
 Defining \msg_expandable_error:nnnnnn on line ...
 Defining \msg_expandable_error:nnnnn on line ...
@@ -4630,6 +4635,15 @@
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_log:N on line ...
 Defining \prop_log:c on line ...
+Defining \prop_rand_key:N on line ...
+Defining \prop_rand_value:N on line ...
+Defining \prop_rand_key_value:N on line ...
+Defining \__prop_rand:nNn on line ...
+Defining \__prop_rand:NN on line ...
+Defining \__prop_rand_item:Nw on line ...
+Defining \prop_rand_key:c on line ...
+Defining \prop_rand_value:c on line ...
+Defining \prop_rand_key_value:c on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
 Defining \__seq_mapthread_function:wNw on line ...
@@ -4645,6 +4659,8 @@
 Defining \__seq_set_map:NNNn on line ...
 Defining \seq_log:N on line ...
 Defining \seq_log:c on line ...
+Defining \seq_rand_item:N on line ...
+Defining \seq_rand_item:c on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \dim_log:N on line ...
 Defining \dim_log:c on line ...
@@ -4799,6 +4815,9 @@
 Defining \tl_log:N on line ...
 Defining \tl_log:c on line ...
 Defining \tl_log:n on line ...
+Defining \tl_rand_item:n on line ...
+Defining \tl_rand_item:N on line ...
+Defining \tl_rand_item:c on line ...
 Defining \__peek_execute_branches_N_type: on line ...
 Defining \__peek_N_type:w on line ...
 Defining \__peek_N_type_aux:nnw on line ...

Modified: trunk/l3kernel/testfiles/m3expl003.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl003.tlg	2016-12-06 13:36:34 UTC (rev 6786)
+++ trunk/l3kernel/testfiles/m3expl003.tlg	2016-12-06 17:32:58 UTC (rev 6787)
@@ -4543,6 +4543,10 @@
 Defining \clist_log:N on line ...
 Defining \clist_log:n on line ...
 Defining \clist_log:c on line ...
+Defining \clist_rand_item:n on line ...
+Defining \__clist_rand_item:nn on line ...
+Defining \clist_rand_item:N on line ...
+Defining \clist_rand_item:c on line ...
 Defining \l__coffin_sin_fp on line ...
 Defining \l__coffin_cos_fp on line ...
 Defining \l__coffin_bounding_prop on line ...
@@ -4607,6 +4611,12 @@
 Defining \int_log:N on line ...
 Defining \int_log:c on line ...
 Defining \int_log:n on line ...
+Defining \int_rand:nn on line ...
+Defining \__int_rand:ww on line ...
+Defining \__int_rand_narrow:nn on line ...
+Defining \__int_rand_narrow:nnn on line ...
+Defining \__int_rand_narrow:nnnn on line ...
+Defining message LaTeX/kernel/backward-range on line ...
 Defining \keys_log:nn on line ...
 Defining \msg_expandable_error:nnnnnn on line ...
 Defining \msg_expandable_error:nnnnn on line ...
@@ -4650,6 +4660,15 @@
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_log:N on line ...
 Defining \prop_log:c on line ...
+Defining \prop_rand_key:N on line ...
+Defining \prop_rand_value:N on line ...
+Defining \prop_rand_key_value:N on line ...
+Defining \__prop_rand:nNn on line ...
+Defining \__prop_rand:NN on line ...
+Defining \__prop_rand_item:Nw on line ...
+Defining \prop_rand_key:c on line ...
+Defining \prop_rand_value:c on line ...
+Defining \prop_rand_key_value:c on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
 Defining \__seq_mapthread_function:wNw on line ...
@@ -4665,6 +4684,8 @@
 Defining \__seq_set_map:NNNn on line ...
 Defining \seq_log:N on line ...
 Defining \seq_log:c on line ...
+Defining \seq_rand_item:N on line ...
+Defining \seq_rand_item:c on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \dim_log:N on line ...
 Defining \dim_log:c on line ...
@@ -5020,6 +5041,9 @@
 Defining \tl_log:N on line ...
 Defining \tl_log:c on line ...
 Defining \tl_log:n on line ...
+Defining \tl_rand_item:n on line ...
+Defining \tl_rand_item:N on line ...
+Defining \tl_rand_item:c on line ...
 Defining \__peek_execute_branches_N_type: on line ...
 Defining \__peek_N_type:w on line ...
 Defining \__peek_N_type_aux:nnw on line ...

Modified: trunk/l3kernel/testfiles/m3expl003.uptex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl003.uptex.tlg	2016-12-06 13:36:34 UTC (rev 6786)
+++ trunk/l3kernel/testfiles/m3expl003.uptex.tlg	2016-12-06 17:32:58 UTC (rev 6787)
@@ -4523,6 +4523,10 @@
 Defining \clist_log:N on line ...
 Defining \clist_log:n on line ...
 Defining \clist_log:c on line ...
+Defining \clist_rand_item:n on line ...
+Defining \__clist_rand_item:nn on line ...
+Defining \clist_rand_item:N on line ...
+Defining \clist_rand_item:c on line ...
 Defining \l__coffin_sin_fp on line ...
 Defining \l__coffin_cos_fp on line ...
 Defining \l__coffin_bounding_prop on line ...
@@ -4587,6 +4591,7 @@
 Defining \int_log:N on line ...
 Defining \int_log:c on line ...
 Defining \int_log:n on line ...
+Defining \int_rand:nn on line ...
 Defining \keys_log:nn on line ...
 Defining \msg_expandable_error:nnnnnn on line ...
 Defining \msg_expandable_error:nnnnn on line ...
@@ -4630,6 +4635,15 @@
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_log:N on line ...
 Defining \prop_log:c on line ...
+Defining \prop_rand_key:N on line ...
+Defining \prop_rand_value:N on line ...
+Defining \prop_rand_key_value:N on line ...
+Defining \__prop_rand:nNn on line ...
+Defining \__prop_rand:NN on line ...
+Defining \__prop_rand_item:Nw on line ...
+Defining \prop_rand_key:c on line ...
+Defining \prop_rand_value:c on line ...
+Defining \prop_rand_key_value:c on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
 Defining \__seq_mapthread_function:wNw on line ...
@@ -4645,6 +4659,8 @@
 Defining \__seq_set_map:NNNn on line ...
 Defining \seq_log:N on line ...
 Defining \seq_log:c on line ...
+Defining \seq_rand_item:N on line ...
+Defining \seq_rand_item:c on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \dim_log:N on line ...
 Defining \dim_log:c on line ...
@@ -5000,6 +5016,9 @@
 Defining \tl_log:N on line ...
 Defining \tl_log:c on line ...
 Defining \tl_log:n on line ...
+Defining \tl_rand_item:n on line ...
+Defining \tl_rand_item:N on line ...
+Defining \tl_rand_item:c on line ...
 Defining \__peek_execute_branches_N_type: on line ...
 Defining \__peek_N_type:w on line ...
 Defining \__peek_N_type_aux:nnw on line ...

Modified: trunk/l3kernel/testfiles/m3expl003.xetex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl003.xetex.tlg	2016-12-06 13:36:34 UTC (rev 6786)
+++ trunk/l3kernel/testfiles/m3expl003.xetex.tlg	2016-12-06 17:32:58 UTC (rev 6787)
@@ -4530,6 +4530,10 @@
 Defining \clist_log:N on line ...
 Defining \clist_log:n on line ...
 Defining \clist_log:c on line ...
+Defining \clist_rand_item:n on line ...
+Defining \__clist_rand_item:nn on line ...
+Defining \clist_rand_item:N on line ...
+Defining \clist_rand_item:c on line ...
 Defining \l__coffin_sin_fp on line ...
 Defining \l__coffin_cos_fp on line ...
 Defining \l__coffin_bounding_prop on line ...
@@ -4594,6 +4598,7 @@
 Defining \int_log:N on line ...
 Defining \int_log:c on line ...
 Defining \int_log:n on line ...
+Defining \int_rand:nn on line ...
 Defining \keys_log:nn on line ...
 Defining \msg_expandable_error:nnnnnn on line ...
 Defining \msg_expandable_error:nnnnn on line ...
@@ -4637,6 +4642,15 @@
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_log:N on line ...
 Defining \prop_log:c on line ...
+Defining \prop_rand_key:N on line ...
+Defining \prop_rand_value:N on line ...
+Defining \prop_rand_key_value:N on line ...
+Defining \__prop_rand:nNn on line ...
+Defining \__prop_rand:NN on line ...
+Defining \__prop_rand_item:Nw on line ...
+Defining \prop_rand_key:c on line ...
+Defining \prop_rand_value:c on line ...
+Defining \prop_rand_key_value:c on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
 Defining \__seq_mapthread_function:wNw on line ...
@@ -4652,6 +4666,8 @@
 Defining \__seq_set_map:NNNn on line ...
 Defining \seq_log:N on line ...
 Defining \seq_log:c on line ...
+Defining \seq_rand_item:N on line ...
+Defining \seq_rand_item:c on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \dim_log:N on line ...
 Defining \dim_log:c on line ...
@@ -4806,6 +4822,9 @@
 Defining \tl_log:N on line ...
 Defining \tl_log:c on line ...
 Defining \tl_log:n on line ...
+Defining \tl_rand_item:n on line ...
+Defining \tl_rand_item:N on line ...
+Defining \tl_rand_item:c on line ...
 Defining \__peek_execute_branches_N_type: on line ...
 Defining \__peek_N_type:w on line ...
 Defining \__peek_N_type_aux:nnw on line ...

Deleted: trunk/l3kernel/testfiles/m3fp-rand001.lvt
===================================================================
--- trunk/l3kernel/testfiles/m3fp-rand001.lvt	2016-12-06 13:36:34 UTC (rev 6786)
+++ trunk/l3kernel/testfiles/m3fp-rand001.lvt	2016-12-06 17:32:58 UTC (rev 6787)
@@ -1,58 +0,0 @@
-%
-% Copyright (C) 2016 LaTeX3 Project
-%
-
-\documentclass{minimal}
-\input{regression-test}
-
-\RequirePackage[check-declarations,log-functions]{expl3}
-
-\begin{document}
-\START
-\AUTHOR{Bruno Le Floch}
-\ExplSyntaxOn
-
-\cs_if_exist_use:NT \pdftex_setrandomseed:D { 0 }
-\OMIT
-\cs_if_exist:NTF \pdftex_uniformdeviate:D
-  { \cs_new:Npn \test:n #1 { \prg_replicate:nn { 5 } { \fp_to_tl:n {#1} \NEWLINE } } }
-  { \cs_new:Npn \test:n #1 { \fp_to_tl:n {#1} , ~ } }
-\TIMO
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\TESTEXP { Random~floating~point~number }
-  {
-    \test:n { rand() }
-  }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\TESTEXP { Random~integer }
-  {
-    \test:n { randint(2) }
-    \test:n { randint(-9999 9999 9999 9999, -9999 9999 9999 9998) }
-    \test:n { randint(-10 0000 0000, 10 0000 0000) }
-    \test:n { randint(9.9e15) }
-    \test:n { randint(-9999 9999 9999 9999, 9999 9999 9999 9999) }
-  }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\TESTEXP { Random~bad~arguments }
-  {
-    \fp_to_tl:n { rand(,) } \NEWLINE
-    \fp_to_tl:n { rand(1,2,3) } \NEWLINE
-    \fp_to_tl:n { rand(nan) } \NEWLINE
-    \fp_to_tl:n { randint() } \NEWLINE
-    \fp_to_tl:n { randint(1) } \NEWLINE
-    \fp_to_tl:n { randint(1,0) } \NEWLINE
-    \fp_to_tl:n { randint(1e16) } \NEWLINE
-    \fp_to_tl:n { randint(9.9e15, 1e16) } \NEWLINE
-    \fp_to_tl:n { randint(-1e16, -1e15) } \NEWLINE
-    \fp_to_tl:n { randint(1,2,3) } \NEWLINE
-    \fp_to_tl:n { randint(nan) } \NEWLINE
-    \fp_to_tl:n { randint(inf) } \NEWLINE
-    \fp_to_tl:n { randint(nan,0) } \NEWLINE
-    \fp_to_tl:n { randint(inf,0) } \NEWLINE
-  }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\END

Deleted: trunk/l3kernel/testfiles/m3fp-rand001.ptex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3fp-rand001.ptex.tlg	2016-12-06 13:36:34 UTC (rev 6786)
+++ trunk/l3kernel/testfiles/m3fp-rand001.ptex.tlg	2016-12-06 17:32:58 UTC (rev 6787)
@@ -1,220 +0,0 @@
-This is a generated file for the LaTeX (2e + expl3) validation system.
-Don't change this file in any respect.
-Author: Bruno Le Floch
-============================================================
-TEST 1: Random floating point number
-============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-nan, 
-============================================================
-============================================================
-TEST 2: Random integer
-============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-nan, nan, nan, nan, nan, 
-============================================================
-============================================================
-TEST 3: Random bad arguments
-============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Missing number before ','.
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-============================================================

Deleted: trunk/l3kernel/testfiles/m3fp-rand001.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3fp-rand001.tlg	2016-12-06 13:36:34 UTC (rev 6786)
+++ trunk/l3kernel/testfiles/m3fp-rand001.tlg	2016-12-06 17:32:58 UTC (rev 6787)
@@ -1,185 +0,0 @@
-This is a generated file for the LaTeX (2e + expl3) validation system.
-Don't change this file in any respect.
-Author: Bruno Le Floch
-============================================================
-TEST 1: Random floating point number
-============================================================
-0.6462368894354278
-0.9436367545979044
-0.4852789154091621
-0.177206678619497
-0.5709297441167938
-============================================================
-============================================================
-TEST 2: Random integer
-============================================================
-2
-1
-2
-1
-1
--9999999999999999
--9999999999999999
--9999999999999998
--9999999999999999
--9999999999999999
-444814453
-983095862
-958440641
-448535503
-361158142
-6698906031397161
-4488284872942466
-6862012124606703
-4745501327166187
-9558266238979667
--8367420653049596
--616799027378363
-1497734804749083
-6603444483764452
--9258032600444501
-============================================================
-============================================================
-TEST 3: Random bad arguments
-============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Missing number before ','.
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           rand() expects between 0 and 0 arguments.
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           rand() expects between 0 and 0 arguments.
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           rand() expects between 0 and 0 arguments.
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           randint() expects between 1 and 2 arguments.
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Invalid operation randint(1, 0)
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Invalid operation randint(1, 1e16)
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Invalid operation randint(9900000000000000, 1e16)
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Invalid operation randint(-1e16, -1000000000000000)
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           randint() expects between 1 and 2 arguments.
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Invalid operation randint(1, nan)
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Invalid operation randint(1, inf)
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Invalid operation randint(nan, 0)
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Invalid operation randint(inf, 0)
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-nan
-nan
-nan
-nan
-1
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-============================================================

Deleted: trunk/l3kernel/testfiles/m3fp-rand001.uptex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3fp-rand001.uptex.tlg	2016-12-06 13:36:34 UTC (rev 6786)
+++ trunk/l3kernel/testfiles/m3fp-rand001.uptex.tlg	2016-12-06 17:32:58 UTC (rev 6787)
@@ -1,220 +0,0 @@
-This is a generated file for the LaTeX (2e + expl3) validation system.
-Don't change this file in any respect.
-Author: Bruno Le Floch
-============================================================
-TEST 1: Random floating point number
-============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-nan, 
-============================================================
-============================================================
-TEST 2: Random integer
-============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-nan, nan, nan, nan, nan, 
-============================================================
-============================================================
-TEST 3: Random bad arguments
-============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Missing number before ','.
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-============================================================

Deleted: trunk/l3kernel/testfiles/m3fp-rand001.xetex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3fp-rand001.xetex.tlg	2016-12-06 13:36:34 UTC (rev 6786)
+++ trunk/l3kernel/testfiles/m3fp-rand001.xetex.tlg	2016-12-06 17:32:58 UTC (rev 6787)
@@ -1,220 +0,0 @@
-This is a generated file for the LaTeX (2e + expl3) validation system.
-Don't change this file in any respect.
-Author: Bruno Le Floch
-============================================================
-TEST 1: Random floating point number
-============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-nan, 
-============================================================
-============================================================
-TEST 2: Random integer
-============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-nan, nan, nan, nan, nan, 
-============================================================
-============================================================
-TEST 3: Random bad arguments
-============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Missing number before ','.
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-nan
-============================================================

Copied: trunk/l3kernel/testfiles/m3rand001.lvt (from rev 6785, trunk/l3kernel/testfiles/m3fp-rand001.lvt)
===================================================================
--- trunk/l3kernel/testfiles/m3rand001.lvt	                        (rev 0)
+++ trunk/l3kernel/testfiles/m3rand001.lvt	2016-12-06 17:32:58 UTC (rev 6787)
@@ -0,0 +1,131 @@
+%
+% Copyright (C) 2016 LaTeX3 Project
+%
+
+\documentclass{minimal}
+\input{regression-test}
+
+\RequirePackage[check-declarations,log-functions]{expl3}
+
+\begin{document}
+\START
+\AUTHOR{Bruno Le Floch}
+\ExplSyntaxOn
+
+\cs_if_exist_use:NT \pdftex_setrandomseed:D { 0 }
+\OMIT
+\cs_if_exist:NTF \pdftex_uniformdeviate:D
+  { \cs_new:Npn \test:n #1 { \prg_replicate:nn { 5 } { \fp_to_tl:n {#1} \NEWLINE } } }
+  { \cs_new:Npn \test:n #1 { \fp_to_tl:n {#1} , ~ } }
+\cs_if_exist:NTF \pdftex_uniformdeviate:D
+  { \cs_new:Npn \test_ii:n #1 { | \prg_replicate:nn { 5 } { #1 | } \NEWLINE } }
+  { \cs_new:Npn \test_ii:n #1 { ( #1 ) ~ } }
+\TIMO
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\TESTEXP { Random~floating~point~number }
+  {
+    \test:n { rand() }
+  }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\TESTEXP { Random~integer }
+  {
+    \test:n { randint(2) }
+    \test:n { randint(-9999 9999 9999 9999, -9999 9999 9999 9998) }
+    \test:n { randint(-10 0000 0000, 10 0000 0000) }
+    \test:n { randint(9.9e15) }
+    \test:n { randint(-9999 9999 9999 9999, 9999 9999 9999 9999) }
+  }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\TESTEXP { Random~bad~arguments }
+  {
+    \fp_to_tl:n { rand(,) } \NEWLINE
+    \fp_to_tl:n { rand(1,2,3) } \NEWLINE
+    \fp_to_tl:n { rand(nan) } \NEWLINE
+    \fp_to_tl:n { randint() } \NEWLINE
+    \fp_to_tl:n { randint(1) } \NEWLINE
+    \fp_to_tl:n { randint(1,0) } \NEWLINE
+    \fp_to_tl:n { randint(1e16) } \NEWLINE
+    \fp_to_tl:n { randint(9.9e15, 1e16) } \NEWLINE
+    \fp_to_tl:n { randint(-1e16, -1e15) } \NEWLINE
+    \fp_to_tl:n { randint(1,2,3) } \NEWLINE
+    \fp_to_tl:n { randint(nan) } \NEWLINE
+    \fp_to_tl:n { randint(inf) } \NEWLINE
+    \fp_to_tl:n { randint(nan,0) } \NEWLINE
+    \fp_to_tl:n { randint(inf,0) } \NEWLINE
+    \int_rand:nn { 1 } { 0 } \NEWLINE
+  }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\TESTEXP { Random~integer~in~a~range }
+  {
+    \test_ii:n { \int_rand:nn { -1 } { 1 } }
+    \test_ii:n { \int_rand:nn { -\c_max_int } { -\c_max_int } }
+    \test_ii:n { \int_rand:nn { -\c_max_int } { -\c_max_int + 10 } }
+    \test_ii:n { \int_rand:nn { -\c_max_int } { \c_max_int } }
+  }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\OMIT
+\tl_set:Nn \l_tmpa_tl { { ~ } ~ { } }
+\tl_set:Nn \l_tmpb_tl { \A # & {~} }
+\TIMO
+\TESTEXP { Random~tl~item }
+  {
+    | \tl_rand_item:n { ~ } | \NEWLINE
+    \test_ii:n { \tl_rand_item:n { \A } }
+    \test_ii:n { \tl_rand_item:n { \A { ~\B } } }
+    \test_ii:n { \tl_rand_item:n { \A { { \B } } ~ \C } }
+    \test_ii:n { \tl_rand_item:N \c_empty_tl }
+    \test_ii:n { \tl_rand_item:N \c_space_tl }
+    \test_ii:n { \tl_rand_item:N \l_tmpa_tl }
+    \test_ii:n { \tl_rand_item:N \l_tmpb_tl }
+  }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\OMIT
+\clist_set:Nn \l_tmpa_clist { { ~ , } ~ , { } , ~ , }
+\clist_set:Nn \l_tmpb_clist { \A , # , & , \\ , {,} }
+\TIMO
+\TESTEXP { Random~clist~item }
+  {
+    | \clist_rand_item:n { ~ } | \NEWLINE
+    \test_ii:n { \clist_rand_item:n { \A , , ~ , \B } }
+    \test_ii:n { \clist_rand_item:n { { ~ , } ~ , ~ \A , { ~ \B } , { { } } } }
+    \test_ii:n { \clist_rand_item:N \c_empty_clist }
+    \test_ii:n { \clist_rand_item:N \l_tmpa_clist }
+    \test_ii:n { \clist_rand_item:N \l_tmpb_clist }
+  }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\OMIT
+\seq_set_from_clist:Nn \l_tmpa_seq { { ~ , } ~ , { } }
+\seq_set_from_clist:Nn \l_tmpb_seq { \A , # , & , { { \\ } } , {,} }
+\TIMO
+\TESTEXP { Random~seq~item }
+  {
+    \test_ii:n { \seq_rand_item:N \c_empty_seq }
+    \test_ii:n { \seq_rand_item:N \l_tmpa_seq }
+    \test_ii:n { \seq_rand_item:N \l_tmpb_seq }
+  }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\OMIT
+\prop_put:Nnn \l_tmpa_prop { \e } { }
+\prop_put:Nnn \l_tmpa_prop { \a } { \A }
+\prop_put:Nnn \l_tmpa_prop { \b } { { \B } }
+\TIMO
+\TESTEXP { Random~prop~key/value }
+  {
+    \test_ii:n { \prop_rand_key:N \c_empty_prop }
+    \test_ii:n { \prop_rand_value:N \c_empty_prop }
+    \test_ii:n { \prop_rand_key_value:N \c_empty_prop }
+    \test_ii:n { \prop_rand_key:N \l_tmpa_prop }
+    \test_ii:n { \prop_rand_value:N \l_tmpa_prop }
+    \test_ii:n { \prop_rand_key_value:N \l_tmpa_prop }
+  }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\END

Copied: trunk/l3kernel/testfiles/m3rand001.ptex.tlg (from rev 6785, trunk/l3kernel/testfiles/m3fp-rand001.ptex.tlg)
===================================================================
--- trunk/l3kernel/testfiles/m3rand001.ptex.tlg	                        (rev 0)
+++ trunk/l3kernel/testfiles/m3rand001.ptex.tlg	2016-12-06 17:32:58 UTC (rev 6787)
@@ -0,0 +1,419 @@
+This is a generated file for the LaTeX (2e + expl3) validation system.
+Don't change this file in any respect.
+Author: Bruno Le Floch
+============================================================
+TEST 1: Random floating point number
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+nan, 
+============================================================
+============================================================
+TEST 2: Random integer
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+nan, nan, nan, nan, nan, 
+============================================================
+============================================================
+TEST 3: Random bad arguments
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Missing number before ','.
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+1
+============================================================
+============================================================
+TEST 4: Random integer in a range
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+(-1) (-2147483647) (-2147483647) (-2147483647) 
+============================================================
+============================================================
+TEST 5: Random tl item
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+||
+(\A ) (\A ) (\A ) () () ( ) (\A ) 
+============================================================
+============================================================
+TEST 6: Random clist item
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+||
+(\A ) ( ,) () ( ,) (\A ) 
+============================================================
+============================================================
+TEST 7: Random seq item
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+() ( ,) (\A ) 
+============================================================
+============================================================
+TEST 8: Random prop key/value
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+() () () (\e ) () ({\e }{}) 
+============================================================

Copied: trunk/l3kernel/testfiles/m3rand001.tlg (from rev 6785, trunk/l3kernel/testfiles/m3fp-rand001.tlg)
===================================================================
--- trunk/l3kernel/testfiles/m3rand001.tlg	                        (rev 0)
+++ trunk/l3kernel/testfiles/m3rand001.tlg	2016-12-06 17:32:58 UTC (rev 6787)
@@ -0,0 +1,242 @@
+This is a generated file for the LaTeX (2e + expl3) validation system.
+Don't change this file in any respect.
+Author: Bruno Le Floch
+============================================================
+TEST 1: Random floating point number
+============================================================
+0.6462368894354278
+0.9436367545979044
+0.4852789154091621
+0.177206678619497
+0.5709297441167938
+============================================================
+============================================================
+TEST 2: Random integer
+============================================================
+2
+1
+2
+1
+1
+-9999999999999999
+-9999999999999999
+-9999999999999998
+-9999999999999999
+-9999999999999999
+444814453
+983095862
+958440641
+448535503
+361158142
+6698906031397161
+4488284872942466
+6862012124606703
+4745501327166187
+9558266238979667
+-8367420653049596
+-616799027378363
+1497734804749083
+6603444483764452
+-9258032600444501
+============================================================
+============================================================
+TEST 3: Random bad arguments
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Missing number before ','.
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           rand() expects between 0 and 0 arguments.
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           rand() expects between 0 and 0 arguments.
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           rand() expects between 0 and 0 arguments.
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           randint() expects between 1 and 2 arguments.
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Invalid operation randint(1, 0)
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Invalid operation randint(1, 1e16)
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Invalid operation randint(9900000000000000, 1e16)
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Invalid operation randint(-1e16, -1000000000000000)
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           randint() expects between 1 and 2 arguments.
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Invalid operation randint(1, nan)
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Invalid operation randint(1, inf)
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Invalid operation randint(nan, 0)
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Invalid operation randint(inf, 0)
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Bounds ordered backwards in \int_rand:nn {1} {0}.
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+nan
+nan
+nan
+nan
+1
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+1
+============================================================
+============================================================
+TEST 4: Random integer in a range
+============================================================
+|-1|-1|1|0|-1|
+|-2147483647|-2147483647|-2147483647|-2147483647|-2147483647|
+|-2147483645|-2147483644|-2147483638|-2147483647|-2147483644|
+|-758446477|1931291650|79608793|-160587022|1579678534|
+============================================================
+============================================================
+TEST 5: Random tl item
+============================================================
+||
+|\A |\A |\A |\A |\A |
+| \B | \B | \B |\A |\A |
+|\C |{\B }|\C |\C |{\B }|
+||||||
+||||||
+||| | | |
+|\A |##|\A | |\A |
+============================================================
+============================================================
+TEST 6: Random clist item
+============================================================
+||
+|\A |\A |\A |\A |\A |
+|\A |{}|{}| \B | ,|
+||||||
+|| ,| ,|||
+|&|##|##|&|##|
+============================================================
+============================================================
+TEST 7: Random seq item
+============================================================
+||||||
+||| ,|||
+|{\\}|##|##|,|\A |
+============================================================
+============================================================
+TEST 8: Random prop key/value
+============================================================
+||||||
+||||||
+||||||
+|\a |\e |\b |\b |\a |
+||{\B }|\A |\A |\A |
+|{\e }{}|{\a }{\A }|{\e }{}|{\b }{{\B }}|{\e }{}|
+============================================================

Copied: trunk/l3kernel/testfiles/m3rand001.uptex.tlg (from rev 6785, trunk/l3kernel/testfiles/m3fp-rand001.uptex.tlg)
===================================================================
--- trunk/l3kernel/testfiles/m3rand001.uptex.tlg	                        (rev 0)
+++ trunk/l3kernel/testfiles/m3rand001.uptex.tlg	2016-12-06 17:32:58 UTC (rev 6787)
@@ -0,0 +1,419 @@
+This is a generated file for the LaTeX (2e + expl3) validation system.
+Don't change this file in any respect.
+Author: Bruno Le Floch
+============================================================
+TEST 1: Random floating point number
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+nan, 
+============================================================
+============================================================
+TEST 2: Random integer
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+nan, nan, nan, nan, nan, 
+============================================================
+============================================================
+TEST 3: Random bad arguments
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Missing number before ','.
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+1
+============================================================
+============================================================
+TEST 4: Random integer in a range
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+(-1) (-2147483647) (-2147483647) (-2147483647) 
+============================================================
+============================================================
+TEST 5: Random tl item
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+||
+(\A ) (\A ) (\A ) () () ( ) (\A ) 
+============================================================
+============================================================
+TEST 6: Random clist item
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+||
+(\A ) ( ,) () ( ,) (\A ) 
+============================================================
+============================================================
+TEST 7: Random seq item
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+() ( ,) (\A ) 
+============================================================
+============================================================
+TEST 8: Random prop key/value
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+() () () (\e ) () ({\e }{}) 
+============================================================

Copied: trunk/l3kernel/testfiles/m3rand001.xetex.tlg (from rev 6785, trunk/l3kernel/testfiles/m3fp-rand001.xetex.tlg)
===================================================================
--- trunk/l3kernel/testfiles/m3rand001.xetex.tlg	                        (rev 0)
+++ trunk/l3kernel/testfiles/m3rand001.xetex.tlg	2016-12-06 17:32:58 UTC (rev 6787)
@@ -0,0 +1,419 @@
+This is a generated file for the LaTeX (2e + expl3) validation system.
+Don't change this file in any respect.
+Author: Bruno Le Floch
+============================================================
+TEST 1: Random floating point number
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+nan, 
+============================================================
+============================================================
+TEST 2: Random integer
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+nan, nan, nan, nan, nan, 
+============================================================
+============================================================
+TEST 3: Random bad arguments
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Missing number before ','.
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+nan
+1
+============================================================
+============================================================
+TEST 4: Random integer in a range
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+(-1) (-2147483647) (-2147483647) (-2147483647) 
+============================================================
+============================================================
+TEST 5: Random tl item
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+||
+(\A ) (\A ) (\A ) () () ( ) (\A ) 
+============================================================
+============================================================
+TEST 6: Random clist item
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+||
+(\A ) ( ,) () ( ,) (\A ) 
+============================================================
+============================================================
+TEST 7: Random seq item
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+() ( ,) (\A ) 
+============================================================
+============================================================
+TEST 8: Random prop key/value
+============================================================
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           Random numbers unavailable
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+() () () (\e ) () ({\e }{}) 
+============================================================



More information about the latex3-commits mailing list