[latex3-commits] [git/LaTeX3-latex3-latex2e] ltcmdhooks: cleanup ltcmdhooks; more rollback work (c1b9b32e)
Frank Mittelbach
frank.mittelbach at latex-project.org
Mon Apr 19 21:13:05 CEST 2021
Repository : https://github.com/latex3/latex2e
On branch : ltcmdhooks
Link : https://github.com/latex3/latex2e/commit/c1b9b32e36ff54002cd65f9f3d61ac0e241dbc73
>---------------------------------------------------------------
commit c1b9b32e36ff54002cd65f9f3d61ac0e241dbc73
Author: Frank Mittelbach <frank.mittelbach at latex-project.org>
Date: Mon Apr 19 21:13:05 2021 +0200
cleanup ltcmdhooks;
more rollback work
>---------------------------------------------------------------
c1b9b32e36ff54002cd65f9f3d61ac0e241dbc73
base/ltcmd.dtx | 25 +--
base/ltcmdhooks.dtx | 175 +++++++++++++++------
base/lthooks.dtx | 2 +-
base/testfiles/github-0479-often.luatex.tlg | 2 +-
.../tlb-latexrelease-rollback-003-often.luatex.tlg | 4 +-
base/testfiles/tlb-rollback-004-often.luatex.tlg | 2 +-
base/testfiles/tlb-rollback-005.lvt | 23 +++
...{github-0479-often.tlg => tlb-rollback-005.tlg} | 56 ++++---
8 files changed, 206 insertions(+), 83 deletions(-)
diff --git a/base/ltcmd.dtx b/base/ltcmd.dtx
index 7ada84da..f0d22c6a 100644
--- a/base/ltcmd.dtx
+++ b/base/ltcmd.dtx
@@ -34,8 +34,8 @@
%%% From File: ltcmd.dtx
%
% \begin{macrocode}
-\def\ltcmdversion{v1.0c}
-\def\ltcmddate{2021-04-16}
+\def\ltcmdversion{v1.0d}
+\def\ltcmddate{2021-04-19}
% \end{macrocode}
%
%<*driver>
@@ -3195,7 +3195,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_get_arg_spec:NTF #1#2#3
{
- \@@_cmd_if_xparse:NTF #1
+ \__kernel_cmd_if_xparse:NTF #1
{
\tl_set:Nx \ArgumentSpecification { \tl_item:Nn #1 { 2 } }
#2
@@ -3373,15 +3373,20 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\@@_cmd_if_xparse:NTF}
+% \begin{macro}{\__kernel_cmd_if_xparse:NTF}
% \begin{macro}{\@@_cmd_if_xparse_aux:N}
-% To determine whether the command is an \pkg{xparse} command check
-% that its |arg_spec| is empty (this also excludes non-macros) and
-% that its |replacement_spec| starts with either \cs{@@_start:nNNnnn}
-% (non-expandable command) or \cs{@@_start_expandable:nNNNNn}
-% (expandable command) or \cs{@@_start_env:nnnnn} (environment).
+%
+% To determine whether the command is an \pkg{xparse} command check
+% that its |arg_spec| is empty (this also excludes non-macros) and
+% that its |replacement_spec| starts with either
+% \cs{@@_start:nNNnnn} (non-expandable command) or
+% \cs{@@_start_expandable:nNNNNn} (expandable command) or
+% \cs{@@_start_env:nnnnn} (environment).
+%
+% This conditional is needed in several kernel modules and is
+% therefore has a kernel-internal name.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_cmd_if_xparse:NTF #1
+\cs_new_protected:Npn \__kernel_cmd_if_xparse:NTF #1
{
\exp_args:Nf \str_case_e:nnTF
{
diff --git a/base/ltcmdhooks.dtx b/base/ltcmdhooks.dtx
index 25ec5dab..aa86ed62 100644
--- a/base/ltcmdhooks.dtx
+++ b/base/ltcmdhooks.dtx
@@ -13,7 +13,7 @@
%
%%% From File: ltcmdhooks.dtx
%
-\def\ltcmdhooksversion{v0.9d}
+\def\ltcmdhooksversion{v1.0a}
\def\ltcmdhooksdate{2021/04/19}
%
%
@@ -95,7 +95,7 @@
%\begin{verbatim}
% \AddToHook{cmd/foo/before}{<before code>}
%\end{verbatim}
-% then, after |\begin{document}| the definition of \tn{foo} will be:
+% then, after |\begin{document}| the definition of \cs[no-index]{foo} will be:
%\begin{verbatim}
% \renewcommand\foo[2]{\UseHook{cmd/foo/before}Code #1 for #2!}
%\end{verbatim}
@@ -107,9 +107,25 @@
%
% In other words, the mechanism is similar to what \pkg{etoolbox}
% offers with \tn{pretocmd} and \tn{apptocmd} with the important
-% difference that by using the hook management interface it is now
-% possible to define how the code chunks added in these places are
-% ordered, if different packages want to add code at these points.
+% differences
+% \begin{itemize}
+% \item
+%
+% that code can be prepended or appended (i.e., added to the
+% hooks) even if the command itself is not defined, because the
+% defining package has not yet been loaded
+%
+% \item
+%
+% and that by using the hook management interface it is now
+% possible to define how the code chunks added in these places
+% are ordered, if different packages want to add code at these
+% points.
+%
+% \end{itemize}
+%
+%
+%
%
% \section{Restrictions and Operational details}
% \label{sec:restrictions}
@@ -156,6 +172,8 @@
% patched to include the hook, and if it doesn't exist or if it can't be
% patched for any reason, an error is thrown.
%
+%
+%
% \subsection{Commands that look ahead}
% \label{sec:look-ahead}
%
@@ -174,6 +192,8 @@
% optional and mandatory arguments. By adding code to the
% \hook{cmd/section/after} hook, you get in the way of that scanning.
%
+%
+%
% \section{Package Author Interface}
%
% \hook{cmd} hooks are, by default, available for all commands that can
@@ -192,30 +212,27 @@
% that typesets its contents in a framed box with width optionally
% given in parentheses:
% \begin{verbatim}
-% \newcommand\fancybox{\@ifnextchar(%)
-% {\@fancybox}{\@fancybox(5cm)}}
-% \def\@fancybox(#1)#2{%
-% \fbox{\parbox{#1}{#2}}}
+% \newcommand\fancybox{\@ifnextchar({\@fancybox}{\@fancybox(5cm)}}
+% \def\@fancybox(#1)#2{\fbox{\parbox{#1}{#2}}}
% \end{verbatim}
% If you try that definition, then add some code after it with
% \begin{verbatim}
-% \AddToHook{cmd/fancybox/after}{<code>}
+% \AddToHook{cmd/fancybox/after}{<code>}
% \end{verbatim}
% and then use the \cs[no-index]{fancybox} command you will see that it
-% will be completely broken.
+% will be completely broken bcause the hook will get executed in the
+% middle of parsing for optional \texttt{(...)} argument.
%
% If, on the other hand, you want to add hooks to your command you can
% do something like:
% \begin{verbatim}
-% \newcommand\fancybox{\@ifnextchar(%)
-% {\@fancybox}{\@fancybox(5cm)}}
-% \def\@fancybox(#1)#2{%
-% \fbox{%
-% \UseHook{cmd/fancybox/before}%
-% \parbox{#1}{#2}%
-% \UseHook{cmd/fancybox/after}}}
-% \NewHook{cmd/fancybox/before}
-% \NewReversedHook{cmd/fancybox/after}
+% \newcommand\fancybox{\@ifnextchar({\@fancybox}{\@fancybox(5cm)}}
+% \def\@fancybox(#1)#2{\fbox{%
+% \UseHook{cmd/fancybox/before}%
+% \parbox{#1}{#2}%
+% \UseHook{cmd/fancybox/after}}}
+% \NewHook{cmd/fancybox/before}
+% \NewReversedHook{cmd/fancybox/after}
% \end{verbatim}
% then the hooks will be executed where they should and no patching
% will be attempted. It is important that the hooks are declared with
@@ -232,11 +249,25 @@
% will get an error. Or if you don't want the error, you can simply
% declare the hook with \cs{NewHook} and never use it.
%
+% The above approach is useful for really complex commands where for
+% one or the other reason the hooks can't be placed at the very
+% beginning and end of the command body and some hand-crafting is
+% needed. However, in the example above the real (and in fact only)
+% issue is the cascading argument parsing in the style developed long
+% ago in \LaTeX~2.09. Thus, a much simpler solution for this case is
+% to replace it with the modern \cs{NewDocumentCommand} syntax and
+% define the command as follows:
+% \begin{verbatim}
+% \DeclareDocumentCommand\fancybox{D(){5cm}m}{\fbox{\parbox{#1}{#2}}}
+% \end{verbatim}
+% If you do that then both hooks automatically work and are patched
+% into the right places.
+%
% \StopEventually{\setlength\IndexMin{200pt} \PrintIndex }
%
%
-% \section{The Implementation}
%
+% \section{The Implementation}
%
% \subsection{Execution plan}
%
@@ -244,7 +275,7 @@
% into the definition of a command, which is always a tricky thing to
% do. Some cases are easy because we know how the command was defined,
% so we can assume how its \meta{parameter text} looks like (for example
-% a command defined with \cs{newcommand} may have an optional argument
+% a command defined with \tn{newcommand} may have an optional argument
% followed by a run of mandatory arguments), so we can just expand that
% command and make it grab |#1|, |#2|, etc.\@ as arguments and
% define it all back with the hooks added.
@@ -259,7 +290,7 @@
% \begin{enumerate}
% \item
% Check if a command is of a known type (that is, defined with
-% \cs{newcommand}\footnote{It's not always possible to reliably
+% \tn{newcommand}\footnote{It's not always possible to reliably
% detect this case because a command defined with no optional
% argument is indistinguishable from a \tn{def}ed command.},
% \cs[no-index]{DeclareRobustCommand}, or
@@ -292,10 +323,13 @@
% \subsection{Variables}
%
% \begin{macro}[int]{\g_hook_patch_action_list_tl}
-% Pairs of |\if<cmd>..\patch<cmd>| to be used with
-% \tn{robust at command@act} when looking for a known patching rule.
-% \pho{Should this be documented? How/to what extent, as it's quite
-% specialised?}
+% Pairs of |\if<cmd>..\patch<cmd>| to be used with
+% \tn{robust at command@act} when looking for a known patching
+% rule. This token list is exposed because we see some future
+% applications (with very specialized packages, such as
+% \pkg{etoolbox} that may want to extend the pairs processed. It is
+% not meant for general use which is why it is not documented in
+% the interface documentation above.
% \begin{macrocode}
\tl_new:N \g_hook_patch_action_list_tl
% \end{macrocode}
@@ -347,7 +381,7 @@
% \end{macrocode}
% \end{macro}
%
-% \subsection{Patching or Delaying}
+% \subsection{Patching or delaying}
%
% \begin{macro}{\@@_try_put_cmd_hook:n,\@@_try_put_cmd_hook:w}
% Before |\begin{document}| all patching is delayed.
@@ -428,6 +462,10 @@
% \end{macrocode}
% \end{macro}
%
+%
+%
+%
+%
% \subsection{Patching commands}
%
% \begin{macro}{\@@_patch_command:Nnn}
@@ -503,23 +541,33 @@
% \end{macro}
% \end{macro}
%
+%
+%
+%
+%
+%
+%
% \subsubsection{Patching by expansion and redefinition}
%
-% \begin{macro}{\g_hook_patch_action_list_tl}
-% This is the list of known command types and the function that
-% patches the command hooks into them. The conditionals are taken
-% from \tn{ShowCommand} and \tn{NewCommandCopy}.
+% \begin{macro}[int]{\g_hook_patch_action_list_tl}
+% This is the list of known command types and the function that
+% patches the command hooks into them. The conditionals are taken
+% from \tn{ShowCommand}, \tn{NewCommandCopy} and
+% \cs{__kernel_cmd_if_xparse:NTF} defined in \texttt{ltcmd}.
% \begin{macrocode}
\tl_gset:Nn \g_hook_patch_action_list_tl
{
{ \@if at DeclareRobustCommand \@@_patch_DeclareRobustCommand:Nnn }
{ \@if at newcommand \@@_patch_newcommand:Nnn }
+ { \__kernel_cmd_if_xparse:NTF \@@_cmd_patch_xparse:Nn }
}
% \end{macrocode}
% \end{macro}
%
+%
+%
+%
% \begin{macro}{\@@_patch_DeclareRobustCommand:Nnn}
-% \begin{macro}{\@@_patch_newcommand:Nnn}
% At this point we know that the commands can be patched by expanding
% then redefining. These are the cases of commands defined with
% \tn{newcommand} with an optional argument or with
@@ -540,7 +588,11 @@
{ \cs_to_str:N #1 ~ }
}
% \end{macrocode}
+% \end{macro}
+%
%
+%
+% \begin{macro}{\@@_patch_newcommand:Nnn}
% If the command was defined with \tn{newcommand} and an optional
% argument, call the patching engine with a \cs{c_true_bool} to flag
% the presence of an optional argument, and with
@@ -554,7 +606,22 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
+
+
+% \begin{macro}{\@@_cmd_patch_xparse:Nn}
+% And for commands defined by the \pkg{xparse} commands use this
+% for patching:
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_cmd_patch_xparse:Nn #1 #2
+ {
+ \exp_args:NNc \@@_patch_expand_redefine:NNnn \c_false_bool
+ { \cs_to_str:N #1 ~ code } {#2}
+ }
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
%
% \begin{macro}{\@@_patch_expand_redefine:NNnn}
% \begin{macro}[EXP]{\@@_make_prefixes:w}
@@ -670,6 +737,11 @@
% \end{macro}
% \end{macro}
%
+%
+%
+%
+%
+%
% \subsubsection{Patching by retokenization}
%
% At this point we've drained the possibilities of patching a command by
@@ -756,6 +828,8 @@
% \end{macrocode}
% \end{macro}
%
+%
+%
% \begin{macro}{\@@_try_patch_with_catcodes:Nnnnw}
% This function is a simple wrapper around
% \cs{@@_cmd_if_scanable:NnTF} and \cs{@@_patch_retokenize:Nnnn} if
@@ -780,6 +854,9 @@
% \end{macrocode}
% \end{macro}
%
+%
+%
+%
% \begin{macro}[int]{\kerneltmpDoNotUse}
% This is an oddity required to be safe (as safe as reasonably
% possible) when patching the command. The entirety of
@@ -804,6 +881,8 @@
% and then putting everything together at the end.}
% \end{macro}
%
+%
+%
% \begin{macro}{\@@_patch_required_catcodes:}
% Here are the catcode settings that are \emph{mandatory} when
% retokenizing commands. These are the minimum necessary settings to
@@ -837,6 +916,9 @@
% the command name\ldots sigh\ldots}
% \end{macro}
%
+%
+%
+%
% \begin{macro}[TF]{\@@_cmd_if_scanable:Nn}
% Here we'll do a quick test if the command being patched can in fact
% be retokenized with the specific catcode setting without changing
@@ -875,6 +957,8 @@
% \end{macrocode}
% \end{macro}
%
+%
+%
% \begin{macro}{\@@_patch_retokenize:Nnnn}
% Then, if \cs{@@_cmd_if_scanable:NnTF} returned true, we can go on
% and patch the command.
@@ -970,25 +1054,18 @@
}
% \end{macrocode}
%
-% \subsection{Changes to \pkg{ltcmd}}
-% \pho{To be properly integrated}
%
% \begin{macrocode}
-\prg_new_eq_conditional:NNn \@@_cmd_if_xparse:N
- \__cmd_cmd_if_xparse:N { TF }
-\tl_gput_right:Nn \g_hook_patch_action_list_tl
- { { \@@_cmd_if_xparse:NTF \@@_cmd_patch_xparse:Nn } }
-\cs_new_protected:Npn \@@_cmd_patch_xparse:Nn #1 #2
- {
- \exp_args:NNc \@@_patch_expand_redefine:NNnn \c_false_bool
- { \cs_to_str:N #1 ~ code } {#2}
- }
+%<latexrelease>\IncludeInRelease{0000/00/00}{ltcmdhooks}%
+%<latexrelease> {The~hook~management~system~for~commands}
+%<latexrelease>
% \end{macrocode}
-%
-%
+% The command \cs{@@_cmd_begindocument_code:} is used in an
+% internal hook, so we need to make sure it has a harmless
+% definition after rollback as that will not remove it from the
+% kernel hook.
% \begin{macrocode}
-%<latexrelease>\IncludeInRelease{0000/00/00}{lthooks}%
-%<latexrelease> {The~hook~management~system~for~commands}
+%<latexrelease>\cs_set_eq:NN \@@_cmd_begindocument_code: \prg_do_nothing:
%<latexrelease>
%<latexrelease>\EndModuleRelease
\ExplSyntaxOff
diff --git a/base/lthooks.dtx b/base/lthooks.dtx
index 9ff81c5d..b086d9b5 100644
--- a/base/lthooks.dtx
+++ b/base/lthooks.dtx
@@ -31,7 +31,7 @@
%%% From File: lthooks.dtx
%
% \begin{macrocode}
-\def\lthooksversion{v1.0k}
+\def\lthooksversion{v1.0l}
\def\lthooksdate{2021/04/19}
% \end{macrocode}
%
diff --git a/base/testfiles/github-0479-often.luatex.tlg b/base/testfiles/github-0479-often.luatex.tlg
index 54300f32..0fe392da 100644
--- a/base/testfiles/github-0479-often.luatex.tlg
+++ b/base/testfiles/github-0479-often.luatex.tlg
@@ -128,7 +128,7 @@ BEGIN module: ltcmdhooks (....-..-..) on input line ....
The hook management system for commands.
Skipping module ltcmdhooks on input line ....
Applying: [....-..-..] The hook management system for commands on input line ...
-31.
+29.
END module: ltcmdhooks (....-..-..) on input line ....
BEGIN module: ltpara (....-..-..) on input line ....
Paragraph handling and hooks.
diff --git a/base/testfiles/tlb-latexrelease-rollback-003-often.luatex.tlg b/base/testfiles/tlb-latexrelease-rollback-003-often.luatex.tlg
index 0dc3d8d4..850bdd06 100644
--- a/base/testfiles/tlb-latexrelease-rollback-003-often.luatex.tlg
+++ b/base/testfiles/tlb-latexrelease-rollback-003-often.luatex.tlg
@@ -96,7 +96,7 @@ BEGIN module: ltcmdhooks (....-..-..) on input line ....
The hook management system for commands.
Skipping module ltcmdhooks on input line ....
Applying: [....-..-..] The hook management system for commands on input line ...
-31.
+29.
END module: ltcmdhooks (....-..-..) on input line ....
BEGIN module: ltpara (....-..-..) on input line ....
Paragraph handling and hooks.
@@ -634,7 +634,7 @@ BEGIN module: ltcmdhooks (....-..-..) on input line ....
The hook management system for commands.
Skipping module ltcmdhooks on input line ....
Applying: [....-..-..] The hook management system for commands on input line ...
-31.
+29.
END module: ltcmdhooks (....-..-..) on input line ....
BEGIN module: ltpara (....-..-..) on input line ....
Paragraph handling and hooks.
diff --git a/base/testfiles/tlb-rollback-004-often.luatex.tlg b/base/testfiles/tlb-rollback-004-often.luatex.tlg
index 0a090ecf..b3f951e7 100644
--- a/base/testfiles/tlb-rollback-004-often.luatex.tlg
+++ b/base/testfiles/tlb-rollback-004-often.luatex.tlg
@@ -129,7 +129,7 @@ BEGIN module: ltcmdhooks (....-..-..) on input line ....
The hook management system for commands.
Skipping module ltcmdhooks on input line ....
Applying: [....-..-..] The hook management system for commands on input line ...
-31.
+29.
END module: ltcmdhooks (....-..-..) on input line ....
BEGIN module: ltpara (....-..-..) on input line ....
Paragraph handling and hooks.
diff --git a/base/testfiles/tlb-rollback-005.lvt b/base/testfiles/tlb-rollback-005.lvt
new file mode 100644
index 00000000..056e21cb
--- /dev/null
+++ b/base/testfiles/tlb-rollback-005.lvt
@@ -0,0 +1,23 @@
+% rolling back to first time lthooks
+
+\input{regression-test}
+
+\START
+
+\makeatletter\show\@kernel at after@begindocument\makeatother
+
+\RequirePackage[2021/01/01]{latexrelease}
+
+\makeatletter\show\@kernel at after@begindocument\makeatother
+
+\documentclass{minimal}
+
+
+\START
+
+\begin{document}
+
+X
+
+\END
+
diff --git a/base/testfiles/github-0479-often.tlg b/base/testfiles/tlb-rollback-005.tlg
similarity index 97%
copy from base/testfiles/github-0479-often.tlg
copy to base/testfiles/tlb-rollback-005.tlg
index a6ddb620..44f5e59b 100644
--- a/base/testfiles/github-0479-often.tlg
+++ b/base/testfiles/tlb-rollback-005.tlg
@@ -1,5 +1,9 @@
This is a generated file for the l3build validation system.
Don't change this file in any respect.
+> \@kernel at after@begindocument=macro:
+->\__hook_cmd_begindocument_code: \bool_gset_true:N \g__pdf_init_bool .
+l. ...\makeatletter\show\@kernel at after@begindocument
+ \makeatother
(latexrelease.sty
LaTeX Info: Redefining \IfTargetDateBefore on input line ....
Package: latexrelease ....-..-.. v... LaTeX release emulation and tests (including releases up to ....-..-..)
@@ -1033,22 +1037,36 @@ Now handling font encoding U ...
)
Already applied: [....-..-..] UTF-8 default on input line ....
)
-> \__kernel_chk_if_free_cs:N=\protected\long macro:
-#1->\cs_if_free:NF #1{\__kernel_msg_error:nnxx {kernel}{command-already-defined}{\token_to_str:N #1}{\token_to_meaning:N #1}}.
-l. ...\show \__kernel_chk_if_free_cs:N
-> \e at alloc=macro:
-#1#2#3#4#5#6->\global \advance #3\@ne \e at ch@ck {#3}{#4}{#5}#1\allocationnumber #3\relax \global #2#6\allocationnumber \wlog {\string #6=\string #1\the \allocationnumber }.
-l. ...\show \e at alloc
-> \__kernel_msg_error:nnx=\protected\long macro:
-#1#2#3->\__kernel_msg_error:nnxxxx {#1}{#2}{#3}{}{}{}.
-l. ...\show \__kernel_msg_error:nnx
-> \msg_new:nnnn=\protected\long macro:
-#1#2->\__msg_chk_free:nn {#1}{#2}\msg_gset:nnnn {#1}{#2}.
-l. ...\show \msg_new:nnnn
-> \NewDocumentCommand=\protected\long macro:
-#1#2#3->\__cmd_check_definable:nNT {#1}\NewDocumentCommand {\cs_if_exist:NTF #1{\__kernel_msg_error:nnxx {ltcmd}{command-already-defined}{\use:nnn \token_to_str:N #1{}}{\token_to_str:N \NewDocumentCommand }}{\__cmd_declare_cmd:Nnn #1{#2}{#3}}}.
-l. ...\show \NewDocumentCommand
-> \newcommand=macro:
-->\@star at or@long \new at command .
-l. ...\show \newcommand
-(github-0479-often.aux)
+> \@kernel at after@begindocument=macro:
+->.
+l. ......eatletter\show\@kernel at after@begindocument
+ \makeatother
+(minimal.cls
+Document Class: minimal ....-..-.. Standard LaTeX minimal class
+)
+This is a generated file for the l3build validation system.
+Don't change this file in any respect.
+(../l3backend-dvips.def
+File: l3backend-dvips.def ....-..-.. L3 backend support: dvips
+\l__pdf_internal_box=\box...
+\g__pdf_backend_object_int=\count...
+\l__pdf_backend_content_box=\box...
+\l__pdf_backend_model_box=\box...
+\g__pdf_backend_annotation_int=\count...
+\g__pdf_backend_link_int=\count...
+\g__pdf_backend_link_sf_int=\count...
+) (tlb-rollback-005.aux)
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line ....
+LaTeX Font Info: ... okay on input line ....
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line ....
+LaTeX Font Info: ... okay on input line ....
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line ....
+LaTeX Font Info: ... okay on input line ....
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line ....
+LaTeX Font Info: ... okay on input line ....
+LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line ....
+LaTeX Font Info: ... okay on input line ....
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line ....
+LaTeX Font Info: ... okay on input line ....
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line ....
+LaTeX Font Info: ... okay on input line ....
More information about the latex3-commits
mailing list.