summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-11-01 20:15:10 +0000
committerKarl Berry <karl@freefriends.org>2023-11-01 20:15:10 +0000
commit7888ea6606132ba347b147f1d3d3e02122e607cc (patch)
tree1e8d4ec81a3f49287a9d605eac72467ad4f1b6d7 /Master/texmf-dist/tex
parenta776d572cfd8fa24365dbc0cc22bbd856fbbe97b (diff)
latex3 (1nov23)
git-svn-id: svn://tug.org/texlive/trunk@68721 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty51
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex422
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.ltx2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3doc.cls10
15 files changed, 297 insertions, 210 deletions
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
index 209a440673c..aca5f6382a6 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
@@ -20,7 +20,7 @@
%%
%% File: l3benchmark.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3benchmark}{2023-10-10}{}
+\ProvidesExplPackage{l3benchmark}{2023-11-01}{}
{L3 Experimental benchmarking}
\fp_new:N \g_benchmark_duration_target_fp
\fp_gset:Nn \g_benchmark_duration_target_fp { 1 }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty b/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty
index 25ef3d28d92..03584e2b0b8 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3bitset.dtx
-\ProvidesExplPackage{l3bitset}{2023-10-10}{}
+\ProvidesExplPackage{l3bitset}{2023-11-01}{}
{L3 Experimental bitset support}
\cs_new_protected:Npn \bitset_new:N #1
{
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
index cea22f9993d..4b46919b0a4 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
@@ -28,7 +28,7 @@
%%
%% File: l3draw.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3draw}{2023-10-10}{}
+\ProvidesExplPackage{l3draw}{2023-11-01}{}
{L3 Experimental core drawing support}
\scan_new:N \s__draw_mark
\scan_new:N \s__draw_stop
@@ -776,19 +776,11 @@
\dim_set_eq:NN \l__draw_softpath_lastx_dim \g__draw_softpath_lastx_dim
\dim_set_eq:NN \l__draw_softpath_lasty_dim \g__draw_softpath_lasty_dim
\__draw_path_reset_limits:
- \tl_build_get:NN \g__draw_softpath_main_tl \l__draw_softpath_main_tl
- \bool_set_eq:NN
- \l__draw_softpath_corners_bool
- \g__draw_softpath_corners_bool
- \__draw_softpath_clear:
+ \__draw_softpath_save:
}
\cs_new_protected:Npn \draw_path_scope_end:
{
- \__draw_softpath_clear:
- \bool_gset_eq:NN
- \g__draw_softpath_corners_bool
- \l__draw_softpath_corners_bool
- \__draw_softpath_add:o \l__draw_softpath_main_tl
+ \__draw_softpath_restore:
\dim_gset_eq:NN \g__draw_softpath_lastx_dim \l__draw_softpath_lastx_dim
\dim_gset_eq:NN \g__draw_softpath_lasty_dim \l__draw_softpath_lasty_dim
\dim_gset_eq:NN \g__draw_path_xmax_dim \l__draw_path_xmax_dim
@@ -1418,21 +1410,44 @@
}
%% File: l3draw-softpath.dtx
\tl_new:N \g__draw_softpath_main_tl
-\tl_new:N \l__draw_softpath_internal_tl
+\tl_new:N \l__draw_softpath_tmp_tl
\bool_new:N \g__draw_softpath_corners_bool
\cs_new_protected:Npn \__draw_softpath_add:n
{ \tl_build_gput_right:Nn \g__draw_softpath_main_tl }
\cs_generate_variant:Nn \__draw_softpath_add:n { o, e }
\cs_new_protected:Npn \__draw_softpath_use:
{
- \tl_build_get:NN \g__draw_softpath_main_tl \l__draw_softpath_internal_tl
- \l__draw_softpath_internal_tl
+ \tl_build_gend:N \g__draw_softpath_main_tl
+ \tl_set_eq:NN \l__draw_softpath_tmp_tl \g__draw_softpath_main_tl
+ \l__draw_softpath_tmp_tl
+ \tl_build_gbegin:N \g__draw_softpath_main_tl
+ \exp_args:NNV \tl_build_gput_right:Nn
+ \g__draw_softpath_main_tl \l__draw_softpath_tmp_tl
}
\cs_new_protected:Npn \__draw_softpath_clear:
{
- \tl_build_gclear:N \g__draw_softpath_main_tl
+ \tl_build_gbegin:N \g__draw_softpath_main_tl
\bool_gset_false:N \g__draw_softpath_corners_bool
}
+\cs_new_protected:Npn \__draw_softpath_save:
+ {
+ \tl_build_gend:N \g__draw_softpath_main_tl
+ \tl_set_eq:NN
+ \l__draw_softpath_main_tl
+ \g__draw_softpath_main_tl
+ \bool_set_eq:NN
+ \l__draw_softpath_corners_bool
+ \g__draw_softpath_corners_bool
+ \__draw_softpath_clear:
+ }
+\cs_new_protected:Npn \__draw_softpath_restore:
+ {
+ \__draw_softpath_clear:
+ \__draw_softpath_add:o \l__draw_softpath_main_tl
+ \bool_gset_eq:NN
+ \g__draw_softpath_corners_bool
+ \l__draw_softpath_corners_bool
+ }
\dim_new:N \g__draw_softpath_lastx_dim
\dim_new:N \g__draw_softpath_lasty_dim
\bool_new:N \g__draw_softpath_move_bool
@@ -1526,9 +1541,9 @@
\fp_zero:N \l__draw_softpath_lasty_fp
\tl_clear:N \l__draw_softpath_first_tl
\tl_clear:N \l__draw_softpath_move_tl
- \tl_build_get:NN \g__draw_softpath_main_tl \l__draw_softpath_internal_tl
+ \tl_build_gend:N \g__draw_softpath_main_tl
\exp_after:wN \__draw_softpath_round_loop:Nnn
- \l__draw_softpath_internal_tl
+ \g__draw_softpath_main_tl
\q__draw_recursion_tail ? ?
\q__draw_recursion_stop
\group_end:
@@ -1734,7 +1749,7 @@
\l__draw_softpath_move_tl
\tl_put_right:No \l__draw_softpath_main_tl
\l__draw_softpath_part_tl
- \tl_build_gclear:N \g__draw_softpath_main_tl
+ \tl_build_gbegin:N \g__draw_softpath_main_tl
\__draw_softpath_add:o \l__draw_softpath_main_tl
}
%% File: l3draw-state.dtx
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
index 2c54e34557b..915087672b0 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3graphics.dtx
-\ProvidesExplPackage{l3graphics}{2023-10-10}{}
+\ProvidesExplPackage{l3graphics}{2023-11-01}{}
{L3 Experimental graphics inclusion support}
\dim_new:N \l__graphics_internal_dim
\ior_new:N \l__graphics_internal_ior
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty b/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty
index 610407cb77e..384217a701e 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty
@@ -20,7 +20,7 @@
%%
%% File: l3opacity.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3opacity}{2023-10-10}{}
+\ProvidesExplPackage{l3opacity}{2023-11-01}{}
{L3 Experimental opacity support}
\cs_new_protected:Npn \opacity_select:n #1
{ \__opacity_select:nN {#1} \__opacity_backend_select:n }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
index 16faf6a9ff7..16bd550ce7f 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
@@ -20,7 +20,7 @@
%%
%% File: l3str-format.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3str-format}{2023-10-10}{}
+\ProvidesExplPackage{l3str-format}{2023-11-01}{}
{L3 Experimental string formatting}
\cs_generate_variant:Nn \use:nn { nf }
\cs_generate_variant:Nn \use:nnn { fnf }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
index 2fe417c0258..00af40c1c04 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
@@ -20,7 +20,7 @@
%%
%% File: l3sys-shell.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3sys-shell}{2023-10-10}{}
+\ProvidesExplPackage{l3sys-shell}{2023-11-01}{}
{L3 Experimental system shell functions}
\scan_new:N \s__sys_stop
\quark_new:N \q__sys_nil
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
index bb1f6c36925..65863584703 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: xcoffins.dtx
-\ProvidesExplPackage{xcoffins}{2023-10-10}{}
+\ProvidesExplPackage{xcoffins}{2023-11-01}{}
{L3 Experimental design level coffins}
\keys_define:nn { coffin }
{
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
index 96f4c731f8f..60bea2344c4 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
@@ -32,7 +32,7 @@
}%
\endinput
}
-\ProvidesExplPackage{l3galley}{2023-10-10}{}
+\ProvidesExplPackage{l3galley}{2023-11-01}{}
{L3 Experimental galley code}
\int_new:N \l__galley_tmp_int
\seq_new:N \g__galley_tmpa_seq
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
index 74d706bff6b..756cc429707 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: xgalley.dtx
-\ProvidesExplPackage{xgalley}{2023-10-10}{}
+\ProvidesExplPackage{xgalley}{2023-11-01}{}
{L3 Experimental galley}
\RequirePackage{xtemplate,l3galley}
\clist_new:N \l__galley_tmpa_clist
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index 2f6e2fda248..d80a33cae64 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -11,6 +11,7 @@
%% l3expan.dtx (with options: `package')
%% l3quark.dtx (with options: `package')
%% l3tl.dtx (with options: `package')
+%% l3tl-build.dtx (with options: `package')
%% l3str.dtx (with options: `package')
%% l3seq.dtx (with options: `package')
%% l3int.dtx (with options: `package')
@@ -74,7 +75,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2023-10-23}%
+\def\ExplFileDate{2023-11-01}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -4559,6 +4560,101 @@ Type H <return> for immediate help}\def~{\errmessage{%
\tl_new:N \l_tmpa_tl
\tl_new:N \l_tmpb_tl
\cs_undefine:N \__tl_tmp:w
+%% File: l3tl-build.dtx
+\cs_new_protected:Npn \tl_build_begin:N #1
+ { \__tl_build_begin:NN \cs_set_nopar:Npe #1 }
+\cs_new_protected:Npn \tl_build_gbegin:N #1
+ { \__tl_build_begin:NN \cs_gset_nopar:Npe #1 }
+\cs_new_protected:Npn \__tl_build_begin:NN #1#2
+ { \exp_args:Nc \__tl_build_begin:NNN { \cs_to_str:N #2 ' } #2 #1 }
+\cs_new_protected:Npn \__tl_build_begin:NNN #1#2#3
+ {
+ #3 #1 { }
+ #3 #2
+ {
+ \exp_not:n { \exp_end: \exp_end: \exp_end: \exp_end: }
+ \exp_not:n { \__tl_build_last:NNn #3 #1 { } }
+ }
+ }
+\cs_new_protected:Npn \tl_build_put_right:Nn #1#2
+ {
+ \cs_set_nopar:Npe #1
+ { \__kernel_exp_not:w \exp_after:wN { \exp:w #1 #2 } }
+ }
+\cs_generate_variant:Nn \tl_build_put_right:Nn { Ne , Nx }
+\cs_new_protected:Npn \tl_build_gput_right:Nn #1#2
+ {
+ \cs_gset_nopar:Npe #1
+ { \__kernel_exp_not:w \exp_after:wN { \exp:w #1 #2 } }
+ }
+\cs_generate_variant:Nn \tl_build_gput_right:Nn { Ne , Nx }
+\cs_new_protected:Npn \__tl_build_last:NNn #1#2
+ {
+ \if_false: { { \fi:
+ \exp_end: \exp_end: \exp_end: \exp_end: \exp_end:
+ \__tl_build_last:NNn #1 #2 { }
+ }
+ }
+ \if_meaning:w \c_empty_tl #2
+ \__tl_build_begin:NN #1 #2
+ \fi:
+ #1 #2
+ {
+ \__kernel_exp_not:w \exp_after:wN
+ {
+ \exp:w \if_false: } } \fi:
+ \exp_after:wN \__tl_build_put:nn \exp_after:wN {#2}
+ }
+\cs_new_protected:Npn \__tl_build_put:nn #1#2 { \__tl_build_put:nw {#2} #1 }
+\cs_new_protected:Npn \__tl_build_put:nw #1#2 \__tl_build_last:NNn #3#4#5
+ { #2 \__tl_build_last:NNn #3 #4 { #1 #5 } }
+\cs_new_protected:Npn \tl_build_put_left:Nn #1
+ { \__tl_build_put_left:NNn \cs_set_nopar:Npe #1 }
+\cs_generate_variant:Nn \tl_build_put_left:Nn { Ne , Nx }
+\cs_new_protected:Npn \tl_build_gput_left:Nn #1
+ { \__tl_build_put_left:NNn \cs_gset_nopar:Npe #1 }
+\cs_generate_variant:Nn \tl_build_gput_left:Nn { Ne , Nx }
+\cs_new_protected:Npn \__tl_build_put_left:NNn #1#2#3
+ {
+ #1 #2
+ {
+ \__kernel_exp_not:w \exp_after:wN
+ {
+ \exp:w \exp_after:wN \__tl_build_put:nn
+ \exp_after:wN {#2} {#3}
+ }
+ }
+ }
+\cs_new_protected:Npn \tl_build_end:N #1
+ {
+ \__tl_build_get:NNN \__kernel_tl_set:Ne #1 #1
+ \exp_args:Nc \__tl_build_end_loop:NN { \cs_to_str:N #1 ' } \tl_clear:N
+ }
+\cs_new_protected:Npn \tl_build_gend:N #1
+ {
+ \__tl_build_get:NNN \__kernel_tl_gset:Ne #1 #1
+ \exp_args:Nc \__tl_build_end_loop:NN { \cs_to_str:N #1 ' } \tl_gclear:N
+ }
+\cs_new_protected:Npn \__tl_build_end_loop:NN #1#2
+ {
+ \if_meaning:w \c_empty_tl #1
+ \exp_after:wN \use_none:nnnnnn
+ \fi:
+ #2 #1
+ \exp_args:Nc \__tl_build_end_loop:NN { \cs_to_str:N #1 ' } #2
+ }
+\cs_new_protected:Npn \__tl_build_get:NNN #1#2#3
+ { #1 #3 { \if_false: { \fi: \exp_after:wN \__tl_build_get:w #2 } } }
+\cs_new:Npn \__tl_build_get:w #1 \__tl_build_last:NNn #2#3#4
+ {
+ \exp_not:n {#4}
+ \if_meaning:w \c_empty_tl #3
+ \exp_after:wN \__tl_build_get_end:w
+ \fi:
+ \exp_after:wN \__tl_build_get:w #3
+ }
+\cs_new:Npn \__tl_build_get_end:w #1#2#3
+ { \__kernel_exp_not:w \exp_after:wN { \if_false: } \fi: }
%% File: l3str.dtx
\scan_new:N \s__str_mark
\scan_new:N \s__str_stop
@@ -4752,7 +4848,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
{ \__str_case:nw {#1} #2 {#1} { } \s__str_mark {#3} \s__str_mark {#4} \s__str_stop }
\cs_generate_variant:Nn \str_case:nn { V , o , e , nV , nv }
\prg_generate_conditional_variant:Nnn \str_case:nn
- { V , o , nV , nv } { T , F , TF }
+ { V , o , e , nV , nv } { T , F , TF }
\cs_new_eq:NN \str_case:Nn \str_case:Vn
\cs_new_eq:NN \str_case:NnT \str_case:VnT
\cs_new_eq:NN \str_case:NnF \str_case:VnF
@@ -5955,11 +6051,11 @@ Type H <return> for immediate help}\def~{\errmessage{%
\__seq_map_pairwise_function:Nnnwnn #1 #4 \s__seq_stop
}
\cs_generate_variant:Nn \seq_map_pairwise_function:NNN { Nc , c , cc }
-\cs_new_protected:Npn \seq_set_map_x:NNn
- { \__seq_set_map_x:NNNn \__kernel_tl_set:Ne }
-\cs_new_protected:Npn \seq_gset_map_x:NNn
- { \__seq_set_map_x:NNNn \__kernel_tl_gset:Ne }
-\cs_new_protected:Npn \__seq_set_map_x:NNNn #1#2#3#4
+\cs_new_protected:Npn \seq_set_map_e:NNn
+ { \__seq_set_map_e:NNNn \__kernel_tl_set:Ne }
+\cs_new_protected:Npn \seq_gset_map_e:NNn
+ { \__seq_set_map_e:NNNn \__kernel_tl_gset:Ne }
+\cs_new_protected:Npn \__seq_set_map_e:NNNn #1#2#3#4
{
\__seq_push_item_def:n { \exp_not:N \__seq_item:n {#4} }
#1 #2 { #3 }
@@ -16819,21 +16915,73 @@ Type H <return> for immediate help}\def~{\errmessage{%
\cs_new_protected:Npn \__fp_show:NN #1#2
{
\__kernel_chk_tl_type:NnnT #2 { fp }
+ { \exp_args:No \__fp_show_validate:n #2 }
+ { \exp_args:Ne #1 { \token_to_str:N #2 = \fp_to_tl:N #2 } }
+ }
+\cs_new:Npn \__fp_show_validate:n #1
+ {
+ \__fp_show_validate:nn { #1 }
{
- \str_if_eq:eeTF { \tl_head:N #2 } { \s__fp_tuple } { \exp_not:o #2 }
+ \s__fp \__fp_chk:w ??? ;~ or \iow_newline:
+ \s__fp_tuple \__fp_tuple_chk:w ? ;~ or \iow_newline:
+ \s__fp_symbolic \__fp_symbolic_chk:w ? , ? ;
+ }
+ }
+\cs_new:Npn \__fp_show_validate_aux:n #1
+ {
+ \__fp_show_validate:nn { #1 } { }
+ }
+\cs_new:Npn \__fp_show_validate:nn #1#2
+ {
+ \tl_if_empty:nF { #1 }
+ {
+ \str_case:enF { \tl_head:n { #1 } }
{
- \exp_after:wN \__fp_show_validate:w #2
- \s__fp \__fp_chk:w ??? ; \s__fp_stop
+ { \s__fp }
+ {
+ \__fp_show_validate:w #1 \s__fp
+ \__fp_chk:w ??? ; \s__fp_stop
+ }
+ { \s__fp_tuple }
+ {
+ \__fp_tuple_show_validate:w #1
+ \s__fp_tuple \__fp_tuple_chk:w ?? ; \s__fp_stop
+ }
+ { \s__fp_symbolic }
+ {
+ \__fp_symbolic_show_validate:w #1
+ \s__fp_symbolic \__fp_symbolic_chk:w ? , ?? ; \s__fp_stop
+ }
}
+ { #2 }
}
- { \exp_args:Ne #1 { \token_to_str:N #2 = \fp_to_tl:N #2 } }
}
\cs_new:Npn \__fp_show_validate:w
#1 \s__fp \__fp_chk:w #2#3#4#5 ; #6 \s__fp_stop
{
- \token_if_eq_meaning:NNTF #2 1
- { \s__fp \__fp_chk:w #2 #3 {#4} #5 ; }
- { \s__fp \__fp_chk:w #2 #3 #4 #5 ; }
+ \str_if_eq:nnF { #2 } {?}
+ {
+ \token_if_eq_meaning:NNTF #2 1
+ { \s__fp \__fp_chk:w #2 #3 { #4 } #5 ; }
+ { \s__fp \__fp_chk:w #2 #3 #4 #5 ; }
+ \__fp_show_validate_aux:n { #6 }
+ }
+ }
+\cs_new:Npn \__fp_tuple_show_validate:w
+ #1 \s__fp_tuple \__fp_tuple_chk:w #2#3 ; #4 \s__fp_stop
+ {
+ \str_if_eq:nnF { #2 } {?}
+ { \s__fp_tuple \__fp_tuple_chk:w { \__fp_show_validate_aux:n { #2 } } ; }
+ }
+\cs_new:Npn \__fp_symbolic_show_validate:w
+ #1 \s__fp_symbolic \__fp_symbolic_chk:w #2 , #3#4 ; #5 \s__fp_stop
+ {
+ \str_if_eq:nnF { #2 } {?}
+ {
+ \s__fp_symbolic \__fp_symbolic_chk:w \exp_not:n { #2 } ,
+ { \__fp_show_validate_aux:n { #3 } };
+ \__fp_show_validate_aux:n { #5 }
+ }
}
\cs_new_protected:Npn \fp_show:n
{ \__kernel_msg_show_eval:Nn \fp_to_tl:n }
@@ -20838,9 +20986,9 @@ Type H <return> for immediate help}\def~{\errmessage{%
\s__fp_symbolic \__fp_symbolic_chk:w
\__fp_types_binary:Nww #1 , { #2; #3; } ;
}
-\cs_set:Npn \__fp_tmp:w #1#2
+\cs_set_protected:Npn \__fp_tmp:w #1#2
{
- \cs_new_nopar:cpn
+ \cs_new:cpn
{ __fp_symbolic_#2_symbolic_o:ww }
{ \__fp_symbolic_binary_o:Nww #1 }
\cs_new_eq:cc
@@ -20864,7 +21012,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
{not} {sec} {set_sign} {sin} {sqrt} {tan}
}
{
- \cs_new_nopar:cpe { __fp_symbolic_#1_o:w }
+ \cs_new:cpe { __fp_symbolic_#1_o:w }
{
\exp_not:N \__fp_symbolic_unary_o:NNw
\exp_not:c { __fp_#1_o:w }
@@ -20872,7 +21020,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
}
\cs_set_protected:Npn \__fp_tmp:w #1#2#3
{
- \cs_new_nopar:cpn { __fp_symbolic_to_#1:w }
+ \cs_new:cpn { __fp_symbolic_to_#1:w }
{
\exp_after:wN \__fp_symbolic_convert:wnnN
\exp:w \exp_end_continue_f:w
@@ -20949,10 +21097,10 @@ Type H <return> for immediate help}\def~{\errmessage{%
\tl_if_empty:nTF {#1}
{ \prg_return_true: }
{
- \tl_if_in:onTF { \tl_to_str:n {#1} } { ~ }
+ \tl_if_in:nnTF { #1 } { ~ }
{ \prg_return_true: }
{
- \exp_after:wN \__fp_id_if_invalid_aux:N \tl_to_str:n {#1}
+ \__fp_id_if_invalid_aux:N #1
{ ? \prg_break:n \prg_return_false: }
\prg_break_point:
}
@@ -20995,9 +21143,9 @@ Type H <return> for immediate help}\def~{\errmessage{%
}
}
}
-\cs_new:Npn \__fp_variable_set_parsing:Nn #1#2
+\cs_new_protected:Npn \__fp_variable_set_parsing:Nn #1#2
{
- \cs_set_nopar:Npn \__fp_tmp:w
+ \cs_set:Npn \__fp_tmp:w
{
\__fp_exp_after_symbolic_f:nw { \__fp_parse_infix:NN }
\s__fp_symbolic \__fp_symbolic_chk:w
@@ -21006,7 +21154,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
\exp_args:NNc \__fp_variable_set_parsing_aux:NNn #1
{ __fp_parse_word_#2:N } {#2}
}
-\cs_new:Npn \__fp_variable_set_parsing_aux:NNn #1#2#3
+\cs_new_protected:Npn \__fp_variable_set_parsing_aux:NNn #1#2#3
{
\cs_if_eq:NNF #2 \__fp_tmp:w
{
@@ -21024,53 +21172,61 @@ Type H <return> for immediate help}\def~{\errmessage{%
}
\cs_new_protected:Npn \fp_clear_variable:n #1
{
+ \exp_args:No \__fp_clear_variable:n { \tl_to_str:n {#1} }
+ }
+\cs_new_protected:Npn \__fp_clear_variable:n #1
+ {
\__fp_id_if_invalid:nTF {#1}
{ \msg_error:nnn { fp } { id-invalid } {#1} }
- { \exp_args:No \__fp_clear_variable:n { \tl_to_str:n {#1} } }
+ { \__fp_clear_variable_aux:n {#1} }
}
-\cs_new_protected:Npn \__fp_clear_variable:n #1
+\cs_new_protected:Npn \__fp_clear_variable_aux:n #1
{
- \cs_undefine:c { l__fp_variable_#1_fp }
+ \cs_set_eq:cN { l__fp_variable_#1_fp } \tex_undefined:D
\__fp_variable_set_parsing:Nn \cs_set_eq:NN {#1}
}
\cs_new_protected:Npn \fp_new_variable:n #1
{
- \__fp_id_if_invalid:nTF {#1}
- { \msg_error:nnn { fp } { id-invalid } {#1} }
- { \exp_args:No \__fp_new_variable:n { \tl_to_str:n {#1} } }
+ \exp_args:No \__fp_new_variable:n { \tl_to_str:n {#1} }
}
\cs_new_protected:Npn \__fp_new_variable:n #1
{
- \cs_if_exist:cT { __fp_parse_word_#1:N }
+ \__fp_id_if_invalid:nTF {#1}
+ { \msg_error:nnn { fp } { id-invalid } {#1} }
{
- \msg_error:nnn
- { fp } { id-already-defined } {#1}
- \cs_undefine:c { __fp_parse_word_#1:N }
- \cs_undefine:c { l__fp_variable_#1_fp }
+ \cs_if_exist:cT { __fp_parse_word_#1:N }
+ {
+ \msg_error:nnn
+ { fp } { id-already-defined } {#1}
+ \cs_undefine:c { __fp_parse_word_#1:N }
+ \cs_set_eq:cN { l__fp_variable_#1_fp } \tex_undefined:D
+ }
+ \__fp_variable_set_parsing:Nn \cs_gset_eq:NN {#1}
}
- \__fp_variable_set_parsing:Nn \cs_gset_eq:NN {#1}
}
\flag_new:n { __fp_symbolic }
\cs_new_protected:Npn \fp_set_variable:nn #1
{
- \__fp_id_if_invalid:nTF {#1}
- { \msg_error:nnn { fp } { id-invalid } {#1} }
- { \exp_args:No \__fp_set_variable:nn { \tl_to_str:n {#1} } }
+ \exp_args:No \__fp_set_variable:nn { \tl_to_str:n {#1} }
}
\cs_new_protected:Npn \__fp_set_variable:nn #1#2
{
- \__fp_variable_set_parsing:Nn \cs_set_eq:NN {#1}
- \fp_set:Nn \l__fp_symbolic_fp {#2}
- \cs_set_nopar:cpn { l__fp_variable_#1_fp }
- { \flag_ensure_raised:n { __fp_symbolic } \c_nan_fp }
- \flag_clear:n { __fp_symbolic }
- \fp_set:cn { l__fp_variable_#1_fp } { \l__fp_symbolic_fp }
- \flag_if_raised:nT { __fp_symbolic }
+ \__fp_id_if_invalid:nTF {#1}
+ { \msg_error:nnn { fp } { id-invalid } {#1} }
{
- \msg_error:nneee { fp } { id-loop }
- { \tl_to_str:n {#1} }
- { \tl_to_str:n {#2} }
- { \fp_to_tl:N \l__fp_symbolic_fp }
+ \__fp_variable_set_parsing:Nn \cs_set_eq:NN {#1}
+ \fp_set:Nn \l__fp_symbolic_fp {#2}
+ \cs_set_nopar:cpn { l__fp_variable_#1_fp }
+ { \flag_ensure_raised:n { __fp_symbolic } \c_nan_fp }
+ \flag_clear:n { __fp_symbolic }
+ \fp_set:cn { l__fp_variable_#1_fp } { \l__fp_symbolic_fp }
+ \flag_if_raised:nT { __fp_symbolic }
+ {
+ \msg_error:nneee { fp } { id-loop }
+ { #1 }
+ { \tl_to_str:n {#2} }
+ { \fp_to_tl:N \l__fp_symbolic_fp }
+ }
}
}
\msg_new:nnnn { fp } { id-invalid }
@@ -21104,7 +21260,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
\cs_new_protected:Npn \__fp_new_function:n #1
{
\__fp_id_if_invalid:nTF {#1}
- { \msg_error:nnn { fp } { invalid-identifier } {#1} }
+ { \msg_error:nnn { fp } { id-invalid } {#1} }
{
\cs_if_exist:cT { __fp_parse_word_#1:N }
{
@@ -21116,12 +21272,12 @@ Type H <return> for immediate help}\def~{\errmessage{%
\__fp_function_set_parsing:Nn \cs_gset_eq:NN {#1}
}
}
-\cs_new:Npn \__fp_function_set_parsing:Nn #1#2
+\cs_new_protected:Npn \__fp_function_set_parsing:Nn #1#2
{
\exp_args:NNc \__fp_function_set_parsing_aux:NNn #1
{ __fp_parse_word_#2:N } {#2}
}
-\cs_new:Npn \__fp_function_set_parsing_aux:NNn #1#2#3
+\cs_new_protected:Npn \__fp_function_set_parsing_aux:NNn #1#2#3
{
\cs_set:Npe \__fp_tmp:w
{
@@ -21170,7 +21326,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
\cs_new_protected:Npn \__fp_set_function:Nnnn #1#2#3#4
{
\__fp_id_if_invalid:nTF {#2}
- { \msg_error:nnn { fp } { invalid-identifier } {#2} }
+ { \msg_error:nnn { fp } { id-invalid } {#2} }
{
\cs_if_exist:cF { __fp_parse_word_#2:N }
{ \__fp_function_set_parsing:Nn \cs_set_eq:NN {#2} }
@@ -21179,8 +21335,10 @@ Type H <return> for immediate help}\def~{\errmessage{%
\exp_args:No \clist_map_inline:nn { \tl_to_str:n {#3} }
{
\int_incr:N \l__fp_function_arg_int
- \exp_args:Ne \__fp_clear_variable:n
- { _ \tex_romannumeral:D \l__fp_function_arg_int }
+ \exp_args:Ne \__fp_clear_variable_aux:n
+ {
+ \c_underscore_str \tex_romannumeral:D \l__fp_function_arg_int
+ }
\fp_clear_variable:n {##1}
\cs_set_nopar:cpe { l__fp_variable_##1_fp }
{
@@ -21246,8 +21404,12 @@ Type H <return> for immediate help}\def~{\errmessage{%
{ \exp_args:No \__fp_clear_function:n { \tl_to_str:n {#1} } }
\cs_new_protected:Npn \__fp_clear_function:n #1
{
- \cs_undefine:c { __fp_parse_word_ #1 :N }
- \__fp_function_set_parsing:Nn \cs_set_eq:NN {#1}
+ \__fp_id_if_invalid:nTF {#1}
+ { \msg_error:nnn { fp } { id-invalid } {#1} }
+ {
+ \cs_set_eq:cN { __fp_#1_o:w } \tex_undefine:D
+ \__fp_function_set_parsing:Nn \cs_set_eq:NN {#1}
+ }
}
%% File: l3fparray.dtx
\int_new:N \g__fp_array_int
@@ -26166,7 +26328,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
\cs_new_protected:Npn \__regex_show_item_exact_cs:n #1
{
\seq_set_split:Nnn \l__regex_internal_seq { \scan_stop: } {#1}
- \seq_set_map_x:NNn \l__regex_internal_seq
+ \seq_set_map_e:NNn \l__regex_internal_seq
\l__regex_internal_seq { \iow_char:N\\##1 }
\__regex_show_one:n
{ control~sequence~ \seq_use:Nn \l__regex_internal_seq { ~or~ } }
@@ -26685,7 +26847,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
}
\cs_new_protected:Npn \__regex_match_once_init_aux:
{
- \tl_build_clear:N \l__regex_matched_analysis_tl
+ \tl_build_begin:N \l__regex_matched_analysis_tl
\tl_clear:N \l__regex_curr_analysis_tl
}
\cs_new_protected:Npn \__regex_single_match:
@@ -26857,7 +27019,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
\l__regex_fresh_thread_bool
\int_set_eq:NN \l__regex_success_pos_int \l__regex_curr_pos_int
\int_set_eq:NN \l__regex_last_char_success_int \l__regex_last_char_int
- \tl_build_clear:N \l__regex_matched_analysis_tl
+ \tl_build_begin:N \l__regex_matched_analysis_tl
\tl_set_eq:NN \l__regex_success_submatches_tl
\l__regex_curr_submatches_tl
\prg_break:
@@ -27860,7 +28022,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
\__regex_single_match:
#1
\__regex_match_init:
- \tl_build_clear:N \l__regex_input_tl
+ \tl_build_begin:N \l__regex_input_tl
\__regex_match_once_init:
\peek_analysis_map_inline:n
{
@@ -32290,13 +32452,12 @@ Type H <return> for immediate help}\def~{\errmessage{%
\cs_new:Npn \lua_escape:e #1 { \__lua_escape:n {#1} }
\cs_new:Npn \lua_escape:n #1 { \lua_escape:e { \exp_not:n {#1} } }
\str_new:N \l__lua_err_msg_str
-\cs_generate_variant:Nn \msg_error:nnnn { nnnV }
\cs_new_protected:Npn \lua_load_module:n #1
{
\bool_if:nF { \__lua_load_module_p:n { #1 } }
{
\msg_error:nnnV
- { luatex } { module-not-found } { #1 } { \l__lua_err_msg_str }
+ { luatex } { module-not-found } { #1 } \l__lua_err_msg_str
}
}
\sys_if_engine_luatex:F
@@ -34061,33 +34222,32 @@ Type H <return> for immediate help}\def~{\errmessage{%
{
\bool_if:NTF \l_text_titlecase_check_letter_bool
{
- \tl_if_single:nTF {#4}
+ \exp_args:Ne \__text_change_case_codepoint_title_auxi:nnnn
{
- \bool_lazy_or:nnTF
- { \token_if_letter_p:N #4 }
- {
- \bool_lazy_and_p:nn
- { \token_if_active_p:N #4 }
- { ! \int_compare_p:nNn {`#4} < { "80 } }
- }
- { \__text_change_case_codepoint_title:nnn }
- { \__text_change_case_codepoint_title:nnnnn { title } {#1} }
+ \codepoint_to_category:n
+ { \__text_codepoint_from_chars:Nw #4 }
}
- { \__text_change_case_codepoint_title:nnn }
}
{ \__text_change_case_codepoint_title:nnn }
{#2} {#3} {#4}
}
+\cs_new:Npn \__text_change_case_codepoint_title_auxi:nnnn #1#2#3#4
+ {
+ \tl_if_head_eq_charcode:nNTF {#1} { L }
+ { \__text_change_case_codepoint_title:nnn }
+ { \__text_change_case_codepoint_title_auxii:nnnn { title } }
+ {#2} {#3} {#4}
+ }
\cs_new:Npn \__text_change_case_codepoint_title:nnn #1#2#3
- { \__text_change_case_codepoint_title:nnnnn { title } { end } {#1} {#2} {#3} }
-\cs_new:Npn \__text_change_case_codepoint_title:nnnnn #1#2#3#4#5
+ { \__text_change_case_codepoint_title_auxii:nnnn { end } {#1} {#2} {#3} }
+\cs_new:Npn \__text_change_case_codepoint_title_auxii:nnnn #1#2#3#4
{
- \cs_if_exist_use:cF { __text_change_case_title_ #4 :nnnnn }
+ \cs_if_exist_use:cF { __text_change_case_title_ #3 :nnnnn }
{
- \cs_if_exist_use:cF { __text_change_case_upper_ #4 :nnnnn }
+ \cs_if_exist_use:cF { __text_change_case_upper_ #3 :nnnnn }
{ \__text_change_case_codepoint:nnnnn }
}
- {#1} {#2} {#3} {#4} {#5}
+ { title } {#1} {#2} {#3} {#4}
}
\cs_new:Npn \__text_change_case_codepoint:nnnnn #1#2#3#4#5
{
@@ -36200,104 +36360,8 @@ Type H <return> for immediate help}\def~{\errmessage{%
#1 #2 { #3 }
\__seq_pop_item_def:
}
-\cs_new_protected:Npn \tl_build_begin:N #1
- { \__tl_build_begin:NN \cs_set_nopar:Npe #1 }
-\cs_new_protected:Npn \tl_build_gbegin:N #1
- { \__tl_build_begin:NN \cs_gset_nopar:Npe #1 }
-\cs_new_protected:Npn \__tl_build_begin:NN #1#2
- { \exp_args:Nc \__tl_build_begin:NNN { \cs_to_str:N #2 ' } #2 #1 }
-\cs_new_protected:Npn \__tl_build_begin:NNN #1#2#3
- {
- #3 #1 { }
- #3 #2
- {
- \exp_not:n { \exp_end: \exp_end: \exp_end: \exp_end: }
- \exp_not:n { \__tl_build_last:NNn #3 #1 { } }
- }
- }
-\cs_new_eq:NN \tl_build_clear:N \tl_build_begin:N
-\cs_new_eq:NN \tl_build_gclear:N \tl_build_gbegin:N
-\cs_new_protected:Npn \tl_build_put_right:Nn #1#2
- {
- \cs_set_nopar:Npe #1
- { \exp_after:wN \exp_not:n \exp_after:wN { \exp:w #1 #2 } }
- }
-\cs_generate_variant:Nn \tl_build_put_right:Nn { Ne , Nx }
-\cs_new_protected:Npn \tl_build_gput_right:Nn #1#2
- {
- \cs_gset_nopar:Npe #1
- { \exp_after:wN \exp_not:n \exp_after:wN { \exp:w #1 #2 } }
- }
-\cs_generate_variant:Nn \tl_build_gput_right:Nn { Ne , Nx }
-\cs_new_protected:Npn \__tl_build_last:NNn #1#2
- {
- \if_false: { { \fi:
- \exp_end: \exp_end: \exp_end: \exp_end: \exp_end:
- \__tl_build_last:NNn #1 #2 { }
- }
- }
- \if_meaning:w \c_empty_tl #2
- \__tl_build_begin:NN #1 #2
- \fi:
- #1 #2
- {
- \exp_after:wN \exp_not:n \exp_after:wN
- {
- \exp:w \if_false: } } \fi:
- \exp_after:wN \__tl_build_put:nn \exp_after:wN {#2}
- }
-\cs_new_protected:Npn \__tl_build_put:nn #1#2 { \__tl_build_put:nw {#2} #1 }
-\cs_new_protected:Npn \__tl_build_put:nw #1#2 \__tl_build_last:NNn #3#4#5
- { #2 \__tl_build_last:NNn #3 #4 { #1 #5 } }
-\cs_new_protected:Npn \tl_build_put_left:Nn #1
- { \__tl_build_put_left:NNn \cs_set_nopar:Npe #1 }
-\cs_generate_variant:Nn \tl_build_put_left:Nn { Ne , Nx }
-\cs_new_protected:Npn \tl_build_gput_left:Nn #1
- { \__tl_build_put_left:NNn \cs_gset_nopar:Npe #1 }
-\cs_generate_variant:Nn \tl_build_gput_left:Nn { Ne , Nx }
-\cs_new_protected:Npn \__tl_build_put_left:NNn #1#2#3
- {
- #1 #2
- {
- \exp_after:wN \exp_not:n \exp_after:wN
- {
- \exp:w \exp_after:wN \__tl_build_put:nn
- \exp_after:wN {#2} {#3}
- }
- }
- }
\cs_new_protected:Npn \tl_build_get:NN
{ \__tl_build_get:NNN \__kernel_tl_set:Ne }
-\cs_new_protected:Npn \__tl_build_get:NNN #1#2#3
- { #1 #3 { \if_false: { \fi: \exp_after:wN \__tl_build_get:w #2 } } }
-\cs_new:Npn \__tl_build_get:w #1 \__tl_build_last:NNn #2#3#4
- {
- \exp_not:n {#4}
- \if_meaning:w \c_empty_tl #3
- \exp_after:wN \__tl_build_get_end:w
- \fi:
- \exp_after:wN \__tl_build_get:w #3
- }
-\cs_new:Npn \__tl_build_get_end:w #1#2#3
- { \exp_after:wN \exp_not:n \exp_after:wN { \if_false: } \fi: }
-\cs_new_protected:Npn \tl_build_end:N #1
- {
- \__tl_build_get:NNN \__kernel_tl_set:Ne #1 #1
- \exp_args:Nc \__tl_build_end_loop:NN { \cs_to_str:N #1 ' } \tl_clear:N
- }
-\cs_new_protected:Npn \tl_build_gend:N #1
- {
- \__tl_build_get:NNN \__kernel_tl_gset:Ne #1 #1
- \exp_args:Nc \__tl_build_end_loop:NN { \cs_to_str:N #1 ' } \tl_gclear:N
- }
-\cs_new_protected:Npn \__tl_build_end_loop:NN #1#2
- {
- \if_meaning:w \c_empty_tl #1
- \exp_after:wN \use_none:nnnnnn
- \fi:
- #2 #1
- \exp_args:Nc \__tl_build_end_loop:NN { \cs_to_str:N #1 ' } #2
- }
%% File: l3legacy.dtx
\prg_new_conditional:Npnn \legacy_if:n #1 { p , T , F , TF }
{
@@ -36632,6 +36696,10 @@ Type H <return> for immediate help}\def~{\errmessage{%
\cs_gset:Npn \seq_indexed_map_function:NN { \seq_map_indexed_function:NN }
\__kernel_patch_deprecation:nnNNpn { 2023-05-10 } { \seq_mapthread_function:NNN }
\cs_gset:Npn \seq_mapthread_function:NNN { \seq_map_pairwise_function:NNN }
+\__kernel_patch_deprecation:nnNNpn { 2023-10-26 } { \seq_set_map_e:NNn }
+\cs_gset_protected:Npn \seq_set_map_x:NNn { \seq_set_map_e:NNn }
+\__kernel_patch_deprecation:nnNNpn { 2023-10-26 } { \seq_gset_map_e:NNn }
+\cs_gset_protected:Npn \seq_gset_map_x:NNn { \seq_gset_map_e:NNn }
\__kernel_patch_deprecation:nnNNpn { 2021-01-11 } { (no~longer~required) }
\cs_gset_protected:Npn \sys_load_deprecation: { }
\__kernel_patch_deprecation:nnNNpn { 2023-07-08 } { \text_titlecase_first:n }
@@ -36669,6 +36737,10 @@ Type H <return> for immediate help}\def~{\errmessage{%
\cs_generate_variant:Nn \tl_case:Nn { c }
\prg_generate_conditional_variant:Nnn \tl_case:Nn
{ c } { T , F , TF }
+\__kernel_patch_deprecation:nnNNpn { 2023-10-18 } { \tl_build_begin:N }
+\cs_new_protected:Npn \tl_build_clear:N { \tl_build_begin:N }
+\__kernel_patch_deprecation:nnNNpn { 2023-10-18 } { \tl_build_gbegin:N }
+\cs_new_protected:Npn \tl_build_gclear:N { \tl_build_gbegin:N }
\__kernel_patch_deprecation:nnNNpn { 2022-10-09 } { [ \codepoint_generate:n ] }
\cs_gset:Npn \char_to_utfviii_bytes:n { \__kernel_codepoint_to_bytes:n }
\__kernel_patch_deprecation:nnNNpn { 2022-10-09 } { \codepoint_to_nfd:n }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
index 0942a8855d7..f84742ea377 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2023-10-23}%
+\def\ExplFileDate{2023-11-01}%
\let\ExplLoaderFileDate\ExplFileDate
\begingroup
\catcode`\_=11
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
index e0c4ee07865..b0134c23ce1 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2023-10-23}%
+\def\ExplFileDate{2023-11-01}%
\let\ExplLoaderFileDate\ExplFileDate
\begingroup
\catcode`\_=11
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
index 5e548a94e2b..8afbeb2e718 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2023-10-23}%
+\def\ExplFileDate{2023-11-01}%
\let\ExplLoaderFileDate\ExplFileDate
\ProvidesPackage{expl3}
[%
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
index 4191b7df9c2..238756a9bdb 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
@@ -655,9 +655,9 @@
\raisebox{\baselineskip}[0pt][0pt]{\hypertarget{expstar}{}}%
\write \@auxout { \def \string \Codedoc@expstar { } }
\__codedoc_typeset_exp:\ indicates~fully~expandable~functions,~which~
- can~be~used~within~an~\texttt{x}-type~argument~(in~plain~
- \TeX{}~terms,~inside~an~\cs{edef}),~as~well~as~within~an~
- \texttt{f}-type~argument.
+ can~be~used~within~an~\texttt{e}-type~argument~(inside~an~\tn{expanded}),~
+ \texttt{x}-type~argument~(in~plain~\TeX{}~terms,~inside~an~\tn{edef}),~
+ as~well~as~within~an~\texttt{f}-type~argument.
}
\NewDocumentCommand { \CodedocExplainREXP } { }
{
@@ -665,8 +665,8 @@
\write \@auxout { \def \string \Codedoc@rexpstar { } }
\__codedoc_typeset_rexp:\ indicates~
restricted~expandable~functions,~which~can~be~used~within~an~
- \texttt{x}-type~argument~but~cannot~be~fully~expanded~within~an~
- \texttt{f}-type~argument.
+ \texttt{x}-type~argument~or~an~\texttt{e}-type~argument,~
+ but~cannot~be~fully~expanded~within~an~\texttt{f}-type~argument.
}
\NewDocumentCommand { \CodedocExplainTF } { }
{