summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/l3experimental
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-05-28 03:01:17 +0000
committerNorbert Preining <norbert@preining.info>2021-05-28 03:01:17 +0000
commitfd03eb3aab9edb9b15484a1130509cebe187d8bd (patch)
tree9e07ef2b8a29d7aaf170e72d934d3e9ecee6452c /macros/latex/contrib/l3experimental
parent5f1cfa686748068fedb95d8dafda3dc7f999c948 (diff)
CTAN sync 202105280301
Diffstat (limited to 'macros/latex/contrib/l3experimental')
-rw-r--r--macros/latex/contrib/l3experimental/CHANGELOG.md12
-rw-r--r--macros/latex/contrib/l3experimental/README.md2
-rw-r--r--macros/latex/contrib/l3experimental/l3benchmark.dtx177
-rw-r--r--macros/latex/contrib/l3experimental/l3benchmark.ins2
-rw-r--r--macros/latex/contrib/l3experimental/l3benchmark.pdfbin314359 -> 308513 bytes
-rw-r--r--macros/latex/contrib/l3experimental/l3bitset.dtx4
-rw-r--r--macros/latex/contrib/l3experimental/l3bitset.ins4
-rw-r--r--macros/latex/contrib/l3experimental/l3bitset.pdfbin382437 -> 404327 bytes
-rw-r--r--macros/latex/contrib/l3experimental/l3draw-boxes.dtx2
-rw-r--r--macros/latex/contrib/l3experimental/l3draw-code.pdfbin607244 -> 653470 bytes
-rw-r--r--macros/latex/contrib/l3experimental/l3draw-layers.dtx2
-rw-r--r--macros/latex/contrib/l3experimental/l3draw-paths.dtx2
-rw-r--r--macros/latex/contrib/l3experimental/l3draw-points.dtx2
-rw-r--r--macros/latex/contrib/l3experimental/l3draw-scopes.dtx2
-rw-r--r--macros/latex/contrib/l3experimental/l3draw-softpath.dtx2
-rw-r--r--macros/latex/contrib/l3experimental/l3draw-state.dtx2
-rw-r--r--macros/latex/contrib/l3experimental/l3draw-transforms.dtx2
-rw-r--r--macros/latex/contrib/l3experimental/l3draw.dtx4
-rw-r--r--macros/latex/contrib/l3experimental/l3draw.ins2
-rw-r--r--macros/latex/contrib/l3experimental/l3draw.pdfbin489992 -> 516603 bytes
-rw-r--r--macros/latex/contrib/l3experimental/l3galley.dtx22
-rw-r--r--macros/latex/contrib/l3experimental/l3galley.pdfbin385907 -> 408867 bytes
-rw-r--r--macros/latex/contrib/l3experimental/l3graphics.dtx4
-rw-r--r--macros/latex/contrib/l3experimental/l3graphics.ins2
-rw-r--r--macros/latex/contrib/l3experimental/l3graphics.pdfbin363213 -> 383971 bytes
-rw-r--r--macros/latex/contrib/l3experimental/l3str-format.dtx4
-rw-r--r--macros/latex/contrib/l3experimental/l3str-format.pdfbin345067 -> 367963 bytes
-rw-r--r--macros/latex/contrib/l3experimental/l3str.ins2
-rw-r--r--macros/latex/contrib/l3experimental/l3sys-shell.dtx20
-rw-r--r--macros/latex/contrib/l3experimental/l3sys-shell.ins2
-rw-r--r--macros/latex/contrib/l3experimental/l3sys-shell.pdfbin311776 -> 347992 bytes
-rw-r--r--macros/latex/contrib/l3experimental/xcoffins.dtx4
-rw-r--r--macros/latex/contrib/l3experimental/xcoffins.ins2
-rw-r--r--macros/latex/contrib/l3experimental/xcoffins.pdfbin373064 -> 394330 bytes
-rw-r--r--macros/latex/contrib/l3experimental/xgalley.dtx4
-rw-r--r--macros/latex/contrib/l3experimental/xgalley.ins2
-rw-r--r--macros/latex/contrib/l3experimental/xgalley.pdfbin285883 -> 299666 bytes
37 files changed, 118 insertions, 173 deletions
diff --git a/macros/latex/contrib/l3experimental/CHANGELOG.md b/macros/latex/contrib/l3experimental/CHANGELOG.md
index 2180a6864b..75d0cd7458 100644
--- a/macros/latex/contrib/l3experimental/CHANGELOG.md
+++ b/macros/latex/contrib/l3experimental/CHANGELOG.md
@@ -7,6 +7,15 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2021-05-27]
+
+### Added
+- `\benchmark_silent:n` and `\benchmark_once_silent:n` added to `l3benchmark`
+
+### Changed
+- store results of `l3benchmark` in documented user-level instead of private
+ variables
+
## [2021-02-18]
### Removed
@@ -201,7 +210,8 @@ this project uses date-based 'snapshot' version identifiers.
- New `l3color` module using `xcolor`-like expression syntax
- New `l3draw` module, based on `pgf` layer of the TikZ system
-[Unreleased]: https://github.com/latex3/latex3/compare/2021-02-18...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2021-05-27...HEAD
+[2021-05-27]: https://github.com/latex3/latex3/compare/2021-02-18...2021-05-27
[2021-02-18]: https://github.com/latex3/latex3/compare/2021-02-06...2021-02-18
[2021-02-06]: https://github.com/latex3/latex3/compare/2021-01-29...2021-02-06
[2021-01-29]: https://github.com/latex3/latex3/compare/2021-10-27...2021-01-29
diff --git a/macros/latex/contrib/l3experimental/README.md b/macros/latex/contrib/l3experimental/README.md
index 110132faf0..eb62a10b04 100644
--- a/macros/latex/contrib/l3experimental/README.md
+++ b/macros/latex/contrib/l3experimental/README.md
@@ -1,7 +1,7 @@
Experimental LaTeX3 Concepts
============================
-Release 2021-02-18
+Release 2021-05-27
Overview
--------
diff --git a/macros/latex/contrib/l3experimental/l3benchmark.dtx b/macros/latex/contrib/l3experimental/l3benchmark.dtx
index 1771ac2666..3cb4fa0880 100644
--- a/macros/latex/contrib/l3experimental/l3benchmark.dtx
+++ b/macros/latex/contrib/l3experimental/l3benchmark.dtx
@@ -46,32 +46,12 @@
% }^^A
% }
%
-% \date{Released 2021-02-18}
+% \date{Released 2021-05-27}
%
% \maketitle
%
% \begin{documentation}
%
-% \section{Additions to \pkg{l3sys}: elapsed time}
-%
-% \begin{function}{\sys_gzero_timer:}
-% \begin{syntax}
-% \cs{sys_gzero_timer:}
-% \end{syntax}
-% Resets the timer to zero.
-% \end{function}
-%
-% \begin{function}[EXP]{\sys_timer:}
-% \begin{syntax}
-% \cs{sys_timer:}
-% \end{syntax}
-% Expands to the current value of the engine's timer clock, a
-% non-negative integer. In engines without clock support this expands
-% to $0$ after an error. In \LuaTeX{} only the CPU time is measured,
-% while in other engines real time is measured (including time waiting
-% for user input).
-% \end{function}
-%
% \section{Benchmark}
%
% \begin{variable}{\g_benchmark_duration_target_fp}
@@ -83,22 +63,35 @@
% than this.
% \end{variable}
%
-% \begin{function}{\benchmark_once:n}
+% \begin{variable}{\g_benchmark_time_fp, \g_benchmark_ops_fp}
+% These variables store the results of the most recently run benchmark.
+% \cs{g_benchmark_time_fp} stores the time \TeX{} took in seconds, and
+% \cs{g_benchmark_ops_fp} stores the estimated number of elementary
+% operations. The latter is not set by
+% \cs{benchmark_tic:}/\cs{benchmark_toc:}.
+% \end{variable}
+%
+% \begin{function}{\benchmark_once:n, \benchmark_once_silent:n}
% \begin{syntax}
+% \cs{benchmark_once_silent:n} \Arg{code}
% \cs{benchmark_once:n} \Arg{code}
% \end{syntax}
-% Prints to the terminal the time taken by \TeX{} to run the
-% \meta{code}, and an estimated number of elementary operations. The
+% Determines the time \cs{g_benchmark_time_fp} (in seconds) taken by
+% \TeX{} to run the \meta{code}, and an estimated number
+% \cs{g_benchmark_ops_fp} of elementary operations. In addition,
+% \cs{benchmark_once:n} prints these values to the terminal. The
% \meta{code} is run only once so the time may be quite inaccurate for
% fast code.
% \end{function}
%
-% \begin{function}{\benchmark:n}
+% \begin{function}{\benchmark:n, \benchmark_silent:n}
% \begin{syntax}
% \cs{benchmark:n} \Arg{code}
% \end{syntax}
-% Prints to the terminal the time taken by \TeX{} to run the
-% \meta{code}, and an estimated number of elementary operations. The
+% Determines the time \cs{g_benchmark_time_fp} (in seconds) taken by
+% \TeX{} to run the \meta{code}, and an estimated number
+% \cs{g_benchmark_ops_fp} of elementary operations. In addition,
+% \cs{benchmark:n} prints these values to the terminal. The
% \meta{code} may be run many times and not within a group, thus code
% with side-effects may cause problems.
% \end{function}
@@ -129,95 +122,10 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3benchmark}{2021-02-18}{}
+\ProvidesExplPackage{l3benchmark}{2021-05-27}{}
{L3 Experimental benchmarking}
% \end{macrocode}
%
-% \subsection{Additions to \pkg{l3sys}: elapsed time}
-%
-% \begin{macrocode}
-%<@@=sys>
-% \end{macrocode}
-%
-% \begin{macro}[EXP]{\sys_timer:, \@@_elapsedtime:, \@@_resettimer:}
-% \begin{macro}[EXP,pTF]{\sys_if_timer_exist:}
-% In \LuaTeX{}, use emulation (see \pkg{l3luatex}),
-% otherwise try to locate the primitive. The
-% elapsed time will be available if this succeeds.
-% \begin{macrocode}
-\sys_if_engine_luatex:TF
- {
- \cs_new:Npn \@@_elapsedtime: { }
- \cs_new:Npn \@@_resettimer: { }
- \lua_now:n
- {
- local~gettimeofday = os.gettimeofday~
- local~epoch = gettimeofday() - os.clock()~
- local~write = tex.write~
- local~tointeger = math.tointeger~
- local~id = luatexbase.new_luafunction'@@_elapsedtime:'
- lua.get_functions_table()[id] = function()
- write(tointeger((gettimeofday() - epoch)*65536 // 1))
- end~
- token.set_lua('@@_elapsedtime:', id, 'global')
- id = luatexbase.new_luafunction'@@_resettimer:'
- lua.get_functions_table()[id] = function()
- epoch = gettimeofday()
- end~
- token.set_lua('@@_resettimer:', id, 'global', 'protected')
- }
- \cs_new:Npn \sys_timer:
- { \@@_elapsedtime: }
- }
- {
- \cs_if_exist:NT \tex_elapsedtime:D
- {
- \cs_new:Npn \sys_timer:
- { \int_value:w \tex_elapsedtime:D }
- }
- }
-\@@_const:nn { sys_if_timer_exist }
- { \cs_if_exist_p:N \sys_timer: }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\sys_gzero_timer:}
-% Three case, and in each case we define \cs{sys_gzero_timer:}.
-% \begin{macrocode}
-\cs_if_exist:NTF \sys_timer:
- {
- \sys_if_engine_luatex:TF
- {
- \cs_new_protected:Npn \sys_gzero_timer:
- { \@@_resettimer: }
- }
- { \cs_new_protected:Npn \sys_gzero_timer: { \tex_resettimer:D } }
- }
-% \end{macrocode}
-% If the elapsed time cannot be accessed then we define user
-% commands to produce errors.
-% \begin{macrocode}
- {
- \__kernel_msg_new:nnnn { kernel } { no-elapsed-time }
- { No~clock~detected~for~#1. }
- { The~current~engine~provides~no~way~to~access~the~system~time. }
- \cs_new_protected:Npn \sys_gzero_timer:
- {
- \__kernel_msg_error:nnn { kernel } { no-elapsed-time }
- { \sys_gzero_timer: }
- }
- \cs_new:Npn \sys_timer:
- {
- \int_value:w
- \__kernel_msg_expandable_error:nnn { kernel } { no-elapsed-time }
- { \sys_timer: }
- \c_zero_int
- }
- }
-% \end{macrocode}
-% \end{macro}
-%
% \subsection{Benchmarking code}
%
% \begin{macrocode}
@@ -242,6 +150,8 @@
\cs_new_protected:Npn \benchmark_once:n #1
{ \msg_error:nn { benchmark } { no-time } }
\cs_new_eq:NN \benchmark:n \benchmark_once:n
+ \cs_new_eq:NN \benchmark_once_silent:n \benchmark_once:n
+ \cs_new_eq:NN \benchmark_silent:n \benchmark_once:n
\cs_new_protected:Npn \benchmark_tic:
{ \msg_error:nn { benchmark } { no-time } }
\cs_new_eq:NN \benchmark_toc: \benchmark_tic:
@@ -337,13 +247,13 @@
%
% \subsubsection{Main benchmarking}
%
-% \begin{variable}{\g_@@_time_fp, \g_@@_ops_fp}
+% \begin{variable}{\g_benchmark_time_fp, \g_benchmark_ops_fp}
% Functions such as \cs{benchmark:n} store the measured time in
-% \cs{g_@@_time_fp} (in seconds) and the estimated number of
-% operations in \cs{g_@@_ops_fp}.
+% \cs{g_benchmark_time_fp} (in seconds) and the estimated number of
+% operations in \cs{g_benchmark_ops_fp}.
% \begin{macrocode}
-\fp_new:N \g_@@_time_fp
-\fp_new:N \g_@@_ops_fp
+\fp_new:N \g_benchmark_time_fp
+\fp_new:N \g_benchmark_ops_fp
% \end{macrocode}
% \end{variable}
%
@@ -381,7 +291,7 @@
% \end{macrocode}
% \end{variable}
%
-% \begin{macro}{\benchmark_once:n}
+% \begin{macro}{\benchmark_once:n, \benchmark_once_silent:n}
% Convert the raw time from scaled seconds to seconds, and convert to
% a number of operations. It is important to measure the elementary
% operation before running the user code because both measurements use
@@ -389,10 +299,15 @@
% \begin{macrocode}
\cs_new_protected:Npn \benchmark_once:n #1
{
+ \benchmark_once_silent:n {#1}
+ \@@_display:
+ }
+\cs_new_protected:Npn \benchmark_once_silent:n #1
+ {
\@@_measure_op:
\@@_raw:nN {#1} \g_@@_time_int
- \fp_gset:Nn \g_@@_time_fp { \g_@@_time_int / 65536 }
- \@@_display:
+ \fp_gset:Nn \g_benchmark_time_fp { \g_@@_time_int / 65536 }
+ \fp_gset:Nn \g_benchmark_ops_fp { \g_benchmark_time_fp / \g_@@_one_op_fp }
}
% \end{macrocode}
% \end{macro}
@@ -402,10 +317,15 @@
% \begin{macrocode}
\cs_new_protected:Npn \benchmark:n #1
{
+ \benchmark_silent:n {#1}
+ \@@_display:
+ }
+\cs_new_protected:Npn \benchmark_silent:n #1
+ {
\@@_measure_op:
\tl_gset:Nn \g_@@_code_tl {#1}
\@@_aux:
- \@@_display:
+ \fp_gset:Nn \g_benchmark_ops_fp { \g_benchmark_time_fp / \g_@@_one_op_fp }
}
% \end{macrocode}
% \end{macro}
@@ -460,7 +380,7 @@
}
\prg_break_point:
\int_compare:nNnT \g_@@_time_int < 3 { \int_gzero:N \g_@@_time_int }
- \fp_gset:Nn \g_@@_time_fp
+ \fp_gset:Nn \g_benchmark_time_fp
{ \g_@@_time_int / \g_@@_repeat_int / 65536 }
}
\cs_new_protected:Npn \@@_run:N
@@ -488,7 +408,7 @@
\tl_gset:Nn \g_@@_code_tl
{ \int_gadd:Nn \g_@@_duration_int { 0 } }
\@@_aux:
- \fp_gset:Nn \g_@@_one_op_fp { max(\g_@@_time_fp, 1e-16) }
+ \fp_gset:Nn \g_@@_one_op_fp { max(\g_benchmark_time_fp, 1e-16) }
\int_gset:Nn \g_@@_duration_int
{ \fp_to_int:n { 65536 * \g_benchmark_duration_target_fp } }
}
@@ -519,11 +439,10 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_display:
{
- \fp_gset:Nn \g_@@_ops_fp { \g_@@_time_fp / \g_@@_one_op_fp }
\iow_term:x
{
- \@@_fp_to_tl:N \g_@@_time_fp \c_space_tl seconds \c_space_tl
- ( \@@_fp_to_tl:N \g_@@_ops_fp \c_space_tl ops)
+ \@@_fp_to_tl:N \g_benchmark_time_fp \c_space_tl seconds \c_space_tl
+ ( \@@_fp_to_tl:N \g_benchmark_ops_fp \c_space_tl ops)
}
}
% \end{macrocode}
@@ -573,13 +492,13 @@
\cs_new_protected:Npn \@@_toc:
{
\int_gdecr:N \g_@@_tictoc_int
- \fp_gset:Nn \g_@@_time_fp
+ \fp_gset:Nn \g_benchmark_time_fp
{ ( \sys_timer: - \l_@@_tictoc_pop_tl ) / 65536 }
\iow_term:x
{
\@@_tictoc_prefix:
TOC: \c_space_tl
- \@@_fp_to_tl:N \g_@@_time_fp \c_space_tl s
+ \@@_fp_to_tl:N \g_benchmark_time_fp \c_space_tl s
}
}
\msg_new:nnn { benchmark } { toc-first }
diff --git a/macros/latex/contrib/l3experimental/l3benchmark.ins b/macros/latex/contrib/l3experimental/l3benchmark.ins
index 4b72b69db3..bab7d5a5f5 100644
--- a/macros/latex/contrib/l3experimental/l3benchmark.ins
+++ b/macros/latex/contrib/l3experimental/l3benchmark.ins
@@ -29,7 +29,7 @@ license information is placed in the derived files.
\fi
-\input l3docstrip.tex
+\input docstrip %
\askforoverwritefalse
\preamble
diff --git a/macros/latex/contrib/l3experimental/l3benchmark.pdf b/macros/latex/contrib/l3experimental/l3benchmark.pdf
index ee7144dba8..f70e4ce170 100644
--- a/macros/latex/contrib/l3experimental/l3benchmark.pdf
+++ b/macros/latex/contrib/l3experimental/l3benchmark.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/l3bitset.dtx b/macros/latex/contrib/l3experimental/l3bitset.dtx
index 686df60ccd..fd7f59b562 100644
--- a/macros/latex/contrib/l3experimental/l3bitset.dtx
+++ b/macros/latex/contrib/l3experimental/l3bitset.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2021-02-18}
+% \date{Released 2021-05-27}
%
% \maketitle
% \begin{documentation}
@@ -264,7 +264,7 @@
%<@@=bitset>
% \end{macrocode}
% \begin{macrocode}
-\ProvidesExplPackage{l3bitset}{2021-02-18}{}
+\ProvidesExplPackage{l3bitset}{2021-05-27}{}
{L3 Experimental bitset support}
% \end{macrocode}
% A bitset is a string variable.
diff --git a/macros/latex/contrib/l3experimental/l3bitset.ins b/macros/latex/contrib/l3experimental/l3bitset.ins
index 1f693d2956..1d91118d90 100644
--- a/macros/latex/contrib/l3experimental/l3bitset.ins
+++ b/macros/latex/contrib/l3experimental/l3bitset.ins
@@ -2,7 +2,7 @@
File: l3bitset.ins
-Copyright (C) 2020 The LaTeX3 Project
+Copyright (C) 2020,2021 The LaTeX3 Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -29,7 +29,7 @@ license information is placed in the derived files.
\fi
-\input l3docstrip.tex
+\input docstrip %
\askforoverwritefalse
\preamble
diff --git a/macros/latex/contrib/l3experimental/l3bitset.pdf b/macros/latex/contrib/l3experimental/l3bitset.pdf
index 2c9b2877c2..1bc1fbb3a6 100644
--- a/macros/latex/contrib/l3experimental/l3bitset.pdf
+++ b/macros/latex/contrib/l3experimental/l3bitset.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/l3draw-boxes.dtx b/macros/latex/contrib/l3experimental/l3draw-boxes.dtx
index 64bc0cfa64..cd3ac24744 100644
--- a/macros/latex/contrib/l3experimental/l3draw-boxes.dtx
+++ b/macros/latex/contrib/l3experimental/l3draw-boxes.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2021-02-18}
+% \date{Released 2021-05-27}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3experimental/l3draw-code.pdf b/macros/latex/contrib/l3experimental/l3draw-code.pdf
index 38889a0dc3..074a30ee1f 100644
--- a/macros/latex/contrib/l3experimental/l3draw-code.pdf
+++ b/macros/latex/contrib/l3experimental/l3draw-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/l3draw-layers.dtx b/macros/latex/contrib/l3experimental/l3draw-layers.dtx
index f193ceb4d6..8f1fd9253b 100644
--- a/macros/latex/contrib/l3experimental/l3draw-layers.dtx
+++ b/macros/latex/contrib/l3experimental/l3draw-layers.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2021-02-18}
+% \date{Released 2021-05-27}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3experimental/l3draw-paths.dtx b/macros/latex/contrib/l3experimental/l3draw-paths.dtx
index a846d4046a..f0569e5603 100644
--- a/macros/latex/contrib/l3experimental/l3draw-paths.dtx
+++ b/macros/latex/contrib/l3experimental/l3draw-paths.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2021-02-18}
+% \date{Released 2021-05-27}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3experimental/l3draw-points.dtx b/macros/latex/contrib/l3experimental/l3draw-points.dtx
index 70e088d0cf..71633ca740 100644
--- a/macros/latex/contrib/l3experimental/l3draw-points.dtx
+++ b/macros/latex/contrib/l3experimental/l3draw-points.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2021-02-18}
+% \date{Released 2021-05-27}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3experimental/l3draw-scopes.dtx b/macros/latex/contrib/l3experimental/l3draw-scopes.dtx
index 60792f27ed..6fcb544eb6 100644
--- a/macros/latex/contrib/l3experimental/l3draw-scopes.dtx
+++ b/macros/latex/contrib/l3experimental/l3draw-scopes.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2021-02-18}
+% \date{Released 2021-05-27}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3experimental/l3draw-softpath.dtx b/macros/latex/contrib/l3experimental/l3draw-softpath.dtx
index 9d70d5d7e2..fc7fac00db 100644
--- a/macros/latex/contrib/l3experimental/l3draw-softpath.dtx
+++ b/macros/latex/contrib/l3experimental/l3draw-softpath.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2021-02-18}
+% \date{Released 2021-05-27}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3experimental/l3draw-state.dtx b/macros/latex/contrib/l3experimental/l3draw-state.dtx
index 105120a391..046a3a7944 100644
--- a/macros/latex/contrib/l3experimental/l3draw-state.dtx
+++ b/macros/latex/contrib/l3experimental/l3draw-state.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2021-02-18}
+% \date{Released 2021-05-27}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3experimental/l3draw-transforms.dtx b/macros/latex/contrib/l3experimental/l3draw-transforms.dtx
index 839fce91a6..de39ce257d 100644
--- a/macros/latex/contrib/l3experimental/l3draw-transforms.dtx
+++ b/macros/latex/contrib/l3experimental/l3draw-transforms.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2021-02-18}
+% \date{Released 2021-05-27}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3experimental/l3draw.dtx b/macros/latex/contrib/l3experimental/l3draw.dtx
index 1b6cdd8ab9..9a9e670cce 100644
--- a/macros/latex/contrib/l3experimental/l3draw.dtx
+++ b/macros/latex/contrib/l3experimental/l3draw.dtx
@@ -110,7 +110,7 @@
% }^^A
% }
%
-% \date{Released 2021-02-18}
+% \date{Released 2021-05-27}
%
% \maketitle
%
@@ -1136,7 +1136,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3draw}{2021-02-18}{}
+\ProvidesExplPackage{l3draw}{2021-05-27}{}
{L3 Experimental core drawing support}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3experimental/l3draw.ins b/macros/latex/contrib/l3experimental/l3draw.ins
index ba54fc4132..e9d00167d5 100644
--- a/macros/latex/contrib/l3experimental/l3draw.ins
+++ b/macros/latex/contrib/l3experimental/l3draw.ins
@@ -29,7 +29,7 @@ license information is placed in the derived files.
\fi
-\input l3docstrip.tex
+\input docstrip %
\askforoverwritefalse
\preamble
diff --git a/macros/latex/contrib/l3experimental/l3draw.pdf b/macros/latex/contrib/l3experimental/l3draw.pdf
index d0eb491882..0edae24d33 100644
--- a/macros/latex/contrib/l3experimental/l3draw.pdf
+++ b/macros/latex/contrib/l3experimental/l3draw.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/l3galley.dtx b/macros/latex/contrib/l3experimental/l3galley.dtx
index 1c7c9bd941..8d0291d1b1 100644
--- a/macros/latex/contrib/l3experimental/l3galley.dtx
+++ b/macros/latex/contrib/l3experimental/l3galley.dtx
@@ -61,7 +61,7 @@
% }^^A
% }
%
-% \date{Released 2021-02-18}
+% \date{Released 2021-05-27}
%
% \maketitle
%
@@ -686,7 +686,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3galley}{2021-02-18}{}
+\ProvidesExplPackage{l3galley}{2021-05-27}{}
{L3 Experimental galley code}
% \end{macrocode}
%
@@ -1803,10 +1803,10 @@
\bool_lazy_and:nnTF
{ \dim_compare_p:nNn \l_galley_total_left_margin_dim = \c_zero_dim }
{ \dim_compare_p:nNn \l_galley_total_right_margin_dim = \c_zero_dim }
- { \tex_parshape:D 0 \exp_stop_f: }
+ { \tex_parshape:D \c_zero_int }
{
\tex_parshape:D
- 1 \exp_stop_f:
+ \c_one_int
\l_galley_total_left_margin_dim
\l_galley_text_width_dim
}
@@ -2196,7 +2196,7 @@
\tex_displaywidowpenalties:D
\int_eval:n { \clist_count:n {#1} + 1 } \exp_stop_f:
\clist_map_function:nN {#1} \@@_set_aux:n
- 0 \exp_stop_f:
+ \c_zero_int
}
\cs_generate_variant:Nn \galley_display_widow_penalties_set:n { V , v }
\cs_new_protected:Npn \galley_widow_penalties_set:n #1
@@ -2204,7 +2204,7 @@
\tex_widowpenalties:D
\int_eval:n { \clist_count:n {#1} + 1 } \exp_stop_f:
\clist_map_function:nN {#1} \@@_set_aux:n
- 0 \exp_stop_f:
+ \c_zero_int
}
\cs_generate_variant:Nn \galley_widow_penalties_set:n { V , v }
\cs_new:Npn \@@_set_aux:n #1 { \int_eval:n {#1} ~ }
@@ -2255,7 +2255,7 @@
\tex_clubpenalties:D
\int_eval:n { \clist_count:n {#1} + 1 } \exp_stop_f:
\clist_map_function:nN {#1} \@@_set_aux:n
- 0 \exp_stop_f:
+ \c_zero_int
\@@_calc_interline_penalties:
}
\cs_generate_variant:Nn \galley_display_club_penalties_set:n { V , v }
@@ -2301,7 +2301,7 @@
\cs_new_protected:Npn \@@_set_interline_penalty:nn #1#2
{
\tex_interlinepenalties:D
- \tex_interlinepenalties:D 0 \exp_stop_f:
+ \tex_interlinepenalties:D \c_zero_int
\int_step_function:nN {#1}
\@@_set_interline_penalty_auxi:n
\int_step_function:nnN { #1 + 1 } { \tex_interlinepenalties:D 0 - 1 }
@@ -2357,7 +2357,7 @@
\@@_calc_interline_penalties_auxi:n
\int_step_function:nnN { #2 + 1 } { #1 - 1 }
\@@_calc_interline_penalties_auxii:n
- \tex_interlinepenalties:D \tex_interlinepenalties:D 0 \exp_stop_f:
+ \tex_interlinepenalties:D \tex_interlinepenalties:D \c_zero_int
}
\cs_new:Npn \@@_calc_interline_penalties_auxi:n #1
{
@@ -2373,7 +2373,7 @@
{
\int_eval:n
{
- \tex_interlinepenalties:D \tex_interlinepenalties:D 0 \exp_stop_f:
+ \tex_interlinepenalties:D \tex_interlinepenalties:D \c_zero_int
+ 0 \clist_item:Nn \l_galley_club_penalties_clist {#1}
- \tex_clubpenalties:D #1 ~
}
@@ -2449,7 +2449,7 @@
% last value in the primitive array.
% \begin{macrocode}
\cs_new_protected:Npn \galley_interline_penalty:
- { \int_value:w \tex_interlinepenalties:D \tex_interlinepenalties:D 0 \exp_stop_f: }
+ { \int_value:w \tex_interlinepenalties:D \tex_interlinepenalties:D \c_zero_int }
% \end{macrocode}
% \end{macro}
% \end{macro}
diff --git a/macros/latex/contrib/l3experimental/l3galley.pdf b/macros/latex/contrib/l3experimental/l3galley.pdf
index 743d8ac6f2..a5519755d2 100644
--- a/macros/latex/contrib/l3experimental/l3galley.pdf
+++ b/macros/latex/contrib/l3experimental/l3galley.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/l3graphics.dtx b/macros/latex/contrib/l3experimental/l3graphics.dtx
index 5b4144c062..89a9410016 100644
--- a/macros/latex/contrib/l3experimental/l3graphics.dtx
+++ b/macros/latex/contrib/l3experimental/l3graphics.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2021-02-18}
+% \date{Released 2021-05-27}
%
% \maketitle
%
@@ -240,7 +240,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3graphics}{2021-02-18}{}
+\ProvidesExplPackage{l3graphics}{2021-05-27}{}
{L3 Experimental graphics inclusion support}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3experimental/l3graphics.ins b/macros/latex/contrib/l3experimental/l3graphics.ins
index 92af3d8915..612372f343 100644
--- a/macros/latex/contrib/l3experimental/l3graphics.ins
+++ b/macros/latex/contrib/l3experimental/l3graphics.ins
@@ -27,7 +27,7 @@ license information is placed in the derived files.
\fi
-\input l3docstrip.tex
+\input docstrip %
\askforoverwritefalse
\preamble
diff --git a/macros/latex/contrib/l3experimental/l3graphics.pdf b/macros/latex/contrib/l3experimental/l3graphics.pdf
index 2ae274ac53..82a0c5dc3c 100644
--- a/macros/latex/contrib/l3experimental/l3graphics.pdf
+++ b/macros/latex/contrib/l3experimental/l3graphics.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/l3str-format.dtx b/macros/latex/contrib/l3experimental/l3str-format.dtx
index 9b0cf4a5a4..34ccffbb5b 100644
--- a/macros/latex/contrib/l3experimental/l3str-format.dtx
+++ b/macros/latex/contrib/l3experimental/l3str-format.dtx
@@ -48,7 +48,7 @@
% }^^A
% }
%
-% \date{Released 2021-02-18}
+% \date{Released 2021-05-27}
%
% \maketitle
%
@@ -166,7 +166,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3str-format}{2021-02-18}{}
+\ProvidesExplPackage{l3str-format}{2021-05-27}{}
{L3 Experimental string formatting}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3experimental/l3str-format.pdf b/macros/latex/contrib/l3experimental/l3str-format.pdf
index b0b07a632e..3e909d02f2 100644
--- a/macros/latex/contrib/l3experimental/l3str-format.pdf
+++ b/macros/latex/contrib/l3experimental/l3str-format.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/l3str.ins b/macros/latex/contrib/l3experimental/l3str.ins
index 4c2b0df987..9e264f7f8c 100644
--- a/macros/latex/contrib/l3experimental/l3str.ins
+++ b/macros/latex/contrib/l3experimental/l3str.ins
@@ -29,7 +29,7 @@ license information is placed in the derived files.
\fi
-\input l3docstrip.tex
+\input docstrip %
\askforoverwritefalse
\preamble
diff --git a/macros/latex/contrib/l3experimental/l3sys-shell.dtx b/macros/latex/contrib/l3experimental/l3sys-shell.dtx
index 9a7920fe3f..cf3e3f1405 100644
--- a/macros/latex/contrib/l3experimental/l3sys-shell.dtx
+++ b/macros/latex/contrib/l3experimental/l3sys-shell.dtx
@@ -46,12 +46,28 @@
% }^^A
% }
%
-% \date{Released 2021-02-18}
+% \date{Released 2021-05-27}
%
% \maketitle
%
% \begin{documentation}
%
+% This module provides platform-neutral interfaces to system shell commands.
+% These functions can only access the shell if a document is proceeded using
+% \texttt{--shell-escape}, which allows \emph{unrestricted} access to command
+% line functions.
+%
+% In general, arbitrary documents should \emph{not} be processed in this way,
+% as shell escape could either accidentally or deliberately lead to unexpected
+% side-effects. In that sense, they should be treated like any other arbitrary
+% script: with caution. No attempt is made by the functions here to avoid
+% injection of additional commands into the arguments.
+%
+% With the above security caveats in mind, these functions are provided for
+% authors where a workflow scripting \emph{within} a \LaTeX{} document is
+% preferable to using an external script. The latter would of course also have
+% the ability to run arbitrary code.
+%
% \begin{function}[added = 2018-07-28]{\sys_shell_cp:nn}
% \begin{syntax}
% \cs{sys_shell_cp:nn} \Arg{source} \Arg{dest}
@@ -135,7 +151,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3sys-shell}{2021-02-18}{}
+\ProvidesExplPackage{l3sys-shell}{2021-05-27}{}
{L3 Experimental system shell functions}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3experimental/l3sys-shell.ins b/macros/latex/contrib/l3experimental/l3sys-shell.ins
index 025c282b72..3241bd0804 100644
--- a/macros/latex/contrib/l3experimental/l3sys-shell.ins
+++ b/macros/latex/contrib/l3experimental/l3sys-shell.ins
@@ -29,7 +29,7 @@ license information is placed in the derived files.
\fi
-\input l3docstrip.tex
+\input docstrip %
\askforoverwritefalse
\preamble
diff --git a/macros/latex/contrib/l3experimental/l3sys-shell.pdf b/macros/latex/contrib/l3experimental/l3sys-shell.pdf
index 44d84d1d9b..d0cde462c2 100644
--- a/macros/latex/contrib/l3experimental/l3sys-shell.pdf
+++ b/macros/latex/contrib/l3experimental/l3sys-shell.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/xcoffins.dtx b/macros/latex/contrib/l3experimental/xcoffins.dtx
index 86d3add8ae..f8f10fc063 100644
--- a/macros/latex/contrib/l3experimental/xcoffins.dtx
+++ b/macros/latex/contrib/l3experimental/xcoffins.dtx
@@ -53,7 +53,7 @@
% }^^A
% }
%
-% \date{Released 2021-02-18}
+% \date{Released 2021-05-27}
%
% \maketitle
%
@@ -672,7 +672,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xcoffins}{2021-02-18}{}
+\ProvidesExplPackage{xcoffins}{2021-05-27}{}
{L3 Experimental design level coffins}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3experimental/xcoffins.ins b/macros/latex/contrib/l3experimental/xcoffins.ins
index 218e38dec3..8ed2506800 100644
--- a/macros/latex/contrib/l3experimental/xcoffins.ins
+++ b/macros/latex/contrib/l3experimental/xcoffins.ins
@@ -29,7 +29,7 @@ license information is placed in the derived files.
\fi
-\input l3docstrip.tex
+\input docstrip %
\askforoverwritefalse
\preamble
diff --git a/macros/latex/contrib/l3experimental/xcoffins.pdf b/macros/latex/contrib/l3experimental/xcoffins.pdf
index cb1e4bd9ad..8cd96a0ad1 100644
--- a/macros/latex/contrib/l3experimental/xcoffins.pdf
+++ b/macros/latex/contrib/l3experimental/xcoffins.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/xgalley.dtx b/macros/latex/contrib/l3experimental/xgalley.dtx
index 680e288fe3..f23d7c5f48 100644
--- a/macros/latex/contrib/l3experimental/xgalley.dtx
+++ b/macros/latex/contrib/l3experimental/xgalley.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2021-02-18}
+% \date{Released 2021-05-27}
%
% \maketitle
%
@@ -731,7 +731,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xgalley}{2021-02-18}{}
+\ProvidesExplPackage{xgalley}{2021-05-27}{}
{L3 Experimental galley}
\RequirePackage{xtemplate,l3galley}
% \end{macrocode}
diff --git a/macros/latex/contrib/l3experimental/xgalley.ins b/macros/latex/contrib/l3experimental/xgalley.ins
index 8b5690d079..31acc29e00 100644
--- a/macros/latex/contrib/l3experimental/xgalley.ins
+++ b/macros/latex/contrib/l3experimental/xgalley.ins
@@ -29,7 +29,7 @@ license information is placed in the derived files.
\fi
-\input l3docstrip.tex
+\input docstrip %
\askforoverwritefalse
\preamble
diff --git a/macros/latex/contrib/l3experimental/xgalley.pdf b/macros/latex/contrib/l3experimental/xgalley.pdf
index b882769cf5..02a99f8eb8 100644
--- a/macros/latex/contrib/l3experimental/xgalley.pdf
+++ b/macros/latex/contrib/l3experimental/xgalley.pdf
Binary files differ