[latex3-commits] [git/LaTeX3-latex3-latex3] master: Simplify code by using \int_value:w rather than f-expansion (7efd657)

Bruno Le Floch bruno at le-floch.fr
Fri Mar 30 04:13:08 CEST 2018


Repository : https://github.com/latex3/latex3
On branch  : master
Link       : https://github.com/latex3/latex3/commit/7efd657fd8ac23ca7eb86485a1915e6df650155c

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

commit 7efd657fd8ac23ca7eb86485a1915e6df650155c
Author: Bruno Le Floch <bruno at le-floch.fr>
Date:   Thu Mar 29 22:11:59 2018 -0400

    Simplify code by using \int_value:w rather than f-expansion


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

7efd657fd8ac23ca7eb86485a1915e6df650155c
 l3kernel/l3candidates.dtx               |   18 +++++-------------
 l3kernel/l3prg.dtx                      |    9 +++------
 l3kernel/testfiles/m3expl001.luatex.tlg |    5 -----
 l3kernel/testfiles/m3expl001.ptex.tlg   |    5 -----
 l3kernel/testfiles/m3expl001.tlg        |    5 -----
 l3kernel/testfiles/m3expl001.uptex.tlg  |    5 -----
 l3kernel/testfiles/m3expl001.xetex.tlg  |    5 -----
 l3kernel/testfiles/m3expl003.luatex.tlg |    5 -----
 l3kernel/testfiles/m3expl003.ptex.tlg   |    5 -----
 l3kernel/testfiles/m3expl003.tlg        |    5 -----
 l3kernel/testfiles/m3expl003.uptex.tlg  |    5 -----
 l3kernel/testfiles/m3expl003.xetex.tlg  |    5 -----
 12 files changed, 8 insertions(+), 69 deletions(-)

diff --git a/l3kernel/l3candidates.dtx b/l3kernel/l3candidates.dtx
index ef4fb9c..d0aaeab 100644
--- a/l3kernel/l3candidates.dtx
+++ b/l3kernel/l3candidates.dtx
@@ -2140,29 +2140,23 @@
 %
 % \begin{macro}[EXP]
 %   {\prop_rand_key_value:N, \prop_rand_key_value:c}
-% \begin{macro}[EXP]{\@@_rand_key_item:nN, \@@_rand_key_item:fN}
-% \begin{macro}[EXP]{\@@_rand_key_item:nn}
 % \begin{macro}[EXP]{\@@_rand_item:w}
 %   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.
