[latex3-commits] [git/LaTeX3-latex3-latex3] gh931-errors-v2: Correct expandable errors throughout the LaTeX3 repository (see #931) (c04054027)

Joseph Wright joseph.wright at morningstar2.co.uk
Thu Aug 26 10:41:54 CEST 2021


Repository : https://github.com/latex3/latex3
On branch  : gh931-errors-v2
Link       : https://github.com/latex3/latex3/commit/c040540276d0e56a39ee3b16918bde1b3eb0e611

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

commit c040540276d0e56a39ee3b16918bde1b3eb0e611
Author: Bruno Le Floch <blflatex at gmail.com>
Date:   Sun Aug 15 10:41:54 2021 +0200

    Correct expandable errors throughout the LaTeX3 repository (see #931)


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

c040540276d0e56a39ee3b16918bde1b3eb0e611
 l3experimental/l3str/testfiles/m3str-format001.tlg | 120 ++++++++++-----------
 l3packages/xfp/testfiles/xfp001.tlg                |  30 +++---
 ...symbolic001.tlg => m3fp-symbolic001.luatex.tlg} |  68 ++++++------
 l3trial/l3fp-extras/testfiles/m3fp-symbolic001.tlg |  68 ++++++------
 l3trial/l3kernel-extras/l3kernel-extras.dtx        |   9 +-
 .../testfiles/m3kernel-extras007.luatex.tlg        |   6 +-
 .../testfiles/m3kernel-extras007.lvt               |   6 +-
 .../testfiles/m3kernel-extras007.tlg               |  32 +++---
 8 files changed, 162 insertions(+), 177 deletions(-)

diff --git a/l3experimental/l3str/testfiles/m3str-format001.tlg b/l3experimental/l3str/testfiles/m3str-format001.tlg
index 83c45a57f..ffafaed55 100644
--- a/l3experimental/l3str/testfiles/m3str-format001.tlg
+++ b/l3experimental/l3str/testfiles/m3str-format001.tlg
@@ -38,78 +38,70 @@ TEST 2: Formatting token list (empty and spaces)
 ============================================================
 TEST 3: Invalid formattings for token lists
 ============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Invalid alignment '=' for type 'tl'.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX3 Error: Invalid alignment '=' for type 'tl'.
 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 sign '+' for type 'tl'.
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX3 Error: Invalid sign '+' for type 'tl'.
 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 sign ' ' for type 'tl'.
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX3 Error: Invalid sign ' ' for type 'tl'.
 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 sign '-' for type 'tl'.
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX3 Error: Invalid sign '-' for type 'tl'.
 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 style '-' for type 'tl'.
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX3 Error: Invalid style '-' for type 'tl'.
 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 style '.' for type 'tl'.
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX3 Error: Invalid style '.' for type 'tl'.
 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 sign '+' for type 'tl'.
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX3 Error: Invalid sign '+' for type 'tl'.
 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 style 't' for type 'tl'.
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX3 Error: Invalid style 't' for type 'tl'.
 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.
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
 |abcdef|
 |abcdef|
 |abcdef|
diff --git a/l3packages/xfp/testfiles/xfp001.tlg b/l3packages/xfp/testfiles/xfp001.tlg
index dec501de5..1d1798b4d 100644
--- a/l3packages/xfp/testfiles/xfp001.tlg
+++ b/l3packages/xfp/testfiles/xfp001.tlg
@@ -9,24 +9,22 @@ TEST 1: fpeval
 ============================================================
 |3.25476989|
 |0.0000000000000002384626433832795|
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Unknown fp word foobar.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX3 Error: Unknown fp word foobar.
 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 fp_to_decimal(nan)
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX3 Error: Invalid operation fp_to_decimal(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.
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
 |0|
 ============================================================
 ============================================================
diff --git a/l3trial/l3fp-extras/testfiles/m3fp-symbolic001.tlg b/l3trial/l3fp-extras/testfiles/m3fp-symbolic001.luatex.tlg
similarity index 75%
copy from l3trial/l3fp-extras/testfiles/m3fp-symbolic001.tlg
copy to l3trial/l3fp-extras/testfiles/m3fp-symbolic001.luatex.tlg
index a2f89db6d..9d75becc4 100644
--- a/l3trial/l3fp-extras/testfiles/m3fp-symbolic001.tlg
+++ b/l3trial/l3fp-extras/testfiles/m3fp-symbolic001.luatex.tlg
@@ -16,42 +16,38 @@ Defining \__fp_parse_word_C:N on line ...
 ============================================================
 TEST 2: Conversions
 ============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Invalid operation fp_to_decimal((A)+((B)^(2)))
-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 fp_to_dim((A)+((B)^(2)))
-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 fp_to_int((A)+((B)^(2)))
-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 fp_to_scientific((A)+((B)^(2)))
-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.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+      ! LaTeX3 Error: Invalid operation fp_to_decimal((A)+((B)^(2)))
+l. ...  }
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+      ! LaTeX3 Error: Invalid operation fp_to_dim((A)+((B)^(2)))
+l. ...  }
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+      ! LaTeX3 Error: Invalid operation fp_to_int((A)+((B)^(2)))
+l. ...  }
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+      ! LaTeX3 Error: Invalid operation fp_to_scientific((A)+((B)^(2)))
+l. ...  }
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
 0
 0pt
 0
