[latex3-commits] [git/LaTeX3-latex3-latex3] morechk: make/fix chk errors being expandable (01ed7db)

Will Robertson wspr81 at gmail.com
Mon Apr 15 13:44:45 CEST 2019


Repository : https://github.com/latex3/latex3
On branch  : morechk
Link       : https://github.com/latex3/latex3/commit/01ed7db3d820bdc33403e5f1e06f4361333b4e27

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

commit 01ed7db3d820bdc33403e5f1e06f4361333b4e27
Author: Will Robertson <wspr81 at gmail.com>
Date:   Wed Jan 16 15:03:48 2019 +1030

    make/fix chk errors being expandable


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

01ed7db3d820bdc33403e5f1e06f4361333b4e27
 l3kernel/l3basics.dtx                              |   48 ++-
 l3kernel/l3fp-convert.dtx                          |    2 +-
 l3kernel/l3int.dtx                                 |    2 +-
 l3kernel/l3skip.dtx                                |    6 +-
 l3kernel/testfiles/m3chk001.tlg                    |   88 +++--
 l3kernel/testfiles/m3chk004.lvt                    |   96 ++++++
 l3kernel/testfiles/{m3rand001.tlg => m3chk004.tlg} |  345 ++++++++++----------
 7 files changed, 358 insertions(+), 229 deletions(-)

diff --git a/l3kernel/l3basics.dtx b/l3kernel/l3basics.dtx
index 7f51e80..e264ae6 100644
--- a/l3kernel/l3basics.dtx
+++ b/l3kernel/l3basics.dtx
@@ -1813,23 +1813,41 @@
                   { \token_to_str:N ##1 }
               }
           }