+%   checking because \cs{int_rand:nn} is always within bounds.  The
+%   initial \cs{int_value:w} is stopped by the first \cs{s_@@} in~|#1|.
 %    \begin{macrocode}
 \cs_new:Npn \prop_rand_key_value:N #1
   {
     \prop_if_empty:NF #1
       {
-        \@@_rand_key_item:fN
-          { \int_eval:n { \int_rand:nn { 1 } { \prop_count:N #1 } } }
-          #1
+        \exp_after:wN \@@_rand_item:w
+        \int_value:w \int_rand:nn { 1 } { \prop_count:N #1 }
+        #1 \q_stop
       }
   }
 \cs_generate_variant:Nn \prop_rand_key_value:N { c }
-\cs_new:Npn \@@_rand_key_item:nN #1#2
-  { \exp_after:wN \@@_rand_key_item:nn \exp_after:wN {#2} {#1} }
-\cs_generate_variant:Nn \@@_rand_key_item:nN { f }
-\cs_new:Npn \@@_rand_key_item:nn #1#2
-  { \@@_rand_item:w #2 #1 \q_stop }
 \cs_new:Npn \@@_rand_item:w #1 \s_@@ \@@_pair:wn #2 \s_@@ #3
   {
     \int_compare:nNnF {#1} > 1
@@ -2173,8 +2167,6 @@
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
-% \end{macro}
-% \end{macro}
 %
 % \subsection{Additions to \pkg{l3seq}}
 %
diff --git a/l3kernel/l3prg.dtx b/l3kernel/l3prg.dtx
index ca1dc89..cecbd98 100644
--- a/l3kernel/l3prg.dtx
+++ b/l3kernel/l3prg.dtx
@@ -1342,7 +1342,6 @@
 %
 % \begin{macro}{\prg_replicate:nn}
 % \UnitTested
-% \begin{macro}{\@@_replicate_first:n, \@@_replicate_first:f}
 % \begin{macro}{\@@_replicate:N, \@@_replicate_first:N}
 % \begin{macro}{\@@_replicate_}
 % \begin{macro}
@@ -1406,11 +1405,10 @@
 \cs_new:Npn \prg_replicate:nn #1
   {
     \exp:w
-      \@@_replicate_first:f { \int_eval:n {#1} }
+      \exp_after:wN \@@_replicate_first:N
+      \int_value:w \int_eval:n {#1}
+      \cs_end:
   }
-\cs_new:Npn \@@_replicate_first:n #1
-  { \@@_replicate_first:N #1 \cs_end: }
-\cs_generate_variant:Nn \@@_replicate_first:n { f }
 \cs_new:Npn \@@_replicate:N #1
   { \cs:w @@_replicate_#1 :n \@@_replicate:N }
 \cs_new:Npn \@@_replicate_first:N #1
@@ -1465,7 +1463,6 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
-% \end{macro}
 %
 % \subsection{Detecting \TeX{}'s mode}
 %
diff --git a/l3kernel/testfiles/m3expl001.luatex.tlg b/l3kernel/testfiles/m3expl001.luatex.tlg
index a272544..41eecea 100644
--- a/l3kernel/testfiles/m3expl001.luatex.tlg
+++ b/l3kernel/testfiles/m3expl001.luatex.tlg
@@ -2040,8 +2040,6 @@ Defining \bool_do_while:nn on line ...
 Defining \bool_until_do:nn on line ...
 Defining \bool_do_until:nn on line ...
 Defining \prg_replicate:nn on line ...
-Defining \__prg_replicate_first:n on line ...
-Defining \__prg_replicate_first:f on line ...
 Defining \__prg_replicate:N on line ...
 Defining \__prg_replicate_first:N on line ...
 Defining \__prg_replicate_ on line ...
@@ -5780,9 +5778,6 @@ Defining \__prop_map_tokens:nwwn on line ...
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_rand_key_value:N on line ...
 Defining \prop_rand_key_value:c on line ...
-Defining \__prop_rand_key_item:nN on line ...
-Defining \__prop_rand_key_item:fN on line ...
-Defining \__prop_rand_key_item:nn on line ...
 Defining \__prop_rand_item:w on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
diff --git a/l3kernel/testfiles/m3expl001.ptex.tlg b/l3kernel/testfiles/m3expl001.ptex.tlg
index 4fce46d..f7dc002 100644
--- a/l3kernel/testfiles/m3expl001.ptex.tlg
+++ b/l3kernel/testfiles/m3expl001.ptex.tlg
@@ -1721,8 +1721,6 @@ Defining \bool_do_while:nn on line ...
 Defining \bool_until_do:nn on line ...
 Defining \bool_do_until:nn on line ...
 Defining \prg_replicate:nn on line ...
-Defining \__prg_replicate_first:n on line ...
-Defining \__prg_replicate_first:f on line ...
 Defining \__prg_replicate:N on line ...
 Defining \__prg_replicate_first:N on line ...
 Defining \__prg_replicate_ on line ...
@@ -5719,9 +5717,6 @@ Defining \__prop_map_tokens:nwwn on line ...
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_rand_key_value:N on line ...
 Defining \prop_rand_key_value:c on line ...
-Defining \__prop_rand_key_item:nN on line ...
-Defining \__prop_rand_key_item:fN on line ...
-Defining \__prop_rand_key_item:nn on line ...
 Defining \__prop_rand_item:w on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
diff --git a/l3kernel/testfiles/m3expl001.tlg b/l3kernel/testfiles/m3expl001.tlg
index 05ced54..8517a11 100644
--- a/l3kernel/testfiles/m3expl001.tlg
+++ b/l3kernel/testfiles/m3expl001.tlg
@@ -1721,8 +1721,6 @@ Defining \bool_do_while:nn on line ...
 Defining \bool_until_do:nn on line ...
 Defining \bool_do_until:nn on line ...
 Defining \prg_replicate:nn on line ...
-Defining \__prg_replicate_first:n on line ...
-Defining \__prg_replicate_first:f on line ...
 Defining \__prg_replicate:N on line ...
 Defining \__prg_replicate_first:N on line ...
 Defining \__prg_replicate_ on line ...
@@ -5719,9 +5717,6 @@ Defining \__prop_map_tokens:nwwn on line ...
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_rand_key_value:N on line ...
 Defining \prop_rand_key_value:c on line ...
-Defining \__prop_rand_key_item:nN on line ...
-Defining \__prop_rand_key_item:fN on line ...
-Defining \__prop_rand_key_item:nn on line ...
 Defining \__prop_rand_item:w on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
diff --git a/l3kernel/testfiles/m3expl001.uptex.tlg b/l3kernel/testfiles/m3expl001.uptex.tlg
index 34fb5fd..de1aff8 100644
--- a/l3kernel/testfiles/m3expl001.uptex.tlg
+++ b/l3kernel/testfiles/m3expl001.uptex.tlg
@@ -1721,8 +1721,6 @@ Defining \bool_do_while:nn on line ...
 Defining \bool_until_do:nn on line ...
 Defining \bool_do_until:nn on line ...
 Defining \prg_replicate:nn on line ...
-Defining \__prg_replicate_first:n on line ...
-Defining \__prg_replicate_first:f on line ...
 Defining \__prg_replicate:N on line ...
 Defining \__prg_replicate_first:N on line ...
 Defining \__prg_replicate_ on line ...
@@ -5717,9 +5715,6 @@ Defining \__prop_map_tokens:nwwn on line ...
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_rand_key_value:N on line ...
 Defining \prop_rand_key_value:c on line ...
-Defining \__prop_rand_key_item:nN on line ...
-Defining \__prop_rand_key_item:fN on line ...
-Defining \__prop_rand_key_item:nn on line ...
 Defining \__prop_rand_item:w on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
diff --git a/l3kernel/testfiles/m3expl001.xetex.tlg b/l3kernel/testfiles/m3expl001.xetex.tlg
index 7485633..d5830f8 100644
--- a/l3kernel/testfiles/m3expl001.xetex.tlg
+++ b/l3kernel/testfiles/m3expl001.xetex.tlg
@@ -2038,8 +2038,6 @@ Defining \bool_do_while:nn on line ...
 Defining \bool_until_do:nn on line ...
 Defining \bool_do_until:nn on line ...
 Defining \prg_replicate:nn on line ...
-Defining \__prg_replicate_first:n on line ...
-Defining \__prg_replicate_first:f on line ...
 Defining \__prg_replicate:N on line ...
 Defining \__prg_replicate_first:N on line ...
 Defining \__prg_replicate_ on line ...
@@ -5752,9 +5750,6 @@ Defining \__prop_map_tokens:nwwn on line ...
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_rand_key_value:N on line ...
 Defining \prop_rand_key_value:c on line ...
-Defining \__prop_rand_key_item:nN on line ...
-Defining \__prop_rand_key_item:fN on line ...
-Defining \__prop_rand_key_item:nn on line ...
 Defining \__prop_rand_item:w on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
diff --git a/l3kernel/testfiles/m3expl003.luatex.tlg b/l3kernel/testfiles/m3expl003.luatex.tlg
index a272544..41eecea 100644
--- a/l3kernel/testfiles/m3expl003.luatex.tlg
+++ b/l3kernel/testfiles/m3expl003.luatex.tlg
@@ -2040,8 +2040,6 @@ Defining \bool_do_while:nn on line ...
 Defining \bool_until_do:nn on line ...
 Defining \bool_do_until:nn on line ...
 Defining \prg_replicate:nn on line ...
-Defining \__prg_replicate_first:n on line ...
-Defining \__prg_replicate_first:f on line ...
 Defining \__prg_replicate:N on line ...
 Defining \__prg_replicate_first:N on line ...
 Defining \__prg_replicate_ on line ...
@@ -5780,9 +5778,6 @@ Defining \__prop_map_tokens:nwwn on line ...
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_rand_key_value:N on line ...
 Defining \prop_rand_key_value:c on line ...
-Defining \__prop_rand_key_item:nN on line ...
-Defining \__prop_rand_key_item:fN on line ...
-Defining \__prop_rand_key_item:nn on line ...
 Defining \__prop_rand_item:w on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
diff --git a/l3kernel/testfiles/m3expl003.ptex.tlg b/l3kernel/testfiles/m3expl003.ptex.tlg
index 4fce46d..f7dc002 100644
--- a/l3kernel/testfiles/m3expl003.ptex.tlg
+++ b/l3kernel/testfiles/m3expl003.ptex.tlg
@@ -1721,8 +1721,6 @@ Defining \bool_do_while:nn on line ...
 Defining \bool_until_do:nn on line ...
 Defining \bool_do_until:nn on line ...
 Defining \prg_replicate:nn on line ...
-Defining \__prg_replicate_first:n on line ...
-Defining \__prg_replicate_first:f on line ...
 Defining \__prg_replicate:N on line ...
 Defining \__prg_replicate_first:N on line ...
 Defining \__prg_replicate_ on line ...
@@ -5719,9 +5717,6 @@ Defining \__prop_map_tokens:nwwn on line ...
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_rand_key_value:N on line ...
 Defining \prop_rand_key_value:c on line ...
-Defining \__prop_rand_key_item:nN on line ...
-Defining \__prop_rand_key_item:fN on line ...
-Defining \__prop_rand_key_item:nn on line ...
 Defining \__prop_rand_item:w on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
diff --git a/l3kernel/testfiles/m3expl003.tlg b/l3kernel/testfiles/m3expl003.tlg
index 05ced54..8517a11 100644
--- a/l3kernel/testfiles/m3expl003.tlg
+++ b/l3kernel/testfiles/m3expl003.tlg
@@ -1721,8 +1721,6 @@ Defining \bool_do_while:nn on line ...
 Defining \bool_until_do:nn on line ...
 Defining \bool_do_until:nn on line ...
 Defining \prg_replicate:nn on line ...
-Defining \__prg_replicate_first:n on line ...
-Defining \__prg_replicate_first:f on line ...
 Defining \__prg_replicate:N on line ...
 Defining \__prg_replicate_first:N on line ...
 Defining \__prg_replicate_ on line ...
@@ -5719,9 +5717,6 @@ Defining \__prop_map_tokens:nwwn on line ...
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_rand_key_value:N on line ...
 Defining \prop_rand_key_value:c on line ...
-Defining \__prop_rand_key_item:nN on line ...
-Defining \__prop_rand_key_item:fN on line ...
-Defining \__prop_rand_key_item:nn on line ...
 Defining \__prop_rand_item:w on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
diff --git a/l3kernel/testfiles/m3expl003.uptex.tlg b/l3kernel/testfiles/m3expl003.uptex.tlg
index 34fb5fd..de1aff8 100644
--- a/l3kernel/testfiles/m3expl003.uptex.tlg
+++ b/l3kernel/testfiles/m3expl003.uptex.tlg
@@ -1721,8 +1721,6 @@ Defining \bool_do_while:nn on line ...
 Defining \bool_until_do:nn on line ...
 Defining \bool_do_until:nn on line ...
 Defining \prg_replicate:nn on line ...
-Defining \__prg_replicate_first:n on line ...
-Defining \__prg_replicate_first:f on line ...
 Defining \__prg_replicate:N on line ...
 Defining \__prg_replicate_first:N on line ...
 Defining \__prg_replicate_ on line ...
@@ -5717,9 +5715,6 @@ Defining \__prop_map_tokens:nwwn on line ...
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_rand_key_value:N on line ...
 Defining \prop_rand_key_value:c on line ...
-Defining \__prop_rand_key_item:nN on line ...
-Defining \__prop_rand_key_item:fN on line ...
-Defining \__prop_rand_key_item:nn on line ...
 Defining \__prop_rand_item:w on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...
diff --git a/l3kernel/testfiles/m3expl003.xetex.tlg b/l3kernel/testfiles/m3expl003.xetex.tlg
index 7485633..d5830f8 100644
--- a/l3kernel/testfiles/m3expl003.xetex.tlg
+++ b/l3kernel/testfiles/m3expl003.xetex.tlg
@@ -2038,8 +2038,6 @@ Defining \bool_do_while:nn on line ...
 Defining \bool_until_do:nn on line ...
 Defining \bool_do_until:nn on line ...
 Defining \prg_replicate:nn on line ...
-Defining \__prg_replicate_first:n on line ...
-Defining \__prg_replicate_first:f on line ...
 Defining \__prg_replicate:N on line ...
 Defining \__prg_replicate_first:N on line ...
 Defining \__prg_replicate_ on line ...
@@ -5752,9 +5750,6 @@ Defining \__prop_map_tokens:nwwn on line ...
 Defining \prop_map_tokens:cn on line ...
 Defining \prop_rand_key_value:N on line ...
 Defining \prop_rand_key_value:c on line ...
-Defining \__prop_rand_key_item:nN on line ...
-Defining \__prop_rand_key_item:fN on line ...
-Defining \__prop_rand_key_item:nn on line ...
 Defining \__prop_rand_item:w on line ...
 Defining \seq_mapthread_function:NNN on line ...
 Defining \__seq_mapthread_function:wNN on line ...





More information about the latex3-commits mailing list