diff --git a/l3trial/l3fp-extras/testfiles/m3fp-symbolic001.tlg b/l3trial/l3fp-extras/testfiles/m3fp-symbolic001.tlg
index a2f89db6d..20a56563f 100644
--- a/l3trial/l3fp-extras/testfiles/m3fp-symbolic001.tlg
+++ b/l3trial/l3fp-extras/testfiles/m3fp-symbolic001.tlg
@@ -16,42 +16,38 @@ Defining \__fp_parse_word_C:N on line ...
 ============================================================
 TEST 2: Conversions
 ============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Invalid operation fp_to_decimal((A)+((B)^(2)))
-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 fp_to_dim((A)+((B)^(2)))
-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 fp_to_int((A)+((B)^(2)))
-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 fp_to_scientific((A)+((B)^(2)))
-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.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX3 Error: Invalid operation fp_to_decimal((A)+((B)^(2)))
+l. ...  }
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX3 Error: Invalid operation fp_to_dim((A)+((B)^(2)))
+l. ...  }
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX3 Error: Invalid operation fp_to_int((A)+((B)^(2)))
+l. ...  }
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! LaTeX3 Error: Invalid operation fp_to_scientific((A)+((B)...
+l. ...  }
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
 0
 0pt
 0
diff --git a/l3trial/l3kernel-extras/l3kernel-extras.dtx b/l3trial/l3kernel-extras/l3kernel-extras.dtx
index 6d31f3503..6be6c3bfd 100644
--- a/l3trial/l3kernel-extras/l3kernel-extras.dtx
+++ b/l3trial/l3kernel-extras/l3kernel-extras.dtx
@@ -582,8 +582,7 @@
 %
 % \subsection{Expandable warnings}
 %
-% We already know how to get expandable errors (see
-% \cs{__msg_expandable_error:n}).  It turns out that \eTeX{}'s
+% We already know how to get expandable errors.  It turns out that \eTeX{}'s
 % \cs{tracingnesting} can be abused to produce custom warnings
 % expandably.
 %
@@ -716,7 +715,7 @@
 %    \begin{macrocode}
 \sys_if_engine_luatex:T
   {
-    \cs_gset:Npx \__msg_expandable_error:n #1
+    \cs_gset:Npx \__msg_expandable_error:nn #1#2
       {
         \exp_not:N \tex_directlua:D
           \exp_not:N \use:n
@@ -725,13 +724,13 @@
                 tex.error
                   ( "
                     \exp_not:N \tex_luaescapestring:D
-                      { \exp_not:N \tl_to_str:n { LaTeX3~error:~#1} }
+                      { \exp_not:N \tl_to_str:n { #2:~#1} }
                   " )
                 \prg_replicate:nn { 50 } { ~ }
               }
             }
       }
-    \cs_undefine:N \__msg_expandable_error:w
+    % \cs_undefine:c { ??? }
   }
 %    \end{macrocode}
 %
diff --git a/l3trial/l3kernel-extras/testfiles/m3kernel-extras007.luatex.tlg b/l3trial/l3kernel-extras/testfiles/m3kernel-extras007.luatex.tlg
index 810bbcb60..2df15e43e 100644
--- a/l3trial/l3kernel-extras/testfiles/m3kernel-extras007.luatex.tlg
+++ b/l3trial/l3kernel-extras/testfiles/m3kernel-extras007.luatex.tlg
@@ -1,15 +1,17 @@
 This is a generated file for the LaTeX (2e + expl3) validation system.
 Don't change this file in any respect.
 Author: Bruno Le Floch
+Defining message test/a on line ...
+Defining message test/b on line ...
 ============================================================
 TEST 1: expandable warnings and errors
 ============================================================
 l. ...LaTeX3 warning: a
 l. ...LaTeX3 warning: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-! LaTeX3 error: a.
+! Package test Error: a.
 <argument> ...                                              }
 l. ...  }
-! LaTeX3 error: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.
+! Package test Error: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.
 <argument> ...                                              }
 l. ...  }
 ============================================================