-        \cs_set_protected:Npn \__kernel_chk_var_exist:NT ##1 ##2
+        \cs_set_protected:Npn \__kernel_chk_cs_exist:N ##1
           {
             \@@_suspended:T \use_none:nnn
-            \cs_if_exist:NTF ##1
-              { ##2 }
+            \cs_if_exist:NF ##1
               {
-                \__kernel_msg_error:nnx { kernel } { non-declared-variable }
+                \__kernel_msg_error:nnx { kernel } { command-not-defined }
                   { \token_to_str:N ##1 }
               }
           }
-        \cs_set_protected:Npn \__kernel_chk_cs_exist:N ##1
+        \cs_set:Npn \__kernel_chk_exp_cs_exist:N ##1
           {
             \@@_suspended:T \use_none:nnn
             \cs_if_exist:NF ##1
               {
-                \__kernel_msg_error:nnx { kernel } { command-not-defined }
-                  { \token_to_str:N ##1 }
+                \__kernel_msg_expandable_error:nnn
+                  { kernel } { command-not-defined } { ##1 }
+              }
+          }
+        \cs_set:Npn \__kernel_chk_exp_var_exist:N ##1
+          {
+            \@@_suspended:T \use_none:nnn
+            \cs_if_exist:NF ##1
+              {
+                \__kernel_msg_expandable_error:nnn
+                  { kernel } { non-declared-variable } { ##1 }
+              }
+          }
+        \cs_set:Npn \__kernel_chk_exp_var_exist:NT ##1 ##2
+          {
+            \@@_suspended:T \use_none:nnnn
+            \cs_if_exist:NTF ##1
+              { ##2 }
+              {
+                \__kernel_msg_expandable_error:nnn
+                  { kernel } { non-declared-variable } { ##1 }
               }
           }
         \cs_set_protected:Npn \__kernel_chk_var_scope:NN
@@ -1853,8 +1871,10 @@
     \exp_args:Nc \cs_set_protected:Npn { @@_check-declarations_off: }
       {
         \cs_set_protected:Npn \__kernel_chk_var_exist:N ##1 { }
-        \cs_set_protected:Npn \__kernel_chk_var_exist:NT ##1##2 { ##2 }
         \cs_set_protected:Npn \__kernel_chk_cs_exist:N ##1 { }
+        \cs_set:Npn \__kernel_chk_exp_cs_exist:N  ##1 { }
+        \cs_set:Npn \__kernel_chk_exp_var_exist:N  ##1 { }
+        \cs_set:Npn \__kernel_chk_exp_var_exist:NT ##1##2 { ##2 }
         \cs_set_protected:Npn \__kernel_chk_var_local:N ##1 { }
         \cs_set_protected:Npn \__kernel_chk_var_global:N ##1 { }
         \cs_set_protected:Npn \__kernel_chk_var_scope:NN ##1##2 { }
@@ -1863,8 +1883,12 @@
       { \exp_args:Nc \__kernel_chk_cs_exist:N }
     \cs_set_protected:Npn \__kernel_chk_var_exist:c
       { \exp_args:Nc \__kernel_chk_var_exist:N }
-    \cs_set_protected:Npn \__kernel_chk_var_exist:cT
-      { \exp_args:Nc \__kernel_chk_var_exist:NT }
+    \cs_set:Npn \__kernel_chk_exp_cs_exist:c
+      { \exp_args:Nc \__kernel_chk_exp_cs_exist:N }
+    \cs_set:Npn \__kernel_chk_exp_var_exist:c
+      { \exp_args:Nc \__kernel_chk_exp_var_exist:N }
+    \cs_set:Npn \__kernel_chk_exp_var_exist:cT
+      { \exp_args:Nc \__kernel_chk_exp_var_exist:NT }
     \tex_ifodd:D \l at expl@check at declarations@bool
       \use:c { @@_check-declarations_on: }
     \else:
@@ -2826,12 +2850,12 @@
   {
     \cs_set:Npn \cs_use:N #1
       {
-        \__kernel_chk_cs_exist:N #1
+        \__kernel_chk_exp_cs_exist:N #1
         #1
       }
     \cs_set:Npn \cs_use:c #1
       {
-        \__kernel_chk_cs_exist:c {#1}
+        \__kernel_chk_exp_cs_exist:c {#1}
         \cs:w #1 \cs_end:
       }
   }
diff --git a/l3kernel/l3fp-convert.dtx b/l3kernel/l3fp-convert.dtx
index 52a6057..f8658a7 100644
--- a/l3kernel/l3fp-convert.dtx
+++ b/l3kernel/l3fp-convert.dtx
@@ -548,7 +548,7 @@
   {
     \cs_new:Npn \fp_use:N #1
       {
-        \__kernel_chk_var_exist:NT #1 { \fp_to_decimal:N #1 }
+        \__kernel_chk_exp_var_exist:NT #1 { \fp_to_decimal:N #1 }
       }
   }
   {
diff --git a/l3kernel/l3int.dtx b/l3kernel/l3int.dtx
index 6312a2c..0f7ecb4 100644
--- a/l3kernel/l3int.dtx
+++ b/l3kernel/l3int.dtx
@@ -1480,7 +1480,7 @@
   {
     \cs_new:Npn \int_use:c #1
       {
-        \__kernel_chk_var_exist:c {#1}
+        \__kernel_chk_exp_var_exist:c {#1}
         \tex_the:D \cs:w #1 \cs_end:
       }
   }
diff --git a/l3kernel/l3skip.dtx b/l3kernel/l3skip.dtx
index ba38049..60f5aa1 100644
--- a/l3kernel/l3skip.dtx
+++ b/l3kernel/l3skip.dtx
@@ -1675,7 +1675,7 @@
   {
     \cs_new:Npn \dim_use:c #1
       {
-        \__kernel_chk_var_exist:c {#1}
+        \__kernel_chk_exp_var_exist:c {#1}
         \tex_the:D \cs:w #1 \cs_end:
       }
   }
@@ -2030,7 +2030,7 @@
   {
     \cs_new:Npn \skip_use:c #1
       {
-        \__kernel_chk_var_exist:c {#1}
+        \__kernel_chk_exp_var_exist:c {#1}
         \tex_the:D \cs:w #1 \cs_end:
       }
   }
@@ -2310,7 +2310,7 @@
   {
     \cs_new:Npn \muskip_use:c #1
       {
-        \__kernel_chk_var_exist:c {#1}
+        \__kernel_chk_exp_var_exist:c {#1}
         \tex_the:D \cs:w #1 \cs_end:
       }
   }
diff --git a/l3kernel/testfiles/m3chk001.tlg b/l3kernel/testfiles/m3chk001.tlg
index 9cb2687..30d1cfe 100644
--- a/l3kernel/testfiles/m3chk001.tlg
+++ b/l3kernel/testfiles/m3chk001.tlg
@@ -106,26 +106,23 @@ 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.
-! You can't use `\edef' after \the.
-\use:x #1->\cs_set_nopar:Npx 
-                             \l__exp_internal_tl {#1}\l__exp_internal_tl 
-l. ...  }
-I'm forgetting what you said and using zero instead.
-! LaTeX3 Error: The variable \token_to_str:N \l_B_int  has not been declared
-(LaTeX3)        on line ....
-For immediate help type H <return>.
- ...                                              
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           The variable \l_B_int  has not been declared \msg...
 l. ...  }
-This is a coding error.
-Checking is active, and you have tried do so something like:
-  \tl_set:Nn \token_to_str:N \l_B_int  { ... }
-without first having:
-  \tl_new:N \token_to_str:N \l_B_int 
-LaTeX will create the variable and continue.
+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.
 ! You can't use `\relax' after \the.
 <recently read> \l_B_int 
 l. ...  }
 I'm forgetting what you said and using zero instead.
+! You can't use `the character 0' after \the.
+<inserted text> 0
+l. ...  }
+I'm forgetting what you said and using zero instead.
 ============================================================
 DIM
 ! Undefined control sequence.
@@ -137,26 +134,23 @@ 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.
-! You can't use `\edef' after \the.
-\use:x #1->\cs_set_nopar:Npx 
-                             \l__exp_internal_tl {#1}\l__exp_internal_tl 
-l. ...  }
-I'm forgetting what you said and using zero instead.
-! LaTeX3 Error: The variable \token_to_str:N \l_B_dim  has not been declared
-(LaTeX3)        on line ....
-For immediate help type H <return>.
- ...                                              
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           The variable \l_B_dim  has not been declared \msg...
 l. ...  }
-This is a coding error.
-Checking is active, and you have tried do so something like:
-  \tl_set:Nn \token_to_str:N \l_B_dim  { ... }
-without first having:
-  \tl_new:N \token_to_str:N \l_B_dim 
-LaTeX will create the variable and continue.
+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.
 ! You can't use `\relax' after \the.
 <recently read> \l_B_dim 
 l. ...  }
 I'm forgetting what you said and using zero instead.
+! You can't use `the character 0' after \the.
+<inserted text> 0
+l. ...  }
+I'm forgetting what you said and using zero instead.
 ============================================================
 SKIP
 ! Undefined control sequence.
@@ -341,25 +335,23 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ============================================================
 FP
-! LaTeX3 Error: The variable \l_B_fp has not been declared on line ....
-For immediate help type H <return>.
- ...                                              
+! Undefined control sequence.
+<argument> \LaTeX3 error: 
+                           The variable \l_B_fp  has not been declared \msg_...
 l. ...  }
-This is a coding error.
-Checking is active, and you have tried do so something like:
-  \tl_set:Nn \l_B_fp { ... }
-without first having:
-  \tl_new:N \l_B_fp
-LaTeX will create the variable and continue.
-! LaTeX3 Error: The variable \l_B_fp has not been declared on line ....
-For immediate help type H <return>.
- ...                                              
+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: 
+                           The variable \l_B_fp  has not been declared \msg_...
 l. ...  }
-This is a coding error.
-Checking is active, and you have tried do so something like:
-  \tl_set:Nn \l_B_fp { ... }
-without first having:
-  \tl_new:N \l_B_fp
-LaTeX will create the variable and continue.
+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.
 ============================================================
 ============================================================
diff --git a/l3kernel/testfiles/m3chk004.lvt b/l3kernel/testfiles/m3chk004.lvt
new file mode 100644
index 0000000..5fd61ab
--- /dev/null
+++ b/l3kernel/testfiles/m3chk004.lvt
@@ -0,0 +1,96 @@
+%
+% Copyright (C) 2019 The LaTeX3 Project
+%
+
+\documentclass{minimal}
+\input{regression-test}
+
+
+
+% Leave some padding so that the line numbers
+% of the tests don't change later on.
+
+
+
+\RequirePackage[enable-debug]{expl3}
+\ExplSyntaxOn
+\debug_on:n { all }
+\ExplSyntaxOff
+
+\begin{document}
+
+\START
+\AUTHOR{Will Robertson}
+\ExplSyntaxOn
+
+\OMIT
+\cs_new:Npn \cs_aaa: {}
+\tl_new:N  \l_A_tl
+\str_new:N  \l_A_str
+%% there is no \quark_use:N :)
+\int_new:N \l_A_int
+\dim_new:N \l_A_dim
+\skip_new:N \l_A_skip
+\muskip_new:N \l_A_muskip
+\fp_new:N \l_A_fp
+\seq_new:N \l_A_seq
+\clist_new:N \l_A_clist
+\TIMO
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\TEST { Use~ variables~ (defined) }
+  {
+    \TYPE{CS:      \cs_use:N       \cs_aaa:        }\SEPARATOR
+    \TYPE{CS:      \cs_use:c       {cs_aaa:}       }\SEPARATOR
+    \TYPE{TL:      \tl_use:N       \l_A_tl         }\SEPARATOR
+    \TYPE{TL:      \tl_use:c       {l_A_tl}        }\SEPARATOR
+    \TYPE{STR:     \str_use:N      \l_A_str        }\SEPARATOR
+    \TYPE{STR:     \str_use:c      {l_A_str}       }\SEPARATOR
+    \TYPE{INT:     \int_use:N      \l_A_int        }\SEPARATOR
+    \TYPE{INT:     \int_use:c      {l_A_int}       }\SEPARATOR
+    \TYPE{DIM:     \dim_use:N      \l_A_dim        }\SEPARATOR
+    \TYPE{DIM:     \dim_use:c      {l_A_dim}       }\SEPARATOR
+    \TYPE{SKIP:    \skip_use:N     \l_A_skip       }\SEPARATOR
+    \TYPE{SKIP:    \skip_use:c     {l_A_skip}      }\SEPARATOR
+    \TYPE{MUSKIP:  \muskip_use:N   \l_A_muskip     }\SEPARATOR
+    \TYPE{MUSKIP:  \muskip_use:c   {l_A_muskip}    }\SEPARATOR
+    \TYPE{SEQ:     \seq_use:Nn     \l_A_seq  {}    }\SEPARATOR
+    \TYPE{SEQ:     \seq_use:cn     {l_A_seq} {}    }\SEPARATOR
+    \TYPE{CLIST:   \clist_use:Nn   \l_A_clist  {}  }\SEPARATOR
+    \TYPE{CLIST:   \clist_use:cn   {l_A_clist} {}  }\SEPARATOR
+    \TYPE{FP:      \fp_use:N       \l_A_fp         }\SEPARATOR
+    \TYPE{FP:      \fp_use:c       {l_A_fp}        }\SEPARATOR
+  }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\TEST { Use~ variables~ (undefined) }
+  {
+    \TYPE{CS:      \cs_use:N       \cs_bbb:        }\SEPARATOR
+    \TYPE{CS:      \cs_use:c       {cs_bbb:}       }\SEPARATOR
+    \TYPE{TL:      \tl_use:N       \l_B_tl         }\SEPARATOR
+    \TYPE{TL:      \tl_use:c       {l_B_tl}        }\SEPARATOR
+    \TYPE{STR:     \str_use:N      \l_B_str        }\SEPARATOR
+    \TYPE{STR:     \str_use:c      {l_B_str}       }\SEPARATOR
+    \TYPE{INT:     \int_use:N      \l_B_int        }\SEPARATOR
+    \TYPE{INT:     \int_use:c      {l_B_int}       }\SEPARATOR
+    \TYPE{DIM:     \dim_use:N      \l_B_dim        }\SEPARATOR
+    \TYPE{DIM:     \dim_use:c      {l_B_dim}       }\SEPARATOR
+    \TYPE{SKIP:    \skip_use:N     \l_B_skip       }\SEPARATOR
+    \TYPE{SKIP:    \skip_use:c     {l_B_skip}      }\SEPARATOR
+    \TYPE{MUSKIP:  \muskip_use:N   \l_B_muskip     }\SEPARATOR
+    \TYPE{MUSKIP:  \muskip_use:c   {l_B_muskip}    }\SEPARATOR
+    \TYPE{SEQ:     \seq_use:Nn     \l_B_seq  {}    }\SEPARATOR
+    \TYPE{SEQ:     \seq_use:cn     {l_B_seq} {}    }\SEPARATOR
+    \TYPE{CLIST:   \clist_use:Nn   \l_B_clist  {}  }\SEPARATOR
+    \TYPE{CLIST:   \clist_use:cn   {l_B_clist} {}  }\SEPARATOR
+    \TYPE{FP:      \fp_use:N       \l_B_fp         }\SEPARATOR
+    \TYPE{FP:      \fp_use:c       {l_B_fp}        }\SEPARATOR
+  }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\END
+\end{document}
diff --git a/l3kernel/testfiles/m3rand001.tlg b/l3kernel/testfiles/m3chk004.tlg
similarity index 66%
copy from l3kernel/testfiles/m3rand001.tlg
copy to l3kernel/testfiles/m3chk004.tlg
index b62f6c1..9318819 100644
--- a/l3kernel/testfiles/m3rand001.tlg
+++ b/l3kernel/testfiles/m3chk004.tlg
@@ -1,50 +1,56 @@
 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.240735155533066
-0.5852214353430764
-0.7180176671856077
-0.3615756894278821
-0.4478174648957779
-============================================================
-============================================================
-TEST 2: Random integer
-============================================================
-2
-1
-1
-2
-1
--9999999999999999
--9999999999999998
--9999999999999999
--9999999999999999
--9999999999999999
-174462024
-43469076
-964237967
-281796922
-571531749
-647645817006079
-6227277400369880
-4448422924240445
-5041817501660381
-2577799052913806
-8570669930344415
-4534632579885364
-9640121450586277
-928036911121429
--493197266565851
-============================================================
-============================================================
-TEST 3: Random bad arguments
+Author: Will Robertson
+============================================================
+TEST 1: Use variables (defined)
+============================================================
+CS:
+============================================================
+CS:
+============================================================
+TL:
+============================================================
+TL:
+============================================================
+STR:
+============================================================
+STR:
+============================================================
+INT:0
+============================================================
+INT:0
+============================================================
+DIM:0.0pt
+============================================================
+DIM:0.0pt
+============================================================
+SKIP:0.0pt
+============================================================
+SKIP:0.0pt
+============================================================
+MUSKIP:0.0mu
+============================================================
+MUSKIP:0.0mu
+============================================================
+SEQ:
+============================================================
+SEQ:
+============================================================
+CLIST:
+============================================================
+CLIST:
+============================================================
+FP:0
+============================================================
+FP:0
+============================================================
+============================================================
+============================================================
+TEST 2: Use variables (undefined)
 ============================================================
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Missing number before ','.
+                           Control sequence \cs_bbb:  undefined.
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -52,283 +58,294 @@ 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.
+<argument> \cs_bbb: 
 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.
+CS:
+============================================================
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           rand() expects between 0 and 0 arguments.
+                           Control sequence \cs_bbb:  undefined.
 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.
+CS:\cs_bbb: 
+============================================================
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           rand() expects between 0 and 0 arguments.
+                           Erroneous variable \l_B_tl used!
 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.
+TL:
+============================================================
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Arguments in randint() are invalid.
+                           Erroneous variable \l_B_tl used!
 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.
+TL:
+============================================================
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Invalid operation randint(1, 0)
+                           Erroneous variable \l_B_str used!
 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.
+STR:
+============================================================
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Invalid operation randint(1, 1e16)
+                           Erroneous variable \l_B_str used!
 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.
+STR:
+============================================================
 ! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Invalid operation randint(9900000000000000, 1e16)
+<write> INT:\int_use:N \l_B_int 
 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.
+! You can't use `end-group character }' after \the.
+<inserted text> }
+                 \endwrite 
+l. ...  }
+I'm forgetting what you said and using zero instead.
+Runaway text?
+INT:0
+! Forbidden control sequence found while scanning text of \write.
+<inserted text> 
+                }
+l. ...  }
+I suspect you have forgotten a `}', causing me
+to read past where you wanted me to stop.
+I'll try to recover; but if the error is serious,
+you'd better type `E' or `X' now and fix your file.
+INT:0 
+============================================================
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Invalid operation randint(-1e16, -1000000000000000)
+                           The variable \l_B_int  has not been declared \msg...
 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.
+! You can't use `\relax' after \the.
+<recently read> \l_B_int 
+l. ...  }
+I'm forgetting what you said and using zero instead.
+INT:0
+============================================================
 ! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Arguments in randint(1, 2, 3) are invalid.
+<write> DIM:\dim_use:N \l_B_dim 
 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.
+! You can't use `end-group character }' after \the.
+<inserted text> }
+                 \endwrite 
+l. ...  }
+I'm forgetting what you said and using zero instead.
+Runaway text?
+DIM:0
+! Forbidden control sequence found while scanning text of \write.
+<inserted text> 
+                }
+l. ...  }
+I suspect you have forgotten a `}', causing me
+to read past where you wanted me to stop.
+I'll try to recover; but if the error is serious,
+you'd better type `E' or `X' now and fix your file.
+DIM:0 
+============================================================
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Invalid operation randint(1, nan)
+                           The variable \l_B_dim  has not been declared \msg...
 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.
+! You can't use `\relax' after \the.
+<recently read> \l_B_dim 
+l. ...  }
+I'm forgetting what you said and using zero instead.
+DIM:0
+============================================================
 ! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Invalid operation randint(1, inf)
