diff options
Diffstat (limited to 'macros/latex/contrib/l3kernel/l3tl-build.dtx')
-rw-r--r-- | macros/latex/contrib/l3kernel/l3tl-build.dtx | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/macros/latex/contrib/l3kernel/l3tl-build.dtx b/macros/latex/contrib/l3kernel/l3tl-build.dtx index 645f052d15..66b5a2d03e 100644 --- a/macros/latex/contrib/l3kernel/l3tl-build.dtx +++ b/macros/latex/contrib/l3kernel/l3tl-build.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2024-01-04} +% \date{Released 2024-01-22} % % \maketitle % @@ -59,6 +59,14 @@ % constructed token list cannot be accessed during construction other than % by methods provided in this section. % +% Whilst the exact performance difference is dependent on the size of each +% added block of tokens and the total number of blocks, in general, the +% \cs[no-index]{tl_build_(g)put...} functions will out-perform the basic +% \cs[no-index]{tl_(g)put...} equivalent if more than 100 non-empty addition +% operations occur. See +% \url{https://github.com/latex3/latex3/issues/1393#issuecomment-1880164756} +% for a more detailed analysis. +% % \begin{function}[added = 2018-04-01]{\tl_build_begin:N, \tl_build_gbegin:N} % \begin{syntax} % \cs{tl_build_begin:N} \meta{tl~var} @@ -285,12 +293,12 @@ % \begin{macrocode} \cs_new_protected:Npn \tl_build_end:N #1 { - \@@_build_get:NNN \__kernel_tl_set:Ne #1 #1 + \@@_build_get:NNN \__kernel_tl_set:Nx #1 #1 \exp_args:Nc \@@_build_end_loop:NN { \cs_to_str:N #1 ' } \tl_clear:N } \cs_new_protected:Npn \tl_build_gend:N #1 { - \@@_build_get:NNN \__kernel_tl_gset:Ne #1 #1 + \@@_build_get:NNN \__kernel_tl_gset:Nx #1 #1 \exp_args:Nc \@@_build_end_loop:NN { \cs_to_str:N #1 ' } \tl_gclear:N } \cs_new_protected:Npn \@@_build_end_loop:NN #1#2 @@ -308,7 +316,7 @@ % \begin{macro}{\tl_build_get_intermediate:NN} % \begin{macrocode} \cs_new_protected:Npn \tl_build_get_intermediate:NN - { \@@_build_get:NNN \__kernel_tl_set:Ne } + { \@@_build_get:NNN \__kernel_tl_set:Nx } % \end{macrocode} % \end{macro} % |