[latex3-commits] [git/LaTeX3-latex3-latex3] master: Implement \seq_set_int_step:Nnnnn and use it to avoid __seq usage (4179a5d)

Bruno Le Floch bruno at le-floch.fr
Tue Apr 3 05:19:26 CEST 2018


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

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

commit 4179a5d78d95e2cca7171cd59e3e9cf8c43c0634
Author: Bruno Le Floch <bruno at le-floch.fr>
Date:   Mon Apr 2 23:19:26 2018 -0400

    Implement \seq_set_int_step:Nnnnn and use it to avoid __seq usage


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

4179a5d78d95e2cca7171cd59e3e9cf8c43c0634
 l3kernel/l3candidates.dtx               |   51 +++++++++++++++
 l3kernel/l3regex.dtx                    |   34 ++++------
 l3kernel/l3sort.dtx                     |  106 +++++++++++++++++--------------
 l3kernel/testfiles/m3expl001.luatex.tlg |    6 ++
 l3kernel/testfiles/m3expl001.ptex.tlg   |    6 ++
 l3kernel/testfiles/m3expl001.tlg        |    6 ++
 l3kernel/testfiles/m3expl001.uptex.tlg  |    6 ++
 l3kernel/testfiles/m3expl001.xetex.tlg  |    6 ++
 l3kernel/testfiles/m3expl003.luatex.tlg |    6 ++
 l3kernel/testfiles/m3expl003.ptex.tlg   |    6 ++
 l3kernel/testfiles/m3expl003.tlg        |    6 ++
 l3kernel/testfiles/m3expl003.uptex.tlg  |    6 ++
 l3kernel/testfiles/m3expl003.xetex.tlg  |    6 ++
 13 files changed, 182 insertions(+), 69 deletions(-)

diff --git a/l3kernel/l3candidates.dtx b/l3kernel/l3candidates.dtx
index 93e583d..6637438 100644
--- a/l3kernel/l3candidates.dtx
+++ b/l3kernel/l3candidates.dtx
@@ -608,6 +608,23 @@
 %   items in the \meta{comma list}.
 % \end{function}
 %
+% \begin{function}[added = 2018-04-02]
+%   {\seq_set_int_step:Nnnnn, \seq_gset_int_step:Nnnnn}
+%   \begin{syntax}
+%     \cs{seq_set_int_step:Nnnnn} \meta{seq~var} \Arg{initial value} \Arg{step} \Arg{final value} \Arg{inline code}
+%   \end{syntax}
+%   This function first evaluates the \meta{initial value}, \meta{step}
+%   and \meta{final value}, all of which should be integer expressions.
+%   For each \meta{value} from the \meta{initial value} to the
+%   \meta{final value} in turn (using \meta{step} between each
+%   \meta{value}), the result of \texttt{x}-expanding the \meta{inline
+%   code} applied to that \meta{value} is stored as an item in the
+%   \meta{seq~var}.  The \meta{inline function} should consist of code
+%   which will receive the \meta{item} as |#1| and expand to the desired
+%   item. As such, the code in \meta{inline function} should be
+%   expandable.
+% \end{function}
+%
 % \section{Additions to \pkg{l3skip}}
 %
 % \begin{function}{\skip_split_finite_else_action:nnNN}