+<write> SKIP:\skip_use:N \l_B_skip 
 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.
+! You can't use `end-group character }' after \the.
+<inserted text> }
+                 \endwrite 
+l. ...  }
+I'm forgetting what you said and using zero instead.
+Runaway text?
+SKIP:0
+! Forbidden control sequence found while scanning text of \write.
+<inserted text> 
+                }
+l. ...  }
+I suspect you have forgotten a `}', causing me
+to read past where you wanted me to stop.
+I'll try to recover; but if the error is serious,
+you'd better type `E' or `X' now and fix your file.
+SKIP:0 
+============================================================
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Invalid operation randint(nan, 0)
+                           The variable \l_B_skip  has not been declared \ms...
 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.
+! You can't use `\relax' after \the.
+<recently read> \l_B_skip 
+l. ...  }
+I'm forgetting what you said and using zero instead.
+SKIP:0
+============================================================
 ! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Invalid operation randint(inf, 0)
+<write> MUSKIP:\muskip_use:N \l_B_muskip 
 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.
+! You can't use `end-group character }' after \the.
+<inserted text> }
+                 \endwrite 
+l. ...  }
+I'm forgetting what you said and using zero instead.
+Runaway text?
+MUSKIP:0
+! Forbidden control sequence found while scanning text of \write.
+<inserted text> 
+                }
+l. ...  }
+I suspect you have forgotten a `}', causing me
+to read past where you wanted me to stop.
+I'll try to recover; but if the error is serious,
+you'd better type `E' or `X' now and fix your file.
+MUSKIP:0 
+============================================================
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Bounds ordered backwards in \int_rand:nn {1} {0}.
+                           The variable \l_B_muskip  has not been declared \...
 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.
