summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/l3kernel/l3expan.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/l3kernel/l3expan.dtx')
-rw-r--r--macros/latex/contrib/l3kernel/l3expan.dtx34
1 files changed, 13 insertions, 21 deletions
diff --git a/macros/latex/contrib/l3kernel/l3expan.dtx b/macros/latex/contrib/l3kernel/l3expan.dtx
index 613af946f9..36fb87f2ac 100644
--- a/macros/latex/contrib/l3kernel/l3expan.dtx
+++ b/macros/latex/contrib/l3kernel/l3expan.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-09}
+% \date{Released 2023-12-08}
%
% \maketitle
%
@@ -310,23 +310,16 @@
%
% When speed is essential (for functions that do very little work and
% whose variants are used numerous times in a document) the following
-% considerations apply because internal functions for argument expansion
-% come in two flavours, some faster than others.
+% considerations apply because the speed of internal functions that
+% expand the arguments of a base function depend on what needs doing
+% with each argument and where this happens in the list of arguments:
% \begin{itemize}
-% \item
-% Arguments that might need expansion should come first in the list
-% of arguments.
-% \item
-% Arguments that should consist of single tokens |N|, |c|, |V|, or
-% |v| should come first among these.
-% \item
-% Arguments that appear after the first multi-token argument |n|,
-% |f|, |e|, or |o| require slightly slower special processing to be
-% expanded. Therefore it is best to use the optimized functions,
-% namely those that contain only |N|, |c|, |V|, and |v|, and, in the
-% last position, |o|, |f|, |e|, with possible trailing |N| or |n| or
-% |T| or |F|, which are not expanded. Any |x|-type argument causes
-% slightly slower processing.
+% \item for fastest processing any |c|-type arguments should come first
+% followed by all other modified arguments;
+% \item unchanged |N|-type args that appear before modified ones have
+% a small performance hit;
+% \item unchanged |n|-type args that appear before modified ones have
+% a relative larger performance hit.
% \end{itemize}
%
% \section{Manipulating the first argument}
@@ -471,7 +464,6 @@
% third as detailed by their argument specifier. The first argument
% of the function is then the next item on the input stream, followed
% by the expansion of the second and third arguments.
-% These functions need slower processing.
% \end{function}
%
% \begin{function}
@@ -542,7 +534,6 @@
% and fourth as detailed by their argument specifier. The first
% argument of the function is then the next item on the input stream,
% followed by the expansion of the second argument, \emph{etc}.
-% These functions need slower processing.
% \end{function}
%
% \begin{function}[added = 2015-08-12]
@@ -2384,8 +2375,9 @@
%
% \subsection{Held-over variant generation}
%
-% \begin{macro}{\cs_generate_from_arg_count:NNno}
-% \begin{macro}{\cs_replacement_spec:c}
+% \begin{macro}[documented-as = \cs_generate_from_arg_count:NNnn]
+% {\cs_generate_from_arg_count:NNno}
+% \begin{macro}[documented-as = \cs_replacement_spec:N]{\cs_replacement_spec:c}
% A couple of variants that are from early functions.
% \begin{macrocode}
\cs_generate_variant:Nn \cs_generate_from_arg_count:NNnn { NNno }