@@ -2400,6 +2417,40 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\seq_set_int_step:Nnnnn, \seq_gset_int_step:Nnnnn}
+% \begin{macro}[aux]{\@@_set_int_step:NNnnnn}
+%   Set \cs{@@_item:n} then map it through the range of values using
+%   \cs{int_step_function:nnnN}.
+%    \begin{macrocode}
+\cs_new_protected:Npn \seq_set_int_step:Nnnnn
+  { \@@_set_int_step:NNnnnn \tl_set:Nx }
+\cs_new_protected:Npn \seq_gset_int_step:Nnnnn
+  { \@@_set_int_step:NNnnnn \tl_gset:Nx }
+\cs_new_protected:Npn \@@_set_int_step:NNnnnn #1#2#3#4#5#6
+  {
+    \@@_push_item_def:n { \exp_not:N \@@_item:n {#6} }
+    #1 #2 { \s_@@ \int_step_function:nnnN {#3} {#4} {#5} \@@_item:n }
+    \@@_pop_item_def:
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{syntax}
+%     \cs{seq_set_int_step:Nnnnn} \meta{seq~var} \Arg{initial value} \Arg{step} \Arg{final value} \Arg{inline code}
+%   \end{syntax}
+%   This function first evaluates the \meta{initial value}, \meta{step}
+%   and \meta{final value}, all of which should be integer expressions.
+%   For each \meta{value} from the \meta{initial value} to the
+%   \meta{final value} in turn (using \meta{step} between each
+%   \meta{value}), the result of \texttt{x}-expanding the \meta{inline
+%   code} applied to that \meta{value} is stored as an item in the
+%   \meta{seq~var}.  The \meta{inline function} should consist of code
+%   which will receive the \meta{item} as |#1| and expand to the desired
+%   item. As such, the code in \meta{inline function} should be
+%   expandable.
+% \end{function}
+%
 % \subsection{Additions to \pkg{l3skip}}
 %
 %    \begin{macrocode}
diff --git a/l3kernel/l3regex.dtx b/l3kernel/l3regex.dtx
index 5191342..b410ad8 100644
--- a/l3kernel/l3regex.dtx
+++ b/l3kernel/l3regex.dtx
@@ -5964,23 +5964,17 @@
 %   into \cs{l_@@_internal_a_tl}. We detect unbalanced results using
 %   the two flags \texttt{__regex_begin} and \texttt{__regex_end}, raised
 %   whenever we see too many begin-group or end-group tokens in a
-%   submatch. We disable \cs{__seq_item:n} to prevent two
-%   \texttt{x}-expansions.
+%   submatch.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_group_end_extract_seq:N #1
   {
-      \cs_set_eq:NN \__seq_item:n \scan_stop:
       \flag_clear:n { @@_begin }
       \flag_clear:n { @@_end }
-      \tl_set:Nx \l_@@_internal_a_tl
-        {
-          \s__seq
-          \int_step_function:nnnN
-            { \l_@@_min_submatch_int }
-            { 1 }
-            { \l_@@_submatch_int - 1 }
-            \@@_extract_seq_aux:n
-        }
+      \seq_set_int_step:Nnnnn \l_@@_internal_seq
+        { \l_@@_min_submatch_int }
+        { 1 }
+        { \l_@@_submatch_int - 1 }
+        { \@@_extract_seq_aux:n {##1} }
       \int_compare:nNnF
         { \flag_height:n { @@_begin } + \flag_height:n { @@_end } }
         = 0
@@ -5990,11 +5984,10 @@
             { \flag_height:n { @@_end } }
             { \flag_height:n { @@_begin } }
         }
-      \use:x
-        {
-          \group_end:
-          \tl_set:Nn \exp_not:N #1 { \l_@@_internal_a_tl }
-        }
+      \seq_set_map:NNn \l_@@_internal_seq \l_@@_internal_seq {##1}
+      \exp_args:NNNo
+      \group_end:
+      \tl_set:Nn #1 { \l_@@_internal_seq }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -6007,11 +6000,8 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_extract_seq_aux:n #1
   {
-    \__seq_item:n
-      {
-        \exp_after:wN \@@_extract_seq_aux:ww
-        \int_value:w \@@_submatch_balance:n {#1} ; #1;
-      }
+    \exp_after:wN \@@_extract_seq_aux:ww
+    \int_value:w \@@_submatch_balance:n {#1} ; #1;
   }
 \cs_new:Npn \@@_extract_seq_aux:ww #1; #2;
   {
diff --git a/l3kernel/l3sort.dtx b/l3kernel/l3sort.dtx
index 28e884d..fc3c8e5 100644
--- a/l3kernel/l3sort.dtx
+++ b/l3kernel/l3sort.dtx
@@ -107,6 +107,13 @@
 %
 % \subsection{Variables}
 %
+% \begin{variable}{\g_@@_internal_seq}
+%   Used for \cs{seq_sort:Nn} to get the resulting sequence out of a group.
+%    \begin{macrocode}
+\seq_new:N \g_@@_internal_seq
+%    \end{macrocode}
+% \end{variable}
+%
 % \begin{variable}
 %   {
 %     \l_@@_length_int, \l_@@_min_int, \l_@@_top_int, \l_@@_max_int,
@@ -303,7 +310,7 @@
 %
 % \subsection{Protected user commands}
 %
-% \begin{macro}{\@@_main:NNNnNn}
+% \begin{macro}{\@@_main:NNNnNn, \@@_main:NNNn}
 %   Sorting happens in three steps. First store items in \tn{toks}
 %   registers ranging from \cs{l_@@_min_int} to $\cs{l_@@_top_int}-1$,
 %   while checking that the list is not too
@@ -318,66 +325,73 @@
 \cs_new_protected:Npn \@@_main:NNNnNn #1#2#3#4#5#6
   {
     \group_begin:
-%<package>      \@@_disable_toksdef:
-      \@@_compute_range:
-      \int_set_eq:NN \l_@@_top_int \l_@@_min_int
-      #2 #5
-        {
-          \if_int_compare:w \l_@@_top_int = \l_@@_max_int
-            \@@_too_long_error:NNw #3 #5
-          \fi:
-          \tex_toks:D \l_@@_top_int {##1}
-          \int_incr:N \l_@@_top_int
-        }
-      \int_set:Nn \l_@@_length_int
-        { \l_@@_top_int - \l_@@_min_int }
-      \cs_set:Npn \@@_compare:nn ##1 ##2 { #6 }
-      \int_set:Nn \l_@@_block_int { 1 }
-      \@@_level:
+      \@@_main:NNNn #2 #3 #5 {#6}
       \use:x
         {
           \group_end:
           #1 \exp_not:N #5 {#4}
         }
+    \prg_break_point:
+  }
+\cs_new_protected:Npn \@@_main:NNNn #1#2#3#4
+  {
+%<package>    \@@_disable_toksdef:
+    \@@_compute_range:
+    \int_set_eq:NN \l_@@_top_int \l_@@_min_int
+    #1 #3
+      {
+        \if_int_compare:w \l_@@_top_int = \l_@@_max_int
+          \@@_too_long_error:NNw #2 #3
+        \fi:
+        \tex_toks:D \l_@@_top_int {##1}
+        \int_incr:N \l_@@_top_int
+      }
+    \int_set:Nn \l_@@_length_int
+      { \l_@@_top_int - \l_@@_min_int }
+    \cs_set:Npn \@@_compare:nn ##1 ##2 {#4}
+    \int_set:Nn \l_@@_block_int { 1 }
+    \@@_level:
   }
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\seq_sort:Nn, \seq_gsort:Nn}
-%   The first argument to \cs{@@_main:NNNnNn} is the final
-%   assignment function used, either \cs{tl_set:Nn} or
-%   \cs{tl_gset:Nn} to control local versus global results.
-%   The second argument is what mapping function is used when storing
-%   items to \tn{toks} registers, and the third breaks away from the
-%   loop. The fourth is used to build back the correct kind of list
-%   from the contents of the \tn{toks} registers, including the leading
-%   \cs{s__seq}.  Fifth and sixth
-%   arguments are the variable to sort, and the sorting method
-%   as inline code.
+% \begin{macro}{\seq_sort:Nn, \seq_sort:cn, \seq_gsort:Nn, \seq_gsort:cn}
+% \begin{macro}{\@@_seq:NNn}
+%   The first argument to \cs{@@_main:NNNn} is what mapping function is
+%   used when storing items to \tn{toks} registers, and the second
+%   breaks away from the loop. The third and fourth arguments are the
+%   variable to sort, and the sorting method as inline code.  At the
+%   end, extract the \tn{toks} registers as items in
+%   \cs{g_@@_internal_seq} and copy that to the target variable locally
+%   or globally.
 %    \begin{macrocode}
-\cs_new_protected:Npn \seq_sort:Nn
-  {
-    \@@_main:NNNnNn \tl_set:Nn
-      \seq_map_inline:Nn \seq_map_break:n
-      { \s__seq \@@_toks:NN \exp_not:N \__seq_item:n }
-  }
+\cs_new_protected:Npn \seq_sort:Nn { \@@_seq:NNn \seq_set_eq:NN }
 \cs_generate_variant:Nn \seq_sort:Nn { c }
-\cs_new_protected:Npn \seq_gsort:Nn
+\cs_new_protected:Npn \seq_gsort:Nn { \@@_seq:NNn \seq_gset_eq:NN }
+\cs_generate_variant:Nn \seq_gsort:Nn { c }
+\cs_new_protected:Npn \@@_seq:NNn #1#2#3
   {
-    \@@_main:NNNnNn \tl_gset:Nn
-      \seq_map_inline:Nn \seq_map_break:n
-      { \s__seq \@@_toks:NN \exp_not:N \__seq_item:n }
+    \group_begin:
+      \@@_main:NNNn \seq_map_inline:Nn \seq_map_break:n #2 {#3}
+      \seq_gset_int_step:Nnnnn \g_@@_internal_seq
+        { \l_@@_min_int }
+        { 1 }
+        { \l_@@_top_int - 1 }
+        { \tex_the:D \tex_toks:D ##1 }
+    \group_end:
+    #1 #2 \g_@@_internal_seq
+    \seq_gclear:N \g_@@_internal_seq
+    \prg_break_point:
   }
-\cs_generate_variant:Nn \seq_gsort:Nn { c }
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
 % \begin{macro}{\tl_sort:Nn, \tl_sort:cn, \tl_gsort:Nn, \tl_gsort:cn}
 %   Again, use \cs{tl_set:Nn} or \cs{tl_gset:Nn} to control
 %   the scope of the assignment. Mapping through the token
 %   list is done with \cs{tl_map_inline:Nn}, and producing
-%   the token list is very similar to sequences, removing
-%   \cs{__seq_item:n}.
+%   the token list is done by \cs{@@_toks:NN}.
 %    \begin{macrocode}
 \cs_new_protected:Npn \tl_sort:Nn
   {
@@ -447,10 +461,8 @@
 % \begin{macro}{\@@_toks:NN, \@@_toks:NNw}
 %   Unpack the various \tn{toks} registers, from \cs{l_@@_min_int} to
 %   $\cs{l_@@_top_int}-1$. The functions |#1| and |#2| allow us to treat
-%   the three data structures in a unified way:
+%   |tl| and |clist| in a unified way:
 %   \begin{itemize}
-%   \item for sequences, they are \cs{exp_not:N} \cs{__seq_item:n},
-%     expanding to the \cs{__seq_item:n} separator, as expected;
 %   \item for token lists, they expand to nothing;
 %   \item for comma lists, they expand to \cs{exp_args:No}
 %     \cs{@@_clist_wrap_item:n}, taking care of unpacking the register
@@ -998,14 +1010,14 @@
 % \begin{macro}{\@@_error:}
 %   Bailing out of the sorting code is a bit tricky.  It may not be safe
 %   to use a delimited argument, so instead we redefine many
-%   \pkg{l3sort} commands to be trivial, with \cs{@@_level:} getting rid
-%   of the final assignment.  This error recovery won't work in a group.
+%   \pkg{l3sort} commands to be trivial, with \cs{@@_level:} jumping to
+%   the break point.  This error recovery won't work in a group.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_error:
   {
     \cs_set_eq:NN \@@_merge_blocks_aux: \prg_do_nothing:
     \cs_set_eq:NN \@@_merge_blocks: \prg_do_nothing:
-    \cs_set_protected:Npn \@@_level: \use:x ##1 { \group_end: }
+    \cs_set_protected:Npn \@@_level: { \group_end: \prg_break: }
   }
 %    \end{macrocode}
 % \end{macro}
diff --git a/l3kernel/testfiles/m3expl001.luatex.tlg b/l3kernel/testfiles/m3expl001.luatex.tlg
index 659282d..ccd0db0 100644
--- a/l3kernel/testfiles/m3expl001.luatex.tlg
+++ b/l3kernel/testfiles/m3expl001.luatex.tlg
@@ -4630,6 +4630,7 @@ Defining \__intarray_gset_overflow:NNnn on line ...
 Defining \__kernel_intarray_item:Nn on line ...
 Defining \intarray_item:Nn on line ...
 Defining \__intarray_item:Nw on line ...
+Defining \g__sort_internal_seq on line ...
 Defining \l__sort_length_int on line ...
 \l__sort_length_int=\count...
 Defining \l__sort_min_int on line ...
@@ -4657,10 +4658,12 @@ Defining \__sort_shrink_range_loop: on line ...
 Defining \__sort_compute_range: on line ...
 Defining \__sort_redefine_compute_range: on line ...
 Defining \__sort_main:NNNnNn on line ...
+Defining \__sort_main:NNNn on line ...
 Defining \seq_sort:Nn on line ...
 Defining \seq_sort:cn on line ...
 Defining \seq_gsort:Nn on line ...
 Defining \seq_gsort:cn on line ...
+Defining \__sort_seq:NNn on line ...
 Defining \tl_sort:Nn on line ...
 Defining \tl_sort:cn on line ...
 Defining \tl_gsort:Nn on line ...
@@ -5790,6 +5793,9 @@ Defining \seq_rand_item:N on line ...
 Defining \seq_rand_item:c on line ...
 Defining \seq_const_from_clist:Nn on line ...
 Defining \seq_const_from_clist:cn on line ...
+Defining \seq_set_int_step:Nnnnn on line ...
+Defining \seq_gset_int_step:Nnnnn on line ...
+Defining \__seq_set_int_step:NNnnnn on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \sys_if_rand_exist_p: on line ...
 Defining \sys_if_rand_exist:T on line ...
diff --git a/l3kernel/testfiles/m3expl001.ptex.tlg b/l3kernel/testfiles/m3expl001.ptex.tlg
index c4009b2..3574f04 100644
--- a/l3kernel/testfiles/m3expl001.ptex.tlg
+++ b/l3kernel/testfiles/m3expl001.ptex.tlg
@@ -4567,6 +4567,7 @@ Defining \__intarray_gset_overflow:NNnn on line ...
 Defining \__kernel_intarray_item:Nn on line ...
 Defining \intarray_item:Nn on line ...
 Defining \__intarray_item:Nw on line ...
+Defining \g__sort_internal_seq on line ...
 Defining \l__sort_length_int on line ...
 \l__sort_length_int=\count...
 Defining \l__sort_min_int on line ...
@@ -4594,10 +4595,12 @@ Defining \__sort_shrink_range_loop: on line ...
 Defining \__sort_compute_range: on line ...
 Defining \__sort_redefine_compute_range: on line ...
 Defining \__sort_main:NNNnNn on line ...
+Defining \__sort_main:NNNn on line ...
 Defining \seq_sort:Nn on line ...
 Defining \seq_sort:cn on line ...
 Defining \seq_gsort:Nn on line ...
 Defining \seq_gsort:cn on line ...
+Defining \__sort_seq:NNn on line ...
 Defining \tl_sort:Nn on line ...
 Defining \tl_sort:cn on line ...
 Defining \tl_gsort:Nn on line ...
@@ -5729,6 +5732,9 @@ Defining \seq_rand_item:N on line ...
 Defining \seq_rand_item:c on line ...
 Defining \seq_const_from_clist:Nn on line ...
 Defining \seq_const_from_clist:cn on line ...
+Defining \seq_set_int_step:Nnnnn on line ...
+Defining \seq_gset_int_step:Nnnnn on line ...
+Defining \__seq_set_int_step:NNnnnn on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \sys_if_rand_exist_p: on line ...
 Defining \sys_if_rand_exist:T on line ...
diff --git a/l3kernel/testfiles/m3expl001.tlg b/l3kernel/testfiles/m3expl001.tlg
index da6fc64..398b12a 100644
--- a/l3kernel/testfiles/m3expl001.tlg
+++ b/l3kernel/testfiles/m3expl001.tlg
@@ -4567,6 +4567,7 @@ Defining \__intarray_gset_overflow:NNnn on line ...
 Defining \__kernel_intarray_item:Nn on line ...
 Defining \intarray_item:Nn on line ...
 Defining \__intarray_item:Nw on line ...
+Defining \g__sort_internal_seq on line ...
 Defining \l__sort_length_int on line ...
 \l__sort_length_int=\count...
 Defining \l__sort_min_int on line ...
@@ -4594,10 +4595,12 @@ Defining \__sort_shrink_range_loop: on line ...
 Defining \__sort_compute_range: on line ...
 Defining \__sort_redefine_compute_range: on line ...
 Defining \__sort_main:NNNnNn on line ...
+Defining \__sort_main:NNNn on line ...
 Defining \seq_sort:Nn on line ...
 Defining \seq_sort:cn on line ...
 Defining \seq_gsort:Nn on line ...
 Defining \seq_gsort:cn on line ...
+Defining \__sort_seq:NNn on line ...
 Defining \tl_sort:Nn on line ...
 Defining \tl_sort:cn on line ...
 Defining \tl_gsort:Nn on line ...
@@ -5729,6 +5732,9 @@ Defining \seq_rand_item:N on line ...
 Defining \seq_rand_item:c on line ...
 Defining \seq_const_from_clist:Nn on line ...
 Defining \seq_const_from_clist:cn on line ...
+Defining \seq_set_int_step:Nnnnn on line ...
+Defining \seq_gset_int_step:Nnnnn on line ...
+Defining \__seq_set_int_step:NNnnnn on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \sys_if_rand_exist_p: on line ...
 Defining \sys_if_rand_exist:T on line ...
diff --git a/l3kernel/testfiles/m3expl001.uptex.tlg b/l3kernel/testfiles/m3expl001.uptex.tlg
index 0e07162..50341e5 100644
--- a/l3kernel/testfiles/m3expl001.uptex.tlg
+++ b/l3kernel/testfiles/m3expl001.uptex.tlg
@@ -4567,6 +4567,7 @@ Defining \__intarray_gset_overflow:NNnn on line ...
 Defining \__kernel_intarray_item:Nn on line ...
 Defining \intarray_item:Nn on line ...
 Defining \__intarray_item:Nw on line ...
+Defining \g__sort_internal_seq on line ...
 Defining \l__sort_length_int on line ...
 \l__sort_length_int=\count...
 Defining \l__sort_min_int on line ...
@@ -4594,10 +4595,12 @@ Defining \__sort_shrink_range_loop: on line ...
 Defining \__sort_compute_range: on line ...
 Defining \__sort_redefine_compute_range: on line ...
 Defining \__sort_main:NNNnNn on line ...
+Defining \__sort_main:NNNn on line ...
 Defining \seq_sort:Nn on line ...
 Defining \seq_sort:cn on line ...
 Defining \seq_gsort:Nn on line ...
 Defining \seq_gsort:cn on line ...
+Defining \__sort_seq:NNn on line ...
 Defining \tl_sort:Nn on line ...
 Defining \tl_sort:cn on line ...
 Defining \tl_gsort:Nn on line ...
@@ -5727,6 +5730,9 @@ Defining \seq_rand_item:N on line ...
 Defining \seq_rand_item:c on line ...
 Defining \seq_const_from_clist:Nn on line ...
 Defining \seq_const_from_clist:cn on line ...
+Defining \seq_set_int_step:Nnnnn on line ...
+Defining \seq_gset_int_step:Nnnnn on line ...
+Defining \__seq_set_int_step:NNnnnn on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \sys_if_rand_exist_p: on line ...
 Defining \sys_if_rand_exist:T on line ...
diff --git a/l3kernel/testfiles/m3expl001.xetex.tlg b/l3kernel/testfiles/m3expl001.xetex.tlg
index 6c61ac9..3e2a4fb 100644
--- a/l3kernel/testfiles/m3expl001.xetex.tlg
+++ b/l3kernel/testfiles/m3expl001.xetex.tlg
@@ -4607,6 +4607,7 @@ Defining \__intarray_gset_overflow:NNnn on line ...
 Defining \__kernel_intarray_item:Nn on line ...
 Defining \intarray_item:Nn on line ...
 Defining \__intarray_item:Nw on line ...
+Defining \g__sort_internal_seq on line ...
 Defining \l__sort_length_int on line ...
 \l__sort_length_int=\count...
 Defining \l__sort_min_int on line ...
@@ -4634,10 +4635,12 @@ Defining \__sort_shrink_range_loop: on line ...
 Defining \__sort_compute_range: on line ...
 Defining \__sort_redefine_compute_range: on line ...
 Defining \__sort_main:NNNnNn on line ...
+Defining \__sort_main:NNNn on line ...
 Defining \seq_sort:Nn on line ...
 Defining \seq_sort:cn on line ...
 Defining \seq_gsort:Nn on line ...
 Defining \seq_gsort:cn on line ...
+Defining \__sort_seq:NNn on line ...
 Defining \tl_sort:Nn on line ...
 Defining \tl_sort:cn on line ...
 Defining \tl_gsort:Nn on line ...
@@ -5762,6 +5765,9 @@ Defining \seq_rand_item:N on line ...
 Defining \seq_rand_item:c on line ...
 Defining \seq_const_from_clist:Nn on line ...
 Defining \seq_const_from_clist:cn on line ...
+Defining \seq_set_int_step:Nnnnn on line ...
+Defining \seq_gset_int_step:Nnnnn on line ...
+Defining \__seq_set_int_step:NNnnnn on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \sys_if_rand_exist_p: on line ...
 Defining \sys_if_rand_exist:T on line ...
diff --git a/l3kernel/testfiles/m3expl003.luatex.tlg b/l3kernel/testfiles/m3expl003.luatex.tlg
index 659282d..ccd0db0 100644
--- a/l3kernel/testfiles/m3expl003.luatex.tlg
+++ b/l3kernel/testfiles/m3expl003.luatex.tlg
@@ -4630,6 +4630,7 @@ Defining \__intarray_gset_overflow:NNnn on line ...
 Defining \__kernel_intarray_item:Nn on line ...
 Defining \intarray_item:Nn on line ...
 Defining \__intarray_item:Nw on line ...
+Defining \g__sort_internal_seq on line ...
 Defining \l__sort_length_int on line ...
 \l__sort_length_int=\count...
 Defining \l__sort_min_int on line ...
@@ -4657,10 +4658,12 @@ Defining \__sort_shrink_range_loop: on line ...
 Defining \__sort_compute_range: on line ...
 Defining \__sort_redefine_compute_range: on line ...
 Defining \__sort_main:NNNnNn on line ...
+Defining \__sort_main:NNNn on line ...
 Defining \seq_sort:Nn on line ...
 Defining \seq_sort:cn on line ...
 Defining \seq_gsort:Nn on line ...
 Defining \seq_gsort:cn on line ...
+Defining \__sort_seq:NNn on line ...
 Defining \tl_sort:Nn on line ...
 Defining \tl_sort:cn on line ...
 Defining \tl_gsort:Nn on line ...
@@ -5790,6 +5793,9 @@ Defining \seq_rand_item:N on line ...
 Defining \seq_rand_item:c on line ...
 Defining \seq_const_from_clist:Nn on line ...
 Defining \seq_const_from_clist:cn on line ...
+Defining \seq_set_int_step:Nnnnn on line ...
+Defining \seq_gset_int_step:Nnnnn on line ...
+Defining \__seq_set_int_step:NNnnnn on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \sys_if_rand_exist_p: on line ...
 Defining \sys_if_rand_exist:T on line ...
diff --git a/l3kernel/testfiles/m3expl003.ptex.tlg b/l3kernel/testfiles/m3expl003.ptex.tlg
index c4009b2..3574f04 100644
--- a/l3kernel/testfiles/m3expl003.ptex.tlg
+++ b/l3kernel/testfiles/m3expl003.ptex.tlg
@@ -4567,6 +4567,7 @@ Defining \__intarray_gset_overflow:NNnn on line ...
 Defining \__kernel_intarray_item:Nn on line ...
 Defining \intarray_item:Nn on line ...
 Defining \__intarray_item:Nw on line ...
+Defining \g__sort_internal_seq on line ...
 Defining \l__sort_length_int on line ...
 \l__sort_length_int=\count...
 Defining \l__sort_min_int on line ...
@@ -4594,10 +4595,12 @@ Defining \__sort_shrink_range_loop: on line ...
 Defining \__sort_compute_range: on line ...
 Defining \__sort_redefine_compute_range: on line ...
 Defining \__sort_main:NNNnNn on line ...
+Defining \__sort_main:NNNn on line ...
 Defining \seq_sort:Nn on line ...
 Defining \seq_sort:cn on line ...
 Defining \seq_gsort:Nn on line ...
 Defining \seq_gsort:cn on line ...
+Defining \__sort_seq:NNn on line ...
 Defining \tl_sort:Nn on line ...
 Defining \tl_sort:cn on line ...
 Defining \tl_gsort:Nn on line ...
@@ -5729,6 +5732,9 @@ Defining \seq_rand_item:N on line ...
 Defining \seq_rand_item:c on line ...
 Defining \seq_const_from_clist:Nn on line ...
 Defining \seq_const_from_clist:cn on line ...
+Defining \seq_set_int_step:Nnnnn on line ...
+Defining \seq_gset_int_step:Nnnnn on line ...
+Defining \__seq_set_int_step:NNnnnn on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \sys_if_rand_exist_p: on line ...
 Defining \sys_if_rand_exist:T on line ...
diff --git a/l3kernel/testfiles/m3expl003.tlg b/l3kernel/testfiles/m3expl003.tlg
index da6fc64..398b12a 100644
--- a/l3kernel/testfiles/m3expl003.tlg
+++ b/l3kernel/testfiles/m3expl003.tlg
@@ -4567,6 +4567,7 @@ Defining \__intarray_gset_overflow:NNnn on line ...
 Defining \__kernel_intarray_item:Nn on line ...
 Defining \intarray_item:Nn on line ...
 Defining \__intarray_item:Nw on line ...
+Defining \g__sort_internal_seq on line ...
 Defining \l__sort_length_int on line ...
 \l__sort_length_int=\count...
 Defining \l__sort_min_int on line ...
@@ -4594,10 +4595,12 @@ Defining \__sort_shrink_range_loop: on line ...
 Defining \__sort_compute_range: on line ...
 Defining \__sort_redefine_compute_range: on line ...
 Defining \__sort_main:NNNnNn on line ...
+Defining \__sort_main:NNNn on line ...
 Defining \seq_sort:Nn on line ...
 Defining \seq_sort:cn on line ...
 Defining \seq_gsort:Nn on line ...
 Defining \seq_gsort:cn on line ...
+Defining \__sort_seq:NNn on line ...
 Defining \tl_sort:Nn on line ...
 Defining \tl_sort:cn on line ...
 Defining \tl_gsort:Nn on line ...
@@ -5729,6 +5732,9 @@ Defining \seq_rand_item:N on line ...
 Defining \seq_rand_item:c on line ...
 Defining \seq_const_from_clist:Nn on line ...
 Defining \seq_const_from_clist:cn on line ...
+Defining \seq_set_int_step:Nnnnn on line ...
+Defining \seq_gset_int_step:Nnnnn on line ...
+Defining \__seq_set_int_step:NNnnnn on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \sys_if_rand_exist_p: on line ...
 Defining \sys_if_rand_exist:T on line ...
diff --git a/l3kernel/testfiles/m3expl003.uptex.tlg b/l3kernel/testfiles/m3expl003.uptex.tlg
index 0e07162..50341e5 100644
--- a/l3kernel/testfiles/m3expl003.uptex.tlg
+++ b/l3kernel/testfiles/m3expl003.uptex.tlg
@@ -4567,6 +4567,7 @@ Defining \__intarray_gset_overflow:NNnn on line ...
 Defining \__kernel_intarray_item:Nn on line ...
 Defining \intarray_item:Nn on line ...
 Defining \__intarray_item:Nw on line ...
+Defining \g__sort_internal_seq on line ...
 Defining \l__sort_length_int on line ...
 \l__sort_length_int=\count...
 Defining \l__sort_min_int on line ...
@@ -4594,10 +4595,12 @@ Defining \__sort_shrink_range_loop: on line ...
 Defining \__sort_compute_range: on line ...
 Defining \__sort_redefine_compute_range: on line ...
 Defining \__sort_main:NNNnNn on line ...
+Defining \__sort_main:NNNn on line ...
 Defining \seq_sort:Nn on line ...
 Defining \seq_sort:cn on line ...
 Defining \seq_gsort:Nn on line ...
 Defining \seq_gsort:cn on line ...
+Defining \__sort_seq:NNn on line ...
 Defining \tl_sort:Nn on line ...
 Defining \tl_sort:cn on line ...
 Defining \tl_gsort:Nn on line ...
@@ -5727,6 +5730,9 @@ Defining \seq_rand_item:N on line ...
 Defining \seq_rand_item:c on line ...
 Defining \seq_const_from_clist:Nn on line ...
 Defining \seq_const_from_clist:cn on line ...
+Defining \seq_set_int_step:Nnnnn on line ...
+Defining \seq_gset_int_step:Nnnnn on line ...
+Defining \__seq_set_int_step:NNnnnn on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \sys_if_rand_exist_p: on line ...
 Defining \sys_if_rand_exist:T on line ...
diff --git a/l3kernel/testfiles/m3expl003.xetex.tlg b/l3kernel/testfiles/m3expl003.xetex.tlg
index 6c61ac9..3e2a4fb 100644
--- a/l3kernel/testfiles/m3expl003.xetex.tlg
+++ b/l3kernel/testfiles/m3expl003.xetex.tlg
@@ -4607,6 +4607,7 @@ Defining \__intarray_gset_overflow:NNnn on line ...
 Defining \__kernel_intarray_item:Nn on line ...
 Defining \intarray_item:Nn on line ...
 Defining \__intarray_item:Nw on line ...
+Defining \g__sort_internal_seq on line ...
 Defining \l__sort_length_int on line ...
 \l__sort_length_int=\count...
 Defining \l__sort_min_int on line ...
@@ -4634,10 +4635,12 @@ Defining \__sort_shrink_range_loop: on line ...
 Defining \__sort_compute_range: on line ...
 Defining \__sort_redefine_compute_range: on line ...
 Defining \__sort_main:NNNnNn on line ...
+Defining \__sort_main:NNNn on line ...
 Defining \seq_sort:Nn on line ...
 Defining \seq_sort:cn on line ...
 Defining \seq_gsort:Nn on line ...
 Defining \seq_gsort:cn on line ...
+Defining \__sort_seq:NNn on line ...
 Defining \tl_sort:Nn on line ...
 Defining \tl_sort:cn on line ...
 Defining \tl_gsort:Nn on line ...
@@ -5762,6 +5765,9 @@ Defining \seq_rand_item:N on line ...
 Defining \seq_rand_item:c on line ...
 Defining \seq_const_from_clist:Nn on line ...
 Defining \seq_const_from_clist:cn on line ...
+Defining \seq_set_int_step:Nnnnn on line ...
+Defining \seq_gset_int_step:Nnnnn on line ...
+Defining \__seq_set_int_step:NNnnnn on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
 Defining \sys_if_rand_exist_p: on line ...
 Defining \sys_if_rand_exist:T on line ...





More information about the latex3-commits mailing list