+! You can't use `\relax' after \the.
+<recently read> \l_B_muskip 
+l. ...  }
+I'm forgetting what you said and using zero instead.
+MUSKIP:0
+============================================================
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           rand() expects between 0 and 0 arguments.
+                           Erroneous variable \l_B_seq used!
 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.
+SEQ:
+============================================================
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Arguments in randint((1, 2),) are invalid.
+                           Erroneous variable \l_B_seq used!
 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.
+SEQ:
+============================================================
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Arguments in randint((), ()) are invalid.
+                           Erroneous variable \l_B_clist used!
 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
-0
-nan
-nan
-nan
-============================================================
-============================================================
-TEST 4: Random integer in a range
-============================================================
-|-1|1|-1|1|0|0|1|-1|1|0|1|1|-1|-1|1|
-|-2147483647|-2147483647|-2147483647|-2147483647|-2147483647|-2147483647|-2147483647|-2147483647|-2147483647|-2147483647|-2147483647|-2147483647|-2147483647|-2147483647|-2147483647|
-|-2147483645|-2147483647|-2147483645|-2147483639|-2147483646|-2147483641|-2147483637|-2147483641|-2147483637|-2147483643|-2147483639|-2147483642|-2147483644|-2147483637|-2147483645|
-|-596581922|1829512184|-11249077|167662723|1619170613|-591422440|-440749724|1350338119|2054692807|-1880919426|-973590519|645137860|1859361099|1234117834|925471348|
-============================================================
-============================================================
-TEST 5: Random tl item
-============================================================
-||
-|\A |\A |\A |\A |\A |\A |\A |\A |\A |\A |\A |\A |\A |\A |\A |
-| \B |\A |\A |\A | \B |\A |\A |\A | \B | \B | \B | \B |\A |\A | \B |
-|\C |\A |\C |\C |\C |{\B }|\A |\A |\A |{\B }|\C |{\B }|\C |{\B }|{\B }|
-||||||||||||||||
-||||||||||||||||
-| || | | || | || | | | |||
-|&| |&|&|##|##|&| | | |##| |\A | | |
-============================================================
-============================================================
-TEST 6: Random clist item
-============================================================
-||
-|\A |\B |\B |\A |\A |\A |\B |\A |\B |\B |\A |\B |\A |\B |\A |
-| \B |\A | ,| ,|{}|\A | ,| ,| \B | ,| \B |\A |\A |{}|\A |
-||||||||||||||||
-|||| ,| ,| ,| ,|| ,|||| ,| ,| ,|
-|##|##|\\|&|##|,|,|,|\A |##|\A |&|,|\A |\\|
-============================================================
-============================================================
-TEST 7: Random seq item
-============================================================
-||||||||||||||||
-| ,||||| ,|||| ,| ,|| ,|||
-|\A |{\\}|\A |&|\A |##|\A |&|\A |,|##|\A |##|{\\}|,|
-============================================================
-============================================================
-TEST 8: Random prop key/value
-============================================================
-||||||||||||||||
-|{\e }{}|{\e }{}|{\a }{\A }|{\b }{{\B }}|{\b }{{\B }}|{\a }{\A }|{\e }{}|{\b }{{\B }}|{\b }{{\B }}|{\a }{\A }|{\e }{}|{\a }{\A }|{\e }{}|{\a }{\A }|{\a }{\A }|
-============================================================
-============================================================
-TEST 9: sys rand commands
-============================================================
-1,71
-0,25
-0,36
-1,71
-1,55
-============================================================
-============================================================
-TEST 10: Random integer in a range
+CLIST:
 ============================================================
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Bounds ordered backwards in \int_rand:nn {1} {-1}.
+                           Erroneous variable \l_B_clist used!
 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.
