texlive[71323] Master/texmf-dist: l3 (22may24)

commits+karl at tug.org commits+karl at tug.org
Wed May 22 22:34:20 CEST 2024


Revision: 71323
          https://tug.org/svn/texlive?view=revision&revision=71323
Author:   karl
Date:     2024-05-22 22:34:20 +0200 (Wed, 22 May 2024)
Log Message:
-----------
l3 (22may24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/l3backend/README.md
    trunk/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/l3kernel/README.md
    trunk/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3doc.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news09.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex
    trunk/Master/texmf-dist/doc/latex/l3packages/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/l3packages/README.md
    trunk/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e-demo.tex
    trunk/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf
    trunk/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf
    trunk/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf
    trunk/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3bitset.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-functions.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-symbolic.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-types.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-build.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
    trunk/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx
    trunk/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx
    trunk/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
    trunk/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3debug.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
    trunk/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
    trunk/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty
    trunk/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
    trunk/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.pro

Removed Paths:
-------------
    trunk/Master/texmf-dist/dvips/l3backend/

Modified: trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md	2024-05-22 20:34:20 UTC (rev 71323)
@@ -6,6 +6,14 @@
 
 ## [Unreleased]
 
+## [2024-05-08]
+
+### Changed
+- Use built-in conversion for CMYK colors with `dvisvgm` (see \#1538)
+
+### Fixed
+- CMYK output from `dvisvgm`
+
 ## [2024-04-11]
 
 ### Added
@@ -40,7 +48,7 @@
 ## [2023-11-09]
 
 ### Changed
-- Changed `luaotfload` integration to allow coexistance with (x)color.
+- Changed `luaotfload` integration to allow coexistence with (x)color.
 
 ## [2023-11-04]
 
@@ -225,7 +233,7 @@
   backend)
 
 ### Changed
-- Implementation of color wtih (x)dvipdfmx (requires an up-to-date
+- Implementation of color with (x)dvipdfmx (requires an up-to-date
   backend)
 
 ## [2020-09-24]
@@ -347,7 +355,8 @@
 - Include `l3backend` in file names
 - Moved backend code to internal for each 'parent' module
 
-[Unreleased]: https://github.com/latex3/latex3/compare/2024-04-11...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2024-05-08...HEAD
+[2024-05-08]: https://github.com/latex3/latex3/compare/2024-04-11...2024-05-08
 [2024-04-11]: https://github.com/latex3/latex3/compare/2024-03-14...2024-04-11
 [2024-03-14]: https://github.com/latex3/latex3/compare/2024-02-20...2024-03-14
 [2024-02-20]: https://github.com/latex3/latex3/compare/2024-01-04...2024-02-20

Modified: trunk/Master/texmf-dist/doc/latex/l3backend/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3backend/README.md	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/doc/latex/l3backend/README.md	2024-05-22 20:34:20 UTC (rev 71323)
@@ -1,7 +1,7 @@
 LaTeX3 Backend Drivers
 ======================
 
-Release 2024-04-11
+Release 2024-05-08
 
 This package forms parts of `expl3`, and contains the code used to interface
 with backends (drivers) across the `expl3` codebase. The functions here are

Modified: trunk/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md	2024-05-22 20:34:20 UTC (rev 71323)
@@ -7,6 +7,15 @@
 
 ## [Unreleased]
 
+## [2024-05-08]
+
+### Added
+- Full set of variants for `\prop_(g)put_if_not_in:Nnn`
+- `keys_set_groups:nnn(n)N` to match `keys_set_exclude_groups:nnn(n)N`
+
+### Fixed
+- Implementation of deprecated `\pdf_object_write:nn`
+
 ## [2024-04-11]
 
 ### Added
@@ -878,7 +887,7 @@
   improve target placement, solve pdfTeX and makeindex warnings
 
 ### Fixed
-- Evalutate integer constants only once (issue [\#861](https://github.com/latex3/latex3/issues/861))
+- Evaluate integer constants only once (issue [\#861](https://github.com/latex3/latex3/issues/861))
 - Detect `\ior_map_inline:Nn` calls on undefined streams (issue [\#194](https://github.com/latex3/latex3/issues/194))
 
 ### Deprecated
@@ -1725,7 +1734,8 @@
 - Step functions have been added for dim variables,
   e.g. `\dim_step_inline:nnnn`
 
-[Unreleased]: https://github.com/latex3/latex3/compare/2024-04-11...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2024-05-08...HEAD
+[2024-05-08]: https://github.com/latex3/latex3/compare/2024-04-11...2024-05-08
 [2024-04-11]: https://github.com/latex3/latex3/compare/2024-03-14...2024-04-11
 [2024-03-14]: https://github.com/latex3/latex3/compare/2024-02-20...2024-03-14
 [2024-02-20]: https://github.com/latex3/latex3/compare/2024-02-18...2024-02-20

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2024-05-22 20:34:20 UTC (rev 71323)
@@ -1,7 +1,7 @@
 LaTeX3 Programming Conventions
 ==============================
 
-Release 2024-04-11
+Release 2024-05-08
 
 Overview
 --------

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex	2024-05-22 20:34:20 UTC (rev 71323)
@@ -58,7 +58,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2024-04-11}
+\date{Released 2024-05-08}
 
 \pagenumbering{roman}
 \maketitle

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news09.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3news09.tex	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3news09.tex	2024-05-22 20:34:20 UTC (rev 71323)
@@ -1421,7 +1421,7 @@
 \item help on shaping the document interface layer
 \end{itemize}
 These concepts, as well as their implementation, are under discussion on the list \texttt{latex-l}.\footnote{Instructions for joining and browsing archives at:\\ \url{http://latex-project.org/code.html}}
-The list has only a fairly low level of traffic right now as actual implementation and development tasks are typically discussed directly among the few active implementors. But this might change if more people join.
+The list has only a fairly low level of traffic right now as actual implementation and development tasks are typically discussed directly among the few active implementers. But this might change if more people join.
 
 \subsection{And something else \dots}
 

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv	2024-05-22 20:34:20 UTC (rev 71323)
@@ -96,6 +96,7 @@
 fmwao,widows-and-orphans,Frank Mittelbach,https://www.latex-project.org/,https://github.com/FrankMittelbach/fmitex-widows-and-orphans.git,https://github.com/FrankMittelbach/fmitex-widows-and-orphans/issues,2018-09-26,2018-09-26,
 fnote,latex2e,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex2e.git,https://github.com/latex3/latex2e/issues,2023-10-17,2023-10-17,
 fnpct,fnpct,Clemens Niederberger,https://github.com/cgnieder/fnpct/,https://github.com/cgnieder/fnpct.git,https://github.com/cgnieder/fnpct/issues,2013-03-16,2020-04-14,
+fontscale,fontscale,Oliver Beery,https://github.com/beeryoliver/fontscale,https://github.com/beeryoliver/fontscale.git,https://github.com/beeryoliver/fontscale/issues,2024-04-18,2024-04-18,
 fontsizes,fontsizes,Julien Rivaud,,,,,2018-06-13,
 fontspec,fontspec,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/fontspec.git,https://github.com/latex3/fontspec/issues,2013-03-16,2024-02-15,
 fp,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
@@ -124,9 +125,11 @@
 ior,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
 iot,iot,Island of TeX,https://islandoftex.gitlab.io,https://gitlab.com/islandoftex/texmf,https://gitlab.com/groups/islandoftex/texmf/-/issues,2023-07-18,2023-07-18,
 iow,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
+istqb,istqb,Vít Starý Novotný,https://github.com/istqborg/istqb_product_base/,https://github.com/istqborg/istqb_product_base.git,https://github.com/istqborg/istqb_product_base/issues,2024-04-24,2024-04-24,
 iwonamath,iwonamath,Boris Veytsman,https://github.com/borisveytsman/iwonamath,https://github.com/borisveytsman/iwonamath,https://github.com/borisveytsman/iwonamath/issues,2023-09-04,2023-09-04,
 jiazhu,jiazhu,Qing Lee,https://github.com/CTeX-org/ctex-kit,https://github.com/CTeX-org/ctex-kit.git,https://github.com/CTeX-org/ctex-kit/issues,2020-05-17,2020-05-17,
 job,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2021-04-23,2021-04-23,
+jsonparse,jsonparse,Jasper Habicht,https://github.com/jasperhabicht/jsonparse,https://github.com/jasperhabicht/jsonparse/jsponsparse.git,https://github.com/jasperhabicht/jsonparse/issues,2024-04-14,2024-04-14,
 kernel,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
 keys,"l3kernel,l3keys2e,ltkeys",The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
 keyval,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
@@ -137,11 +140,11 @@
 lltxmath,lualatex-math,Philipp Stephani,https://github.com/phst/lualatex-math,https://github.com/phst/lualatex-math.git,https://github.com/phst/lualatex-math/issues,2012-11-07,2012-11-07,
 log,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
 lua,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
-luabridge,lt3luabridge,Vít Novotný,https://ctan.org/pkg/lt3luabridge,https://github.com/witiko/lt3luabridge.git,https://github.com/witiko/lt3luabridge/issues,2022-06-25,2022-06-25,
+luabridge,lt3luabridge,Vít Starý Novotný,https://ctan.org/pkg/lt3luabridge,https://github.com/witiko/lt3luabridge.git,https://github.com/witiko/lt3luabridge/issues,2022-06-25,2024-04-24,
 luatex,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
 lwc,lua-widow-control,Max Chernoff,https://github.com/gucci-on-fleek/lua-widow-control,https://github.com/gucci-on-fleek/lua-widow-control.git,https://github.com/gucci-on-fleek/lua-widow-control/issues,2022-02-24,2022-02-24,
 mark,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
-markdown,markdown,Vít Novotný,https://ctan.org/pkg/markdown,https://github.com/witiko/markdown.git,https://github.com/witiko/markdown/issues,2021-09-08,2021-09-08,
+markdown,markdown,Vít Starý Novotný,https://ctan.org/pkg/markdown,https://github.com/witiko/markdown.git,https://github.com/witiko/markdown/issues,2021-09-08,2024-04-24,
 marks,l3kernel/xmarks,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2020-02-17,2020-02-17,
 marks,latex2e,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex2e.git,https://github.com/latex3/latex2e/issues,2021-03-03,2021-03-03,
 math,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
@@ -218,6 +221,7 @@
 right,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
 rivbook,rivbook,Julien Rivaud,,,,2018-06-13,2018-06-14,
 rivmath,rivmath,Julien Rivaud,,,,2018-06-13,2018-06-13,
+rpgicons,rpgicons,Jasper Habicht,https://github.com/jasperhabicht/rpgicons,https://github.com/jasperhabicht/rpgicons/rpgicons.git,https://github.com/jasperhabicht/rpgicons/issues,2024-04-29,2024-04-29,
 sanuml,sanitize-umlaut,Thomas F. Sturm,https://github.com/T-F-S/sanitize-umlaut,https://github.com/T-F-S/sanitize-umlaut.git,https://github.com/T-F-S/sanitize-umlaut/issues,2022-07-19,2022-07-19,
 scan,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
 schulma,schulmathematik,Keno Wehr,https://ctan.org/pkg/schulmathematik,,,2021-08-23,2021-08-23,
@@ -275,6 +279,7 @@
 wheelchart,wheelchart,Matthias Floré,,,,2023-12-07,2023-12-07,
 withargs,withargs,Michiel Helvensteijn,,,,2014-02-05,2014-02-05,
 witharrows,witharrows,François Pantigny,,,,2019-12-19,2019-12-19,
+wstf,wrapstuff,Qing Lee,https://github.com/qinglee/wrapstuff,https://github.com/qinglee/wrapstuff.git,https://github.com/qinglee/wrapstuff/issues,2024-04-18,2024-04-18,
 xeCJK,xecjk,Qing Lee,https://github.com/CTeX-org/ctex-kit,https://github.com/CTeX-org/ctex-kit.git,https://github.com/CTeX-org/ctex-kit/issues,2013-05-26,2013-05-26,
 xetex,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
 xfrac,xfrac,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/xfrac.git,https://github.com/latex3/xfrac/issues,2012-09-27,2024-02-14,

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex	2024-05-22 20:34:20 UTC (rev 71323)
@@ -32,7 +32,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2024-04-11}
+\date{Released 2024-05-08}
 
 \begin{document}
 

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex	2024-05-22 20:34:20 UTC (rev 71323)
@@ -32,7 +32,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2024-04-11}
+\date{Released 2024-05-08}
 
 \newcommand{\TF}{\textit{(TF)}}
 

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex	2024-05-22 20:34:20 UTC (rev 71323)
@@ -32,7 +32,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2024-04-11}
+\date{Released 2024-05-08}
 
 \newcommand{\TF}{\textit{(TF)}}
 

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex	2024-05-22 20:34:20 UTC (rev 71323)
@@ -57,7 +57,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2024-04-11}
+\date{Released 2024-05-08}
 
 \pagenumbering{roman}
 \maketitle

Modified: trunk/Master/texmf-dist/doc/latex/l3packages/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3packages/CHANGELOG.md	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/doc/latex/l3packages/CHANGELOG.md	2024-05-22 20:34:20 UTC (rev 71323)
@@ -7,6 +7,12 @@
 
 ## [Unreleased]
 
+## [2024-05-08]
+
+### Changed
+- Prepare for kernel adjustments to templates:
+  `\IfInstanceExist(TF)` as alias for `\IfInstanceExists(TF)`
+
 ## [2024-03-14]
 
 ### Changed
@@ -133,7 +139,7 @@
 ## [2021-05-07]
 
 ### Fixed
-- Implmentation of `\DeclareRestrictedTemplate`
+- Implementation of `\DeclareRestrictedTemplate`
 - Incorrect use of restricted template in `xfrac`
 
 ## [2021-03-12]
@@ -253,7 +259,8 @@
 - Switch to ISO date format
 - Improve cross-module use of internal functions
 
-[Unreleased]: https://github.com/latex3/latex3/compare/2024-03-14...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2024-05-08...HEAD
+[2024-05-08]: https://github.com/latex3/latex3/compare/2024-03-14...2024-05-08
 [2024-03-14]: https://github.com/latex3/latex3/compare/2024-02-18...2024-03-14
 [2024-02-18]: https://github.com/latex3/latex3/compare/2024-02-13...2024-02-18
 [2024-02-13]: https://github.com/latex3/latex3/compare/2023-10-10...2024-02-13

Modified: trunk/Master/texmf-dist/doc/latex/l3packages/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3packages/README.md	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/doc/latex/l3packages/README.md	2024-05-22 20:34:20 UTC (rev 71323)
@@ -1,6 +1,6 @@
 # `l3packages`: Higher-level LaTeX3 Concepts (Deprecated) 
 
-Release 2024-03-14
+Release 2024-05-08
 
 ## Overview
 

Modified: trunk/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e-demo.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e-demo.tex	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e-demo.tex	2024-05-22 20:34:20 UTC (rev 71323)
@@ -16,7 +16,7 @@
 
 % Load the class with some options.
 % The class itself recognises `option1', leaving `option2' and
-% `option3' as global optons which are not yet used.
+% `option3' as global options which are not yet used.
 \documentclass[option1=check,option2=more stuff,option3=unused]
   {l3keys2e-class}
 

Modified: trunk/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -70,27 +70,27 @@
 %    \begin{macrocode}
 \ProvidesExplFile
 %<*dvipdfmx>
-  {l3backend-dvipdfmx.def}{2024-04-11}{}
+  {l3backend-dvipdfmx.def}{2024-05-08}{}
   {L3 backend support: dvipdfmx}
 %</dvipdfmx>
 %<*dvips>
-  {l3backend-dvips.def}{2024-04-11}{}
+  {l3backend-dvips.def}{2024-05-08}{}
   {L3 backend support: dvips}
 %</dvips>
 %<*dvisvgm>
-  {l3backend-dvisvgm.def}{2024-04-11}{}
+  {l3backend-dvisvgm.def}{2024-05-08}{}
   {L3 backend support: dvisvgm}
 %</dvisvgm>
 %<*luatex>
-  {l3backend-luatex.def}{2024-04-11}{}
+  {l3backend-luatex.def}{2024-05-08}{}
   {L3 backend support: PDF output (LuaTeX)}
 %</luatex>
 %<*pdftex>
-  {l3backend-pdftex.def}{2024-04-11}{}
+  {l3backend-pdftex.def}{2024-05-08}{}
   {L3 backend support: PDF output (pdfTeX)}
 %</pdftex>
 %<*xetex>
-  {l3backend-xetex.def}{2024-04-11}{}
+  {l3backend-xetex.def}{2024-05-08}{}
   {L3 backend support: XeTeX}
 %</xetex>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -920,7 +920,7 @@
 % Here, \texttt{dvipdfmx}/\XeTeX{} we write direct PDF specials for the fill,
 % and only use the stack for the stroke color (see above for comments on why
 % we cannot use multiple stacks with these backends). \LuaTeX{} and \pdfTeX{}
-% have mutiple stacks that can deal with fill and stroke. For \texttt{dvips}
+% have multiple stacks that can deal with fill and stroke. For \texttt{dvips}
 % we have to manage fill and stroke color ourselves. We also handle
 % \texttt{dvisvgm} independently, as there we can create SVG directly.
 %
@@ -1138,8 +1138,7 @@
 %     \@@_backend_fill_rgb:n    ,
 %     \@@_backend_fill:n
 %   }
-%   Fill color here is the same as general color \emph{except} we skip the
-%   stroke part.
+%   Fill color here is the same as general color.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_backend_fill_cmyk:n #1
   { \@@_backend_fill:n { cmyk ~ #1 } }
@@ -1155,27 +1154,19 @@
 % \end{macro}
 %
 % \begin{macro}{\@@_backend_stroke_cmyk:n}
-% \begin{macro}{\@@_backend_stroke_cmyk:w}
 % \begin{macro}{\@@_backend_stroke_gray:n, \@@_backend_stroke_gray_aux:n}
 % \begin{macro}{\@@_backend_stroke_rgb:n}
 % \begin{macro}{\@@_backend_stroke_rgb:w}
 % \begin{macro}{\@@_backend:nnn}
-%   For drawings in SVG, we use scopes for all stroke colors. That
-%   requires using \texttt{RGB} values, which luckily are easy to
-%   convert here (|cmyk| to |RGB| is a fixed function).
+%   For drawings in SVG, we use scopes for all stroke colors. The backend
+%   provides the necessary conversion for CMYK but only if that is set as
+%   the main color: a little bit of gymnastics as a result.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_backend_stroke_cmyk:n #1
-  { \@@_backend_cmyk:w #1 \s_@@_stop }
-\cs_new_protected:Npn \@@_backend_stroke_cmyk:w
-  #1 ~ #2 ~ #3 ~ #4 \s_@@_stop
   {
-    \use:e
-      {
-        \@@_backend:nnn
-          { \fp_eval:n { -100 * ( 1 - min ( 1 , #1 + #4 ) ) } }
-          { \fp_eval:n { -100 * ( 1 - min ( 1 , #2 + #4 ) ) } }
-          { \fp_eval:n { -100 * ( 1 - min ( 1 , #3 + #4 ) ) } }
-      }
+    \@@_backend_fill_cmyk:n {#1}
+    \__kernel_backend_scope:n { stroke = "{?color}" }
+    \@@_backend_reset:
   }
 \cs_new_protected:Npn \@@_backend_stroke_gray:n #1
   {
@@ -1221,7 +1212,6 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
-% \end{macro}
 %
 % \begin{macro}
 %   {

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -776,7 +776,7 @@
 % \end{macro}
 %
 % \begin{macro}{\@@_backend_begin:, \@@_backend_end:}
-%   A drawing needs to be set up such that the co-ordinate system is
+%   A drawing needs to be set up such that the coordinate system is
 %   translated. That is done inside a scope, which as described below
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_backend_begin:

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -184,7 +184,7 @@
 %   For finding the anchor point of a destination link. We make the use case
 %   a separate function as it comes up a lot, and as this makes it easier to
 %   adjust if we need additional effects. We also need a more complex approach
-%   to convert a co-ordinate pair correctly when defining a rectangle: this
+%   to convert a coordinate pair correctly when defining a rectangle: this
 %   can otherwise be out when using a landscape page. (Thanks to Alexander
 %   Grahn for the approach here.)
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -266,7 +266,7 @@
 %
 % \begin{macro}{\@@_backend_annotation:nnnn}
 %   Annotations are objects, but we track them separately. Notably, they are
-%   not in the object data lists. Here, to get the co-ordinates of the
+%   not in the object data lists. Here, to get the coordinates of the
 %   annotation, we need to have the data collected at the PostScript level.
 %   That requires a bit of box trickery (effectively a \LaTeXe{} |picture|
 %   of zero size). Once the data is collected, use it to set up the annotation
@@ -376,7 +376,7 @@
 % \begin{macro}{\@@_backend_link_minima:}
 % \begin{macro}{\@@_backend_link_outerbox:n}
 % \begin{macro}{\@@_backend_link_sf_save:, \@@_backend_link_sf_restore:}
-%   Links are crated like annotations but with dedicated code to allow for
+%   Links are created like annotations but with dedicated code to allow for
 %   adjusting the size of the rectangle. In contrast to \pkg{hyperref}, we
 %   grab the link content as a box which can then unbox: this allows the same
 %   interface as for \pdfTeX{}.

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -24,7 +24,7 @@
 %
 %<*driver|generic|package|2ekernel>
 %</driver|generic|package|2ekernel>
-\def\ExplFileDate{2024-04-11}%
+\def\ExplFileDate{2024-05-08}%
 %<*driver>
 \documentclass[full]{l3doc}
 \usepackage{graphicx}
@@ -51,7 +51,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -1287,7 +1287,7 @@
 % still compatible) version in which the error mentioned above showed
 % up.  If loading as a package, \file{expl3-code.tex} got read and here
 % the \pkg{expl3} syntax is on.  Otherwise it was already loaded in a
-% sligtly older kernel, so we fire the incompatibility error message and
+% slightly older kernel, so we fire the incompatibility error message and
 % abort loading.
 %    \begin{macrocode}
   \ifodd\csname\detokenize{l__kernel_expl_bool}\endcsname

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3bitset.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3bitset.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3bitset.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -928,8 +928,8 @@
 %     \cs{box_set_viewport:Nnnnn} \meta{box} \Arg{llx} \Arg{lly} \Arg{urx} \Arg{ury}
 %   \end{syntax}
 %   Adjusts the bounding box of the \meta{box} such that it has lower-left
-%   co-ordinates (\meta{llx}, \meta{lly}) and upper-right co-ordinates
-%   (\meta{urx}, \meta{ury}). All four co-ordinate positions are
+%   coordinates (\meta{llx}, \meta{lly}) and upper-right coordinates
+%   (\meta{urx}, \meta{ury}). All four coordinate positions are
 %   \meta{dim exprs}. Material outside of the bounding box is
 %   still displayed in the output unless \cs{box_set_clipped:N} is
 %   subsequently applied.
@@ -1846,7 +1846,7 @@
 %       \put(40,49){E}
 %       \put(21,59){O}
 %     \end{picture}
-%     \caption{Co-ordinates of a box prior to rotation.}
+%     \caption{Coordinates of a box prior to rotation.}
 %     \label{fig:l3box:rotation}
 %   \end{figure}
 %   The formulae are, for a point $P$ and angle $\alpha$:
@@ -2066,7 +2066,7 @@
   }
 %    \end{macrocode}
 %   With at least one real scaling to do, the next phase is to find the new
-%   edge co-ordinates. In the $x$~direction this is relatively easy: just
+%   edge coordinates. In the $x$~direction this is relatively easy: just
 %   scale the right edge. In the $y$~direction, both dimensions have to be
 %   scaled, and this again needs the absolute scale value.
 %   Once that is all done, the common resize/rescale code can be employed.

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -375,7 +375,7 @@
 %   poles of the coffin.
 %
 %   Notice that the poles of a coffin are defined by four values:
-%   the $x$ and $y$ co-ordinates of a point that the pole
+%   the $x$ and $y$ coordinates of a point that the pole
 %   passes through and the $x$- and $y$-components of a
 %   vector denoting the direction of the pole. It is the ratio between
 %   the later, rather than the absolute values, which determines the
@@ -897,7 +897,7 @@
 %   Special coffins: these cannot be set up earlier as they need
 %   \cs{coffin_new:N}. The empty coffin is set as a box as the full
 %   coffin-setting system needs some material which is not yet available.
-%   The empty coffin is creted entirely by hand: not everything is in place
+%   The empty coffin is created entirely by hand: not everything is in place
 %   yet.
 %    \begin{macrocode}
 \coffin_new:N \c_empty_coffin
@@ -1197,7 +1197,7 @@
 %   ($a$, $b$, $c$, $d$) and
 %   ($a'$, $b'$, $c'$, $d'$). These are arguments
 %   $1$--$4$ and $5$--$8$, respectively. In both
-%   cases $a$ and  $b$ are the co-ordinates of a point on the
+%   cases $a$ and  $b$ are the coordinates of a point on the
 %   pole and $c$ and $d$ define the direction of the pole. Finding
 %   the intersection depends on the directions of the poles, which are
 %   given by $d / c$ and $d' / c'$. However, if one of the poles
@@ -1541,7 +1541,7 @@
 % \end{macro}
 %
 % \begin{macro}{\@@_rotate_pole:Nnnnnn}
-%   Rotating a single pole simply means shifting the co-ordinate of
+%   Rotating a single pole simply means shifting the coordinate of
 %   the pole and its direction. The rotation here is about the bottom-left
 %   corner of the coffin.
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3color.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3color.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -69,7 +69,7 @@
 %
 % Standard file identification.
 %    \begin{macrocode}
-\ProvidesExplFile{l3debug.def}{2024-04-11}{}{L3 Debugging support}
+\ProvidesExplFile{l3debug.def}{2024-05-08}{}{L3 Debugging support}
 %    \end{macrocode}
 %
 % \begin{variable}{\s_@@_stop}
@@ -1152,7 +1152,7 @@
 %    \end{macrocode}
 %
 % The functions here can get a bit repetitive, so we define a helper
-% which can re-use the same patch code repeatedly. The main part of the
+% which can reuse the same patch code repeatedly. The main part of the
 % patch is the same, so we just have to deal with the part which varies
 % depending on the type of expression.
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -330,13 +330,14 @@
 \cs_new_protected:Npn \pdf_object_new:nn #1#2
   {
     \prop_gput:Nnn \g_@@_object_prop {#1} {#2}
-    \@@_backend_object_new:n {#1}
+    \pdf_object_new:n {#1}
   }
 \__kernel_patch_deprecation:nnNNpn { 2022-08-30 } { [\pdf_object_write:n] }
 \cs_new_protected:Npn \pdf_object_write:nn #1#2
   {
-    \exp_args:Nne \@@_backend_object_write:nnn
-      {#1} { \prop_item:Nn \g_@@_object_prop {#1} } {#2}
+    \exp_args:Nee \@@_backend_object_write:nnn
+      { \@@_object_retrieve:n {#1} }
+      { \prop_item:Nn \g_@@_object_prop {#1} } {#2}
     \bool_gset_true:N \g_@@_init_bool
   }
 \cs_generate_variant:Nn \pdf_object_write:nn { nx }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -71,7 +71,7 @@
 % This isn't included in the typeset documentation because it's a bit
 % ugly:
 %<*class>
-\ProvidesExplClass{l3doc}{2024-04-11}{}
+\ProvidesExplClass{l3doc}{2024-05-08}{}
   {L3 Experimental documentation class}
 %</class>
 % \fi
@@ -84,7 +84,7 @@
 %    require you to do updates, if the class changes.}}
 %
 % \author{\Team}
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 % \maketitle
 % \tableofcontents
 %
@@ -365,7 +365,7 @@
 %   \begin{syntax}
 %     \cs{tn} \oarg{options} \marg{csname}
 %   \end{syntax}
-%   Analoguous to \cs{cs} but intended for \enquote{traditional} \TeX{}
+%   Analogous to \cs{cs} but intended for \enquote{traditional} \TeX{}
 %   or \LaTeXe{} commands; they are indexed accordingly.  This is in
 %   fact equivalent to \cs{cs} |[module=TeX, replace=false,|
 %   \meta{options}|]| \Arg{csname}.
@@ -3320,7 +3320,7 @@
 %   we can check now whether the macro is tested.  If the \env{macro}
 %   environment which is being ended is the outermost one, then wrap
 %   each macro in \tn{texttt} (with the addition of |TF| if relevant)
-%   and typeset two informations: that this ends the definition of some
+%   and typeset two pieces of information: that this ends the definition of some
 %   macros, and that they are documented on some page.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_macro_end:
@@ -4498,7 +4498,7 @@
 %
 % \begin{macro}{\@@_key_trim_module:n, \@@_key_drop_underscores:}
 %   Helper that removes from \cs{l_@@_index_module_tl} everything after
-%   the first occurence of |#1|.  Helper that removes any leading
+%   the first occurrence of |#1|.  Helper that removes any leading
 %   underscore from \cs{l_@@_index_key_tl}.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_key_trim_module:n #1

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -63,7 +63,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -135,7 +135,7 @@
 %   then used to define variants of the
 %   \meta{original argument specifier} if these are not already
 %   defined; entries which correspond to existing functions are silently
-%   ingored. For each \meta{variant} given, a function is created
+%   ignored. For each \meta{variant} given, a function is created
 %   that expands its arguments as detailed and passes them
 %   to the \meta{parent control sequence}. So for example
 %   \begin{verbatim}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -429,7 +429,7 @@
 %
 % \begin{function}[added = 2019-03-23]{\ior_get_term:nN, \ior_str_get_term:nN}
 %   \begin{syntax}
-%     \cs{ior_get_term:nN} \meta{prompt} \meta{token list variable}
+%     \cs{ior_get_term:nN} \Arg{prompt} \meta{token list variable}
 %   \end{syntax}
 %   Function that reads one or more lines (until an equal number of left
 %   and right braces are found) from the terminal and stores
@@ -673,7 +673,7 @@
 %   \end{texnote}
 % \end{function}
 %
-% \section{File opertions}
+% \section{File operations}
 %
 % \subsection{Basic file operations}
 %
@@ -3818,7 +3818,7 @@
 %
 %   The function starts by checking that the kernel date is defined, and
 %   if not zero is used to force the error route.  The kernel date is
-%   then compared with the argument requested date (ususally the
+%   then compared with the argument requested date (usually the
 %   packaging date of the dependency).  If the kernel date is less than
 %   the required date, it's an error and the loading should abort.
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -42,7 +42,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 % \maketitle
 %
 % \begin{documentation}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -42,7 +42,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -42,7 +42,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -42,7 +42,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-functions.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-functions.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-functions.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -42,7 +42,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -42,7 +42,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -430,7 +430,7 @@
 % second attempt would be to call \cs{@@_parse_operand:Nw} with the
 % \meta{precedence} of the previous operator, but |0>-2+3| is then
 % parsed as |0>-(2+3)|: the addition is performed because it binds more
-% tightly than the comparision which precedes~|-|.  The correct approach
+% tightly than the comparison which precedes~|-|.  The correct approach
 % is for a unary~|-| to perform operations whose precedence is greater
 % than both that of the previous operation, and that of the unary~|-|
 % itself.  The unary~|-| is given a precedence higher than

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -42,7 +42,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-symbolic.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-symbolic.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-symbolic.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -42,7 +42,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 % \maketitle
 %
 % \begin{documentation}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -42,7 +42,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-types.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-types.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-types.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -49,7 +49,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -89,7 +89,7 @@
 %   Assignments are always global.
 % \end{function}
 %
-% \section{Couting entries in floating point arrays}
+% \section{Counting entries in floating point arrays}
 %
 % \begin{function}[EXP, added = 2018-05-05]{\fparray_count:N, \fparray_count:c}
 %   \begin{syntax}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -186,7 +186,7 @@
 %   encountered that cannot form part of such an expression.  If that
 %   token is \cs{scan_stop:} it is removed, otherwise not.  Spaces do
 %   \emph{not} terminate the expression.  However, spaces terminate
-%   explict integers, and this may terminate the expression: for
+%   explicit integers, and this may terminate the expression: for
 %   instance, \cs{int_eval:w} \verb*|1 + 1 9| (with explicit space
 %   tokens inserted using |~| in a code setting) expands to \texttt{29}
 %   since the digit~\texttt{9} is not part of the expression. Expansion

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -109,7 +109,7 @@
 %   global.
 % \end{function}
 %
-% \section{Couting entries in integer arrays}
+% \section{Counting entries in integer arrays}
 %
 % \begin{function}[EXP, added = 2018-03-29]{\intarray_count:N, \intarray_count:c}
 %   \begin{syntax}
@@ -277,7 +277,7 @@
 % \end{macro}
 % \end{macro}
 %
-% Before we get to the first command implmented in Lua, we first need some
+% Before we get to the first command implemented in Lua, we first need some
 % definitions. Since \texttt{token.create} only works correctly if \TeX{}
 % has seen the tokens before, we first run a short \TeX{} sequence to ensure
 % that all relevant control sequences are known.

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -585,7 +585,7 @@
 % by creating sub-keys of the choice key. This can be carried out in
 % two ways.
 %
-% In many cases, choices execute similar code which is dependant only
+% In many cases, choices execute similar code which is dependent only
 % on the name of the choice or the position of the choice in the
 % list of all possibilities. Here, the keys can share the same code, and can
 % be rapidly created using the  \texttt{.choices:nn} property.
@@ -876,7 +876,7 @@
 %     \cs{keys_set_exclude_groups:nnnN} \Arg{module} \Arg{groups} \Arg{keyval list} \meta{tl}
 %     \cs{keys_set_exclude_groups:nnnnN} \Arg{module} \Arg{groups} \Arg{keyval list} \meta{root} \meta{tl}
 %   \end{syntax}
-%   Sets keys by excluding those in the specificied \meta{groups}.
+%   Sets keys by excluding those in the specified \meta{groups}.
 %   The \meta{groups} are
 %   given as a comma-separated list. Unknown keys are not assigned to any
 %   group and are thus always set. The key--value pairs for each
@@ -891,10 +891,14 @@
 %   the key names and values are returned.
 % \end{function}
 %
-% \begin{function}[added = 2013-07-14, updated = 2017-05-27]
+% \begin{function}[added = 2013-07-14, updated = 2024-05-08]
 %   {
 %     \keys_set_groups:nnn, \keys_set_groups:nnV,
-%     \keys_set_groups:nnv, \keys_set_groups:nno
+%     \keys_set_groups:nnv, \keys_set_groups:nno,
+%     \keys_set_groups:nnnN, \keys_set_groups:nnVN,
+%     \keys_set_groups:nnvN, \keys_set_groups:nnoN,
+%     \keys_set_groups:nnnnN, \keys_set_groups:nnVnN,
+%     \keys_set_groups:nnvnN, \keys_set_groups:nnonN,
 %   }
 %   \begin{syntax}
 %     \cs{keys_set_groups:nnn} \Arg{module} \Arg{groups} \Arg{keyval list}
@@ -902,7 +906,10 @@
 %   Activates key filtering in an \enquote{opt-in} sense: only keys assigned to
 %   one or more of the \meta{groups} specified are set. The \meta{groups} are
 %   given as a comma-separated list. Unknown keys are not assigned to any
-%   group and are thus never set.
+%   group and are thus never set.  The key--value pairs for each
+%   key which is filtered out are stored in the \meta{tl} in a
+%   comma-separated form (\emph{i.e.}~an edited version of the \meta{keyval
+%   list}). The \cs{keys_set_groups:nnn} version skips this stage
 % \end{function}
 %
 % \section{Digesting keys}
@@ -1667,23 +1674,30 @@
 %    \end{macrocode}
 % \end{variable}
 %
-% \begin{variable}{\l_@@_selective_bool, \l_@@_filtered_bool}
+% \begin{variable}{\l_@@_selective_bool, \l_@@_exclude_bool}
 %   Two booleans for using key groups: one to indicate that \enquote{selective}
 %   setting is active, a second to specify which type (\enquote{opt-in}
 %   or \enquote{opt-out}).
 %    \begin{macrocode}
 \bool_new:N \l_@@_selective_bool
-\bool_new:N \l_@@_filtered_bool
+\bool_new:N \l_@@_exclude_bool
 %    \end{macrocode}
 % \end{variable}
 %
-% \begin{variable}{\l_@@_selective_seq}
+% \begin{variable}{\l_@@_selective_clist}
 %   The list of key groups being filtered in or out during selective setting.
 %    \begin{macrocode}
-\seq_new:N \l_@@_selective_seq
+\seq_new:N \l_@@_selective_clist
 %    \end{macrocode}
 % \end{variable}
 %
+% \begin{variable}{\l_@@_tmp_clist}
+%  Scratch space used as a data dump.
+%    \begin{macrocode}
+\seq_new:N \l_@@_tmp_clist
+%    \end{macrocode}
+% \end{variable}
+%
 % \begin{variable}{\l_@@_unused_clist}
 %   Used when setting only some keys to store those left over.
 %    \begin{macrocode}
@@ -2787,36 +2801,58 @@
 %
 % \subsection{Setting keys}
 %
-% \begin{macro}
-%   {
-%     \keys_set:nn, \keys_set:nV, \keys_set:nv, \keys_set:ne,
-%     \keys_set:no, \keys_set:nx,
-%     \@@_set:nn
-%   }
+% \begin{macro}{\@@_set:nnnnNn}
+% \begin{macro}{\@@_set:nnnnnnnNn}
+% \begin{macro}[EXP]{\@@_reset_bool:N, \@@_reset_var:N}
+% \begin{macro}{\@@_set:nn}
 % \begin{macro}{\@@_set:nnn}
-%   A simple wrapper allowing for nesting.
+%   The aim here is to allow nesting of key setting without needing lots of
+%   tracking. That is done by expanding the appropriate tokens \enquote{around}
+%  the core keyval parsing. As there are several different sub-paths, this
+%  needs a few steps and some generic auxiliaries. The arguments here are
+%  \begin{enumerate}
+%    \item The root for keys
+%    \item The key groups
+%    \item The keys themselves
+%    \item The relative root for return of unset keys
+%    \item The \texttt{clist} var for returning unset keys
+%    \item The code to set up the correct selection approach
+%  \end{enumerate}
 %    \begin{macrocode}
-\cs_new_protected:Npn \keys_set:nn #1#2
+\cs_new_protected:Npn \@@_set:nnnnNn
   {
+    \exp_args:Nooo \@@_set:nnnnnnnNn
+      \l_@@_unused_clist
+      \l_@@_selective_clist
+      \l_@@_relative_tl
+  }
+\cs_new_protected:Npn \@@_set:nnnnnnnNn #1#2#3#4#5#6#7#8#9
+  {
+    \clist_clear:N \l_@@_unused_clist
+    \clist_set:Ne \l_@@_selective_clist { \tl_to_str:n {#5} }
+    \tl_set:Nn \l_@@_relative_tl {#7}
     \use:e
       {
-        \bool_set_false:N \exp_not:N \l_@@_only_known_bool
-        \bool_set_false:N \exp_not:N \l_@@_filtered_bool
-        \bool_set_false:N \exp_not:N \l_@@_selective_bool
-        \tl_set:Nn \exp_not:N \l_@@_relative_tl
-          { \exp_not:N \q_@@_no_value }
-        \@@_set:nn \exp_not:n { {#1} {#2} }
-        \bool_if:NT \l_@@_only_known_bool
-          { \bool_set_true:N \exp_not:N \l_@@_only_known_bool }
-        \bool_if:NT \l_@@_filtered_bool
-          { \bool_set_true:N \exp_not:N \l_@@_filtered_bool }
-        \bool_if:NT \l_@@_selective_bool
-          { \bool_set_true:N \exp_not:N \l_@@_selective_bool }
-        \tl_set:Nn \exp_not:N \l_@@_relative_tl
-          { \exp_not:o \l_@@_relative_tl }
+        \exp_not:n
+          {
+            #9
+            \@@_set:nn {#4} {#6}
+          }
+        \@@_reset_bool:N \l_@@_only_known_bool
+        \@@_reset_bool:N \l_@@_exclude_bool
+        \@@_reset_bool:N \l_@@_selective_bool
       }
+    \clist_set_eq:NN #8 \l_@@_unused_clist
+    \__kernel_tl_set:Nx \l_@@_unused_clist { \exp_not:n {#1} }
+    \__kernel_tl_set:Nx \l_@@_selective_clist {#2}
+    \__kernel_tl_set:Nx \l_@@_relative_tl { \exp_not:n {#3} }
   }
-\cs_generate_variant:Nn \keys_set:nn { nV , nv , ne , no , nx }
+\cs_new:Npn \@@_reset_bool:N #1
+  {
+    \exp_not:c
+      { bool_set_ \bool_if:NTF #1 { true } { false } :N }
+        \exp_not:N #1
+  }
 \cs_new_protected:Npn \@@_set:nn #1#2
   { \exp_args:No \@@_set:nnn \l_@@_module_str {#1} {#2} }
 \cs_new_protected:Npn \@@_set:nnn #1#2#3
@@ -2828,13 +2864,31 @@
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
 %
 % \begin{macro}
 %   {
-%     \keys_set_known:nnN, \keys_set_known:nVN,
-%     \keys_set_known:nvN, \keys_set_known:neN,
-%     \keys_set_known:noN
+%     \keys_set:nn, \keys_set:nV, \keys_set:nv, \keys_set:ne,
+%     \keys_set:no, \keys_set:nx
 %   }
+%   A simple wrapper allowing for nesting.
+%    \begin{macrocode}
+\cs_new_protected:Npn \keys_set:nn #1#2
+  {
+    \@@_set:nnnnNn
+      {#1} { } {#2} { \q_@@_no_value } \l_@@_tmp_clist
+      {
+        \bool_set_false:N \l_@@_only_known_bool
+        \bool_set_false:N \l_@@_exclude_bool
+        \bool_set_false:N \l_@@_selective_bool
+      }
+  }
+\cs_generate_variant:Nn \keys_set:nn { nV , nv , ne , no , nx }
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}
 %   {
 %     \keys_set_known:nnnN, \keys_set_known:nVnN,
@@ -2841,67 +2895,41 @@
 %     \keys_set_known:nvnN, \keys_set_known:nenN,
 %     \keys_set_known:nonN
 %   }
-% \begin{macro}{\@@_set_known:nnnnN}
 % \begin{macro}
 %   {
+%     \keys_set_known:nnN, \keys_set_known:nVN,
+%     \keys_set_known:nvN, \keys_set_known:neN,
+%     \keys_set_known:noN
+%   }
+% \begin{macro}
+%   {
 %     \keys_set_known:nn, \keys_set_known:nV,
 %     \keys_set_known:nv, \keys_set_known:ne,
 %     \keys_set_known:no
 %   }
-%  \begin{macro}{\@@_set_known:nnn}
-%   Setting known keys simply means setting the appropriate boolean, then
-%   running the standard code. To allow for nested setting, any existing
-%   value of \cs{l_@@_unused_clist} is saved on the stack and reset
-%   afterwards. Note that for speed/simplicity reasons we use a \texttt{tl}
-%   operation to set the \texttt{clist} here!
+%    Simply set the right variables.
 %    \begin{macrocode}
-\cs_new_protected:Npn \keys_set_known:nnN #1#2#3
-  {
-    \exp_args:No \@@_set_known:nnnnN
-      \l_@@_unused_clist \q_@@_no_value {#1} {#2} #3
-  }
-\cs_generate_variant:Nn \keys_set_known:nnN { nV , nv , ne , no }
 \cs_new_protected:Npn \keys_set_known:nnnN #1#2#3#4
   {
-    \exp_args:No \@@_set_known:nnnnN
-      \l_@@_unused_clist {#3} {#1} {#2} #4
+    \@@_set:nnnnNn
+      {#1} { } {#2} {#3} #4
+      {
+        \bool_set_true:N \l_@@_only_known_bool
+        \bool_set_false:N \l_@@_exclude_bool
+        \bool_set_false:N \l_@@_selective_bool
+      }
   }
 \cs_generate_variant:Nn \keys_set_known:nnnN { nV , nv , ne , no }
-\cs_new_protected:Npn \@@_set_known:nnnnN #1#2#3#4#5
-  {
-    \clist_clear:N \l_@@_unused_clist
-    \@@_set_known:nnn {#2} {#3} {#4}
-    \__kernel_tl_set:Nx #5 { \exp_not:o \l_@@_unused_clist }
-    \__kernel_tl_set:Nx \l_@@_unused_clist { \exp_not:n {#1} }
-  }
+\cs_new_protected:Npn \keys_set_known:nnN #1#2#3
+  { \keys_set_known:nnnN {#1} {#2} { \q_@@_no_value } #3 }
+\cs_generate_variant:Nn \keys_set_known:nnN { nV , nv , ne , no }
 \cs_new_protected:Npn \keys_set_known:nn #1#2
-  { \@@_set_known:nnn \q_@@_no_value {#1} {#2} }
+  { \keys_set_known:nnnN {#1} {#2} { \q_@@_no_value } \l_@@_tmp_clist }
 \cs_generate_variant:Nn \keys_set_known:nn { nV , nv , ne , no }
-\cs_new_protected:Npn \@@_set_known:nnn #1#2#3
-  {
-    \use:e
-      {
-        \bool_set_true:N \exp_not:N \l_@@_only_known_bool
-        \bool_set_false:N \exp_not:N \l_@@_filtered_bool
-        \bool_set_false:N \exp_not:N \l_@@_selective_bool
-        \tl_set:Nn \exp_not:N \l_@@_relative_tl { \exp_not:n {#1} }
-        \@@_set:nn \exp_not:n { {#2} {#3} }
-        \bool_if:NF \l_@@_only_known_bool
-          { \bool_set_false:N \exp_not:N \l_@@_only_known_bool }
-        \bool_if:NT \l_@@_filtered_bool
-          { \bool_set_true:N \exp_not:N \l_@@_filtered_bool }
-        \bool_if:NT \l_@@_selective_bool
-          { \bool_set_true:N \exp_not:N \l_@@_selective_bool }
-        \tl_set:Nn \exp_not:N \l_@@_relative_tl
-          { \exp_not:o \l_@@_relative_tl }
-      }
-  }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % \end{macro}
-% \end{macro}
-% \end{macro}
 %
 % \begin{macro}
 %   {
@@ -2913,97 +2941,68 @@
 %     \keys_set_exclude_groups:nnnnN, \keys_set_exclude_groups:nnVnN,
 %     \keys_set_exclude_groups:nnvnN, \keys_set_exclude_groups:nnonN
 %   }
-% \begin{macro}{\@@_set_exclude_groups:nnnnnN}
 % \begin{macro}
 %   {
 %     \keys_set_exclude_groups:nnn, \keys_set_exclude_groups:nnV,
 %     \keys_set_exclude_groups:nnv, \keys_set_exclude_groups:nno
 %   }
-% \begin{macro}{\@@_set_exclude_groups:nnnn}
 % \begin{macro}
 %   {
-%     \keys_set_groups:nnn, \keys_set_groups:nnV, \keys_set_groups:nnv,
-%       \keys_set_groups:nno
+%     \keys_set_groups:nnnN, \keys_set_groups:nnVN,
+%     \keys_set_groups:nnvN, \keys_set_groups:nnoN
 %   }
-%  \begin{macro}{\@@_set_selective:nnn}
-%  \begin{macro}{\@@_set_selective:nnnn}
-%   The idea of setting keys in a selective manner again uses booleans
-%   wrapped around the basic code. The comments on \cs{keys_set_known:nnN}
-%   also apply here. We have a bit more shuffling to do to keep everything
-%   nestable.
+% \begin{macro}
+%   {
+%     \keys_set_groups:nnnnN, \keys_set_groups:nnVnN,
+%     \keys_set_groups:nnvnN, \keys_set_groups:nnonN
+%   }
+% \begin{macro}
+%   {
+%     \keys_set_groups:nnn, \keys_set_groups:nnV,
+%     \keys_set_groups:nnv, \keys_set_groups:nno
+%   }
+%    The same for (exclusion) groups.
 %    \begin{macrocode}
-\cs_new_protected:Npn \keys_set_exclude_groups:nnnN #1#2#3#4
-  {
-    \exp_args:No \@@_set_exclude_groups:nnnnnN
-      \l_@@_unused_clist
-        \q_@@_no_value {#1} {#2} {#3} #4
-  }
-\cs_generate_variant:Nn \keys_set_exclude_groups:nnnN { nnV , nnv , nno }
 \cs_new_protected:Npn \keys_set_exclude_groups:nnnnN #1#2#3#4#5
   {
-    \exp_args:No \@@_set_exclude_groups:nnnnnN
-      \l_@@_unused_clist {#4} {#1} {#2} {#3} #5
+    \@@_set:nnnnNn
+      {#1} {#2} {#3} {#4} #5
+      {
+        \bool_set_false:N \l_@@_only_known_bool
+        \bool_set_true:N \l_@@_exclude_bool
+        \bool_set_true:N \l_@@_selective_bool
+      }
   }
 \cs_generate_variant:Nn \keys_set_exclude_groups:nnnnN { nnV , nnv , nno }
-\cs_new_protected:Npn \@@_set_exclude_groups:nnnnnN #1#2#3#4#5#6
+\cs_new_protected:Npn \keys_set_exclude_groups:nnnN #1#2#3#4
+  { \keys_set_exclude_groups:nnnnN {#1} {#2} {#3} { \q_@@_no_value } #4 }
+\cs_generate_variant:Nn \keys_set_exclude_groups:nnnN { nnV , nnv , nno }
+\cs_new_protected:Npn \keys_set_exclude_groups:nnn #1#2#3
   {
-    \clist_clear:N \l_@@_unused_clist
-    \@@_set_exclude_groups:nnnn {#2} {#3} {#4} {#5}
-    \__kernel_tl_set:Nx #6 { \exp_not:o \l_@@_unused_clist }
-    \__kernel_tl_set:Nx \l_@@_unused_clist { \exp_not:n {#1} }
+    \keys_set_exclude_groups:nnnnN {#1} {#2} {#3}
+      { \q_@@_no_value } \l_@@_tmp_clist
   }
-\cs_new_protected:Npn \keys_set_exclude_groups:nnn #1#2#3
-  {\@@_set_exclude_groups:nnnn \q_@@_no_value {#1} {#2} {#3} }
 \cs_generate_variant:Nn \keys_set_exclude_groups:nnn { nnV , nnv , nno }
-\cs_new_protected:Npn \@@_set_exclude_groups:nnnn #1#2#3#4
+\cs_new_protected:Npn \keys_set_groups:nnnnN #1#2#3#4#5
   {
-    \use:e
+    \@@_set:nnnnNn
+      {#1} {#2} {#3} {#4} #5
       {
-        \bool_set_false:N \exp_not:N \l_@@_only_known_bool
-        \bool_set_true:N \exp_not:N \l_@@_filtered_bool
-        \bool_set_true:N \exp_not:N \l_@@_selective_bool
-        \tl_set:Nn \exp_not:N \l_@@_relative_tl { \exp_not:n {#1} }
-        \@@_set_selective:nnn \exp_not:n { {#2} {#3} {#4} }
-        \bool_if:NT \l_@@_only_known_bool
-          { \bool_set_true:N \exp_not:N \l_@@_only_known_bool }
-        \bool_if:NF \l_@@_filtered_bool
-          { \bool_set_false:N \exp_not:N \l_@@_filtered_bool }
-        \bool_if:NF \l_@@_selective_bool
-          { \bool_set_false:N \exp_not:N \l_@@_selective_bool }
-        \tl_set:Nn \exp_not:N \l_@@_relative_tl
-          { \exp_not:o \l_@@_relative_tl }
+        \bool_set_false:N \l_@@_only_known_bool
+        \bool_set_false:N \l_@@_exclude_bool
+        \bool_set_true:N \l_@@_selective_bool
       }
   }
+\cs_generate_variant:Nn \keys_set_groups:nnnnN { nnV , nnv , nno }
+\cs_new_protected:Npn \keys_set_groups:nnnN #1#2#3#4
+  { \keys_set_groups:nnnnN {#1} {#2} {#3} { \q_@@_no_value } #4 }
+\cs_generate_variant:Nn \keys_set_groups:nnnN { nnV , nnv , nno }
 \cs_new_protected:Npn \keys_set_groups:nnn #1#2#3
   {
-    \use:e
-      {
-        \bool_set_false:N \exp_not:N \l_@@_only_known_bool
-        \bool_set_false:N \exp_not:N \l_@@_filtered_bool
-        \bool_set_true:N \exp_not:N \l_@@_selective_bool
-        \tl_set:Nn \exp_not:N \l_@@_relative_tl
-          { \exp_not:N \q_@@_no_value }
-        \@@_set_selective:nnn \exp_not:n { {#1} {#2} {#3} }
-        \bool_if:NT \l_@@_only_known_bool
-          { \bool_set_true:N \exp_not:N \l_@@_only_known_bool }
-        \bool_if:NF \l_@@_filtered_bool
-          { \bool_set_true:N \exp_not:N \l_@@_filtered_bool }
-        \bool_if:NF \l_@@_selective_bool
-          { \bool_set_false:N \exp_not:N \l_@@_selective_bool }
-        \tl_set:Nn \exp_not:N \l_@@_relative_tl
-          { \exp_not:o \l_@@_relative_tl }
-      }
+    \keys_set_groups:nnnnN {#1} {#2} {#3}
+      { \q_@@_no_value } \l_@@_tmp_clist
   }
 \cs_generate_variant:Nn \keys_set_groups:nnn { nnV , nnv , nno }
-\cs_new_protected:Npn \@@_set_selective:nnn
-  { \exp_args:No \@@_set_selective:nnnn \l_@@_selective_seq }
-\cs_new_protected:Npn \@@_set_selective:nnnn #1#2#3#4
-  {
-    \exp_args:NNe \seq_set_from_clist:Nn
-      \l_@@_selective_seq { \tl_to_str:n {#3} }
-    \@@_set:nn {#2} {#4}
-    \tl_set:Nn \l_@@_selective_seq {#1}
-  }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -3011,8 +3010,6 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
-% \end{macro}
-% \end{macro}
 %
 % \begin{macro}{\keys_precompile:nnN}
 %   A simple wrapper.
@@ -3127,7 +3124,7 @@
         \@@_check_groups:
       }
       {
-        \bool_if:NTF \l_@@_filtered_bool
+        \bool_if:NTF \l_@@_exclude_bool
           \@@_execute:
           \@@_store_unused:
       }
@@ -3138,7 +3135,7 @@
 %    set active. That requires two mappings, and again a different outcome
 %    depending on whether opt-in or opt-out is set.
 %    It is safe to use \cs{clist_if_in:NnTF} because
-%    both \cs{l_@@_selective_seq} and \cs{l_@@_groups_clist} contain the
+%    both \cs{l_@@_selective_clist} and \cs{l_@@_groups_clist} contain the
 %    groups as strings, without leading/trailing spaces in any item,
 %    since the \pkg{l3clist} functions were applied to the result of
 %    applying \cs{tl_to_str:n}.
@@ -3146,22 +3143,22 @@
 \cs_new_protected:Npn \@@_check_groups:
   {
     \bool_set_false:N \l_@@_tmp_bool
-    \seq_map_inline:Nn \l_@@_selective_seq
+    \clist_map_inline:Nn \l_@@_selective_clist
       {
         \clist_if_in:NnT \l_@@_groups_clist {##1}
           {
             \bool_set_true:N \l_@@_tmp_bool
-            \seq_map_break:
+            \clist_map_break:
           }
       }
     \bool_if:NTF \l_@@_tmp_bool
       {
-        \bool_if:NTF \l_@@_filtered_bool
+        \bool_if:NTF \l_@@_exclude_bool
           \@@_store_unused:
           \@@_execute:
       }
       {
-        \bool_if:NTF \l_@@_filtered_bool
+        \bool_if:NTF \l_@@_exclude_bool
           \@@_execute:
           \@@_store_unused:
       }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -452,7 +452,7 @@
 %
 % \begin{macro}[int]{md5.HEX}
 % Hash a string and return the hash in uppercase hexadecimal format.
-% In some engines, this is build-in. For traditional \LuaTeX{}, the conversion
+% In some engines, this is built-in. For traditional \LuaTeX{}, the conversion
 % to hexadecimal has to be done by us.
 %    \begin{macrocode}
 local md5_HEX = md5.HEX
@@ -664,7 +664,7 @@
 %<@@=lua>
 %    \end{macrocode}
 %
-% The Lua state is not dumped when a forat is written, therefore any Lua
+% The Lua state is not dumped when a format is written, therefore any Lua
 % variables filled doing format building need to be restored in order to
 % be accessible during normal runs.
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -92,7 +92,7 @@
 % will allow to filter out specifically messages from the \texttt{submodule}.
 %
 % Some authors may find the need to include spaces as |~| characters
-% tedious. This can be avoided by locally reseting the cateogry code
+% tedious. This can be avoided by locally resetting the category code
 % of \verb*| |.
 % \begin{verbatim}
 %   \char_set_catcode_space:n { `\ }
@@ -203,7 +203,9 @@
 %   \end{quote}
 %   This function can be redefined to alter the language in which the
 %   message is given, using |#1| as the name of the \meta{module} to
-%   be included.
+%   be included. Any redefinition \emph{must} produce output containing
+%   the \meta{module} name, and will affect all messages using the
+%   \pkg{expl3} mechanism.
 % \end{function}
 %
 % \begin{function}[EXP]{\msg_critical_text:n}
@@ -217,7 +219,9 @@
 %   \end{quote}
 %   This function can be redefined to alter the language in which the
 %   message is given, using |#1| as the name of the \meta{module} to
-%   be included.
+%   be included. Any redefinition \emph{must} produce output containing
+%   the \meta{module} name, and will affect all messages using the
+%   \pkg{expl3} mechanism.
 % \end{function}
 %
 % \begin{function}[EXP]{\msg_error_text:n}
@@ -231,7 +235,9 @@
 %   \end{quote}
 %   This function can be redefined to alter the language in which the
 %   message is given, using |#1| as the name of the \meta{module} to
-%   be included.
+%   be included. Any redefinition \emph{must} produce output containing
+%   the \meta{module} name, and will affect all messages using the
+%   \pkg{expl3} mechanism.
 % \end{function}
 %
 % \begin{function}[EXP]{\msg_warning_text:n}
@@ -247,6 +253,9 @@
 %   message is given, using |#1| as the name of the \meta{module} to
 %   be included.  The \meta{type} of \meta{module} may be adjusted:
 %   |Package| is the standard outcome: see \cs{msg_module_type:n}.
+%   Any redefinition \emph{must} produce output containing
+%   the \meta{module} name, and will affect all messages using the
+%   \pkg{expl3} mechanism.
 % \end{function}
 %
 % \begin{function}[EXP]{\msg_info_text:n}
@@ -262,6 +271,9 @@
 %   message is given, using |#1| as the name of the \meta{module} to
 %   be included. The \meta{type} of \meta{module} may be adjusted:
 %   |Package| is the standard outcome: see \cs{msg_module_type:n}.
+%   Any redefinition \emph{must} produce output containing
+%   the \meta{module} name, and will affect all messages using the
+%   \pkg{expl3} mechanism.
 % \end{function}
 %
 % \begin{function}[EXP,updated = 2018-09-30]{\msg_see_documentation_text:n}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -1540,7 +1540,7 @@
 % \begin{macro}[no-user-doc]{\tex_filedump:D}
 %   An emulated primitive for getting a hexdump from a (partial) file.
 %   The length has a default of |0|. This is consistent with
-%   \pdfTeX, but it effectivly makes the primitive useless without an
+%   \pdfTeX, but it effectively makes the primitive useless without an
 %   explicit |length|. Therefore we allow the keyword |whole| to be used
 %   instead of a length, indicating that the whole remaining file should
 %   be read.

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -179,11 +179,13 @@
 %   created. This is particularly useful for anonymous objects.
 % \end{function}
 %
-% \begin{function}[EXP, added = 2021-02-10]{\pdf_pageobject_ref:n}
+% \begin{function}[EXP, added = 2021-02-10, updated = 2024-04-22]
+%   {\pdf_pageobject_ref:n}
 %   \begin{syntax}
-%     \cs{pdf_pagobject_ref:n} \Arg{pageobject}
+%     \cs{pdf_pageobject_ref:n} \Arg{abspage}
 %   \end{syntax}
-%   Inserts the appropriate information to reference the \meta{pageobject}.
+%   Inserts the appropriate information to reference the \meta{abspage};
+%   the latter is expanded fully before further processing.
 % \end{function}
 %
 % \section{Version}
@@ -230,6 +232,9 @@
 %   \end{syntax}
 %   Sets the page size (mediabox) of the PDF being created to the
 %   \meta{width} and \meta{height}, both of which are \meta{dimexpr}.
+%   The page size can only be set at the start of the output with
+%   \texttt{dvips};  with other backends, this can be adjusted on a
+%   per-page basis.
 % \end{function}
 %
 % \section{Compression}
@@ -659,7 +664,7 @@
 % \begin{macro}{\pdf_pageobject_ref:n}
 %    \begin{macrocode}
 \cs_new:Npn \pdf_pageobject_ref:n #1
-  { \@@_backend_pageobject_ref:n {#1} }
+  { \exp_args:Ne \@@_backend_pageobject_ref:n {#1} }
 %    \end{macrocode}
 % \end{macro}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -299,12 +299,24 @@
 %   codes are ignored.
 % \end{function}
 %
-% \begin{function}[added = 2024-03-30]
+% \begin{function}[added = 2024-03-30, updated = 2024-05-07]
 %   {
-%     \prop_put_if_not_in:Nnn, \prop_put_if_not_in:NVn, \prop_put_if_not_in:NnV,
-%     \prop_put_if_not_in:cnn, \prop_put_if_not_in:cVn, \prop_put_if_not_in:cnV,
-%     \prop_gput_if_not_in:Nnn, \prop_gput_if_not_in:NVn, \prop_gput_if_not_in:NnV,
-%     \prop_gput_if_not_in:cnn, \prop_gput_if_not_in:cVn, \prop_gput_if_not_in:cnV
+%     \prop_put_if_not_in:Nnn, \prop_put_if_not_in:NnV, \prop_put_if_not_in:Nnv, \prop_put_if_not_in:Nne,
+%     \prop_put_if_not_in:NVn, \prop_put_if_not_in:NVV, \prop_put_if_not_in:NVv, \prop_put_if_not_in:NVe,
+%     \prop_put_if_not_in:Nvn, \prop_put_if_not_in:NvV, \prop_put_if_not_in:Nvv, \prop_put_if_not_in:Nve,
+%     \prop_put_if_not_in:Nen, \prop_put_if_not_in:NeV, \prop_put_if_not_in:Nev, \prop_put_if_not_in:Nee,
+%     \prop_put_if_not_in:cnn, \prop_put_if_not_in:cnV, \prop_put_if_not_in:cnv, \prop_put_if_not_in:cne,
+%     \prop_put_if_not_in:cVn, \prop_put_if_not_in:cVV, \prop_put_if_not_in:cVv, \prop_put_if_not_in:cVe,
+%     \prop_put_if_not_in:cvn, \prop_put_if_not_in:cvV, \prop_put_if_not_in:cvv, \prop_put_if_not_in:cve,
+%     \prop_put_if_not_in:cen, \prop_put_if_not_in:ceV, \prop_put_if_not_in:cev, \prop_put_if_not_in:cee,
+%     \prop_gput_if_not_in:Nnn, \prop_gput_if_not_in:NnV, \prop_gput_if_not_in:Nnv, \prop_gput_if_not_in:Nne,
+%     \prop_gput_if_not_in:NVn, \prop_gput_if_not_in:NVV, \prop_gput_if_not_in:NVv, \prop_gput_if_not_in:NVe,
+%     \prop_gput_if_not_in:Nvn, \prop_gput_if_not_in:NvV, \prop_gput_if_not_in:Nvv, \prop_gput_if_not_in:Nve,
+%     \prop_gput_if_not_in:Nen, \prop_gput_if_not_in:NeV, \prop_gput_if_not_in:Nev, \prop_gput_if_not_in:Nee,
+%     \prop_gput_if_not_in:cnn, \prop_gput_if_not_in:cnV, \prop_gput_if_not_in:cnv, \prop_gput_if_not_in:cne,
+%     \prop_gput_if_not_in:cVn, \prop_gput_if_not_in:cVV, \prop_gput_if_not_in:cVv, \prop_gput_if_not_in:cVe,
+%     \prop_gput_if_not_in:cvn, \prop_gput_if_not_in:cvV, \prop_gput_if_not_in:cvv, \prop_gput_if_not_in:cve,
+%     \prop_gput_if_not_in:cen, \prop_gput_if_not_in:ceV, \prop_gput_if_not_in:cev, \prop_gput_if_not_in:cee
 %   }
 %   \begin{syntax}
 %     \cs{prop_put_if_not_in:Nnn} \meta{property list} \Arg{key} \Arg{value}
@@ -1940,10 +1952,22 @@
 %   }
 % \begin{macro}[tested = m3prop002]
 %   {
-%     \prop_put_if_not_in:Nnn, \prop_put_if_not_in:NVn, \prop_put_if_not_in:NnV,
-%     \prop_put_if_not_in:cnn, \prop_put_if_not_in:cVn, \prop_put_if_not_in:cnV,
-%     \prop_gput_if_not_in:Nnn, \prop_gput_if_not_in:NVn, \prop_gput_if_not_in:NnV,
-%     \prop_gput_if_not_in:cnn, \prop_gput_if_not_in:cVn, \prop_gput_if_not_in:cnV
+%     \prop_put_if_not_in:Nnn, \prop_put_if_not_in:NnV, \prop_put_if_not_in:Nnv, \prop_put_if_not_in:Nne,
+%     \prop_put_if_not_in:NVn, \prop_put_if_not_in:NVV, \prop_put_if_not_in:NVv, \prop_put_if_not_in:NVe,
+%     \prop_put_if_not_in:Nvn, \prop_put_if_not_in:NvV, \prop_put_if_not_in:Nvv, \prop_put_if_not_in:Nve,
+%     \prop_put_if_not_in:Nen, \prop_put_if_not_in:NeV, \prop_put_if_not_in:Nev, \prop_put_if_not_in:Nee,
+%     \prop_put_if_not_in:cnn, \prop_put_if_not_in:cnV, \prop_put_if_not_in:cnv, \prop_put_if_not_in:cne,
+%     \prop_put_if_not_in:cVn, \prop_put_if_not_in:cVV, \prop_put_if_not_in:cVv, \prop_put_if_not_in:cVe,
+%     \prop_put_if_not_in:cvn, \prop_put_if_not_in:cvV, \prop_put_if_not_in:cvv, \prop_put_if_not_in:cve,
+%     \prop_put_if_not_in:cen, \prop_put_if_not_in:ceV, \prop_put_if_not_in:cev, \prop_put_if_not_in:cee,
+%     \prop_gput_if_not_in:Nnn, \prop_gput_if_not_in:NnV, \prop_gput_if_not_in:Nnv, \prop_gput_if_not_in:Nne,
+%     \prop_gput_if_not_in:NVn, \prop_gput_if_not_in:NVV, \prop_gput_if_not_in:NVv, \prop_gput_if_not_in:NVe,
+%     \prop_gput_if_not_in:Nvn, \prop_gput_if_not_in:NvV, \prop_gput_if_not_in:Nvv, \prop_gput_if_not_in:Nve,
+%     \prop_gput_if_not_in:Nen, \prop_gput_if_not_in:NeV, \prop_gput_if_not_in:Nev, \prop_gput_if_not_in:Nee,
+%     \prop_gput_if_not_in:cnn, \prop_gput_if_not_in:cnV, \prop_gput_if_not_in:cnv, \prop_gput_if_not_in:cne,
+%     \prop_gput_if_not_in:cVn, \prop_gput_if_not_in:cVV, \prop_gput_if_not_in:cVv, \prop_gput_if_not_in:cVe,
+%     \prop_gput_if_not_in:cvn, \prop_gput_if_not_in:cvV, \prop_gput_if_not_in:cvv, \prop_gput_if_not_in:cve,
+%     \prop_gput_if_not_in:cen, \prop_gput_if_not_in:ceV, \prop_gput_if_not_in:cev, \prop_gput_if_not_in:cee
 %   }
 % \begin{macro}[tested = m3prop002]
 %   {
@@ -2006,9 +2030,19 @@
 \cs_generate_variant:Nn \prop_gput:Nnn
   { cno , co , coo , cnx , cVx , cxV , cxx }
 \cs_generate_variant:Nn \prop_put_if_not_in:Nnn
-  { NnV , NV , c , cnV , cV }
+  {
+         NnV , Nnv , Nne , NV , NVV , NVv , NVe ,
+    Nv , NvV , Nvv , Nve , Ne , NeV , Nev , Nee ,
+    c  , cnV , cnv , cne , cV , cVV , cVv , cVe ,
+    cv , cvV , cvv , cve , ce , ceV , cev , cee
+  }
 \cs_generate_variant:Nn \prop_gput_if_not_in:Nnn
-  { NnV , NV , c , cnV , cV }
+  {
+         NnV , Nnv , Nne , NV , NVV , NVv , NVe ,
+    Nv , NvV , Nvv , Nve , Ne , NeV , Nev , Nee ,
+    c  , cnV , cnv , cne , cV , cVV , cVv , cVe ,
+    cv , cvV , cvv , cve , ce , ceV , cev , cee
+  }
 %    \end{macrocode}
 %   Since the true branch of \cs{@@_split:NnTFn} is used as the
 %   replacement text of an internal macro, and since the \meta{key} and

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -2047,9 +2047,9 @@
 % phase. Compiled regular expressions consist of the following:
 % \begin{itemize}
 %   \item \cs{@@_class:NnnnN} \meta{boolean} \Arg{tests} \Arg{min}
-%     \Arg{more} \meta{lazyness}
+%     \Arg{more} \meta{laziness}
 %   \item \cs{@@_group:nnnN} \Arg{branches} \Arg{min} \Arg{more}
-%     \meta{lazyness}, also \cs{@@_group_no_capture:nnnN} and
+%     \meta{laziness}, also \cs{@@_group_no_capture:nnnN} and
 %     \cs{@@_group_resetting:nnnN} with the same syntax.
 %   \item \cs{@@_branch:n} \Arg{contents}
 %   \item \cs{@@_command_K:}
@@ -2638,7 +2638,7 @@
 % \end{macro}
 % \end{macro}
 %
-% \begin{macro}{\@@_compile_quantifier_lazyness:nnNN}
+% \begin{macro}{\@@_compile_quantifier_laziness:nnNN}
 %   Once the \enquote{main} quantifier (\texttt{?}, \texttt{*},
 %   \texttt{+} or a braced construction) is found, we check whether it
 %   is lazy (followed by a question mark). We then add to the compiled
@@ -2646,7 +2646,7 @@
 %   the start-point of the range, its end-point, and a boolean,
 %   \texttt{true} for lazy and \texttt{false} for greedy operators.
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_compile_quantifier_lazyness:nnNN #1#2#3#4
+\cs_new_protected:Npn \@@_compile_quantifier_laziness:nnNN #1#2#3#4
   {
     \@@_two_if_eq:NNNNTF #3 #4 \@@_compile_special:N ?
       {
@@ -2669,15 +2669,15 @@
 %     \@@_compile_quantifier_+:w
 %   }
 %   For each \enquote{basic} quantifier, |?|, |*|, |+|, feed the correct
-%   arguments to \cs{@@_compile_quantifier_lazyness:nnNN}, $-1$ means
+%   arguments to \cs{@@_compile_quantifier_laziness:nnNN}, $-1$ means
 %   that there is no upper bound on the number of repetitions.
 %    \begin{macrocode}
 \cs_new_protected:cpn { @@_compile_quantifier_?:w }
-  { \@@_compile_quantifier_lazyness:nnNN { 0 } { 1 } }
+  { \@@_compile_quantifier_laziness:nnNN { 0 } { 1 } }
 \cs_new_protected:cpn { @@_compile_quantifier_*:w }
-  { \@@_compile_quantifier_lazyness:nnNN { 0 } { -1 } }
+  { \@@_compile_quantifier_laziness:nnNN { 0 } { -1 } }
 \cs_new_protected:cpn { @@_compile_quantifier_+:w }
-  { \@@_compile_quantifier_lazyness:nnNN { 1 } { -1 } }
+  { \@@_compile_quantifier_laziness:nnNN { 1 } { -1 } }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -2711,7 +2711,7 @@
       {
         { \@@_compile_special:N \c_right_brace_str }
           {
-            \exp_args:No \@@_compile_quantifier_lazyness:nnNN
+            \exp_args:No \@@_compile_quantifier_laziness:nnNN
               { \int_use:N \l_@@_internal_a_int } 0
           }
         { \@@_compile_special:N , }
@@ -2731,7 +2731,7 @@
   {
     \@@_two_if_eq:NNNNTF #1 #2 \@@_compile_special:N \c_right_brace_str
       {
-        \exp_args:No \@@_compile_quantifier_lazyness:nnNN
+        \exp_args:No \@@_compile_quantifier_laziness:nnNN
           { \int_use:N \l_@@_internal_a_int } { -1 }
       }
       {
@@ -2753,7 +2753,7 @@
         \else:
           \int_sub:Nn \l_@@_internal_b_int \l_@@_internal_a_int
         \fi:
-        \exp_args:Noo \@@_compile_quantifier_lazyness:nnNN
+        \exp_args:Noo \@@_compile_quantifier_laziness:nnNN
           { \int_use:N \l_@@_internal_a_int }
           { \int_use:N \l_@@_internal_b_int }
       }
@@ -4517,13 +4517,13 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\@@_build_transitions_lazyness:NNNNN}
+% \begin{macro}{\@@_build_transitions_laziness:NNNNN}
 %   This function creates a new state, and puts two transitions starting
 %   from the old current state. The order of the transitions is
 %   controlled by |#1|, true for lazy quantifiers, and false for greedy
 %   quantifiers.
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_build_transitions_lazyness:NNNNN #1#2#3#4#5
+\cs_new_protected:Npn \@@_build_transitions_laziness:NNNNN #1#2#3#4#5
   {
     \@@_build_new_state:
     \@@_toks_put_right:Ne \l_@@_left_state_int
@@ -4545,7 +4545,7 @@
 % \begin{macro}{\@@_class:NnnnN}
 % \begin{macro}[rEXP]{\@@_tests_action_cost:n}
 %   The arguments are: \meta{boolean} \Arg{tests} \Arg{min} \Arg{more}
-%   \meta{lazyness}. First store the tests with a trailing
+%   \meta{laziness}. First store the tests with a trailing
 %   \cs{@@_action_cost:n}, in the true branch of
 %   \cs{@@_break_point:TF} for positive classes, or the false branch
 %   for negative classes. The integer \meta{more} is $0$ for fixed
@@ -4599,18 +4599,18 @@
 %   \cs{@@_class_repeat:n} for the code to match |#1| repetitions,
 %   and add free transitions from the last state to the previous one,
 %   and to a new one. In both cases, the order of transitions is
-%   controlled by the lazyness boolean |#2|.
+%   controlled by the laziness boolean |#2|.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_class_repeat:nN #1#2
   {
     \if_int_compare:w #1 = \c_zero_int
-      \@@_build_transitions_lazyness:NNNNN #2
+      \@@_build_transitions_laziness:NNNNN #2
         \@@_action_free:n       \l_@@_right_state_int
         \@@_tests_action_cost:n \l_@@_left_state_int
     \else:
       \@@_class_repeat:n {#1}
       \int_set_eq:NN \l_@@_internal_a_int \l_@@_left_state_int
-      \@@_build_transitions_lazyness:NNNNN #2
+      \@@_build_transitions_laziness:NNNNN #2
         \@@_action_free:n \l_@@_right_state_int
         \@@_action_free:n \l_@@_internal_a_int
     \fi:
@@ -4634,7 +4634,7 @@
       { \l_@@_max_state_int + #2 - \c_one_int }
     \prg_replicate:nn { #2 }
       {
-        \@@_build_transitions_lazyness:NNNNN #3
+        \@@_build_transitions_laziness:NNNNN #3
           \@@_action_free:n       \l_@@_internal_a_int
           \@@_tests_action_cost:n \l_@@_right_state_int
       }
@@ -4646,7 +4646,7 @@
 %
 % \begin{macro}{\@@_group_aux:nnnnN}
 %   Arguments: \Arg{label} \Arg{contents} \Arg{min} \Arg{more}
-%   \meta{lazyness}. If \meta{min} is $0$, we need to add a state before
+%   \meta{laziness}. If \meta{min} is $0$, we need to add a state before
 %   building the group, so that the thread which skips the group does
 %   not also set the start-point of the submatch. After adding one more
 %   state, the \texttt{left_state} is the left end of the group, from
@@ -4656,7 +4656,7 @@
 %   build the \textsc{nfa} states for the contents |#2| of the group,
 %   and we forget about the two integers. Once this is done, perform the
 %   repetition: either exactly |#3| times, or |#3| or more times, or
-%   between |#3| and $|#3|+|#4|$ times, with lazyness |#5|. The
+%   between |#3| and $|#3|+|#4|$ times, with laziness |#5|. The
 %   \meta{label} |#1| is used for submatch tracking. Each of the three
 %   auxiliaries expects \texttt{left_state} and \texttt{right_state} to
 %   be set properly.
@@ -4884,7 +4884,7 @@
 %
 % \begin{macro}{\@@_group_repeat:nnnN}
 %   We wish to repeat the group between |#2| and $|#2|+|#3|$ times, with
-%   a lazyness controlled by |#4|. We insert submatch tracking up front:
+%   a laziness controlled by |#4|. We insert submatch tracking up front:
 %   in principle, we could avoid recording submatches for the first |#2|
 %   copies of the group, but that forces us to treat specially the case
 %   $|#2|=0$. Repeat that group with submatch tracking $|#2|+|#3|$ times
@@ -8076,7 +8076,7 @@
 %   This is not technically a message, but seems related enough to go
 %   there. The arguments are: |#1| is the minimum number of repetitions;
 %   |#2| is the number of allowed extra repetitions ($-1$ for infinite
-%   number), and |#3| tells us about lazyness.
+%   number), and |#3| tells us about laziness.
 %    \begin{macrocode}
 \cs_new:Npn \@@_msg_repeated:nnN #1#2#3
   {

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -1690,7 +1690,7 @@
   }
 %    \end{macrocode}
 %   If the position is ok, \cs{@@_set_item:nNnnNNNN} makes the assignment
-%   and returns \texttt{true} (in the case of conditionnals).  Here |#1|
+%   and returns \texttt{true} (in the case of conditionals).  Here |#1|
 %   is an integer expression (position minus one), it needs to be
 %   evaluated.  The sequence |#5| starts with \cs{s_@@} (even if empty),
 %   which stops the integer expression and is absorbed by it.  The

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -1919,7 +1919,7 @@
 %    \end{macrocode}
 %   If there was a hit, output the result with the dot-above and move on.
 %   Otherwise, look for one of the three letters that can take a combining
-%   accent: I, J nd I-ogonek. 
+%   accent: I, J, and I-ogonek. 
 %    \begin{macrocode}
 \cs_new:Npn \@@_change_case_lower_lt_auxi:nnnnn #1#2#3#4#5
   {

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -887,7 +887,7 @@
 %   {\c_@@_chardef_group_begin_token, \c_@@_mathchardef_group_begin_token}
 % \begin{variable}
 %   {\c_@@_chardef_group_end_token, \c_@@_mathchardef_group_end_token}
-%   Markers for implict char handling.
+%   Markers for implicit char handling.
 %    \begin{macrocode}
 \tex_global:D \tex_chardef:D \c_@@_chardef_space_token = `\  %
 \tex_global:D \tex_mathchardef:D \c_@@_mathchardef_space_token = `\  %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-build.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-build.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-build.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -3339,7 +3339,7 @@
 %   }
 % \begin{macro}[EXP]{\@@_use_none_delimit_by_q_act_stop:w}
 %   To help control the expansion, \cs{@@_act:NNNn} should always
-%   be preceeded by \cs{exp:w} and ends by producing \cs{exp_end:}
+%   be preceded by \cs{exp:w} and ends by producing \cs{exp_end:}
 %   once the result has been obtained. This way no internal token of it can be
 %   accidentally end up in the input stream.
 %   Because \cs{s_@@_act_stop} can't appear without braces around it in the

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-04-11}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -52,7 +52,7 @@
 % This module provides Unicode-specific functions along with loading data
 % from a range of Unicode Consortium files. Most of the code here is
 % internal, but there are a small set of public functions. These work with
-% Unicode \meta{codepoints} and are designed to give useable results with
+% Unicode \meta{codepoints} and are designed to give usable results with
 % both Unicode-aware and $8$-bit engines.
 %
 % \begin{function}[EXP, added = 2022-10-09, updated = 2022-11-09]

Modified: trunk/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -62,7 +62,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-03-14}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -154,7 +154,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{l3keys2e}{2024-03-14}{}
+\ProvidesExplPackage{l3keys2e}{2024-05-08}{}
   {LaTeX2e option processing using LaTeX3 keys}
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -63,7 +63,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-03-14}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -171,7 +171,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{xfp}{2024-03-14}{}
+\ProvidesExplPackage{xfp}{2024-05-08}{}
   {L3 Floating point unit}
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -67,7 +67,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-03-14}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -1079,7 +1079,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{xparse}{2024-03-14}{}
+\ProvidesExplPackage{xparse}{2024-05-08}{}
   {L3 Experimental document command parser}
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-03-14}
+% \date{Released 2024-05-08}
 %
 % \maketitle
 %
@@ -704,12 +704,15 @@
     \endinput
   }
   {%
-    \ProvidesExplPackage{xtemplate}{2024-03-14}{}
+    \ProvidesExplPackage{xtemplate}{2024-05-08}{}
       {L3 Experimental prototype document functions}
     \long\protected\def\DeclareRestrictedTemplate#1#2#3#4{%
       \DeclareTemplateCopy{#1}{#3}{#2}%
       \EditTemplateDefaults{#1}{#3}{#4}%
     }%
+    \let\IfInstanceExistT\IfInstanceExistsT
+    \let\IfInstanceExistF\IfInstanceExistsF
+    \let\IfInstanceExistTF\IfInstanceExistsTF
   }
 \ExplSyntaxOn
 \cs_new_protected:Npn \DeclareObjectType #1#2

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def	2024-05-22 20:34:20 UTC (rev 71323)
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvipdfmx.def}{2024-04-11}{}
+  {l3backend-dvipdfmx.def}{2024-05-08}{}
   {L3 backend support: dvipdfmx}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def	2024-05-22 20:34:20 UTC (rev 71323)
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvips.def}{2024-04-11}{}
+  {l3backend-dvips.def}{2024-05-08}{}
   {L3 backend support: dvips}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {

Added: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.pro
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.pro	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.pro	2024-05-22 20:34:20 UTC (rev 71323)
@@ -0,0 +1,405 @@
+%%
+%% This is file `l3backend-dvips.pro',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% l3backend-header.dtx  (with options: `header,dvips')
+%% 
+%% Copyright (C) 2019-2024 The LaTeX Project
+%% 
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
+%% 
+%%    https://www.latex-project.org/lppl.txt
+%% 
+%% This file is part of the "l3backend bundle" (The Work in LPPL)
+%% and all files in that bundle must be distributed together.
+%% 
+%% File: l3backend-header.dtx
+/color.sc { } def
+TeXDict begin
+/TeXcolorseparation { setcolor } def
+end
+true setglobal
+/pdf.globaldict 4 dict def
+false setglobal
+/pdf.cvs { 65534 string cvs } def
+/pdf.dvi.pt { 72.27 mul Resolution div } def
+/pdf.pt.dvi { 72.27 div Resolution mul } def
+/pdf.rect.ht { dup 1 get neg exch 3 get add } def
+/pdf.linkmargin { 1 pdf.pt.dvi } def
+/pdf.linkdp.pad { 0 } def
+/pdf.linkht.pad { 0 } def
+/pdf.rect
+  { /Rect [ pdf.llx pdf.lly pdf.urx pdf.ury ] } def
+/pdf.save.ll
+  {
+    currentpoint
+    /pdf.lly exch def
+    /pdf.llx exch def
+  }
+    def
+/pdf.save.ur
+  {
+    currentpoint
+    /pdf.ury exch def
+    /pdf.urx exch def
+  }
+    def
+/pdf.save.linkll
+  {
+    currentpoint
+    pdf.linkmargin add
+    pdf.linkdp.pad add
+    /pdf.lly exch def
+    pdf.linkmargin sub
+    /pdf.llx exch def
+  }
+    def
+/pdf.save.linkur
+  {
+    currentpoint
+    pdf.linkmargin sub
+    pdf.linkht.pad sub
+    /pdf.ury exch def
+    pdf.linkmargin add
+    /pdf.urx exch def
+  }
+    def
+/pdf.dest.anchor
+  {
+    currentpoint exch
+    pdf.dvi.pt 72 add
+    /pdf.dest.x exch def
+    pdf.dvi.pt
+    vsize 72 sub exch sub
+    /pdf.dest.y exch def
+  }
+    def
+/pdf.dest.point
+  { pdf.dest.x pdf.dest.y } def
+/pdf.dest2device
+  {
+    /pdf.dest.y exch def
+    /pdf.dest.x exch def
+    matrix currentmatrix
+    matrix defaultmatrix
+    matrix invertmatrix
+    matrix concatmatrix
+    cvx exec
+    /pdf.dev.y exch def
+    /pdf.dev.x exch def
+    /pdf.tmpd exch def
+    /pdf.tmpc exch def
+    /pdf.tmpb exch def
+    /pdf.tmpa exch def
+    pdf.dest.x pdf.tmpa mul
+      pdf.dest.y pdf.tmpc mul add
+      pdf.dev.x add
+    pdf.dest.x pdf.tmpb mul
+      pdf.dest.y pdf.tmpd mul add
+      pdf.dev.y add
+  }
+    def
+/pdf.bordertracking false def
+/pdf.bordertracking.begin
+  {
+    SDict /pdf.bordertracking true put
+    SDict /pdf.leftboundary undef
+    SDict /pdf.rightboundary undef
+    /a where
+      {
+        /a
+          {
+            currentpoint pop
+            SDict /pdf.rightboundary known dup
+              {
+                SDict /pdf.rightboundary get 2 index lt
+                  { not }
+                if
+              }
+            if
+              { pop }
+              { SDict exch /pdf.rightboundary exch put }
+            ifelse
+            moveto
+            currentpoint pop
+            SDict /pdf.leftboundary known dup
+              {
+                SDict /pdf.leftboundary get 2 index gt
+                  { not }
+                if
+              }
+            if
+              { pop }
+              { SDict exch /pdf.leftboundary exch put }
+            ifelse
+          }
+        put
+      }
+    if
+  }
+    def
+/pdf.bordertracking.end
+  {
+    /a where { /a { moveto } put } if
+    /x where { /x { 0 exch rmoveto } put } if
+    SDict /pdf.leftboundary known
+      { pdf.outerbox 0 pdf.leftboundary put }
+    if
+    SDict /pdf.rightboundary known
+      { pdf.outerbox 2 pdf.rightboundary put }
+    if
+    SDict /pdf.bordertracking false put
+  }
+    def
+  /pdf.bordertracking.endpage
+{
+  pdf.bordertracking
+    {
+      pdf.bordertracking.end
+      true setglobal
+      pdf.globaldict
+        /pdf.brokenlink.rect [ pdf.outerbox aload pop ] put
+      pdf.globaldict
+        /pdf.brokenlink.skip pdf.baselineskip put
+      pdf.globaldict
+        /pdf.brokenlink.dict
+          pdf.link.dict pdf.cvs put
+      false setglobal
+      mark pdf.link.dict cvx exec /Rect
+        [
+          pdf.llx
+          pdf.lly
+          pdf.outerbox 2 get pdf.linkmargin add
+          currentpoint exch pop
+          pdf.outerbox pdf.rect.ht sub pdf.linkmargin sub
+        ]
+      /ANN pdf.pdfmark
+    }
+  if
+}
+  def
+/pdf.bordertracking.continue
+  {
+    /pdf.link.dict pdf.globaldict
+      /pdf.brokenlink.dict get def
+    /pdf.outerbox pdf.globaldict
+      /pdf.brokenlink.rect get def
+    /pdf.baselineskip pdf.globaldict
+      /pdf.brokenlink.skip get def
+    pdf.globaldict dup dup
+    /pdf.brokenlink.dict undef
+    /pdf.brokenlink.skip undef
+    /pdf.brokenlink.rect undef
+    currentpoint
+    /pdf.originy exch def
+    /pdf.originx exch def
+    /a where
+      {
+        /a
+          {
+            moveto
+            SDict
+            begin
+            currentpoint pdf.originy ne exch
+              pdf.originx ne or
+              {
+                pdf.save.linkll
+                /pdf.lly
+                  pdf.lly pdf.outerbox 1 get sub def
+                pdf.bordertracking.begin
+              }
+            if
+            end
+          }
+        put
+      }
+    if
+    /x where
+      {
+        /x
+          {
+            0 exch rmoveto
+            SDict
+            begin
+            currentpoint
+            pdf.originy ne exch pdf.originx ne or
+              {
+                pdf.save.linkll
+                /pdf.lly
+                  pdf.lly pdf.outerbox 1 get sub def
+                pdf.bordertracking.begin
+              }
+            if
+            end
+          }
+        put
+      }
+    if
+  }
+    def
+/pdf.breaklink
+  {
+    pop
+    counttomark 2 mod 0 eq
+      {
+        counttomark /pdf.count exch def
+          {
+            pdf.count 0 eq { exit } if
+            counttomark 2 roll
+            1 index /Rect eq
+              {
+                dup 4 array copy
+                dup dup
+                  1 get
+                  pdf.outerbox pdf.rect.ht
+                  pdf.linkmargin 2 mul add sub
+                  3 exch put
+                dup
+                  pdf.outerbox 2 get
+                  pdf.linkmargin add
+                  2 exch put
+                dup dup
+                  3 get
+                  pdf.outerbox pdf.rect.ht
+                  pdf.linkmargin 2 mul add add
+                  1 exch put
+                /pdf.currentrect exch def
+                pdf.breaklink.write
+                  {
+                    pdf.currentrect
+                    dup
+                      pdf.outerbox 0 get
+                      pdf.linkmargin sub
+                      0 exch put
+                    dup
+                      pdf.outerbox 2 get
+                      pdf.linkmargin add
+                      2 exch put
+                    dup dup
+                      1 get
+                      pdf.baselineskip add
+                      1 exch put
+                    dup dup
+                      3 get
+                      pdf.baselineskip add
+                      3 exch put
+                    /pdf.currentrect exch def
+                    pdf.breaklink.write
+                  }
+                1 index 3 get
+                pdf.linkmargin 2 mul add
+                pdf.outerbox pdf.rect.ht add
+                2 index 1 get sub
+                pdf.baselineskip div round cvi 1 sub
+                  exch
+                repeat
+                pdf.currentrect
+                dup
+                  pdf.outerbox 0 get
+                  pdf.linkmargin sub
+                  0 exch put
+                dup dup
+                  1 get
+                  pdf.baselineskip add
+                  1 exch put
+                dup dup
+                  3 get
+                  pdf.baselineskip add
+                  3 exch put
+                dup 2 index 2 get  2 exch put
+                /pdf.currentrect exch def
+                pdf.breaklink.write
+                SDict /pdf.pdfmark.good false put
+                exit
+              }
+              { pdf.count 2 sub /pdf.count exch def }
+            ifelse
+          }
+        loop
+      }
+    if
+    /ANN
+  }
+    def
+/pdf.breaklink.write
+  {
+    counttomark 1 sub
+    index /_objdef eq
+      {
+        counttomark -2 roll
+        dup wcheck
+          {
+            readonly
+            counttomark 2 roll
+          }
+          { pop pop }
+        ifelse
+      }
+    if
+    counttomark 1 add copy
+    pop pdf.currentrect
+    /ANN pdfmark
+  }
+    def
+/pdf.pdfmark
+  {
+    SDict /pdf.pdfmark.good true put
+    dup /ANN eq
+      {
+        pdf.pdfmark.store
+        pdf.pdfmark.dict
+          begin
+            Subtype /Link eq
+            currentdict /Rect known and
+            SDict /pdf.outerbox known and
+            SDict /pdf.baselineskip known and
+              {
+                Rect 3 get
+                pdf.linkmargin 2 mul add
+                pdf.outerbox pdf.rect.ht add
+                Rect 1 get sub
+                pdf.baselineskip div round cvi 0 gt
+                  { pdf.breaklink }
+                if
+              }
+            if
+          end
+        SDict /pdf.outerbox undef
+        SDict /pdf.baselineskip undef
+        currentdict /pdf.pdfmark.dict undef
+      }
+    if
+    pdf.pdfmark.good
+      { pdfmark }
+      { cleartomark }
+    ifelse
+  }
+    def
+/pdf.pdfmark.store
+  {
+    /pdf.pdfmark.dict 65534 dict def
+    counttomark 1 add copy
+    pop
+      {
+        dup mark eq
+          {
+            pop
+            exit
+          }
+          {
+            pdf.pdfmark.dict
+            begin def end
+          }
+        ifelse
+      }
+    loop
+}
+  def
+%% 
+%%
+%% End of file `l3backend-dvips.pro'.


Property changes on: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.pro
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def	2024-05-22 20:34:20 UTC (rev 71323)
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvisvgm.def}{2024-04-11}{}
+  {l3backend-dvisvgm.def}{2024-05-08}{}
   {L3 backend support: dvisvgm}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -141,17 +141,10 @@
     \__kernel_backend_literal:n { color~push~ #1 }
   }
 \cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1
-  { \__color_backend_cmyk:w #1 \s__color_stop }
-\cs_new_protected:Npn \__color_backend_stroke_cmyk:w
-  #1 ~ #2 ~ #3 ~ #4 \s__color_stop
   {
-    \use:e
-      {
-        \__color_backend:nnn
-          { \fp_eval:n { -100 * ( 1 - min ( 1 , #1 + #4 ) ) } }
-          { \fp_eval:n { -100 * ( 1 - min ( 1 , #2 + #4 ) ) } }
-          { \fp_eval:n { -100 * ( 1 - min ( 1 , #3 + #4 ) ) } }
-      }
+    \__color_backend_fill_cmyk:n {#1}
+    \__kernel_backend_scope:n { stroke = "{?color}" }
+    \__color_backend_reset:
   }
 \cs_new_protected:Npn \__color_backend_stroke_gray:n #1
   {

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def	2024-05-22 20:34:20 UTC (rev 71323)
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-luatex.def}{2024-04-11}{}
+  {l3backend-luatex.def}{2024-05-08}{}
   {L3 backend support: PDF output (LuaTeX)}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def	2024-05-22 20:34:20 UTC (rev 71323)
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-pdftex.def}{2024-04-11}{}
+  {l3backend-pdftex.def}{2024-05-08}{}
   {L3 backend support: PDF output (pdfTeX)}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def	2024-05-22 20:34:20 UTC (rev 71323)
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-xetex.def}{2024-04-11}{}
+  {l3backend-xetex.def}{2024-05-08}{}
   {L3 backend support: XeTeX}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2024-05-22 20:34:20 UTC (rev 71323)
@@ -75,7 +75,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2024-04-11}%
+\def\ExplFileDate{2024-05-08}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -10078,9 +10078,19 @@
 \cs_generate_variant:Nn \prop_gput:Nnn
   { cno , co , coo , cnx , cVx , cxV , cxx }
 \cs_generate_variant:Nn \prop_put_if_not_in:Nnn
-  { NnV , NV , c , cnV , cV }
+  {
+         NnV , Nnv , Nne , NV , NVV , NVv , NVe ,
+    Nv , NvV , Nvv , Nve , Ne , NeV , Nev , Nee ,
+    c  , cnV , cnv , cne , cV , cVV , cVv , cVe ,
+    cv , cvV , cvv , cve , ce , ceV , cev , cee
+  }
 \cs_generate_variant:Nn \prop_gput_if_not_in:Nnn
-  { NnV , NV , c , cnV , cV }
+  {
+         NnV , Nnv , Nne , NV , NVV , NVv , NVe ,
+    Nv , NvV , Nvv , Nve , Ne , NeV , Nev , Nee ,
+    c  , cnV , cnv , cne , cV , cVV , cVv , cVe ,
+    cv , cvV , cvv , cve , ce , ceV , cev , cee
+  }
 \cs_new_protected:Npn \__prop_put:nNNnn #1#2#3#4#5
   {
     \tl_set:Nn \l__prop_internal_tl
@@ -13739,8 +13749,9 @@
 \tl_set:Nn \l__keys_relative_tl { \q__keys_no_value }
 \str_new:N \l__keys_property_str
 \bool_new:N \l__keys_selective_bool
-\bool_new:N \l__keys_filtered_bool
-\seq_new:N \l__keys_selective_seq
+\bool_new:N \l__keys_exclude_bool
+\seq_new:N \l__keys_selective_clist
+\seq_new:N \l__keys_tmp_clist
 \clist_new:N \l__keys_unused_clist
 \tl_new:N \l_keys_value_tl
 \bool_new:N \l__keys_tmp_bool
@@ -14359,27 +14370,40 @@
   { \__keys_value_requirement:nn { forbidden } {#1} }
 \cs_new_protected:cpn { \c__keys_props_root_str .value_required:n } #1
   { \__keys_value_requirement:nn { required } {#1} }
-\cs_new_protected:Npn \keys_set:nn #1#2
+\cs_new_protected:Npn \__keys_set:nnnnNn
   {
+    \exp_args:Nooo \__keys_set:nnnnnnnNn
+      \l__keys_unused_clist
+      \l__keys_selective_clist
+      \l__keys_relative_tl
+  }
+\cs_new_protected:Npn \__keys_set:nnnnnnnNn #1#2#3#4#5#6#7#8#9
+  {
+    \clist_clear:N \l__keys_unused_clist
+    \clist_set:Ne \l__keys_selective_clist { \tl_to_str:n {#5} }
+    \tl_set:Nn \l__keys_relative_tl {#7}
     \use:e
       {
-        \bool_set_false:N \exp_not:N \l__keys_only_known_bool
-        \bool_set_false:N \exp_not:N \l__keys_filtered_bool
-        \bool_set_false:N \exp_not:N \l__keys_selective_bool
-        \tl_set:Nn \exp_not:N \l__keys_relative_tl
-          { \exp_not:N \q__keys_no_value }
-        \__keys_set:nn \exp_not:n { {#1} {#2} }
-        \bool_if:NT \l__keys_only_known_bool
-          { \bool_set_true:N \exp_not:N \l__keys_only_known_bool }
-        \bool_if:NT \l__keys_filtered_bool
-          { \bool_set_true:N \exp_not:N \l__keys_filtered_bool }
-        \bool_if:NT \l__keys_selective_bool
-          { \bool_set_true:N \exp_not:N \l__keys_selective_bool }
-        \tl_set:Nn \exp_not:N \l__keys_relative_tl
-          { \exp_not:o \l__keys_relative_tl }
+        \exp_not:n
+          {
+            #9
+            \__keys_set:nn {#4} {#6}
+          }
+        \__keys_reset_bool:N \l__keys_only_known_bool
+        \__keys_reset_bool:N \l__keys_exclude_bool
+        \__keys_reset_bool:N \l__keys_selective_bool
       }
+    \clist_set_eq:NN #8 \l__keys_unused_clist
+    \__kernel_tl_set:Nx \l__keys_unused_clist { \exp_not:n {#1} }
+    \__kernel_tl_set:Nx \l__keys_selective_clist {#2}
+    \__kernel_tl_set:Nx \l__keys_relative_tl { \exp_not:n {#3} }
   }
-\cs_generate_variant:Nn \keys_set:nn { nV , nv , ne , no , nx }
+\cs_new:Npn \__keys_reset_bool:N #1
+  {
+    \exp_not:c
+      { bool_set_ \bool_if:NTF #1 { true } { false } :N }
+        \exp_not:N #1
+  }
 \cs_new_protected:Npn \__keys_set:nn #1#2
   { \exp_args:No \__keys_set:nnn \l__keys_module_str {#1} {#2} }
 \cs_new_protected:Npn \__keys_set:nnn #1#2#3
@@ -14388,119 +14412,74 @@
     \keyval_parse:NNn \__keys_set_keyval:n \__keys_set_keyval:nn {#3}
     \str_set:Nn \l__keys_module_str {#1}
   }
-\cs_new_protected:Npn \keys_set_known:nnN #1#2#3
+\cs_new_protected:Npn \keys_set:nn #1#2
   {
-    \exp_args:No \__keys_set_known:nnnnN
-      \l__keys_unused_clist \q__keys_no_value {#1} {#2} #3
+    \__keys_set:nnnnNn
+      {#1} { } {#2} { \q__keys_no_value } \l__keys_tmp_clist
+      {
+        \bool_set_false:N \l__keys_only_known_bool
+        \bool_set_false:N \l__keys_exclude_bool
+        \bool_set_false:N \l__keys_selective_bool
+      }
   }
-\cs_generate_variant:Nn \keys_set_known:nnN { nV , nv , ne , no }
+\cs_generate_variant:Nn \keys_set:nn { nV , nv , ne , no , nx }
 \cs_new_protected:Npn \keys_set_known:nnnN #1#2#3#4
   {
-    \exp_args:No \__keys_set_known:nnnnN
-      \l__keys_unused_clist {#3} {#1} {#2} #4
+    \__keys_set:nnnnNn
+      {#1} { } {#2} {#3} #4
+      {
+        \bool_set_true:N \l__keys_only_known_bool
+        \bool_set_false:N \l__keys_exclude_bool
+        \bool_set_false:N \l__keys_selective_bool
+      }
   }
 \cs_generate_variant:Nn \keys_set_known:nnnN { nV , nv , ne , no }
-\cs_new_protected:Npn \__keys_set_known:nnnnN #1#2#3#4#5
-  {
-    \clist_clear:N \l__keys_unused_clist
-    \__keys_set_known:nnn {#2} {#3} {#4}
-    \__kernel_tl_set:Nx #5 { \exp_not:o \l__keys_unused_clist }
-    \__kernel_tl_set:Nx \l__keys_unused_clist { \exp_not:n {#1} }
-  }
+\cs_new_protected:Npn \keys_set_known:nnN #1#2#3
+  { \keys_set_known:nnnN {#1} {#2} { \q__keys_no_value } #3 }
+\cs_generate_variant:Nn \keys_set_known:nnN { nV , nv , ne , no }
 \cs_new_protected:Npn \keys_set_known:nn #1#2
-  { \__keys_set_known:nnn \q__keys_no_value {#1} {#2} }
+  { \keys_set_known:nnnN {#1} {#2} { \q__keys_no_value } \l__keys_tmp_clist }
 \cs_generate_variant:Nn \keys_set_known:nn { nV , nv , ne , no }
-\cs_new_protected:Npn \__keys_set_known:nnn #1#2#3
+\cs_new_protected:Npn \keys_set_exclude_groups:nnnnN #1#2#3#4#5
   {
-    \use:e
+    \__keys_set:nnnnNn
+      {#1} {#2} {#3} {#4} #5
       {
-        \bool_set_true:N \exp_not:N \l__keys_only_known_bool
-        \bool_set_false:N \exp_not:N \l__keys_filtered_bool
-        \bool_set_false:N \exp_not:N \l__keys_selective_bool
-        \tl_set:Nn \exp_not:N \l__keys_relative_tl { \exp_not:n {#1} }
-        \__keys_set:nn \exp_not:n { {#2} {#3} }
-        \bool_if:NF \l__keys_only_known_bool
-          { \bool_set_false:N \exp_not:N \l__keys_only_known_bool }
-        \bool_if:NT \l__keys_filtered_bool
-          { \bool_set_true:N \exp_not:N \l__keys_filtered_bool }
-        \bool_if:NT \l__keys_selective_bool
-          { \bool_set_true:N \exp_not:N \l__keys_selective_bool }
-        \tl_set:Nn \exp_not:N \l__keys_relative_tl
-          { \exp_not:o \l__keys_relative_tl }
+        \bool_set_false:N \l__keys_only_known_bool
+        \bool_set_true:N \l__keys_exclude_bool
+        \bool_set_true:N \l__keys_selective_bool
       }
   }
+\cs_generate_variant:Nn \keys_set_exclude_groups:nnnnN { nnV , nnv , nno }
 \cs_new_protected:Npn \keys_set_exclude_groups:nnnN #1#2#3#4
-  {
-    \exp_args:No \__keys_set_exclude_groups:nnnnnN
-      \l__keys_unused_clist
-        \q__keys_no_value {#1} {#2} {#3} #4
-  }
+  { \keys_set_exclude_groups:nnnnN {#1} {#2} {#3} { \q__keys_no_value } #4 }
 \cs_generate_variant:Nn \keys_set_exclude_groups:nnnN { nnV , nnv , nno }
-\cs_new_protected:Npn \keys_set_exclude_groups:nnnnN #1#2#3#4#5
+\cs_new_protected:Npn \keys_set_exclude_groups:nnn #1#2#3
   {
-    \exp_args:No \__keys_set_exclude_groups:nnnnnN
-      \l__keys_unused_clist {#4} {#1} {#2} {#3} #5
+    \keys_set_exclude_groups:nnnnN {#1} {#2} {#3}
+      { \q__keys_no_value } \l__keys_tmp_clist
   }
-\cs_generate_variant:Nn \keys_set_exclude_groups:nnnnN { nnV , nnv , nno }
-\cs_new_protected:Npn \__keys_set_exclude_groups:nnnnnN #1#2#3#4#5#6
-  {
-    \clist_clear:N \l__keys_unused_clist
-    \__keys_set_exclude_groups:nnnn {#2} {#3} {#4} {#5}
-    \__kernel_tl_set:Nx #6 { \exp_not:o \l__keys_unused_clist }
-    \__kernel_tl_set:Nx \l__keys_unused_clist { \exp_not:n {#1} }
-  }
-\cs_new_protected:Npn \keys_set_exclude_groups:nnn #1#2#3
-  {\__keys_set_exclude_groups:nnnn \q__keys_no_value {#1} {#2} {#3} }
 \cs_generate_variant:Nn \keys_set_exclude_groups:nnn { nnV , nnv , nno }
-\cs_new_protected:Npn \__keys_set_exclude_groups:nnnn #1#2#3#4
+\cs_new_protected:Npn \keys_set_groups:nnnnN #1#2#3#4#5
   {
-    \use:e
+    \__keys_set:nnnnNn
+      {#1} {#2} {#3} {#4} #5
       {
-        \bool_set_false:N \exp_not:N \l__keys_only_known_bool
-        \bool_set_true:N \exp_not:N \l__keys_filtered_bool
-        \bool_set_true:N \exp_not:N \l__keys_selective_bool
-        \tl_set:Nn \exp_not:N \l__keys_relative_tl { \exp_not:n {#1} }
-        \__keys_set_selective:nnn \exp_not:n { {#2} {#3} {#4} }
-        \bool_if:NT \l__keys_only_known_bool
-          { \bool_set_true:N \exp_not:N \l__keys_only_known_bool }
-        \bool_if:NF \l__keys_filtered_bool
-          { \bool_set_false:N \exp_not:N \l__keys_filtered_bool }
-        \bool_if:NF \l__keys_selective_bool
-          { \bool_set_false:N \exp_not:N \l__keys_selective_bool }
-        \tl_set:Nn \exp_not:N \l__keys_relative_tl
-          { \exp_not:o \l__keys_relative_tl }
+        \bool_set_false:N \l__keys_only_known_bool
+        \bool_set_false:N \l__keys_exclude_bool
+        \bool_set_true:N \l__keys_selective_bool
       }
   }
+\cs_generate_variant:Nn \keys_set_groups:nnnnN { nnV , nnv , nno }
+\cs_new_protected:Npn \keys_set_groups:nnnN #1#2#3#4
+  { \keys_set_groups:nnnnN {#1} {#2} {#3} { \q__keys_no_value } #4 }
+\cs_generate_variant:Nn \keys_set_groups:nnnN { nnV , nnv , nno }
 \cs_new_protected:Npn \keys_set_groups:nnn #1#2#3
   {
-    \use:e
-      {
-        \bool_set_false:N \exp_not:N \l__keys_only_known_bool
-        \bool_set_false:N \exp_not:N \l__keys_filtered_bool
-        \bool_set_true:N \exp_not:N \l__keys_selective_bool
-        \tl_set:Nn \exp_not:N \l__keys_relative_tl
-          { \exp_not:N \q__keys_no_value }
-        \__keys_set_selective:nnn \exp_not:n { {#1} {#2} {#3} }
-        \bool_if:NT \l__keys_only_known_bool
-          { \bool_set_true:N \exp_not:N \l__keys_only_known_bool }
-        \bool_if:NF \l__keys_filtered_bool
-          { \bool_set_true:N \exp_not:N \l__keys_filtered_bool }
-        \bool_if:NF \l__keys_selective_bool
-          { \bool_set_false:N \exp_not:N \l__keys_selective_bool }
-        \tl_set:Nn \exp_not:N \l__keys_relative_tl
-          { \exp_not:o \l__keys_relative_tl }
-      }
+    \keys_set_groups:nnnnN {#1} {#2} {#3}
+      { \q__keys_no_value } \l__keys_tmp_clist
   }
 \cs_generate_variant:Nn \keys_set_groups:nnn { nnV , nnv , nno }
-\cs_new_protected:Npn \__keys_set_selective:nnn
-  { \exp_args:No \__keys_set_selective:nnnn \l__keys_selective_seq }
-\cs_new_protected:Npn \__keys_set_selective:nnnn #1#2#3#4
-  {
-    \exp_args:NNe \seq_set_from_clist:Nn
-      \l__keys_selective_seq { \tl_to_str:n {#3} }
-    \__keys_set:nn {#2} {#4}
-    \tl_set:Nn \l__keys_selective_seq {#1}
-  }
 \cs_new_protected:Npn \keys_precompile:nnN #1#2#3
   {
     \bool_set_true:N \l__keys_precompile_bool
@@ -14574,7 +14553,7 @@
         \__keys_check_groups:
       }
       {
-        \bool_if:NTF \l__keys_filtered_bool
+        \bool_if:NTF \l__keys_exclude_bool
           \__keys_execute:
           \__keys_store_unused:
       }
@@ -14582,22 +14561,22 @@
 \cs_new_protected:Npn \__keys_check_groups:
   {
     \bool_set_false:N \l__keys_tmp_bool
-    \seq_map_inline:Nn \l__keys_selective_seq
+    \clist_map_inline:Nn \l__keys_selective_clist
       {
         \clist_if_in:NnT \l__keys_groups_clist {##1}
           {
             \bool_set_true:N \l__keys_tmp_bool
-            \seq_map_break:
+            \clist_map_break:
           }
       }
     \bool_if:NTF \l__keys_tmp_bool
       {
-        \bool_if:NTF \l__keys_filtered_bool
+        \bool_if:NTF \l__keys_exclude_bool
           \__keys_store_unused:
           \__keys_execute:
       }
       {
-        \bool_if:NTF \l__keys_filtered_bool
+        \bool_if:NTF \l__keys_exclude_bool
           \__keys_execute:
           \__keys_store_unused:
       }
@@ -26019,7 +25998,7 @@
     \__regex_compile_abort_tokens:e {#1}
     #2 #3
   }
-\cs_new_protected:Npn \__regex_compile_quantifier_lazyness:nnNN #1#2#3#4
+\cs_new_protected:Npn \__regex_compile_quantifier_laziness:nnNN #1#2#3#4
   {
     \__regex_two_if_eq:NNNNTF #3 #4 \__regex_compile_special:N ?
       {
@@ -26033,11 +26012,11 @@
       }
   }
 \cs_new_protected:cpn { __regex_compile_quantifier_?:w }
-  { \__regex_compile_quantifier_lazyness:nnNN { 0 } { 1 } }
+  { \__regex_compile_quantifier_laziness:nnNN { 0 } { 1 } }
 \cs_new_protected:cpn { __regex_compile_quantifier_*:w }
-  { \__regex_compile_quantifier_lazyness:nnNN { 0 } { -1 } }
+  { \__regex_compile_quantifier_laziness:nnNN { 0 } { -1 } }
 \cs_new_protected:cpn { __regex_compile_quantifier_+:w }
-  { \__regex_compile_quantifier_lazyness:nnNN { 1 } { -1 } }
+  { \__regex_compile_quantifier_laziness:nnNN { 1 } { -1 } }
 \cs_new_protected:cpn { __regex_compile_quantifier_ \c_left_brace_str :w }
   {
     \__regex_get_digits:NTFw \l__regex_internal_a_int
@@ -26050,7 +26029,7 @@
       {
         { \__regex_compile_special:N \c_right_brace_str }
           {
-            \exp_args:No \__regex_compile_quantifier_lazyness:nnNN
+            \exp_args:No \__regex_compile_quantifier_laziness:nnNN
               { \int_use:N \l__regex_internal_a_int } 0
           }
         { \__regex_compile_special:N , }
@@ -26070,7 +26049,7 @@
   {
     \__regex_two_if_eq:NNNNTF #1 #2 \__regex_compile_special:N \c_right_brace_str
       {
-        \exp_args:No \__regex_compile_quantifier_lazyness:nnNN
+        \exp_args:No \__regex_compile_quantifier_laziness:nnNN
           { \int_use:N \l__regex_internal_a_int } { -1 }
       }
       {
@@ -26092,7 +26071,7 @@
         \else:
           \int_sub:Nn \l__regex_internal_b_int \l__regex_internal_a_int
         \fi:
-        \exp_args:Noo \__regex_compile_quantifier_lazyness:nnNN
+        \exp_args:Noo \__regex_compile_quantifier_laziness:nnNN
           { \int_use:N \l__regex_internal_a_int }
           { \int_use:N \l__regex_internal_b_int }
       }
@@ -27225,7 +27204,7 @@
     \int_set_eq:NN \l__regex_right_state_int \l__regex_max_state_int
     \int_incr:N \l__regex_max_state_int
   }
-\cs_new_protected:Npn \__regex_build_transitions_lazyness:NNNNN #1#2#3#4#5
+\cs_new_protected:Npn \__regex_build_transitions_laziness:NNNNN #1#2#3#4#5
   {
     \__regex_build_new_state:
     \__regex_toks_put_right:Ne \l__regex_left_state_int
@@ -27267,13 +27246,13 @@
 \cs_new_protected:Npn \__regex_class_repeat:nN #1#2
   {
     \if_int_compare:w #1 = \c_zero_int
-      \__regex_build_transitions_lazyness:NNNNN #2
+      \__regex_build_transitions_laziness:NNNNN #2
         \__regex_action_free:n       \l__regex_right_state_int
         \__regex_tests_action_cost:n \l__regex_left_state_int
     \else:
       \__regex_class_repeat:n {#1}
       \int_set_eq:NN \l__regex_internal_a_int \l__regex_left_state_int
-      \__regex_build_transitions_lazyness:NNNNN #2
+      \__regex_build_transitions_laziness:NNNNN #2
         \__regex_action_free:n \l__regex_right_state_int
         \__regex_action_free:n \l__regex_internal_a_int
     \fi:
@@ -27285,7 +27264,7 @@
       { \l__regex_max_state_int + #2 - \c_one_int }
     \prg_replicate:nn { #2 }
       {
-        \__regex_build_transitions_lazyness:NNNNN #3
+        \__regex_build_transitions_laziness:NNNNN #3
           \__regex_action_free:n       \l__regex_internal_a_int
           \__regex_tests_action_cost:n \l__regex_right_state_int
       }
@@ -31934,7 +31913,7 @@
 \cs_generate_variant:Nn \pdf_object_unnamed_write:nn { ne , nx }
 \cs_new:Npn \pdf_object_ref_last: { \__pdf_backend_object_last: }
 \cs_new:Npn \pdf_pageobject_ref:n #1
-  { \__pdf_backend_pageobject_ref:n {#1} }
+  { \exp_args:Ne \__pdf_backend_pageobject_ref:n {#1} }
 \prg_new_conditional:Npnn \pdf_version_compare:Nn #1#2 { p , T , F , TF }
   { \use:c { __pdf_version_compare_ #1 :w } #2 . . \s__pdf_stop }
 \cs_new:cpn { __pdf_version_compare_=:w } #1 . #2 . #3 \s__pdf_stop
@@ -37328,13 +37307,14 @@
 \cs_new_protected:Npn \pdf_object_new:nn #1#2
   {
     \prop_gput:Nnn \g__pdf_object_prop {#1} {#2}
-    \__pdf_backend_object_new:n {#1}
+    \pdf_object_new:n {#1}
   }
 \__kernel_patch_deprecation:nnNNpn { 2022-08-30 } { [\pdf_object_write:n] }
 \cs_new_protected:Npn \pdf_object_write:nn #1#2
   {
-    \exp_args:Nne \__pdf_backend_object_write:nnn
-      {#1} { \prop_item:Nn \g__pdf_object_prop {#1} } {#2}
+    \exp_args:Nee \__pdf_backend_object_write:nnn
+      { \__pdf_object_retrieve:n {#1} }
+      { \prop_item:Nn \g__pdf_object_prop {#1} } {#2}
     \bool_gset_true:N \g__pdf_init_bool
   }
 \cs_generate_variant:Nn \pdf_object_write:nn { nx }

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2024-05-22 20:34:20 UTC (rev 71323)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2024-04-11}%
+\def\ExplFileDate{2024-05-08}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \catcode`\_=11

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx	2024-05-22 20:34:20 UTC (rev 71323)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2024-04-11}%
+\def\ExplFileDate{2024-05-08}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \catcode`\_=11

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2024-05-22 20:34:20 UTC (rev 71323)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2024-04-11}%
+\def\ExplFileDate{2024-05-08}%
 \let\ExplLoaderFileDate\ExplFileDate
 \ProvidesPackage{expl3}
   [%

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3debug.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3debug.def	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3debug.def	2024-05-22 20:34:20 UTC (rev 71323)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: l3debug.dtx
-\ProvidesExplFile{l3debug.def}{2024-04-11}{}{L3 Debugging support}
+\ProvidesExplFile{l3debug.def}{2024-05-08}{}{L3 Debugging support}
 \scan_new:N \s__debug_stop
 \cs_new:Npn \__debug_use_i_delimit_by_s_stop:nw #1 #2 \s__debug_stop {#1}
 \quark_new:N \q__debug_recursion_tail

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls	2024-05-22 20:34:20 UTC (rev 71323)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3doc.dtx
 \RequirePackage{calc}
-\ProvidesExplClass{l3doc}{2024-04-11}{}
+\ProvidesExplClass{l3doc}{2024-05-08}{}
   {L3 Experimental documentation class}
 \clist_new:N \g_docinput_clist
 \seq_new:N \g_doc_functions_seq

Modified: trunk/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty	2024-05-22 20:34:20 UTC (rev 71323)
@@ -32,7 +32,7 @@
       }%
     \endinput
   }
-\ProvidesExplPackage{l3keys2e}{2024-03-14}{}
+\ProvidesExplPackage{l3keys2e}{2024-05-08}{}
   {LaTeX2e option processing using LaTeX3 keys}
 \cs_if_exist:NT \ProcessKeysOptions
   { \file_input_stop: }

Modified: trunk/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty	2024-05-22 20:34:20 UTC (rev 71323)
@@ -32,7 +32,7 @@
       }%
     \endinput
   }
-\ProvidesExplPackage{xfp}{2024-03-14}{}
+\ProvidesExplPackage{xfp}{2024-05-08}{}
   {L3 Floating point unit}
 \ProvideExpandableDocumentCommand \fpeval { m } { \fp_eval:n {#1} }
 \ProvideExpandableDocumentCommand \inteval { m } { \int_eval:n {#1} }

Modified: trunk/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty	2024-05-22 20:34:20 UTC (rev 71323)
@@ -60,7 +60,7 @@
       }
   }
 \ExplSyntaxOff
-\ProvidesExplPackage{xparse}{2024-03-14}{}
+\ProvidesExplPackage{xparse}{2024-05-08}{}
   {L3 Experimental document command parser}
 \clist_new:N \l__cmd_options_clist
 \DeclareOption* { \clist_put_right:NV \l__cmd_options_clist \CurrentOption }

Modified: trunk/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty	2024-05-22 20:32:13 UTC (rev 71322)
+++ trunk/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty	2024-05-22 20:34:20 UTC (rev 71323)
@@ -25,12 +25,15 @@
     \endinput
   }
   {%
-    \ProvidesExplPackage{xtemplate}{2024-03-14}{}
+    \ProvidesExplPackage{xtemplate}{2024-05-08}{}
       {L3 Experimental prototype document functions}
     \long\protected\def\DeclareRestrictedTemplate#1#2#3#4{%
       \DeclareTemplateCopy{#1}{#3}{#2}%
       \EditTemplateDefaults{#1}{#3}{#4}%
     }%
+    \let\IfInstanceExistT\IfInstanceExistsT
+    \let\IfInstanceExistF\IfInstanceExistsF
+    \let\IfInstanceExistTF\IfInstanceExistsTF
   }
 \ExplSyntaxOn
 \cs_new_protected:Npn \DeclareObjectType #1#2



More information about the tex-live-commits mailing list.