diff --git a/l3trial/l3kernel-extras/testfiles/m3kernel-extras007.lvt b/l3trial/l3kernel-extras/testfiles/m3kernel-extras007.lvt
index e6b9c146a..cfdcdc155 100644
--- a/l3trial/l3kernel-extras/testfiles/m3kernel-extras007.lvt
+++ b/l3trial/l3kernel-extras/testfiles/m3kernel-extras007.lvt
@@ -19,13 +19,15 @@
 \START
 \AUTHOR{Bruno Le Floch}
 \ExplSyntaxOn
+\msg_new:nnn { test } { a } { a }
+\msg_new:nnn { test } { b } { aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa }
 
 \TESTEXP { expandable~warnings~and~errors }
   {
     \__msg_expandable_warning:n { a }
     \__msg_expandable_warning:n { aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa }
-    \__msg_expandable_error:n { a }
-    \__msg_expandable_error:n { aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa }
+    \msg_expandable_error:nn { test } { a }
+    \msg_expandable_error:nn { test } { b }
   }
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/l3trial/l3kernel-extras/testfiles/m3kernel-extras007.tlg b/l3trial/l3kernel-extras/testfiles/m3kernel-extras007.tlg
index e769658aa..0105551e6 100644
--- a/l3trial/l3kernel-extras/testfiles/m3kernel-extras007.tlg
+++ b/l3trial/l3kernel-extras/testfiles/m3kernel-extras007.tlg
@@ -1,6 +1,8 @@
 This is a generated file for the LaTeX (2e + expl3) validation system.
 Don't change this file in any respect.
 Author: Bruno Le Floch
+Defining message test/a on line ...
+Defining message test/b on line ...
 ============================================================
 TEST 1: expandable warnings and errors
 ============================================================
@@ -10,22 +12,20 @@ l. ...  }
 Warning: end of file when \if is incomplete
 l. ......g: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 l. ...  }
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           a
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! Package test Error: a
 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: 
-                           aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
+! Use of \??? doesn't match its definition.
+<argument> \???  
+                 ! Package test Error: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 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.
+If you say, e.g., `\def\a1{...}', then you must always
+put `1' after `\a', since control sequence names are
+made up of letters only. The macro here has not been
+followed by the required stuff, so I'm ignoring it.
 ============================================================





More information about the latex3-commits mailing list.