-0
-|1226726384|1265411165|1466672355|1314947273|1555392836|894057289|2137710626|710093757|1198929759|1627898431|721692715|464072634|708598373|1712025573|1781216300|
-|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|
-|9|6|10|4|6|10|3|8|7|1|6|2|1|9|10|
-============================================================
-============================================================
-TEST 11: Random intarray item
+CLIST:
 ============================================================
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Bounds ordered backwards in \int_rand:nn {1} {0}.
+                           The variable \l_B_fp  has not been declared \msg_...
 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.
+FP:
+============================================================
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Access to an entry beyond an array's bounds.
+                           The variable \l_B_fp  has not been declared \msg_...
 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.
-0
-|1|3|1|3|3|3|1|3|3|3|3|3|3|3|3|
-============================================================
-Defining \g_testb_intarray on line ...
-============================================================
-TEST 12: Random intarray contents
-============================================================
--1,0,2,-2,2,-1,2,-2,3,-1,3,2,0,4,5
-820580739,-112220571,-698712122,-22653540,596754623,569851830,-76814189,812455767,554030471,858568271,-761913564,-698174727,-492774578,-1035763579,1060453552
-============================================================
-============================================================
-TEST 13: Random integer (issue 507)
+FP:
 ============================================================
-0
-2
-0
-1
-2
 ============================================================





More information about the latex3-commits mailing list