texlive[55586] Master/texmf-dist: l3 (18jun20)

commits+karl at tug.org commits+karl at tug.org
Thu Jun 18 23:08:59 CEST 2020


Revision: 55586
          http://tug.org/svn/texlive?view=revision&revision=55586
Author:   karl
Date:     2020-06-18 23:08:59 +0200 (Thu, 18 Jun 2020)
Log Message:
-----------
l3 (18jun20)

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/l3experimental/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/l3experimental/README.md
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3cctab/l3cctab.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3color/l3color.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf-code.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3pdf/l3pdf.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.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/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/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/l3obsolete.txt
    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/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-pdf.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3cctab/l3cctab.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.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/l3candidates.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-base.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/l3final.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-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-traps.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.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/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-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.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.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-pdfmode.def
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
    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/l3deprecation.def

Modified: trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md	2020-06-18 21:08:59 UTC (rev 55586)
@@ -6,6 +6,13 @@
 
 ## [Unreleased]
 
+## [2020-06-18]
+
+### Changed
+- Use `scn` operator for separations
+- Internal color model
+- Internal performance enhancements
+
 ## [2020-06-03]
 
 ### Fixed
@@ -76,7 +83,8 @@
 - Include `l3backend` in file names
 - Moved backend code to internal for each 'parent' module
 
-[Unreleased]: https://github.com/latex3/latex3/compare/2020-06-03...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2020-06-18...HEAD
+[2020-06-18]: https://github.com/latex3/latex3/compare/2020-06-03...2020-06-18
 [2020-06-03]: https://github.com/latex3/latex3/compare/2020-05-05...2020-06-03
 [2020-05-05]: https://github.com/latex3/latex3/compare/2020-03-12...2020-05-05
 [2020-03-12]: https://github.com/latex3/latex3/compare/2020-02-23...2020-03-12

Modified: trunk/Master/texmf-dist/doc/latex/l3backend/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3backend/README.md	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/doc/latex/l3backend/README.md	2020-06-18 21:08:59 UTC (rev 55586)
@@ -1,7 +1,7 @@
 LaTeX3 Backend Drivers
 ======================
 
-Release 2020-06-03
+Release 2020-06-18
 
 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/l3experimental/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md	2020-06-18 21:08:59 UTC (rev 55586)
@@ -7,6 +7,12 @@
 
 ## [Unreleased]
 
+## [2020-06-18]
+
+### Changed
+- Internal color model
+- Internal performance enhancements
+
 ## [2020-06-03]
 
 ### Added
@@ -133,7 +139,8 @@
 - New `l3color` module using `xcolor`-like expression syntax
 - New `l3draw` module, based on `pgf` layer of the TikZ system
 
-[Unreleased]: https://github.com/latex3/latex3/compare/2020-06-03...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2020-06-18...HEAD
+[2020-06-18]: https://github.com/latex3/latex3/compare/2020-06-03...2020-06-18
 [2020-06-03]: https://github.com/latex3/latex3/compare/2020-05-18...2020-06-03
 [2020-05-18]: https://github.com/latex3/latex3/compare/2020-01-12...2020-05-18
 [2020-01-12]: https://github.com/latex3/latex3/compare/2019-10-11...2020-01-12

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3experimental/README.md	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/doc/latex/l3experimental/README.md	2020-06-18 21:08:59 UTC (rev 55586)
@@ -1,7 +1,7 @@
 Experimental LaTeX3 Concepts
 ============================
 
-Release 2020-06-03
+Release 2020-06-18
 
 Overview
 --------

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

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

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

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

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

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

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

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

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf
===================================================================
(Binary files differ)

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

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf
===================================================================
(Binary files differ)

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

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md	2020-06-18 21:08:59 UTC (rev 55586)
@@ -7,6 +7,17 @@
 
 ## [Unreleased]
 
+## [2020-06-18]
+
+### Changed
+- Use `scn` operator for separations
+- Internal color model
+- Internal performance enhancements
+- Moved `\msg_expandable_error:nn(nnnn)` to stable.
+- Moved `\seq_indexed_map_inline:Nn` and `\seq_indexed_map_function:Nn`
+  to stable as `\seq_map_indexed_inline:Nn` and `\seq_map_indexed_function:Nn`.
+- Internal changes to `expl3` to allow loading earlier in LaTeX2e.
+
 ## [2020-06-03]
 
 ### Added
@@ -693,7 +704,8 @@
 - Step func­tions have been added for dim vari­ables,
   e.g. `\dim_step_in­line:nnnn`
 
-[Unreleased]: https://github.com/latex3/latex3/compare/2020-06-03...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2020-06-18...HEAD
+[2020-06-18]: https://github.com/latex3/latex3/compare/2020-06-03...2020-06-18
 [2020-06-03]: https://github.com/latex3/latex3/compare/2020-05-15...2020-06-03
 [2020-05-15]: https://github.com/latex3/latex3/compare/2020-05-14...2020-05-15
 [2020-05-14]: https://github.com/latex3/latex3/compare/2020-05-11...2020-05-14

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2020-06-18 21:08:59 UTC (rev 55586)
@@ -1,7 +1,7 @@
 LaTeX3 Programming Conventions
 ==============================
 
-Release 2020-06-03
+Release 2020-06-18
 
 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	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex	2020-06-18 21:08:59 UTC (rev 55586)
@@ -54,7 +54,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2020-06-03}
+\date{Released 2020-06-18}
 
 \pagenumbering{roman}
 \maketitle

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/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/l3obsolete.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt	2020-06-18 21:08:59 UTC (rev 55586)
@@ -73,6 +73,8 @@
 \str_lower_case:n                 2022
 \str_upper_case:f                 2022
 \str_upper_case:n                 2022
+\seq_indexed_map_inline:Nn        2023
+\seq_indexed_map_function:NN      2023
 \tl_gset_from_file:cnn            2020
 \tl_gset_from_file:Nnn            2020
 \tl_gset_from_file_x:cnn          2020

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	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex	2020-06-18 21:08:59 UTC (rev 55586)
@@ -32,7 +32,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2020-06-03}
+\date{Released 2020-06-18}
 
 \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	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex	2020-06-18 21:08:59 UTC (rev 55586)
@@ -32,7 +32,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2020-06-03}
+\date{Released 2020-06-18}
 
 \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	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex	2020-06-18 21:08:59 UTC (rev 55586)
@@ -32,7 +32,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2020-06-03}
+\date{Released 2020-06-18}
 
 \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	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex	2020-06-18 21:08:59 UTC (rev 55586)
@@ -53,7 +53,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2020-06-03}
+\date{Released 2020-06-18}
 
 \pagenumbering{roman}
 \maketitle

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -71,23 +71,23 @@
 %<*package>
 \ProvidesExplFile
 %<*dvipdfmx>
-  {l3backend-dvipdfmx.def}{2020-06-03}{}
+  {l3backend-dvipdfmx.def}{2020-06-18}{}
   {L3 backend support: dvipdfmx}
 %</dvipdfmx>
 %<*dvips>
-  {l3backend-dvips.def}{2020-06-03}{}
+  {l3backend-dvips.def}{2020-06-18}{}
   {L3 backend support: dvips}
 %</dvips>
 %<*dvisvgm>
-  {l3backend-dvisvgm.def}{2020-06-03}{}
+  {l3backend-dvisvgm.def}{2020-06-18}{}
   {L3 backend support: dvisvgm}
 %</dvisvgm>
 %<*pdfmode>
-  {l3backend-pdfmode.def}{2020-06-03}{}
+  {l3backend-pdfmode.def}{2020-06-18}{}
   {L3 backend support: PDF mode}
 %</pdfmode>
 %<*xdvipdfmx>
-  {l3backend-xdvipdfmx.def}{2020-06-03}{}
+  {l3backend-xdvipdfmx.def}{2020-06-18}{}
   {L3 backend support: xdvipdfmx}
 %</xdvipdfmx>
 %</package>

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -78,7 +78,8 @@
 % \begin{macro}{\@@_backend_pickup:w}
 %   Allow for \LaTeXe{} color. Here, the possible input values are limited:
 %   \texttt{dvips}-style colors can mainly be taken as-is with the exception
-%   spot ones (here we need a model and a tint).
+%   spot ones (here we need a model and a tint). The \texttt{x}-type expansion
+%   is there to cover the case where \pkg{xcolor} is in use.
 %    \begin{macrocode}
 %<*package>
 \cs_new_protected:Npn \@@_backend_pickup:N #1 { }
@@ -92,8 +93,8 @@
               {
                 \tl_set:Nx #1
                    {
-                     spot ~
-                     \exp_after:wN \use:n \current at color \c_space_tl 1
+                     { spot }
+                     { \exp_after:wN \use:n \current at color \c_space_tl 1 }
                    }
               }
               {
@@ -102,7 +103,7 @@
               }
           }
         \cs_new_protected:Npn \@@_backend_pickup:w #1 ~ #2 \s_@@_stop #3
-          { \tl_set:Nn #3 { #1 ~ #2 } }
+          { \tl_set:Nn #3 { {#1} {#2} } }
       }
   }
 %</package>
@@ -110,34 +111,27 @@
 % \end{macro}
 % \end{macro}
 %
-% \begin{macro}{\@@_backend_cmyk:w}
-% \begin{macro}{\@@_backend_gray:w}
-% \begin{macro}{\@@_backend_rgb:w}
-% \begin{macro}{\@@_backend_spot:w}
-% \begin{macro}{\@@_backend_select:n, \@@_backend_select:x}
+% \begin{macro}
+%   {
+%     \@@_backend_cmyk:n  ,
+%     \@@_backend_gray:n  ,
+%     \@@_backend_rgb:n   ,
+%     \@@_backend_spot:n  ,
+%     \@@_backend_select:n
+%   }
 % \begin{macro}{\@@_backend_reset:}
 % \begin{macro}{color.fc}
 %    Push the data to the stack. In the case of \texttt{dvips} also reset the
 %    drawing fill color in raw PostScript.
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s_@@_stop
-  {
-    \@@_backend_select:x
-      {
-        cmyk~
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4}
-      }
-  }
-\cs_new_protected:Npn \@@_backend_gray:w #1 \s_@@_stop
-  { \@@_backend_select:x { gray~ \fp_eval:n {#1} } }
-\cs_new_protected:Npn \@@_backend_rgb:w #1 ~ #2 ~ #3 \s_@@_stop
-  {
-    \@@_backend_select:x
-      { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
-  }
-\cs_new_protected:Npn \@@_backend_spot:w #1 ~ #2 \s_@@_stop
-  { \@@_backend_select:n { #1 } }
+\cs_new_protected:Npn \@@_backend_cmyk:n #1
+  { \@@_backend_select:n { cmyk ~ #1 } }
+\cs_new_protected:Npn \@@_backend_gray:n #1
+  { \@@_backend_select:n { gray ~ #1 } }
+\cs_new_protected:Npn \@@_backend_rgb:n #1
+  { \@@_backend_select:n { rgb ~ #1 } }
+\cs_new_protected:Npn \@@_backend_spot:n #1
+  { \@@_backend_select:n {#1} }
 \cs_new_protected:Npn \@@_backend_select:n #1
   {
     \__kernel_backend_literal:n { color~push~ #1 }
@@ -146,7 +140,6 @@
 %</dvips>
     \group_insert_after:N \@@_backend_reset:
   }
-\cs_generate_variant:Nn \@@_backend_select:n { x }
 \cs_new_protected:Npn \@@_backend_reset:
   { \__kernel_backend_literal:n { color~pop } }
 %    \end{macrocode}
@@ -153,10 +146,6 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
 %
 %    \begin{macrocode}
 %</dvisvgm|dvipdfmx|dvips|xdvipdfmx>
@@ -192,20 +181,20 @@
           #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \s_@@_stop #7
           {
             \str_if_eq:nnTF {#2} { g }
-              { \tl_set:Nn #7 { gray ~ #1 } }
+              { \tl_set:Nn #7 { { gray } {#1} } }
               {
                 \str_if_eq:nnTF {#4} { rg }
-                  { \tl_set:Nn #7 { rgb ~ #1 ~ #2 ~ #3 } }
+                  { \tl_set:Nn #7 { { rgb } { #1 ~ #2 ~ #3 } } }
                   {
                      \str_if_eq:nnTF {#5} { k }
-                       { \tl_set:Nn #7 { cmyk ~ #1 ~ #2 ~ #3 ~ #4 } }
+                       { \tl_set:Nn #7 { { cmyk } { #1 ~ #2 ~ #3 ~ #4 } } }
                        {
                          \str_if_eq:nnTF {#2} { cs }
                            {
-                             \tl_set:Nx #7 { spot ~ \use_none:n #1 ~ #5 }
+                             \tl_set:Nx #7 { { spot } { \use_none:n #1 ~ #5 } }
                            }
                            {
-                             \tl_set:Nn #7 { gray ~ 0 }
+                             \tl_set:Nn #7 { { gray } { 0 } }
                            }
                        }
                   }
@@ -226,48 +215,28 @@
 %    \end{macrocode}
 % \end{variable}
 %
-% \begin{macro}{\@@_backend_cmyk:w, \@@_backend_cmyk:nnnn}
-% \begin{macro}{\@@_backend_gray:w, \@@_backend_gray:n}
-% \begin{macro}{\@@_backend_rgb:w, \@@_backend_rgb:nnn}
+% \begin{macro}
+%   {
+%     \@@_backend_cmyk:n ,
+%     \@@_backend_gray:n ,
+%     \@@_backend_rgb:n  ,
+%     \@@_backend_spot:n
+%   }
 % \begin{macro}{\@@_backend_spot:w}
-% \begin{macro}{\@@_backend_select:n, \@@_backend_select:x}
+% \begin{macro}{\@@_backend_select:n}
 % \begin{macro}{\@@_backend_reset:}
 %   Simply dump the data, but allowing for \LuaTeX{}.
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s_@@_stop
-  {
-     \use:x
-       {
-         \@@_backend_cmyk:nnnn
-           { \fp_eval:n {#1} }
-           { \fp_eval:n {#2} }
-           { \fp_eval:n {#3} }
-           { \fp_eval:n {#4} }
-       } 
-  }
-\cs_new_protected:Npn \@@_backend_cmyk:nnnn #1#2#3#4
-  {
-    \@@_backend_select:n
-      { #1 ~ #2 ~ #3 ~ #4 ~ k ~ #1 ~ #2 ~ #3 ~ #4 ~ K }
-  }
-\cs_new_protected:Npn \@@_backend_gray:w #1 \s_@@_stop
-  { \exp_args:Nx \@@_backend_gray:n { \fp_eval:n {#1} } }
+\cs_new_protected:Npn \@@_backend_cmyk:n #1
+  { \@@_backend_select:n { #1 ~ k ~ #1 ~ K } }
 \cs_new_protected:Npn \@@_backend_gray:n #1
   { \@@_backend_select:n { #1 ~ g ~ #1 ~ G } }
-\cs_new_protected:Npn \@@_backend_rgb:w #1~ #2 ~ #3 \s_@@_stop
-  {
-     \use:x
-       {
-         \@@_backend_rgb:nnn
-           { \fp_eval:n {#1} }
-           { \fp_eval:n {#2} }
-           { \fp_eval:n {#3} }
-       } 
-  }
-\cs_new_protected:Npn \@@_backend_rgb:nnn #1#2#3
-  { \@@_backend_select:n { #1 ~ #2 ~ #3 ~ rg ~ #1 ~ #2 ~ #3 ~ RG } }
+\cs_new_protected:Npn \@@_backend_rgb:n #1
+  { \@@_backend_select:n { #1 ~ rg ~ #1 ~ RG } }
+\cs_new_protected:Npn \@@_backend_spot:n #1
+  { \@@_backend_spot:w #1 \s_@@_stop }
 \cs_new_protected:Npn \@@_backend_spot:w #1 ~ #2 \s_@@_stop
-  { \@@_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ sc ~ #2 ~ SC } }
+  { \@@_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } }
 \cs_new_protected:Npx \@@_backend_select:n #1
   {
     \cs_if_exist:NTF \tex_pdfextension:D
@@ -276,7 +245,6 @@
         \exp_not:N \l__kernel_color_stack_int push {#1}
       \group_insert_after:N \exp_not:N \@@_backend_reset:
   }
-\cs_generate_variant:Nn \@@_backend_select:n { x }
 \cs_new_protected:Npx \@@_backend_reset:
   {
     \cs_if_exist:NTF \tex_pdfextension:D
@@ -289,8 +257,6 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
-% \end{macro}
-% \end{macro}
 %
 %    \begin{macrocode}
 %</pdfmode>

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -313,7 +313,7 @@
       { \dim_to_decimal_in_bp:n {#1} ~ setlinewidth }
   }
 \cs_new_protected:Npn \@@_backend_miterlimit:n #1
-  { \@@_backend_literal:x { \fp_eval:n {#1} ~ setmiterlimit } }
+  { \@@_backend_literal:n { #1 ~ setmiterlimit } }
 \cs_new_protected:Npn \@@_backend_cap_butt:
   { \@@_backend_literal:n { 0 ~ setlinecap } }
 \cs_new_protected:Npn \@@_backend_cap_round:
@@ -335,8 +335,8 @@
 %
 % \begin{macro}
 %   {
-%     \@@_backend_color_fill_cmyk:nnnn   ,
-%     \@@_backend_color_stroke_cmyk:nnnn
+%     \@@_backend_color_fill_cmyk:n   ,
+%     \@@_backend_color_stroke_cmyk:n
 %   }
 % \begin{macro}
 %   {
@@ -345,63 +345,37 @@
 %   }
 % \begin{macro}
 %   {
-%     \@@_backend_color_fill_rgb:nnn   ,
-%     \@@_backend_color_stroke_rgb:nnn
+%     \@@_backend_color_fill_rgb:n   ,
+%     \@@_backend_color_stroke_rgb:n
 %   }
-% \begin{macro}
-%   {
-%     \@@_backend_color_fill:n, \@@_backend_color_fill:x,
-%     \@@_backend_color_stroke:n, \@@_backend_color_stroke:x
-%   }
+% \begin{macro}{\@@_backend_color_fill:n, \@@_backend_color_stroke:n}
 %   For \texttt{dvips}, we can use the standard color stack to deal with
 %   stroke color, but for fills have to switch to raw PostScript. This is
 %   thus not handled by the stack, but the context is very restricted. See
 %   also how fills are implemented.
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_color_fill_cmyk:nnnn #1#2#3#4
-  {
-    \@@_backend_color_fill:x
-      {
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
-        setcmykcolor
-      }
-  }
-\cs_new_protected:Npn \@@_backend_color_stroke_cmyk:nnnn #1#2#3#4
-  {
-    \@@_backend_color_stroke:x
-      {
-        cmyk ~
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4}
-      }
-  }
+\cs_new_protected:Npn \@@_backend_color_fill_cmyk:n #1
+  { \@@_backend_color_fill:n { #1 ~ setcmykcolor } }
+\cs_new_protected:Npn \@@_backend_color_stroke_cmyk:n #1
+  { \@@_backend_color_stroke:n { cmyk ~ #1 } }
+\cs_new_protected:Npn \@@_backend_color_stroke_gray:n #1
+  { \@@_backend_color_fill:n { #1 ~ setgray } }
 \cs_new_protected:Npn \@@_backend_color_fill_gray:n #1
-  { \@@_backend_color_fill:x { \fp_eval:n {#1} ~ setgray } }
-\cs_new_protected:Npn \@@_backend_color_stroke_gray:n #1
-  { \@@_backend_color_stroke:x { gray ~ \fp_eval:n {#1} } }
-\cs_new_protected:Npn \@@_backend_color_fill_rgb:nnn #1#2#3
-  {
-    \@@_backend_color_fill:x
-      { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ setrgbcolor }
-  }
-\cs_new_protected:Npn \@@_backend_color_stroke_rgb:nnn #1#2#3
-  {
-    \@@_backend_color_stroke:x
-      { rgb ~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
-  }
+  { \@@_backend_color_stroke:n { gray ~ #1 } }
+\cs_new_protected:Npn \@@_backend_color_fill_rgb:n #1
+  { \@@_backend_color_fill:n { #1 ~ setrgbcolor } }
+\cs_new_protected:Npn \@@_backend_color_stroke_rgb:n #1
+  { \@@_backend_color_stroke:n { rgb ~ #1 } }
 \cs_new_protected:Npn \@@_backend_color_fill:n #1
   { 
     \__kernel_backend_postscript:n
       { /color.fc ~ { #1 } ~ def }
   }
-\cs_generate_variant:Nn \@@_backend_color_fill:n { x }
 \cs_new_protected:Npn \@@_backend_color_stroke:n #1
   {
     \__kernel_backend_literal:n { color~push~#1 } 
     \group_insert_after:N \@@_color_reset:
   }
-\cs_generate_variant:Nn \@@_backend_color_stroke:n { x }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -418,14 +392,7 @@
 \cs_new_protected:Npn \@@_backend_cm:nnnn #1#2#3#4
   {
     \@@_backend_literal:n
-      {
-        [
-          \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-          \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
-          0 ~ 0
-        ] ~
-        concat
-      }
+      { [ #1 ~ #2 ~ #3 ~ #4 ~ 0 ~ 0 ] ~ concat }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -633,7 +600,7 @@
       { \dim_to_decimal_in_bp:n {#1} ~ w }
   }
 \cs_new_protected:Npn \@@_backend_miterlimit:n #1
-  { \@@_backend_literal:x { \fp_eval:n {#1} ~ M } }
+  { \@@_backend_literal:x { #1 ~ M } }
 \cs_new_protected:Npn \@@_backend_cap_butt:
   { \@@_backend_literal:n { 0 ~ J } }
 \cs_new_protected:Npn \@@_backend_cap_round:
@@ -655,8 +622,8 @@
 %
 % \begin{macro}
 %   {
-%     \@@_backend_color_fill_cmyk:nnnn   ,
-%     \@@_backend_color_stroke_cmyk:nnnn
+%     \@@_backend_color_fill_cmyk:n   ,
+%     \@@_backend_color_stroke_cmyk:n
 %   }
 % \begin{macro}
 %   {
@@ -665,8 +632,8 @@
 %   }
 % \begin{macro}
 %   {
-%     \@@_backend_color_fill_rgb:nnn   ,
-%     \@@_backend_color_stroke_rgb:nnn
+%     \@@_backend_color_fill_rgb:n   ,
+%     \@@_backend_color_stroke_rgb:n
 %   }
 % \begin{macro}{\@@_backend_color_select:n, \@@_backend_color_select:x}
 % \begin{macro}{\@@_backend_color_reset:}
@@ -673,38 +640,18 @@
 %    Color has to be split between \texttt{(x)dvipdfmx} and the PDF engines
 %    as there is no color stack for fill/stroke separation in the former.
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_color_fill_cmyk:nnnn #1#2#3#4
-  {
-    \@@_backend_color_select:x
-      {
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ 
-        \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
-        k
-      }
-  }
-\cs_new_protected:Npn \@@_backend_color_stroke_cmyk:nnnn #1#2#3#4
-  {
-    \@@_backend_color_select:x
-      {
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ 
-        \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
-        k
-      }
-  }
+\cs_new_protected:Npn \@@_backend_color_fill_cmyk:n #1
+  { \@@_backend_color_select:n { #1 ~ k } }
+\cs_new_protected:Npn \@@_backend_color_stroke_cmyk:n #1
+  { \@@_backend_color_select:n { #1 ~ K } }
 \cs_new_protected:Npn \@@_backend_color_fill_gray:n #1
-  { \@@_backend_color_select:x { \fp_eval:n {#1} ~ g } }
+  { \@@_backend_color_select:n { #1 ~ g } }
 \cs_new_protected:Npn \@@_backend_color_stroke_gray:n #1
-  { \@@_backend_color_select:x { \fp_eval:n {#1} ~ G } }
-\cs_new_protected:Npn \@@_backend_color_fill_rgb:nnn #1#2#3
-  {
-    \@@_backend_color_select:x
-      { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg }
-  }
-\cs_new_protected:Npn \@@_backend_color_stroke_rgb:nnn #1#2#3
-  {
-    \@@_backend_color_select:x
-      { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG }
-  }
+  { \@@_backend_color_select:n { #1 ~ G } }
+\cs_new_protected:Npn \@@_backend_color_fill_rgb:n #1
+  { \@@_backend_color_select:n { #1 ~ rg } }
+\cs_new_protected:Npn \@@_backend_color_stroke_rgb:n #1
+  { \@@_backend_color_select:n { #1 ~ RG } }
 %<*pdfmode>
 \cs_new_protected:Npx \@@_backend_color_select:n #1
   {
@@ -746,11 +693,7 @@
 \cs_new_protected:Npn \@@_backend_cm:nnnn #1#2#3#4
   {
 %<*pdfmode>
-    \__kernel_backend_matrix:x
-      {
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4}
-      }
+    \__kernel_backend_matrix:n { #1 ~ #2 ~ #3 ~ #4 }
 %</pdfmode>
 %<*dvipdfmx|xdvipdfmx>
     \@@_backend_cm_decompose:nnnnN {#1} {#2} {#3} {#4}
@@ -904,13 +847,8 @@
     \@@_backend_cm:nnnn {#2} {#3} {#4} {#5}
 %</pdfmode>
 %<*dvipdfmx|xdvipdfmx>
-    \__kernel_backend_literal:x
-      {
-        pdf:btrans~matrix~
-        \fp_eval:n {#2} ~ \fp_eval:n {#3} ~
-        \fp_eval:n {#4} ~ \fp_eval:n {#5} ~
-        0 ~ 0
-      }
+    \__kernel_backend_literal:n
+      { pdf:btrans~matrix~ #2 ~ #3 ~ #4 ~ #5 ~ 0 ~ 0 }
 %</dvipdfmx|xdvipdfmx>
     \hbox_overlap_right:n { \box_use:N #1 }
 %<*dvipdfmx|xdvipdfmx>
@@ -1199,7 +1137,7 @@
 \cs_new_protected:Npn \@@_backend_linewidth:n #1
   { \@@_backend_scope:x { stroke-width=" \dim_to_decimal:n {#1} " } }
 \cs_new_protected:Npn \@@_backend_miterlimit:n #1
-  { \@@_backend_scope:x { stroke-miterlimit=" \fp_eval:n {#1} " } }
+  { \@@_backend_scope:x { stroke-miterlimit=" #1 " } }
 \cs_new_protected:Npn \@@_backend_cap_butt:
   { \@@_backend_scope:n { stroke-linecap="butt" } }
 \cs_new_protected:Npn \@@_backend_cap_round:
@@ -1222,18 +1160,20 @@
 %
 % \begin{macro}
 %   {
-%     \@@_backend_color_fill_cmyk:nnnn   ,
-%     \@@_backend_color_stroke_cmyk:nnnn
+%     \@@_backend_color_fill_cmyk:n   ,
+%     \@@_backend_color_stroke_cmyk:n
 %   }
+% \begin{macro}{\@@_backend_color_fill_cmyk:w}
 % \begin{macro}
 %   {
 %     \@@_backend_color_fill_gray:n   ,
 %     \@@_backend_color_stroke_gray:n
 %   }
+% \begin{macro}{\@@_backend_color_gray_aux:n}
 % \begin{macro}
 %   {
-%     \@@_backend_color_fill_rgb:nnn   ,
-%     \@@_backend_color_stroke_rgb:nnn
+%     \@@_backend_color_fill_rgb:n   ,
+%     \@@_backend_color_stroke_rgb:n
 %   }
 % \begin{macro}{\@@_backend_color_fill:nnn}
 %  SVG fill color has to be covered outside of the stack, as for
@@ -1240,25 +1180,21 @@
 %  \texttt{dvips}. Here, we are only allowed RGB colors so there is some
 %  conversion to do.
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_color_fill_cmyk:nnnn #1#2#3#4
+\cs_new_protected:Npn \@@_backend_color_fill_cmyk:n #1
+  { \@@_backend_color_fill_cmyk:w #1 \s_@@_stop }
+\cs_new_protected:Npn \@@_backend_color_fill_cmyk:w
+  #1 ~ #2 ~ #3 ~ #4 \s_@@_stop
   {
     \use:x
       {
         \@@_backend_color_fill:nnn
-          { \fp_eval:n { -100 * ( (#1) * ( 1 - (#4) ) - 1 ) } }
-          { \fp_eval:n { -100 * ( (#2) * ( 1 - (#4) ) + #4 - 1 ) } }
-          { \fp_eval:n { -100 * ( (#3) * ( 1 - (#4) ) + #4 - 1 ) } }
+          { \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 ) ) } }
       }
   }
-\cs_new_protected:Npn \@@_backend_color_stroke_cmyk:nnnn #1#2#3#4
-  {
-    \@@_backend_select:x
-      {
-        cmyk~
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4}
-      }
-  }
+\cs_new_protected:Npn \@@_backend_color_stroke_cmyk:n #1
+  { \@@_backend_select:n { cmyk ~ #1 } }
 \cs_new_protected:Npn \@@_backend_color_fill_gray:n #1
   {
     \use:x
@@ -1271,7 +1207,7 @@
   { \@@_backend_color_fill:nnn {#1} {#1} {#1} }
 \cs_new_protected:Npn \@@_backend_color_stroke_gray:n #1
   { \@@_backend_select:x { gray~ \fp_eval:n {#1} } }
-\cs_new_protected:Npn \@@_backend_color_fill_rgb:nnn #1#2#3
+\cs_new_protected:Npn \@@_backend_color_fill_rgb:n #1
   {
     \use:x
       {
@@ -1296,16 +1232,15 @@
          "
       }
   }
-\cs_new_protected:Npn \@@_backend_color_stroke_rgb:nnn #1#2#3
-  {
-    \@@_backend_select:x
-      { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
-  }
+\cs_new_protected:Npn \@@_backend_color_stroke_rgb:n #1
+  { \@@_backend_select:n { rgb ~ #1 } }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % \end{macro}
 % \end{macro}
+% \end{macro}
+% \end{macro}
 %
 % \begin{macro}{\@@_backend_cm:nnnn}
 %   The four arguments here are floats (the affine matrix), the last
@@ -1316,14 +1251,7 @@
     \@@_backend_scope:n
       {
        transform =
-         "
-           matrix
-             (
-               \fp_eval:n {#1} , \fp_eval:n {#2} ,
-               \fp_eval:n {#3} , \fp_eval:n {#4} ,
-               0pt , 0pt
-             )
-         "
+         " matrix ( #1 , #2 , #3 , #4 , 0pt , 0pt ) "
       }
   }
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -130,7 +130,7 @@
 %
 %    \begin{macrocode}
 %<*package>
-\ProvidesExplPackage{l3benchmark}{2020-06-03}{}
+\ProvidesExplPackage{l3benchmark}{2020-06-18}{}
   {L3 Experimental benchmarking}
 %</package>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3cctab/l3cctab.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3cctab/l3cctab.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3cctab/l3cctab.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -179,7 +179,7 @@
 %
 %    \begin{macrocode}
 %<*package>
-\ProvidesExplPackage{l3cctab}{2020-06-03}{}
+\ProvidesExplPackage{l3cctab}{2020-06-18}{}
   {L3 Experimental category code tables}
 %</package>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3color/l3color.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -240,20 +240,9 @@
 % \section{Core color representation}
 %
 % To allow data to be handled internally, \pkg{l3color} uses a simple
-% representation of color, based on that used by the \pkg{dvips} program.
-% This is a token list made up of the model name followed by one or more
-% data entries, each separated by a \emph{space}. The valid forms are thus
-% \begin{itemize}
-%   \item \texttt{gray \meta{gray}} Grayscale color with the \meta{gray}
-%     value running from $0$ (fully black) to $1$ (fully white)
-%   \item \texttt{cmyk \meta{cyan} \meta{magenta} \meta{yellow} \meta{black}},
-%     each of which falls in the range $[0,1]$
-%   \item \texttt{rgb \meta{red} \meta{green} \meta{blue}},
-%     each of which falls in the range $[0,1]$
-%   \item \texttt{spot \meta{name} \meta{tint}} A pre-defined spot color,
-%     where the \meta{name} should be a pre-defined string color name and the
-%     \meta{tint} should be in the range $[0,1]$.
-% \end{itemize}
+% representation of color, comprising two \meta{balanced text} entries, the first
+% the \meta{model} and the second the \meta{values} given
+% \emph{separated by spaces}.
 %
 % This core representation is produced when parsing color expressions.
 % 
@@ -286,7 +275,7 @@
 %
 %    \begin{macrocode}
 %<*package>
-\ProvidesExplPackage{l3color}{2020-06-03}{}
+\ProvidesExplPackage{l3color}{2020-06-18}{}
   {L3 Experimental color support}
 %</package>
 %    \end{macrocode}
@@ -342,7 +331,7 @@
 % \end{macro}
 %
 % \begin{macro}{\@@_extract:nNN, \@@_extract:VNN}
-% \begin{macro}{\@@_extract:NNw}
+% \begin{macro}{\@@_extract:NNnn}
 %   Split the model and color from a named color, and store the two. No test
 %   for the existence of the color: that is assumed to be the case (this
 %   is internal only). Somewhat \enquote{old-fashioned} but should be quite
@@ -351,13 +340,13 @@
 \cs_new_protected:Npn \@@_extract:nNN #1#2#3
   {
     \exp_after:wN \exp_after:wN \exp_after:wN
-      \@@_extract:NNw
+      \@@_extract:NNnn
       \exp_after:wN \exp_after:wN \exp_after:wN #2
       \exp_after:wN \exp_after:wN \exp_after:wN #3
-        \cs:w l_@@_named_ #1 _tl \cs_end: \s_@@_stop
+        \cs:w l_@@_named_ #1 _tl \cs_end:
   }
 \cs_generate_variant:Nn \@@_extract:nNN { V }
-\cs_new_protected:Npn \@@_extract:NNw #1#2 #3 ~ #4 \s_@@_stop
+\cs_new_protected:Npn \@@_extract:NNnn #1#2#3#4
   {
     \tl_set:Nn #1 {#3}
     \tl_set:Nn #2 {#4}
@@ -517,7 +506,7 @@
       \@@_extract:nNN {#2} \l_@@_model_tl \l_@@_value_tl
       \@@_parse_loop:w #3 ! ! ! ! \s_@@_stop
       \tl_set:Nx \l_@@_internal_tl
-        { \l_@@_model_tl \c_space_tl \l_@@_value_tl }
+        { { \l_@@_model_tl } { \l_@@_value_tl } }
     \exp_args:NNNV \group_end:
     \tl_set:Nn #1 \l_@@_internal_tl
   }
@@ -663,26 +652,30 @@
 %   Turn the input into internal form, also tidying up the number quickly.
 %    \begin{macrocode}
 \cs_new:Npn \@@_parse_model_gray:w #1 , #2 \s_@@_stop
-  { gray ~ \@@_parse_number:n {#1} }
+  { { gray } { \@@_parse_number:n {#1} } }
 \cs_new:Npn \@@_parse_model_rgb:w #1 , #2 , #3 , #4 \s_@@_stop
   {
-    rgb ~
-    \@@_parse_number:n {#1} ~
-    \@@_parse_number:n {#2} ~
-    \@@_parse_number:n {#3}
+    { rgb }
+    {
+      \@@_parse_number:n {#1} ~
+      \@@_parse_number:n {#2} ~
+      \@@_parse_number:n {#3}
+    }
   }
 \cs_new:Npn \@@_parse_model_cmyk:w #1 , #2 , #3 , #4 , #5 \s_@@_stop
   {
-    cmyk ~
-    \@@_parse_number:n {#1} ~
-    \@@_parse_number:n {#2} ~
-    \@@_parse_number:n {#3} ~
-    \@@_parse_number:n {#4}
+    { cmyk }
+    {
+      \@@_parse_number:n {#1} ~
+      \@@_parse_number:n {#2} ~
+      \@@_parse_number:n {#3} ~
+      \@@_parse_number:n {#4}
+    }
   }
 \cs_new:Npn \@@_parse_model_spot:w #1 , #2 \s_@@_stop
   {
-    spot ~
-    \@@_parse_spot_aux:w #1 ! 100 ! \s_@@_stop
+    { spot }
+    { \@@_parse_spot_aux:w #1 ! 100 ! \s_@@_stop }
   }
 \cs_new:Npn \@@_parse_spot_aux:w #1 ! #2 ! #3 \s_@@_stop
   { #1 ~ \fp_eval:n { #2 / 100 } }
@@ -716,9 +709,11 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_parse_model_hsb:nnn #1#2#3
   {
-    rgb ~
-    \exp_args:Ne \@@_parse_model_hsb_aux:nnn
-      { \fp_eval:n { 6 * #1 } } {#2} {#3}
+    { rgb }
+    {
+      \exp_args:Ne \@@_parse_model_hsb_aux:nnn
+        { \fp_eval:n { 6 * #1 } } {#2} {#3}
+    }
   }
 \cs_new:Npn \@@_parse_model_hsb_aux:nnn #1#2#3
   {
@@ -758,17 +753,21 @@
   { \@@_parse_model_HTML_aux:w #1 0 0 0 0 0 0 \s_@@_stop }
 \cs_new:Npn \@@_parse_model_HTML_aux:w #1#2#3#4#5#6#7 \s_@@_stop
   {
-    rgb ~
-    \fp_eval:n { round(\int_from_hex:n {#1#2} / 255,5) } ~
-    \fp_eval:n { round(\int_from_hex:n {#3#4} / 255,5) } ~
-    \fp_eval:n { round(\int_from_hex:n {#5#6} / 255,5) }
+    { rgb }
+    {
+      \fp_eval:n { round(\int_from_hex:n {#1#2} / 255,5) } ~
+      \fp_eval:n { round(\int_from_hex:n {#3#4} / 255,5) } ~
+      \fp_eval:n { round(\int_from_hex:n {#5#6} / 255,5) }
+    }
   }
 \cs_new:Npn \@@_parse_model_RGB:w #1 , #2 , #3 , #4 \s_@@_stop
   {
-    rgb ~
-    \fp_eval:n { round(#1 / 255,5) } ~
-    \fp_eval:n { round(#2 / 255,5) } ~
-    \fp_eval:n { round(#3 / 255,5) }
+    { rgb }
+    {
+      \fp_eval:n { round(#1 / 255,5) } ~
+      \fp_eval:n { round(#2 / 255,5) } ~
+      \fp_eval:n { round(#3 / 255,5) }
+    }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -783,7 +782,7 @@
 % \end{variable}
 %
 % \begin{macro}{\@@_check_model:N}
-% \begin{macro}{\@@_check_model:w}
+% \begin{macro}{\@@_check_model:nn}
 %   Check that the model in use is the one required.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_check_model:N #1
@@ -790,7 +789,7 @@
   {
     \tl_if_empty:NF \l_color_fixed_model_tl
       {
-        \exp_after:wN \@@_check_model:w #1 \s_@@_stop
+        \exp_after:wN \@@_check_model:nn #1
         \tl_if_eq:NNF \l_@@_model_tl \l_color_fixed_model_tl
           {
             \@@_convert:VVN \l_@@_model_tl \l_color_fixed_model_tl
@@ -797,10 +796,10 @@
               \l_@@_value_tl
           }
         \tl_set:Nx #1
-          { \l_color_fixed_model_tl \c_space_tl \l_@@_value_tl }
+          { { \l_color_fixed_model_tl } { \l_@@_value_tl } }
       }
   }
-\cs_new_protected:Npn \@@_check_model:w #1 ~ #2 \s_@@_stop
+\cs_new_protected:Npn \@@_check_model:nn #1#2
   {
     \tl_set:Nn \l_@@_model_tl {#1}
     \tl_set:Nn \l_@@_value_tl {#2}
@@ -818,7 +817,7 @@
 \cs_new_protected:Npn \@@_select:
   {
     \tl_set_eq:cN { l_@@_named_ . _tl } \l_@@_current_tl
-    \@@_select:V \l_@@_current_tl
+    \@@_select:N \l_@@_current_tl
   }
 %    \end{macrocode}
 % \end{macro}
@@ -852,7 +851,7 @@
     \cs_if_exist:cTF { @@_parse_model_ #1 :w }
       {
         \tl_set:Nx #3
-          { \use:c {  @@_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \s_@@_stop }
+          { \use:c { @@_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \s_@@_stop }
         \@@_check_model:N #3
       }
       {
@@ -946,8 +945,7 @@
 % \subsection{Diagnostics}
 %
 % \begin{macro}{\color_show:n}
-% \begin{macro}{\@@_show:w}
-% \begin{macro}{\@@_show_gray:w, \@@_show_rgb:w, \@@_show_cmyk:w}
+% \begin{macro}{\@@_show:nn}
 %   Extract the information about a color and format for the user: the approach
 %   is similar to the keys module here.
 %    \begin{macrocode}
@@ -957,25 +955,20 @@
       {#1}
       {
         \@@_if_defined:nTF {#1}
-          { \exp_last_unbraced:Nv \@@_show:w { l_@@_named_ #1 _tl } \s_@@_stop }
+          { \exp_last_unbraced:Nv \@@_show:nn { l_@@_named_ #1 _tl } }
           { }
       }
       { }
       { }
   }
-\cs_new:Npn \@@_show:w #1 ~ #2 \s_@@_stop
+\cs_new:Npn \@@_show:nn #1#2
   {
     \msg_show_item_unbraced:nn { model } {#1}
-    \exp_args:Nnf \msg_show_item_unbraced:nn { value }
-      { \use:c { @@_show_ #1 :w } #2 \s_@@_stop }
+    \msg_show_item_unbraced:nn { value } {#2}
   }
-\cs_new:Npn \@@_show_gray:w #1 \s_@@_stop { #1 }
-\cs_new:Npn \@@_show_rgb:w #1 ~ #2 ~ #3 \s_@@_stop { #1 ,~ #2 ,~ #3 }
-\cs_new:Npn \@@_show_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s_@@_stop { #1 ,~ #2 ,~ #3 ,~ #4 }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
-% \end{macro}
 %
 % \subsection{Messages}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -124,7 +124,7 @@
 %   Pass through to the driver layer.
 %    \begin{macrocode}
 \cs_new_protected:Npn \draw_miterlimit:n #1
-  { \@@_backend_miterlimit:n { \fp_eval:n {#1} } }
+  { \exp_args:Nx \@@_backend_miterlimit:n { \fp_eval:n {#1} } }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -156,13 +156,7 @@
 %
 % \begin{macro}{\draw_color:n, \draw_color_fill:n, \draw_color_stroke:n}
 % \begin{macro}{\@@_color:nn}
-% \begin{macro}{\@@_color_aux:nn, \@@_color_aux:Vn}
-% \begin{macro}{\@@_color:nw}
-% \begin{macro}
-%   {
-%     \@@_select_cmyk:nw, \@@_select_gray:nw,
-%     \@@_select_rgb:nw, \@@_split_select:nw
-%   }
+% \begin{macro}{\@@_color:nnn}
 %   Much the same as for core color support but calling the relevant
 %   driver-level function.
 %    \begin{macrocode}
@@ -174,27 +168,14 @@
 \cs_new_protected:Npn \@@_color:nn #1#2
   {
     \color_parse:nN {#2} \l_@@_color_tmp_tl
-    \@@_color_aux:Vn \l_@@_color_tmp_tl {#1}
+    \exp_after:wN \@@_color:nnn \l_@@_color_tmp_tl {#1}
   }
-\cs_new_protected:Npn \@@_color_aux:nn #1#2
-  { \@@_color:nw {#2} #1 \s_@@_stop }
-\cs_generate_variant:Nn \@@_color_aux:nn { V }
-\cs_new_protected:Npn \@@_color:nw #1#2 ~ #3 \s_@@_stop
-  { \use:c { @@_color_ #2 :nw } {#1} #3 \s_@@_stop }
-\cs_new_protected:Npn \@@_color_cmyk:nw #1#2 ~ #3 ~ #4 ~ #5 \s_@@_stop
-  { \use:c { @@_backend_color_ #1 _cmyk:nnnn } {#2} {#3} {#4} {#5} }
-\cs_new_protected:Npn \@@_color_gray:nw #1#2 \s_@@_stop
-  { \use:c { @@_backend_color_ #1 _gray:n } {#2} }
-\cs_new_protected:Npn \@@_color_rgb:nw #1#2 ~ #3 ~ #4 \s_@@_stop
-  { \use:c { @@_backend_color_ #1 _rgb:nnn } {#2} {#3} {#4} }
-\cs_new_protected:Npn \@@_color_spot:nw #1#2 ~ #3 \s_@@_stop
-  { \use:c { @@_backend_color_ #1 _spot:nn } {#2} {#3} }
+\cs_new_protected:Npn \@@_color:nnn #1#2#3
+  { \use:c { @@_backend_color_ #3 _ #1 :n } {#2} }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % \end{macro}
-% \end{macro}
-% \end{macro}
 %
 %    \begin{macrocode}
 %</initex|package>

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -110,7 +110,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -1146,7 +1146,7 @@
 %
 %    \begin{macrocode}
 %<*package>
-\ProvidesExplPackage{l3draw}{2020-06-03}{}
+\ProvidesExplPackage{l3draw}{2020-06-18}{}
   {L3 Experimental core drawing support}
 %</package>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -241,7 +241,7 @@
 %
 %    \begin{macrocode}
 %<*package>
-\ProvidesExplPackage{l3graphics}{2020-06-03}{}
+\ProvidesExplPackage{l3graphics}{2020-06-18}{}
   {L3 Experimental graphics inclusion support}
 %</package>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3pdf/l3pdf.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -191,7 +191,7 @@
 %
 %    \begin{macrocode}
 %<*package>
-\ProvidesExplPackage{l3pdf}{2020-06-03}{}
+\ProvidesExplPackage{l3pdf}{2020-06-18}{}
   {L3 Experimental core PDF support}
 %</package>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -48,7 +48,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -167,7 +167,7 @@
 %
 %    \begin{macrocode}
 %<*package>
-\ProvidesExplPackage{l3str-format}{2020-06-03}{}
+\ProvidesExplPackage{l3str-format}{2020-06-18}{}
   {L3 Experimental string formatting}
 %</package>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -136,7 +136,7 @@
 %
 %    \begin{macrocode}
 %<*package>
-\ProvidesExplPackage{l3sys-shell}{2020-06-03}{}
+\ProvidesExplPackage{l3sys-shell}{2020-06-18}{}
   {L3 Experimental system shell functions}
 %</package>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -56,7 +56,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -675,7 +675,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{xcoffins}{2020-06-03}{}
+\ProvidesExplPackage{xcoffins}{2020-06-18}{}
   {L3 Experimental design level coffins}
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -61,7 +61,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -687,7 +687,7 @@
 %
 %    \begin{macrocode}
 %<*package>
-\ProvidesExplPackage{l3galley}{2020-06-03}{}
+\ProvidesExplPackage{l3galley}{2020-06-18}{}
   {L3 Experimental galley code}
 %</package>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -47,7 +47,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -734,7 +734,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{xgalley}{2020-06-03}{}
+\ProvidesExplPackage{xgalley}{2020-06-18}{}
   {L3 Experimental galley}
 \RequirePackage{xparse,xtemplate,l3galley}
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -24,7 +24,7 @@
 %
 %<*driver|generic|package|2ekernel>
 %</driver|generic|package|2ekernel>
-\def\ExplFileDate{2020-06-03}%
+\def\ExplFileDate{2020-06-18}%
 %<*driver>
 \documentclass[full]{l3doc}
 \usepackage{graphicx}
@@ -51,7 +51,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -1156,23 +1156,40 @@
 %
 % \begin{macro}{\ProvidesExplPackage, \ProvidesExplClass, \ProvidesExplFile}
 %   For other packages and classes building on this one it is convenient
-%   not to need \cs{ExplSyntaxOn} each time.
+%   not to need \cs{ExplSyntaxOn} each time.  All macros use the same
+%   internal one with the proper \LaTeXe{} command.
 %    \begin{macrocode}
-\protected\def\ProvidesExplPackage#1#2#3#4%
+\protected\def\ProvidesExplPackage
+  {\@expl at provides@file@@Nnnnnn\ProvidesPackage{Package}}
+\protected\def\ProvidesExplClass
+  {\@expl at provides@file@@Nnnnnn\ProvidesClass{Document Class}}
+\protected\def\ProvidesExplFile
+  {\@expl at provides@file@@Nnnnnn\ProvidesFile{File}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@expl at provides@file@@Nnnnnn, \@expl at provides@generic@@wnnw}
+%   We need to check the existence of the
+%   \cs[no-index]{Provides\meta{thing}}, since we need to load this very
+%   early in the \LaTeXe{} kernel.
+%    \begin{macrocode}
+\protected\long\def\@expl at provides@file@@Nnnnnn#1#2#3#4#5#6%
   {%
-    \ProvidesPackage{#1}[#2 \ifx\relax#3\relax\else v#3\space\fi #4]%
+    \ifnum0%
+        \ifdefined#11\fi
+        \ifx\relax#1\else1\fi
+        =11
+      \expandafter#1%
+    \else
+      \@expl at provides@generic@@wnnw{#2}%
+    \fi
+      {#3}[{#4 \ifx\relax#5\relax\else v#5\space\fi #6}]%
     \ExplSyntaxOn
-  }%
-\protected\def\ProvidesExplClass#1#2#3#4%
+  }
+\protected\long\def\@expl at provides@generic@@wnnw#1\fi#2[#3]%
   {%
-    \ProvidesClass{#1}[#2 \ifx\relax#3\relax\else v#3\space\fi #4]%
-    \ExplSyntaxOn
-  }%
-\protected\def\ProvidesExplFile#1#2#3#4%
-  {%
-    \ProvidesFile{#1}[#2 \ifx\relax#3\relax\else v#3\space\fi #4]%
-    \ExplSyntaxOn
-  }%
+    \immediate\write-1{#1: #2 #3}%
+  }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1198,24 +1215,35 @@
 \fi
 %    \end{macrocode}
 %
-% If \pkg{expl3} was pre-loaded, we now have to deal with the fact that
-% the syntax will not be activated for the package mode version:
-% simply turn it on. We use \tn{@pushfilenameaux} as a marker: it's defined
-% a little later.
 %    \begin{macrocode}
-\ifdefined\@pushfilenameaux
-  \ExplSyntaxOn
-\fi
+%<@@=expl>
 %    \end{macrocode}
 %
+% Here we can also detect whether we're reloading.  This code goes into
+% \texttt{expl3.ltx} and \texttt{expl3.sty}, the former loaded into the
+% \LaTeXe{} format.  When this code is loaded for the first time, the
+% \cs{g_@@_reload_bool} boolean doesn't exist (\cs{else} branch of the
+% \cs{ifcsname} below), so we create it.  If the \cs{ifcsname} is true,
+% then we do \cs{ExplSyntaxOn} (because when reloading,
+% \texttt{expl3-code.tex} isn't read again), and set
+% \cs{g_@@_reload_bool} to true.
 %    \begin{macrocode}
-%<@@=expl>
+\ifcsname\detokenize{g_@@_reload_bool}\endcsname
+  \ExplSyntaxOn
+  \bool_gset_true:N \g_@@_reload_bool
+\else
+  \bool_new:N \g_@@_reload_bool
+\fi
 %    \end{macrocode}
 %
 % \begin{variable}{\c_@@_def_ext_tl}
-%   Needed by \LaTeXe{}, and avoiding a re-load issue.
+%   Needed by \LaTeXe{}, and avoiding a re-load issue.  Variables are
+%   best checked explicitly, rather than with \cs{g_@@_reload_bool}
+%   because some appear only in one of the code files, so
+%   \cs{g_@@_reload_bool} doesn't necessarily mean that the variable
+%   is already declared.
 %    \begin{macrocode}
-\cs_if_exist:NF \c_@@_def_ext_tl
+\tl_if_exist:NF \c_@@_def_ext_tl
   { \tl_const:Nn \c_@@_def_ext_tl { def } }
 %    \end{macrocode}
 % \end{variable}
@@ -1255,7 +1283,7 @@
 % \begin{variable}{\l_@@_options_clist}
 %    \begin{macrocode}
 %<*!2ekernel>
-\cs_if_exist:NF \l_@@_options_clist
+\clist_if_exist:NF \l_@@_options_clist
   { \clist_new:N \l_@@_options_clist }
 \DeclareOption*
   { \clist_put_right:NV \l_@@_options_clist \CurrentOption }
@@ -1295,19 +1323,74 @@
   }
 %    \end{macrocode}
 %
-%  A backend has to be in place by the start of the document: this has to be
-%  before global options are checked for use. The odd group stuff avoids
-%  needing to actually patch \tn{document}.
+% \begin{macro}{\@expl at sys@load at backend@@@@}
+%   A backend has to be in place by the start of the document: this has
+%   to be before global options are checked for use.
+%
+%   The \cs[no-index]{@expl at ...@@@@} macros defined in this package are
+%   interfaces for \LaTeXe{}.  There are currently (this will change
+%   with the next release of \LaTeXe{}) two possible cases, at this
+%   point of the code:  either \cs{@expl at sys@load at backend@@@@} (and the
+%   others) already exist because they were defined in
+%   \texttt{ltexpl.ltx} (in \texttt{2ekernel} mode) or in
+%   \texttt{expl3.ltx} (in \texttt{package} mode).
+%
+%   In \texttt{2ekernel} mode, if they exist we are using a future
+%   (2020-10-01) release of \LaTeXe{} and we don't need (and can't)
+%   patch \LaTeXe's internals because these commands are already there.
+%   Though if they don't exist in \texttt{2ekernel} mode, we're using
+%   an older version of the kernel, so we \emph{must} patch.
+%
+%   In \texttt{package} mode, if these commands exist, then we are using
+%   a version of \LaTeXe{} with \textsf{expl3} preloaded (any version)
+%   and in any case patching is already done or the macros are in the
+%   format itself, so nothing to do.
+%   But if in \texttt{package} mode these macros don't exist, we have an
+%   even older version of \LaTeXe{} which doesn't even have
+%   \textsf{expl3} preloaded, so patching is necessary.
+%
+%   All this means that in both \texttt{2ekernel} and \texttt{package}
+%   mode we have to check whether \cs{@expl at sys@load at backend@@@@}
+%   exists, and patch some \LaTeXe{} internals if it doesn't.
+%
+%   In newer \LaTeXe{}, these macros have an empty definition in
+%   \texttt{ltexpl.dtx} in case something wrong happens while loading
+%   this file (\texttt{expl3.ltx}), so they can safely be used in the
+%   \LaTeXe{} kernel.
+%
+%   \cs{@expl at sys@load at backend@@@@} is inserted right at the beginning
+%   of \cs{document}, but after closing the group started by \cs{begin}.
+%   When using \cs{tl_put_left:Nn} to patch the backend loading in
+%   \cs{document}, we need to make sure that it happens at group level
+%   zero, thus the strange |\endgroup...\begingroup| thing.
+%
+%   This chunk of code should only be executed when loading
+%   \texttt{expl3.sty} in a \LaTeXe{} without \pkg{expl3} preloaded, so
+%   we check if \cs{@expl at sys@load at backend@@@@} exists.
 %    \begin{macrocode}
-%<*2ekernel>
-\tl_put_left:Nn \document
+\cs_if_exist:NF \@expl at sys@load at backend@@@@
   {
-    \endgroup
+    \tl_put_left:Nn \document
+      {
+        \endgroup
+        \@expl at sys@load at backend@@@@
+        \begingroup
+      }
+  }
+%    \end{macrocode}
+%
+%   Now we define it anyhow.
+%    \begin{macrocode}
+\cs_gset_protected:Npn \@expl at sys@load at backend@@@@
+  {
     \str_if_exist:NF \c_sys_backend_str
       { \sys_load_backend:n { } }
-    \begingroup
   }
-%</2ekernel>
+%    \end{macrocode}
+% \end{macro}
+%
+%  Process package options.
+%    \begin{macrocode}
 %<*!2ekernel>
 \keys_set:nV { sys } \l_@@_options_clist
 \str_if_exist:NF \c_sys_backend_str
@@ -1315,15 +1398,14 @@
 %</!2ekernel>
 %    \end{macrocode}
 %
-% A test for pre-loading: does \tn{@pushfilenameaux} already exist.
-% The alrady-loaded mechanism will handle everything now.
 %    \begin{macrocode}
 %<*!2ekernel>
-\cs_if_exist:NT \@pushfilenameaux
+\bool_if:NT \g_@@_reload_bool
   {
     \cs_gset_eq:NN \__kernel_sys_configuration_load:n
       \__kernel_sys_configuration_load_std:n
-    \endinput
+    \ExplSyntaxOff
+    \file_input_stop:
   }
 %</!2ekernel>
 %    \end{macrocode}
@@ -1354,17 +1436,28 @@
 %
 % \begin{macro}{\@pushfilename, \@popfilename}
 % \begin{macro}{\@@_status_pop:w}
+% \begin{macro}{\@expl at push@filename@@@@}
+% \begin{macro}{\@expl at push@filename at aux@@@@}
+% \begin{macro}{\@expl at pop@filename@@@@}
 %   The idea here is to use \LaTeXe{}'s \tn{@pushfilename} and
 %   \tn{@popfilename} to track the current syntax status. This can be
 %   achieved by saving the current status flag at each push to a stack,
 %   then recovering it at the pop stage and checking if the code
 %   environment should still be active.
+%
+%   Here the code follows the same patching logic than above for
+%   \cs{@expl at sys@load at backend@@@@}.
 %    \begin{macrocode}
-\tl_put_left:Nn \@pushfilename
+\cs_if_exist:NF \@expl at push@filename@@@@
   {
+    \tl_put_left:Nn  \@pushfilename { \@expl at push@filename@@@@ }
+    \tl_put_right:Nn \@pushfilename { \@expl at push@filename at aux@@@@ }
+  }
+\cs_gset_protected:Npn \@expl at push@filename@@@@
+  {
     \exp_args:Nx \__kernel_file_input_push:n
       {
-        \tl_to_str:N \@currname
+        \tl_to_str:N \@currname .
         \tl_to_str:N \@currext
       }
     \tl_put_left:Nx \l_@@_status_stack_tl
@@ -1375,18 +1468,25 @@
       }
     \ExplSyntaxOff
   }
-\tl_put_right:Nn \@pushfilename { \@pushfilenameaux }
 %    \end{macrocode}
 %   This bit of trickery is needed to grab the name of the file being loaded
 %   so we can record it.
 %    \begin{macrocode}
-\cs_set_protected:Npn \@pushfilenameaux #1#2#3
+\cs_gset_protected:Npn \@expl at push@filename at aux@@@@ #1#2#3
   {
     \str_gset:Nn \g_file_curr_name_str {#3}
     #1 #2 {#3}
   }
-\tl_put_right:Nn \@popfilename
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\cs_if_exist:NF \@expl at pop@filename@@@@
   {
+    \tl_put_right:Nn \@popfilename
+      { \@expl at pop@filename@@@@ }
+  }
+\cs_gset_protected:Npn \@expl at pop@filename@@@@
+  {
     \__kernel_file_input_pop:
     \tl_if_empty:NTF \l_@@_status_stack_tl
       { \ExplSyntaxOff }
@@ -1407,6 +1507,9 @@
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
 %
 % \begin{variable}{\l_@@_status_stack_tl}
 %   As \pkg{expl3} itself cannot be loaded with the code environment

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -268,44 +268,6 @@
 %
 % \section{Additions to \pkg{l3msg}}
 %
-% In very rare cases it may be necessary to produce errors in an
-% expansion-only context.  The functions in this section should only be
-% used if there is no alternative approach using \cs{msg_error:nnnnnn}
-% or other non-expandable commands from the previous section.  Despite
-% having a similar interface as non-expandable messages, expandable
-% errors must be handled internally very differently from normal error
-% messages, as none of the tools to print to the terminal or the log
-% file are expandable.  As a result, short-hands such as |\{| or |\\| do
-% not work, and messages must be very short (with default settings,
-% they are truncated after approximately 50 characters).  It is
-% advisable to ensure that the message is understandable even when
-% truncated, by putting the most important information up front.
-% Another particularity of expandable messages is that they
-% cannot be redirected or turned off by the user.
-%
-% \begin{function}[EXP, added = 2015-08-06, updated = 2019-02-28]
-%   {
-%     \msg_expandable_error:nnnnnn ,
-%     \msg_expandable_error:nnnnn  ,
-%     \msg_expandable_error:nnnn   ,
-%     \msg_expandable_error:nnn    ,
-%     \msg_expandable_error:nn     ,
-%     \msg_expandable_error:nnffff ,
-%     \msg_expandable_error:nnfff  ,
-%     \msg_expandable_error:nnff   ,
-%     \msg_expandable_error:nnf    ,
-%   }
-%   \begin{syntax}
-%     \cs{msg_expandable_error:nnnnnn} \Arg{module} \Arg{message} \Arg{arg one} \Arg{arg two} \Arg{arg three} \Arg{arg four}
-%   \end{syntax}
-%   Issues an \enquote{Undefined error} message from \TeX{} itself
-%   using the undefined control sequence \cs{::error} then prints
-%   \enquote{! \meta{module}: }\meta{error message}, which should be
-%   short.  With default settings, anything beyond approximately $60$
-%   characters long (or bytes in some engines) is cropped.  A leading
-%   space might be removed as well.
-% \end{function}
-%
 % \begin{function}[added = 2017-12-04]{\msg_show_eval:Nn, \msg_log_eval:Nn}
 %   \begin{syntax}
 %     \cs{msg_show_eval:Nn} \meta{function} \Arg{expression}
@@ -520,26 +482,6 @@
 %   mappings.
 % \end{function}
 %
-% \begin{function}[rEXP,added = 2018-05-03]{\seq_indexed_map_function:NN}
-%   \begin{syntax}
-%     \cs{seq_indexed_map_function:NN} \meta{seq~var} \meta{function}
-%   \end{syntax}
-%   Applies \meta{function} to every entry in the \meta{sequence
-%   variable}.  The \meta{function} should have signature |:nn|.  It
-%   receives two arguments for each iteration: the \meta{index} (namely
-%   |1| for the first entry, then |2| and so on) and the \meta{item}.
-% \end{function}
-%
-% \begin{function}[added = 2018-05-03]{\seq_indexed_map_inline:Nn}
-%   \begin{syntax}
-%     \cs{seq_indexed_map_inline:Nn} \meta{seq~var} \Arg{inline function}
-%   \end{syntax}
-%   Applies \meta{inline function} to every entry in the \meta{sequence
-%   variable}.  The \meta{inline function} should consist of code which
-%   receives the \meta{index} (namely |1| for the first entry, then |2|
-%   and so on) as~|#1| and the \meta{item} as~|#2|.
-% \end{function}
-%
 % \section{Additions to \pkg{l3sys}}
 %
 % \begin{variable}[added = 2018-05-02]{\c_sys_engine_version_str}
@@ -958,56 +900,6 @@
 %<@@=msg>
 %    \end{macrocode}
 %
-% \begin{macro}[EXP]
-%   {
-%     \msg_expandable_error:nnnnnn ,
-%     \msg_expandable_error:nnnnn  ,
-%     \msg_expandable_error:nnnn   ,
-%     \msg_expandable_error:nnn    ,
-%     \msg_expandable_error:nn     ,
-%     \msg_expandable_error:nnffff ,
-%     \msg_expandable_error:nnfff  ,
-%     \msg_expandable_error:nnff   ,
-%     \msg_expandable_error:nnf
-%   }
-% \begin{macro}{\@@_expandable_error_module:nn}
-%   Pass to an auxiliary the message to display and the module name
-%    \begin{macrocode}
-\cs_new:Npn \msg_expandable_error:nnnnnn #1#2#3#4#5#6
-  {
-    \exp_args:Ne \@@_expandable_error_module:nn
-      {
-        \exp_args:Nc \exp_args:Noooo
-          { \c_@@_text_prefix_tl #1 / #2 }
-          { \tl_to_str:n {#3} }
-          { \tl_to_str:n {#4} }
-          { \tl_to_str:n {#5} }
-          { \tl_to_str:n {#6} }
-      }
-      {#1}
-  }
-\cs_new:Npn \msg_expandable_error:nnnnn #1#2#3#4#5
-  { \msg_expandable_error:nnnnnn {#1} {#2} {#3} {#4} {#5} { } }
-\cs_new:Npn \msg_expandable_error:nnnn #1#2#3#4
-  { \msg_expandable_error:nnnnnn {#1} {#2} {#3} {#4} { } { } }
-\cs_new:Npn \msg_expandable_error:nnn #1#2#3
-  { \msg_expandable_error:nnnnnn {#1} {#2} {#3} { } { } { } }
-\cs_new:Npn \msg_expandable_error:nn #1#2
-  { \msg_expandable_error:nnnnnn {#1} {#2} { } { } { } { } }
-\cs_generate_variant:Nn \msg_expandable_error:nnnnnn { nnffff }
-\cs_generate_variant:Nn \msg_expandable_error:nnnnn  { nnfff }
-\cs_generate_variant:Nn \msg_expandable_error:nnnn   { nnff }
-\cs_generate_variant:Nn \msg_expandable_error:nnn    { nnf }
-\cs_new:Npn \@@_expandable_error_module:nn #1#2
-  {
-    \exp_after:wN \exp_after:wN
-    \exp_after:wN \@@_use_none_delimit_by_s_stop:w
-    \use:n { \::error ! ~ #2 : ~ #1 } \s_@@_stop
-  }
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
 % \begin{macro}{\msg_show_eval:Nn, \msg_log_eval:Nn, \@@_show_eval:nnN}
 %   A short-hand used for \cs{int_show:n} and similar functions that
 %   passes to \cs{tl_show:n} the result of applying |#1| (a
@@ -1301,50 +1193,6 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}
-%   {
-%     \seq_indexed_map_function:NN, \seq_indexed_map_inline:Nn,
-%     \@@_indexed_map:nNN, \@@_indexed_map:Nw
-%   }
-%   Similar to \cs{seq_map_function:NN} but we keep track of the item
-%   index as a |;|-delimited argument of \cs{@@_indexed_map:Nw}.
-%    \begin{macrocode}
-\cs_new:Npn \seq_indexed_map_function:NN #1#2
-  {
-    \@@_indexed_map:NN #1#2
-    \prg_break_point:Nn \seq_map_break: { }
-  }
-\cs_new_protected:Npn \seq_indexed_map_inline:Nn #1#2
-  {
-    \int_gincr:N \g__kernel_prg_map_int
-    \cs_gset_protected:cpn
-      { @@_map_ \int_use:N \g__kernel_prg_map_int :w } ##1##2 {#2}
-    \exp_args:NNc \@@_indexed_map:NN #1
-      { @@_map_ \int_use:N \g__kernel_prg_map_int :w }
-    \prg_break_point:Nn \seq_map_break:
-      { \int_gdecr:N \g__kernel_prg_map_int }
-  }
-\cs_new:Npn \@@_indexed_map:NN #1#2
-  {
-    \exp_after:wN \@@_indexed_map:Nw
-    \exp_after:wN #2
-    \int_value:w 1
-    \exp_after:wN \use_i:nn
-    \exp_after:wN ;
-    #1
-    \prg_break: \@@_item:n { } \prg_break_point:
-  }
-\cs_new:Npn \@@_indexed_map:Nw #1#2 ; #3 \@@_item:n #4
-  {
-    #3
-    #1 {#2} {#4}
-    \exp_after:wN \@@_indexed_map:Nw
-    \exp_after:wN #1
-    \int_value:w \int_eval:w 1 + #2 ;
-  }
-%    \end{macrocode}
-% \end{macro}
-%
 % \subsection{Additions to \pkg{l3sys}}
 %
 %    \begin{macrocode}
@@ -1449,6 +1297,8 @@
 % \end{macro}
 % \end{macro}
 %
+% \subsection{Additions to \pkg{l3tl}}
+%
 % \subsubsection{Building a token list}
 %
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -116,10 +116,9 @@
 %   number of data entries these require will depend on the number of
 %   colors to be mixed.
 %   \begin{texnote}
-%     The content of \cs{l_@@_current_tl} is space-separated as
-%     this allows it to be used directly in specials in many common cases.
-%     This internal representation is close to that used by the \texttt{dvips}
-%     program.
+%     The content of \cs{l_@@_current_tl} comprises two brace groups, the
+%     first containing the color model and the second containing the value(s)
+%     applicable in that model.
 %   \end{texnote}
 % \end{variable}
 %
@@ -142,7 +141,7 @@
 %<*package>
     \@@_backend_pickup:N \l_@@_current_tl
 %</package>
-    \@@_select:V \l_@@_current_tl
+    \@@_select:N \l_@@_current_tl
   }
 %    \end{macrocode}
 % \end{macro}
@@ -154,28 +153,25 @@
 %    \end{macrocode}
 % \end{variable}
 %
-% \begin{macro}{\@@_select:n, \@@_select:V}
-% \begin{macro}{\@@_select:w}
+% \begin{macro}{\@@_select:N}
+% \begin{macro}{\@@_select:nn}
 %    Take an internal color specification and pass it to the driver. This code
 %    is needed to ensure the current color but will also be used by the
 %    higher-level experimental material.
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_select:n #1
-  { \@@_select:w #1 \s_@@_stop }
-\cs_generate_variant:Nn \@@_select:n { V }
-\cs_new_protected:Npn \@@_select:w #1 ~ #2 \s_@@_stop
-  { \use:c { @@_backend_ #1 :w } #2 \s_@@_stop }
+\cs_new_protected:Npn \@@_select:N #1
+  { \exp_after:wN \@@_select:nn #1 }
+\cs_new_protected:Npn \@@_select:nn #1#2
+  { \use:c { @@_backend_ #1 :n } {#2} }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 %
 % \begin{variable}{\l_@@_current_tl}
-%   As the setting data is used only
-%   for specials, and those are always space-separated, it makes most sense to
-%   hold the internal information in that form.
+%   The current color, with the model and 
 %    \begin{macrocode}
 \tl_new:N \l_@@_current_tl
-\tl_set:Nn \l_@@_current_tl { gray~0 }
+\tl_set:Nn \l_@@_current_tl { { gray } { 0 } }
 %    \end{macrocode}
 % \end{variable}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -930,6 +930,20 @@
 % \end{macro}
 % \end{macro}
 %
+% \subsection{Deprecated \pkg{l3seq} functions}
+%
+% \begin{macro}[EXP, deprecated = 2023-01-01]
+%   {
+%     \seq_indexed_map_inline:Nn, \seq_indexed_map_function:NN
+%   }
+%    \begin{macrocode}
+\__kernel_patch_deprecation:nnNNpn { 2022-07-01 } { \seq_map_indexed_inline:Nn }
+\cs_gset:Npn \seq_indexed_map_inline:Nn { \seq_map_indexed_inline:Nn }
+\__kernel_patch_deprecation:nnNNpn { 2022-07-01 } { \seq_map_indexed_function:NN }
+\cs_gset:Npn \seq_indexed_map_function:NN { \seq_map_indexed_function:NN }
+%    \end{macrocode}
+% \end{macro}
+%
 % \subsubsection{Deprecated \pkg{l3tl} functions}
 %
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -79,7 +79,7 @@
 %
 % \title{The \cls{l3doc} class}
 % \author{\Team}
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 % \maketitle
 % \tableofcontents
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -63,7 +63,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 % \maketitle
 %
 % \begin{documentation}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 % \maketitle
 %
 % \begin{documentation}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -49,7 +49,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -423,6 +423,46 @@
 %   all (see the discussion of message redirection).
 % \end{function}
 %
+% \subsection{Expandable error messages}
+%
+% In very rare cases it may be necessary to produce errors in an
+% expansion-only context.  The functions in this section should only be
+% used if there is no alternative approach using \cs{msg_error:nnnnnn}
+% or other non-expandable commands from the previous section.  Despite
+% having a similar interface as non-expandable messages, expandable
+% errors must be handled internally very differently from normal error
+% messages, as none of the tools to print to the terminal or the log
+% file are expandable.  As a result, short-hands such as |\{| or |\\| do
+% not work, and messages must be very short (with default settings,
+% they are truncated after approximately 50 characters).  It is
+% advisable to ensure that the message is understandable even when
+% truncated, by putting the most important information up front.
+% Another particularity of expandable messages is that they
+% cannot be redirected or turned off by the user.
+%
+% \begin{function}[EXP, added = 2015-08-06, updated = 2019-02-28]
+%   {
+%     \msg_expandable_error:nnnnnn ,
+%     \msg_expandable_error:nnnnn  ,
+%     \msg_expandable_error:nnnn   ,
+%     \msg_expandable_error:nnn    ,
+%     \msg_expandable_error:nn     ,
+%     \msg_expandable_error:nnffff ,
+%     \msg_expandable_error:nnfff  ,
+%     \msg_expandable_error:nnff   ,
+%     \msg_expandable_error:nnf    ,
+%   }
+%   \begin{syntax}
+%     \cs{msg_expandable_error:nnnnnn} \Arg{module} \Arg{message} \Arg{arg one} \Arg{arg two} \Arg{arg three} \Arg{arg four}
+%   \end{syntax}
+%   Issues an \enquote{Undefined error} message from \TeX{} itself
+%   using the undefined control sequence \cs{::error} then prints
+%   \enquote{! \meta{module}: }\meta{error message}, which should be
+%   short.  With default settings, anything beyond approximately $60$
+%   characters long (or bytes in some engines) is cropped.  A leading
+%   space might be removed as well.
+% \end{function}
+%
 % \section{Redirecting messages}
 %
 % Each message has a \enquote{name}, which can be used to alter the behaviour
@@ -2098,7 +2138,57 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}[EXP]
+%   {
+%     \msg_expandable_error:nnnnnn ,
+%     \msg_expandable_error:nnnnn  ,
+%     \msg_expandable_error:nnnn   ,
+%     \msg_expandable_error:nnn    ,
+%     \msg_expandable_error:nn     ,
+%     \msg_expandable_error:nnffff ,
+%     \msg_expandable_error:nnfff  ,
+%     \msg_expandable_error:nnff   ,
+%     \msg_expandable_error:nnf
+%   }
+% \begin{macro}{\@@_expandable_error_module:nn}
+%   Pass to an auxiliary the message to display and the module name
 %    \begin{macrocode}
+\cs_new:Npn \msg_expandable_error:nnnnnn #1#2#3#4#5#6
+  {
+    \exp_args:Ne \@@_expandable_error_module:nn
+      {
+        \exp_args:Nc \exp_args:Noooo
+          { \c_@@_text_prefix_tl #1 / #2 }
+          { \tl_to_str:n {#3} }
+          { \tl_to_str:n {#4} }
+          { \tl_to_str:n {#5} }
+          { \tl_to_str:n {#6} }
+      }
+      {#1}
+  }
+\cs_new:Npn \msg_expandable_error:nnnnn #1#2#3#4#5
+  { \msg_expandable_error:nnnnnn {#1} {#2} {#3} {#4} {#5} { } }
+\cs_new:Npn \msg_expandable_error:nnnn #1#2#3#4
+  { \msg_expandable_error:nnnnnn {#1} {#2} {#3} {#4} { } { } }
+\cs_new:Npn \msg_expandable_error:nnn #1#2#3
+  { \msg_expandable_error:nnnnnn {#1} {#2} {#3} { } { } { } }
+\cs_new:Npn \msg_expandable_error:nn #1#2
+  { \msg_expandable_error:nnnnnn {#1} {#2} { } { } { } { } }
+\cs_generate_variant:Nn \msg_expandable_error:nnnnnn { nnffff }
+\cs_generate_variant:Nn \msg_expandable_error:nnnnn  { nnfff }
+\cs_generate_variant:Nn \msg_expandable_error:nnnn   { nnff }
+\cs_generate_variant:Nn \msg_expandable_error:nnn    { nnf }
+\cs_new:Npn \@@_expandable_error_module:nn #1#2
+  {
+    \exp_after:wN \exp_after:wN
+    \exp_after:wN \@@_use_none_delimit_by_s_stop:w
+    \use:n { \::error ! ~ #2 : ~ #1 } \s_@@_stop
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%    \begin{macrocode}
 %</initex|package>
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -914,13 +914,12 @@
 %
 % \subsection{Helpers}
 %
-% \begin{macro}
-%   {\@@_int_eval:w}
+% \begin{macro}{\@@_int_eval:w}
 %   Access the primitive: performance is key here, so we do not use
 %   the slower route \emph{via} \cs{int_eval:n}.
 %    \begin{macrocode}
 \cs_new_eq:NN \@@_int_eval:w \tex_numexpr:D
-%     \end{macrocode}
+%    \end{macrocode}
 % \end{macro}
 %
 % \begin{macro}{\@@_standard_escapechar:}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %
@@ -578,6 +578,26 @@
 %   \meta{items} are returned from left to right.
 % \end{function}
 %
+% \begin{function}[rEXP,added = 2018-05-03]{\seq_map_indexed_function:NN}
+%   \begin{syntax}
+%     \cs{seq_map_indexed_function:NN} \meta{seq~var} \meta{function}
+%   \end{syntax}
+%   Applies \meta{function} to every entry in the \meta{sequence
+%   variable}.  The \meta{function} should have signature |:nn|.  It
+%   receives two arguments for each iteration: the \meta{index} (namely
+%   |1| for the first entry, then |2| and so on) and the \meta{item}.
+% \end{function}
+%
+% \begin{function}[added = 2018-05-03]{\seq_map_indexed_inline:Nn}
+%   \begin{syntax}
+%     \cs{seq_map_indexed_inline:Nn} \meta{seq~var} \Arg{inline function}
+%   \end{syntax}
+%   Applies \meta{inline function} to every entry in the \meta{sequence
+%   variable}.  The \meta{inline function} should consist of code which
+%   receives the \meta{index} (namely |1| for the first entry, then |2|
+%   and so on) as~|#1| and the \meta{item} as~|#2|.
+% \end{function}
+%
 % \begin{function}[rEXP, updated = 2012-06-29]{\seq_map_break:}
 %   \begin{syntax}
 %     \cs{seq_map_break:}
@@ -2018,6 +2038,50 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}
+%   {
+%     \seq_map_indexed_function:NN, \seq_map_indexed_inline:Nn,
+%     \@@_map_indexed:nNN, \@@_map_indexed:Nw
+%   }
+%   Similar to \cs{seq_map_function:NN} but we keep track of the item
+%   index as a |;|-delimited argument of \cs{@@_map_indexed:Nw}.
+%    \begin{macrocode}
+\cs_new:Npn \seq_map_indexed_function:NN #1#2
+  {
+    \@@_map_indexed:NN #1#2
+    \prg_break_point:Nn \seq_map_break: { }
+  }
+\cs_new_protected:Npn \seq_map_indexed_inline:Nn #1#2
+  {
+    \int_gincr:N \g__kernel_prg_map_int
+    \cs_gset_protected:cpn
+      { @@_map_ \int_use:N \g__kernel_prg_map_int :w } ##1##2 {#2}
+    \exp_args:NNc \@@_map_indexed:NN #1
+      { @@_map_ \int_use:N \g__kernel_prg_map_int :w }
+    \prg_break_point:Nn \seq_map_break:
+      { \int_gdecr:N \g__kernel_prg_map_int }
+  }
+\cs_new:Npn \@@_map_indexed:NN #1#2
+  {
+    \exp_after:wN \@@_map_indexed:Nw
+    \exp_after:wN #2
+    \int_value:w 1
+    \exp_after:wN \use_i:nn
+    \exp_after:wN ;
+    #1
+    \prg_break: \@@_item:n { } \prg_break_point:
+  }
+\cs_new:Npn \@@_map_indexed:Nw #1#2 ; #3 \@@_item:n #4
+  {
+    #3
+    #1 {#2} {#4}
+    \exp_after:wN \@@_map_indexed:Nw
+    \exp_after:wN #1
+    \int_value:w \int_eval:w 1 + #2 ;
+  }
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}{\seq_count:N, \seq_count:c}
 % \begin{macro}{\@@_count:w, \@@_count_end:w}
 %   Since counting the items in a sequence is quite common, we optimize

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-06-03}
+% \date{Released 2020-06-18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def	2020-06-18 21:08:59 UTC (rev 55586)
@@ -25,7 +25,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvipdfmx.def}{2020-06-03}{}
+  {l3backend-dvipdfmx.def}{2020-06-18}{}
   {L3 backend support: dvipdfmx}
 \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D
 \cs_new_protected:Npn \__kernel_backend_literal:n #1
@@ -52,8 +52,8 @@
               {
                 \tl_set:Nx #1
                    {
-                     spot ~
-                     \exp_after:wN \use:n \current at color \c_space_tl 1
+                     { spot }
+                     { \exp_after:wN \use:n \current at color \c_space_tl 1 }
                    }
               }
               {
@@ -62,33 +62,22 @@
               }
           }
         \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
-          { \tl_set:Nn #3 { #1 ~ #2 } }
+          { \tl_set:Nn #3 { {#1} {#2} } }
       }
   }
-\cs_new_protected:Npn \__color_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop
-  {
-    \__color_backend_select:x
-      {
-        cmyk~
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4}
-      }
-  }
-\cs_new_protected:Npn \__color_backend_gray:w #1 \s__color_stop
-  { \__color_backend_select:x { gray~ \fp_eval:n {#1} } }
-\cs_new_protected:Npn \__color_backend_rgb:w #1 ~ #2 ~ #3 \s__color_stop
-  {
-    \__color_backend_select:x
-      { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
-  }
-\cs_new_protected:Npn \__color_backend_spot:w #1 ~ #2 \s__color_stop
-  { \__color_backend_select:n { #1 } }
+\cs_new_protected:Npn \__color_backend_cmyk:n #1
+  { \__color_backend_select:n { cmyk ~ #1 } }
+\cs_new_protected:Npn \__color_backend_gray:n #1
+  { \__color_backend_select:n { gray ~ #1 } }
+\cs_new_protected:Npn \__color_backend_rgb:n #1
+  { \__color_backend_select:n { rgb ~ #1 } }
+\cs_new_protected:Npn \__color_backend_spot:n #1
+  { \__color_backend_select:n {#1} }
 \cs_new_protected:Npn \__color_backend_select:n #1
   {
     \__kernel_backend_literal:n { color~push~ #1 }
     \group_insert_after:N \__color_backend_reset:
   }
-\cs_generate_variant:Nn \__color_backend_select:n { x }
 \cs_new_protected:Npn \__color_backend_reset:
   { \__kernel_backend_literal:n { color~pop } }
 %% File: l3backend-box.dtx
@@ -219,7 +208,7 @@
       { \dim_to_decimal_in_bp:n {#1} ~ w }
   }
 \cs_new_protected:Npn \__draw_backend_miterlimit:n #1
-  { \__draw_backend_literal:x { \fp_eval:n {#1} ~ M } }
+  { \__draw_backend_literal:x { #1 ~ M } }
 \cs_new_protected:Npn \__draw_backend_cap_butt:
   { \__draw_backend_literal:n { 0 ~ J } }
 \cs_new_protected:Npn \__draw_backend_cap_round:
@@ -232,38 +221,18 @@
   { \__draw_backend_literal:n { 1 ~ j } }
 \cs_new_protected:Npn \__draw_backend_join_bevel:
   { \__draw_backend_literal:n { 2 ~ j } }
-\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:nnnn #1#2#3#4
-  {
-    \__draw_backend_color_select:x
-      {
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
-        k
-      }
-  }
-\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:nnnn #1#2#3#4
-  {
-    \__draw_backend_color_select:x
-      {
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
-        k
-      }
-  }
+\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:n #1
+  { \__draw_backend_color_select:n { #1 ~ k } }
+\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:n #1
+  { \__draw_backend_color_select:n { #1 ~ K } }
 \cs_new_protected:Npn \__draw_backend_color_fill_gray:n #1
-  { \__draw_backend_color_select:x { \fp_eval:n {#1} ~ g } }
+  { \__draw_backend_color_select:n { #1 ~ g } }
 \cs_new_protected:Npn \__draw_backend_color_stroke_gray:n #1
-  { \__draw_backend_color_select:x { \fp_eval:n {#1} ~ G } }
-\cs_new_protected:Npn \__draw_backend_color_fill_rgb:nnn #1#2#3
-  {
-    \__draw_backend_color_select:x
-      { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg }
-  }
-\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:nnn #1#2#3
-  {
-    \__draw_backend_color_select:x
-      { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG }
-  }
+  { \__draw_backend_color_select:n { #1 ~ G } }
+\cs_new_protected:Npn \__draw_backend_color_fill_rgb:n #1
+  { \__draw_backend_color_select:n { #1 ~ rg } }
+\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:n #1
+  { \__draw_backend_color_select:n { #1 ~ RG } }
 \cs_new_eq:NN \__draw_backend_color_select:n \__kernel_backend_literal_pdf:n
 \cs_generate_variant:Nn \__draw_backend_color_select:n { x }
 \cs_new_protected:Npn \__draw_backend_cm:nnnn #1#2#3#4
@@ -339,13 +308,8 @@
 \cs_new_protected:Npn \__draw_backend_box_use:Nnnnn #1#2#3#4#5
   {
     \__kernel_backend_scope_begin:
-    \__kernel_backend_literal:x
-      {
-        pdf:btrans~matrix~
-        \fp_eval:n {#2} ~ \fp_eval:n {#3} ~
-        \fp_eval:n {#4} ~ \fp_eval:n {#5} ~
-        0 ~ 0
-      }
+    \__kernel_backend_literal:n
+      { pdf:btrans~matrix~ #2 ~ #3 ~ #4 ~ #5 ~ 0 ~ 0 }
     \hbox_overlap_right:n { \box_use:N #1 }
     \__kernel_backend_literal:n { pdf:etrans }
     \__kernel_backend_scope_end:

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def	2020-06-18 21:08:59 UTC (rev 55586)
@@ -25,7 +25,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvips.def}{2020-06-03}{}
+  {l3backend-dvips.def}{2020-06-18}{}
   {L3 backend support: dvips}
 \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D
 \cs_new_protected:Npn \__kernel_backend_literal:n #1
@@ -73,8 +73,8 @@
               {
                 \tl_set:Nx #1
                    {
-                     spot ~
-                     \exp_after:wN \use:n \current at color \c_space_tl 1
+                     { spot }
+                     { \exp_after:wN \use:n \current at color \c_space_tl 1 }
                    }
               }
               {
@@ -83,27 +83,17 @@
               }
           }
         \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
-          { \tl_set:Nn #3 { #1 ~ #2 } }
+          { \tl_set:Nn #3 { {#1} {#2} } }
       }
   }
-\cs_new_protected:Npn \__color_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop
-  {
-    \__color_backend_select:x
-      {
-        cmyk~
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4}
-      }
-  }
-\cs_new_protected:Npn \__color_backend_gray:w #1 \s__color_stop
-  { \__color_backend_select:x { gray~ \fp_eval:n {#1} } }
-\cs_new_protected:Npn \__color_backend_rgb:w #1 ~ #2 ~ #3 \s__color_stop
-  {
-    \__color_backend_select:x
-      { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
-  }
-\cs_new_protected:Npn \__color_backend_spot:w #1 ~ #2 \s__color_stop
-  { \__color_backend_select:n { #1 } }
+\cs_new_protected:Npn \__color_backend_cmyk:n #1
+  { \__color_backend_select:n { cmyk ~ #1 } }
+\cs_new_protected:Npn \__color_backend_gray:n #1
+  { \__color_backend_select:n { gray ~ #1 } }
+\cs_new_protected:Npn \__color_backend_rgb:n #1
+  { \__color_backend_select:n { rgb ~ #1 } }
+\cs_new_protected:Npn \__color_backend_spot:n #1
+  { \__color_backend_select:n {#1} }
 \cs_new_protected:Npn \__color_backend_select:n #1
   {
     \__kernel_backend_literal:n { color~push~ #1 }
@@ -110,7 +100,6 @@
     \__kernel_backend_postscript:n { /color.fc~{ }~def }
     \group_insert_after:N \__color_backend_reset:
   }
-\cs_generate_variant:Nn \__color_backend_select:n { x }
 \cs_new_protected:Npn \__color_backend_reset:
   { \__kernel_backend_literal:n { color~pop } }
 %% File: l3backend-box.dtx
@@ -324,7 +313,7 @@
       { \dim_to_decimal_in_bp:n {#1} ~ setlinewidth }
   }
 \cs_new_protected:Npn \__draw_backend_miterlimit:n #1
-  { \__draw_backend_literal:x { \fp_eval:n {#1} ~ setmiterlimit } }
+  { \__draw_backend_literal:n { #1 ~ setmiterlimit } }
 \cs_new_protected:Npn \__draw_backend_cap_butt:
   { \__draw_backend_literal:n { 0 ~ setlinecap } }
 \cs_new_protected:Npn \__draw_backend_cap_round:
@@ -337,61 +326,32 @@
   { \__draw_backend_literal:n { 1 ~ setlinejoin } }
 \cs_new_protected:Npn \__draw_backend_join_bevel:
   { \__draw_backend_literal:n { 2 ~ setlinejoin } }
-\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:nnnn #1#2#3#4
-  {
-    \__draw_backend_color_fill:x
-      {
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
-        setcmykcolor
-      }
-  }
-\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:nnnn #1#2#3#4
-  {
-    \__draw_backend_color_stroke:x
-      {
-        cmyk ~
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4}
-      }
-  }
+\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:n #1
+  { \__draw_backend_color_fill:n { #1 ~ setcmykcolor } }
+\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:n #1
+  { \__draw_backend_color_stroke:n { cmyk ~ #1 } }
+\cs_new_protected:Npn \__draw_backend_color_stroke_gray:n #1
+  { \__draw_backend_color_fill:n { #1 ~ setgray } }
 \cs_new_protected:Npn \__draw_backend_color_fill_gray:n #1
-  { \__draw_backend_color_fill:x { \fp_eval:n {#1} ~ setgray } }
-\cs_new_protected:Npn \__draw_backend_color_stroke_gray:n #1
-  { \__draw_backend_color_stroke:x { gray ~ \fp_eval:n {#1} } }
-\cs_new_protected:Npn \__draw_backend_color_fill_rgb:nnn #1#2#3
-  {
-    \__draw_backend_color_fill:x
-      { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ setrgbcolor }
-  }
-\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:nnn #1#2#3
-  {
-    \__draw_backend_color_stroke:x
-      { rgb ~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
-  }
+  { \__draw_backend_color_stroke:n { gray ~ #1 } }
+\cs_new_protected:Npn \__draw_backend_color_fill_rgb:n #1
+  { \__draw_backend_color_fill:n { #1 ~ setrgbcolor } }
+\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:n #1
+  { \__draw_backend_color_stroke:n { rgb ~ #1 } }
 \cs_new_protected:Npn \__draw_backend_color_fill:n #1
   {
     \__kernel_backend_postscript:n
       { /color.fc ~ { #1 } ~ def }
   }
-\cs_generate_variant:Nn \__draw_backend_color_fill:n { x }
 \cs_new_protected:Npn \__draw_backend_color_stroke:n #1
   {
     \__kernel_backend_literal:n { color~push~#1 }
     \group_insert_after:N \__draw_color_reset:
   }
-\cs_generate_variant:Nn \__draw_backend_color_stroke:n { x }
 \cs_new_protected:Npn \__draw_backend_cm:nnnn #1#2#3#4
   {
     \__draw_backend_literal:n
-      {
-        [
-          \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-          \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
-          0 ~ 0
-        ] ~
-        concat
-      }
+      { [ #1 ~ #2 ~ #3 ~ #4 ~ 0 ~ 0 ] ~ concat }
   }
 \cs_new_protected:Npn \__draw_backend_box_use:Nnnnn #1#2#3#4#5
   {

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def	2020-06-18 21:08:59 UTC (rev 55586)
@@ -25,7 +25,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvisvgm.def}{2020-06-03}{}
+  {l3backend-dvisvgm.def}{2020-06-18}{}
   {L3 backend support: dvisvgm}
 \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D
 \cs_new_protected:Npn \__kernel_backend_literal:n #1
@@ -53,8 +53,8 @@
               {
                 \tl_set:Nx #1
                    {
-                     spot ~
-                     \exp_after:wN \use:n \current at color \c_space_tl 1
+                     { spot }
+                     { \exp_after:wN \use:n \current at color \c_space_tl 1 }
                    }
               }
               {
@@ -63,33 +63,22 @@
               }
           }
         \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
-          { \tl_set:Nn #3 { #1 ~ #2 } }
+          { \tl_set:Nn #3 { {#1} {#2} } }
       }
   }
-\cs_new_protected:Npn \__color_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop
-  {
-    \__color_backend_select:x
-      {
-        cmyk~
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4}
-      }
-  }
-\cs_new_protected:Npn \__color_backend_gray:w #1 \s__color_stop
-  { \__color_backend_select:x { gray~ \fp_eval:n {#1} } }
-\cs_new_protected:Npn \__color_backend_rgb:w #1 ~ #2 ~ #3 \s__color_stop
-  {
-    \__color_backend_select:x
-      { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
-  }
-\cs_new_protected:Npn \__color_backend_spot:w #1 ~ #2 \s__color_stop
-  { \__color_backend_select:n { #1 } }
+\cs_new_protected:Npn \__color_backend_cmyk:n #1
+  { \__color_backend_select:n { cmyk ~ #1 } }
+\cs_new_protected:Npn \__color_backend_gray:n #1
+  { \__color_backend_select:n { gray ~ #1 } }
+\cs_new_protected:Npn \__color_backend_rgb:n #1
+  { \__color_backend_select:n { rgb ~ #1 } }
+\cs_new_protected:Npn \__color_backend_spot:n #1
+  { \__color_backend_select:n {#1} }
 \cs_new_protected:Npn \__color_backend_select:n #1
   {
     \__kernel_backend_literal:n { color~push~ #1 }
     \group_insert_after:N \__color_backend_reset:
   }
-\cs_generate_variant:Nn \__color_backend_select:n { x }
 \cs_new_protected:Npn \__color_backend_reset:
   { \__kernel_backend_literal:n { color~pop } }
 %% File: l3backend-box.dtx
@@ -353,7 +342,7 @@
 \cs_new_protected:Npn \__draw_backend_linewidth:n #1
   { \__draw_backend_scope:x { stroke-width=" \dim_to_decimal:n {#1} " } }
 \cs_new_protected:Npn \__draw_backend_miterlimit:n #1
-  { \__draw_backend_scope:x { stroke-miterlimit=" \fp_eval:n {#1} " } }
+  { \__draw_backend_scope:x { stroke-miterlimit=" #1 " } }
 \cs_new_protected:Npn \__draw_backend_cap_butt:
   { \__draw_backend_scope:n { stroke-linecap="butt" } }
 \cs_new_protected:Npn \__draw_backend_cap_round:
@@ -366,25 +355,21 @@
   { \__draw_backend_scope:n { stroke-linejoin="round" } }
 \cs_new_protected:Npn \__draw_backend_join_bevel:
   { \__draw_backend_scope:n { stroke-linejoin="bevel" } }
-\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:nnnn #1#2#3#4
+\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:n #1
+  { \__draw_backend_color_fill_cmyk:w #1 \s__draw_stop }
+\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:w
+  #1 ~ #2 ~ #3 ~ #4 \s__draw_stop
   {
     \use:x
       {
         \__draw_backend_color_fill:nnn
-          { \fp_eval:n { -100 * ( (#1) * ( 1 - (#4) ) - 1 ) } }
-          { \fp_eval:n { -100 * ( (#2) * ( 1 - (#4) ) + #4 - 1 ) } }
-          { \fp_eval:n { -100 * ( (#3) * ( 1 - (#4) ) + #4 - 1 ) } }
+          { \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 ) ) } }
       }
   }
-\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:nnnn #1#2#3#4
-  {
-    \__draw_backend_select:x
-      {
-        cmyk~
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4}
-      }
-  }
+\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:n #1
+  { \__draw_backend_select:n { cmyk ~ #1 } }
 \cs_new_protected:Npn \__draw_backend_color_fill_gray:n #1
   {
     \use:x
@@ -397,7 +382,7 @@
   { \__draw_backend_color_fill:nnn {#1} {#1} {#1} }
 \cs_new_protected:Npn \__draw_backend_color_stroke_gray:n #1
   { \__draw_backend_select:x { gray~ \fp_eval:n {#1} } }
-\cs_new_protected:Npn \__draw_backend_color_fill_rgb:nnn #1#2#3
+\cs_new_protected:Npn \__draw_backend_color_fill_rgb:n #1
   {
     \use:x
       {
@@ -422,24 +407,14 @@
          "
       }
   }
-\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:nnn #1#2#3
-  {
-    \__draw_backend_select:x
-      { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
-  }
+\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:n #1
+  { \__draw_backend_select:n { rgb ~ #1 } }
 \cs_new_protected:Npn \__draw_backend_cm:nnnn #1#2#3#4
   {
     \__draw_backend_scope:n
       {
        transform =
-         "
-           matrix
-             (
-               \fp_eval:n {#1} , \fp_eval:n {#2} ,
-               \fp_eval:n {#3} , \fp_eval:n {#4} ,
-               0pt , 0pt
-             )
-         "
+         " matrix ( #1 , #2 , #3 , #4 , 0pt , 0pt ) "
       }
   }
 \cs_new_protected:Npn \__draw_backend_box_use:Nnnnn #1#2#3#4#5#6#7

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def	2020-06-18 21:08:59 UTC (rev 55586)
@@ -25,7 +25,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-pdfmode.def}{2020-06-03}{}
+  {l3backend-pdfmode.def}{2020-06-18}{}
   {L3 backend support: PDF mode}
 \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D
 \cs_new_protected:Npn \__kernel_backend_literal:n #1
@@ -82,20 +82,20 @@
           #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \s__color_stop #7
           {
             \str_if_eq:nnTF {#2} { g }
-              { \tl_set:Nn #7 { gray ~ #1 } }
+              { \tl_set:Nn #7 { { gray } {#1} } }
               {
                 \str_if_eq:nnTF {#4} { rg }
-                  { \tl_set:Nn #7 { rgb ~ #1 ~ #2 ~ #3 } }
+                  { \tl_set:Nn #7 { { rgb } { #1 ~ #2 ~ #3 } } }
                   {
                      \str_if_eq:nnTF {#5} { k }
-                       { \tl_set:Nn #7 { cmyk ~ #1 ~ #2 ~ #3 ~ #4 } }
+                       { \tl_set:Nn #7 { { cmyk } { #1 ~ #2 ~ #3 ~ #4 } } }
                        {
                          \str_if_eq:nnTF {#2} { cs }
                            {
-                             \tl_set:Nx #7 { spot ~ \use_none:n #1 ~ #5 }
+                             \tl_set:Nx #7 { { spot } { \use_none:n #1 ~ #5 } }
                            }
                            {
-                             \tl_set:Nn #7 { gray ~ 0 }
+                             \tl_set:Nn #7 { { gray } { 0 } }
                            }
                        }
                   }
@@ -104,40 +104,16 @@
       }
   }
 \int_new:N \l__kernel_color_stack_int
-\cs_new_protected:Npn \__color_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop
-  {
-     \use:x
-       {
-         \__color_backend_cmyk:nnnn
-           { \fp_eval:n {#1} }
-           { \fp_eval:n {#2} }
-           { \fp_eval:n {#3} }
-           { \fp_eval:n {#4} }
-       }
-  }
-\cs_new_protected:Npn \__color_backend_cmyk:nnnn #1#2#3#4
-  {
-    \__color_backend_select:n
-      { #1 ~ #2 ~ #3 ~ #4 ~ k ~ #1 ~ #2 ~ #3 ~ #4 ~ K }
-  }
-\cs_new_protected:Npn \__color_backend_gray:w #1 \s__color_stop
-  { \exp_args:Nx \__color_backend_gray:n { \fp_eval:n {#1} } }
+\cs_new_protected:Npn \__color_backend_cmyk:n #1
+  { \__color_backend_select:n { #1 ~ k ~ #1 ~ K } }
 \cs_new_protected:Npn \__color_backend_gray:n #1
   { \__color_backend_select:n { #1 ~ g ~ #1 ~ G } }
-\cs_new_protected:Npn \__color_backend_rgb:w #1~ #2 ~ #3 \s__color_stop
-  {
-     \use:x
-       {
-         \__color_backend_rgb:nnn
-           { \fp_eval:n {#1} }
-           { \fp_eval:n {#2} }
-           { \fp_eval:n {#3} }
-       }
-  }
-\cs_new_protected:Npn \__color_backend_rgb:nnn #1#2#3
-  { \__color_backend_select:n { #1 ~ #2 ~ #3 ~ rg ~ #1 ~ #2 ~ #3 ~ RG } }
+\cs_new_protected:Npn \__color_backend_rgb:n #1
+  { \__color_backend_select:n { #1 ~ rg ~ #1 ~ RG } }
+\cs_new_protected:Npn \__color_backend_spot:n #1
+  { \__color_backend_spot:w #1 \s__color_stop }
 \cs_new_protected:Npn \__color_backend_spot:w #1 ~ #2 \s__color_stop
-  { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ sc ~ #2 ~ SC } }
+  { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } }
 \cs_new_protected:Npx \__color_backend_select:n #1
   {
     \cs_if_exist:NTF \tex_pdfextension:D
@@ -146,7 +122,6 @@
         \exp_not:N \l__kernel_color_stack_int push {#1}
       \group_insert_after:N \exp_not:N \__color_backend_reset:
   }
-\cs_generate_variant:Nn \__color_backend_select:n { x }
 \cs_new_protected:Npx \__color_backend_reset:
   {
     \cs_if_exist:NTF \tex_pdfextension:D
@@ -295,7 +270,7 @@
       { \dim_to_decimal_in_bp:n {#1} ~ w }
   }
 \cs_new_protected:Npn \__draw_backend_miterlimit:n #1
-  { \__draw_backend_literal:x { \fp_eval:n {#1} ~ M } }
+  { \__draw_backend_literal:x { #1 ~ M } }
 \cs_new_protected:Npn \__draw_backend_cap_butt:
   { \__draw_backend_literal:n { 0 ~ J } }
 \cs_new_protected:Npn \__draw_backend_cap_round:
@@ -308,38 +283,18 @@
   { \__draw_backend_literal:n { 1 ~ j } }
 \cs_new_protected:Npn \__draw_backend_join_bevel:
   { \__draw_backend_literal:n { 2 ~ j } }
-\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:nnnn #1#2#3#4
-  {
-    \__draw_backend_color_select:x
-      {
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
-        k
-      }
-  }
-\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:nnnn #1#2#3#4
-  {
-    \__draw_backend_color_select:x
-      {
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
-        k
-      }
-  }
+\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:n #1
+  { \__draw_backend_color_select:n { #1 ~ k } }
+\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:n #1
+  { \__draw_backend_color_select:n { #1 ~ K } }
 \cs_new_protected:Npn \__draw_backend_color_fill_gray:n #1
-  { \__draw_backend_color_select:x { \fp_eval:n {#1} ~ g } }
+  { \__draw_backend_color_select:n { #1 ~ g } }
 \cs_new_protected:Npn \__draw_backend_color_stroke_gray:n #1
-  { \__draw_backend_color_select:x { \fp_eval:n {#1} ~ G } }
-\cs_new_protected:Npn \__draw_backend_color_fill_rgb:nnn #1#2#3
-  {
-    \__draw_backend_color_select:x
-      { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg }
-  }
-\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:nnn #1#2#3
-  {
-    \__draw_backend_color_select:x
-      { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG }
-  }
+  { \__draw_backend_color_select:n { #1 ~ G } }
+\cs_new_protected:Npn \__draw_backend_color_fill_rgb:n #1
+  { \__draw_backend_color_select:n { #1 ~ rg } }
+\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:n #1
+  { \__draw_backend_color_select:n { #1 ~ RG } }
 \cs_new_protected:Npx \__draw_backend_color_select:n #1
   {
     \cs_if_exist:NTF \tex_pdfextension:D
@@ -358,11 +313,7 @@
 \cs_generate_variant:Nn \__draw_backend_color_select:n { x }
 \cs_new_protected:Npn \__draw_backend_cm:nnnn #1#2#3#4
   {
-    \__kernel_backend_matrix:x
-      {
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4}
-      }
+    \__kernel_backend_matrix:n { #1 ~ #2 ~ #3 ~ #4 }
   }
 \cs_new_protected:Npn \__draw_backend_box_use:Nnnnn #1#2#3#4#5
   {

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def	2020-06-18 21:08:59 UTC (rev 55586)
@@ -25,7 +25,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-xdvipdfmx.def}{2020-06-03}{}
+  {l3backend-xdvipdfmx.def}{2020-06-18}{}
   {L3 backend support: xdvipdfmx}
 \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D
 \cs_new_protected:Npn \__kernel_backend_literal:n #1
@@ -52,8 +52,8 @@
               {
                 \tl_set:Nx #1
                    {
-                     spot ~
-                     \exp_after:wN \use:n \current at color \c_space_tl 1
+                     { spot }
+                     { \exp_after:wN \use:n \current at color \c_space_tl 1 }
                    }
               }
               {
@@ -62,33 +62,22 @@
               }
           }
         \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
-          { \tl_set:Nn #3 { #1 ~ #2 } }
+          { \tl_set:Nn #3 { {#1} {#2} } }
       }
   }
-\cs_new_protected:Npn \__color_backend_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop
-  {
-    \__color_backend_select:x
-      {
-        cmyk~
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4}
-      }
-  }
-\cs_new_protected:Npn \__color_backend_gray:w #1 \s__color_stop
-  { \__color_backend_select:x { gray~ \fp_eval:n {#1} } }
-\cs_new_protected:Npn \__color_backend_rgb:w #1 ~ #2 ~ #3 \s__color_stop
-  {
-    \__color_backend_select:x
-      { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
-  }
-\cs_new_protected:Npn \__color_backend_spot:w #1 ~ #2 \s__color_stop
-  { \__color_backend_select:n { #1 } }
+\cs_new_protected:Npn \__color_backend_cmyk:n #1
+  { \__color_backend_select:n { cmyk ~ #1 } }
+\cs_new_protected:Npn \__color_backend_gray:n #1
+  { \__color_backend_select:n { gray ~ #1 } }
+\cs_new_protected:Npn \__color_backend_rgb:n #1
+  { \__color_backend_select:n { rgb ~ #1 } }
+\cs_new_protected:Npn \__color_backend_spot:n #1
+  { \__color_backend_select:n {#1} }
 \cs_new_protected:Npn \__color_backend_select:n #1
   {
     \__kernel_backend_literal:n { color~push~ #1 }
     \group_insert_after:N \__color_backend_reset:
   }
-\cs_generate_variant:Nn \__color_backend_select:n { x }
 \cs_new_protected:Npn \__color_backend_reset:
   { \__kernel_backend_literal:n { color~pop } }
 %% File: l3backend-box.dtx
@@ -219,7 +208,7 @@
       { \dim_to_decimal_in_bp:n {#1} ~ w }
   }
 \cs_new_protected:Npn \__draw_backend_miterlimit:n #1
-  { \__draw_backend_literal:x { \fp_eval:n {#1} ~ M } }
+  { \__draw_backend_literal:x { #1 ~ M } }
 \cs_new_protected:Npn \__draw_backend_cap_butt:
   { \__draw_backend_literal:n { 0 ~ J } }
 \cs_new_protected:Npn \__draw_backend_cap_round:
@@ -232,38 +221,18 @@
   { \__draw_backend_literal:n { 1 ~ j } }
 \cs_new_protected:Npn \__draw_backend_join_bevel:
   { \__draw_backend_literal:n { 2 ~ j } }
-\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:nnnn #1#2#3#4
-  {
-    \__draw_backend_color_select:x
-      {
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
-        k
-      }
-  }
-\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:nnnn #1#2#3#4
-  {
-    \__draw_backend_color_select:x
-      {
-        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
-        \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
-        k
-      }
-  }
+\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:n #1
+  { \__draw_backend_color_select:n { #1 ~ k } }
+\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:n #1
+  { \__draw_backend_color_select:n { #1 ~ K } }
 \cs_new_protected:Npn \__draw_backend_color_fill_gray:n #1
-  { \__draw_backend_color_select:x { \fp_eval:n {#1} ~ g } }
+  { \__draw_backend_color_select:n { #1 ~ g } }
 \cs_new_protected:Npn \__draw_backend_color_stroke_gray:n #1
-  { \__draw_backend_color_select:x { \fp_eval:n {#1} ~ G } }
-\cs_new_protected:Npn \__draw_backend_color_fill_rgb:nnn #1#2#3
-  {
-    \__draw_backend_color_select:x
-      { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg }
-  }
-\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:nnn #1#2#3
-  {
-    \__draw_backend_color_select:x
-      { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG }
-  }
+  { \__draw_backend_color_select:n { #1 ~ G } }
+\cs_new_protected:Npn \__draw_backend_color_fill_rgb:n #1
+  { \__draw_backend_color_select:n { #1 ~ rg } }
+\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:n #1
+  { \__draw_backend_color_select:n { #1 ~ RG } }
 \cs_new_eq:NN \__draw_backend_color_select:n \__kernel_backend_literal_pdf:n
 \cs_generate_variant:Nn \__draw_backend_color_select:n { x }
 \cs_new_protected:Npn \__draw_backend_cm:nnnn #1#2#3#4
@@ -339,13 +308,8 @@
 \cs_new_protected:Npn \__draw_backend_box_use:Nnnnn #1#2#3#4#5
   {
     \__kernel_backend_scope_begin:
-    \__kernel_backend_literal:x
-      {
-        pdf:btrans~matrix~
-        \fp_eval:n {#2} ~ \fp_eval:n {#3} ~
-        \fp_eval:n {#4} ~ \fp_eval:n {#5} ~
-        0 ~ 0
-      }
+    \__kernel_backend_literal:n
+      { pdf:btrans~matrix~ #2 ~ #3 ~ #4 ~ #5 ~ 0 ~ 0 }
     \hbox_overlap_right:n { \box_use:N #1 }
     \__kernel_backend_literal:n { pdf:etrans }
     \__kernel_backend_scope_end:

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty	2020-06-18 21:08:59 UTC (rev 55586)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3benchmark.dtx
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3benchmark}{2020-06-03}{}
+\ProvidesExplPackage{l3benchmark}{2020-06-18}{}
   {L3 Experimental benchmarking}
 \sys_if_engine_luatex:TF
   {

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty	2020-06-18 21:08:59 UTC (rev 55586)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3cctab.dtx
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3cctab}{2020-06-03}{}
+\ProvidesExplPackage{l3cctab}{2020-06-18}{}
   {L3 Experimental category code tables}
 \int_new:N  \g__cctab_allocate_int
 \int_gset:Nn \g__cctab_allocate_int { -1 }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty	2020-06-18 21:08:59 UTC (rev 55586)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3color.dtx
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3color}{2020-06-03}{}
+\ProvidesExplPackage{l3color}{2020-06-18}{}
   {L3 Experimental color support}
 \tl_new:N \l__color_internal_tl
 \scan_new:N \s__color_mark
@@ -33,13 +33,13 @@
 \cs_new_protected:Npn \__color_extract:nNN #1#2#3
   {
     \exp_after:wN \exp_after:wN \exp_after:wN
-      \__color_extract:NNw
+      \__color_extract:NNnn
       \exp_after:wN \exp_after:wN \exp_after:wN #2
       \exp_after:wN \exp_after:wN \exp_after:wN #3
-        \cs:w l__color_named_ #1 _tl \cs_end: \s__color_stop
+        \cs:w l__color_named_ #1 _tl \cs_end:
   }
 \cs_generate_variant:Nn \__color_extract:nNN { V }
-\cs_new_protected:Npn \__color_extract:NNw #1#2 #3 ~ #4 \s__color_stop
+\cs_new_protected:Npn \__color_extract:NNnn #1#2#3#4
   {
     \tl_set:Nn #1 {#3}
     \tl_set:Nn #2 {#4}
@@ -117,7 +117,7 @@
       \__color_extract:nNN {#2} \l__color_model_tl \l__color_value_tl
       \__color_parse_loop:w #3 ! ! ! ! \s__color_stop
       \tl_set:Nx \l__color_internal_tl
-        { \l__color_model_tl \c_space_tl \l__color_value_tl }
+        { { \l__color_model_tl } { \l__color_value_tl } }
     \exp_args:NNNV \group_end:
     \tl_set:Nn #1 \l__color_internal_tl
   }
@@ -216,26 +216,30 @@
     \fp_eval:n { #5 * #1 + #9 * ( 1 - #1 ) }
   }
 \cs_new:Npn \__color_parse_model_gray:w #1 , #2 \s__color_stop
-  { gray ~ \__color_parse_number:n {#1} }
+  { { gray } { \__color_parse_number:n {#1} } }
 \cs_new:Npn \__color_parse_model_rgb:w #1 , #2 , #3 , #4 \s__color_stop
   {
-    rgb ~
-    \__color_parse_number:n {#1} ~
-    \__color_parse_number:n {#2} ~
-    \__color_parse_number:n {#3}
+    { rgb }
+    {
+      \__color_parse_number:n {#1} ~
+      \__color_parse_number:n {#2} ~
+      \__color_parse_number:n {#3}
+    }
   }
 \cs_new:Npn \__color_parse_model_cmyk:w #1 , #2 , #3 , #4 , #5 \s__color_stop
   {
-    cmyk ~
-    \__color_parse_number:n {#1} ~
-    \__color_parse_number:n {#2} ~
-    \__color_parse_number:n {#3} ~
-    \__color_parse_number:n {#4}
+    { cmyk }
+    {
+      \__color_parse_number:n {#1} ~
+      \__color_parse_number:n {#2} ~
+      \__color_parse_number:n {#3} ~
+      \__color_parse_number:n {#4}
+    }
   }
 \cs_new:Npn \__color_parse_model_spot:w #1 , #2 \s__color_stop
   {
-    spot ~
-    \__color_parse_spot_aux:w #1 ! 100 ! \s__color_stop
+    { spot }
+    { \__color_parse_spot_aux:w #1 ! 100 ! \s__color_stop }
   }
 \cs_new:Npn \__color_parse_spot_aux:w #1 ! #2 ! #3 \s__color_stop
   { #1 ~ \fp_eval:n { #2 / 100 } }
@@ -250,9 +254,11 @@
   }
 \cs_new:Npn \__color_parse_model_hsb:nnn #1#2#3
   {
-    rgb ~
-    \exp_args:Ne \__color_parse_model_hsb_aux:nnn
-      { \fp_eval:n { 6 * #1 } } {#2} {#3}
+    { rgb }
+    {
+      \exp_args:Ne \__color_parse_model_hsb_aux:nnn
+        { \fp_eval:n { 6 * #1 } } {#2} {#3}
+    }
   }
 \cs_new:Npn \__color_parse_model_hsb_aux:nnn #1#2#3
   {
@@ -292,17 +298,21 @@
   { \__color_parse_model_HTML_aux:w #1 0 0 0 0 0 0 \s__color_stop }
 \cs_new:Npn \__color_parse_model_HTML_aux:w #1#2#3#4#5#6#7 \s__color_stop
   {
-    rgb ~
-    \fp_eval:n { round(\int_from_hex:n {#1#2} / 255,5) } ~
-    \fp_eval:n { round(\int_from_hex:n {#3#4} / 255,5) } ~
-    \fp_eval:n { round(\int_from_hex:n {#5#6} / 255,5) }
+    { rgb }
+    {
+      \fp_eval:n { round(\int_from_hex:n {#1#2} / 255,5) } ~
+      \fp_eval:n { round(\int_from_hex:n {#3#4} / 255,5) } ~
+      \fp_eval:n { round(\int_from_hex:n {#5#6} / 255,5) }
+    }
   }
 \cs_new:Npn \__color_parse_model_RGB:w #1 , #2 , #3 , #4 \s__color_stop
   {
-    rgb ~
-    \fp_eval:n { round(#1 / 255,5) } ~
-    \fp_eval:n { round(#2 / 255,5) } ~
-    \fp_eval:n { round(#3 / 255,5) }
+    { rgb }
+    {
+      \fp_eval:n { round(#1 / 255,5) } ~
+      \fp_eval:n { round(#2 / 255,5) } ~
+      \fp_eval:n { round(#3 / 255,5) }
+    }
   }
 \tl_new:N \l_color_fixed_model_tl
 \cs_new_protected:Npn \__color_check_model:N #1
@@ -309,7 +319,7 @@
   {
     \tl_if_empty:NF \l_color_fixed_model_tl
       {
-        \exp_after:wN \__color_check_model:w #1 \s__color_stop
+        \exp_after:wN \__color_check_model:nn #1
         \tl_if_eq:NNF \l__color_model_tl \l_color_fixed_model_tl
           {
             \__color_convert:VVN \l__color_model_tl \l_color_fixed_model_tl
@@ -316,10 +326,10 @@
               \l__color_value_tl
           }
         \tl_set:Nx #1
-          { \l_color_fixed_model_tl \c_space_tl \l__color_value_tl }
+          { { \l_color_fixed_model_tl } { \l__color_value_tl } }
       }
   }
-\cs_new_protected:Npn \__color_check_model:w #1 ~ #2 \s__color_stop
+\cs_new_protected:Npn \__color_check_model:nn #1#2
   {
     \tl_set:Nn \l__color_model_tl {#1}
     \tl_set:Nn \l__color_value_tl {#2}
@@ -327,7 +337,7 @@
 \cs_new_protected:Npn \__color_select:
   {
     \tl_set_eq:cN { l__color_named_ . _tl } \l__color_current_tl
-    \__color_select:V \l__color_current_tl
+    \__color_select:N \l__color_current_tl
   }
 \cs_new_protected:Npn \color_select:n #1
   {
@@ -344,7 +354,7 @@
     \cs_if_exist:cTF { __color_parse_model_ #1 :w }
       {
         \tl_set:Nx #3
-          { \use:c {  __color_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \s__color_stop }
+          { \use:c { __color_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \s__color_stop }
         \__color_check_model:N #3
       }
       {
@@ -399,21 +409,17 @@
       {#1}
       {
         \__color_if_defined:nTF {#1}
-          { \exp_last_unbraced:Nv \__color_show:w { l__color_named_ #1 _tl } \s__color_stop }
+          { \exp_last_unbraced:Nv \__color_show:nn { l__color_named_ #1 _tl } }
           { }
       }
       { }
       { }
   }
-\cs_new:Npn \__color_show:w #1 ~ #2 \s__color_stop
+\cs_new:Npn \__color_show:nn #1#2
   {
     \msg_show_item_unbraced:nn { model } {#1}
-    \exp_args:Nnf \msg_show_item_unbraced:nn { value }
-      { \use:c { __color_show_ #1 :w } #2 \s__color_stop }
+    \msg_show_item_unbraced:nn { value } {#2}
   }
-\cs_new:Npn \__color_show_gray:w #1 \s__color_stop { #1 }
-\cs_new:Npn \__color_show_rgb:w #1 ~ #2 ~ #3 \s__color_stop { #1 ,~ #2 ,~ #3 }
-\cs_new:Npn \__color_show_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop { #1 ,~ #2 ,~ #3 ,~ #4 }
 \__kernel_msg_new:nnnn { color } { unknown-color }
   { Unknown~color~'#1'. }
   {

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty	2020-06-18 21:08:59 UTC (rev 55586)
@@ -28,7 +28,7 @@
 %% 
 %% File: l3draw.dtx
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3draw}{2020-06-03}{}
+\ProvidesExplPackage{l3draw}{2020-06-18}{}
   {L3 Experimental core drawing support}
 \RequirePackage { l3color }
 \scan_new:N \s__draw_mark
@@ -1677,7 +1677,7 @@
   }
 \seq_new:N \l__draw_tmp_seq
 \cs_new_protected:Npn \draw_miterlimit:n #1
-  { \__draw_backend_miterlimit:n { \fp_eval:n {#1} } }
+  { \exp_args:Nx \__draw_backend_miterlimit:n { \fp_eval:n {#1} } }
 \cs_new_protected:Npn \draw_cap_butt: { \__draw_backend_cap_butt: }
 \cs_new_protected:Npn \draw_cap_rectangle: { \__draw_backend_cap_rectangle: }
 \cs_new_protected:Npn \draw_cap_round: { \__draw_backend_cap_round: }
@@ -1695,21 +1695,10 @@
 \cs_new_protected:Npn \__draw_color:nn #1#2
   {
     \color_parse:nN {#2} \l__draw_color_tmp_tl
-    \__draw_color_aux:Vn \l__draw_color_tmp_tl {#1}
+    \exp_after:wN \__draw_color:nnn \l__draw_color_tmp_tl {#1}
   }
-\cs_new_protected:Npn \__draw_color_aux:nn #1#2
-  { \__draw_color:nw {#2} #1 \s__draw_stop }
-\cs_generate_variant:Nn \__draw_color_aux:nn { V }
-\cs_new_protected:Npn \__draw_color:nw #1#2 ~ #3 \s__draw_stop
-  { \use:c { __draw_color_ #2 :nw } {#1} #3 \s__draw_stop }
-\cs_new_protected:Npn \__draw_color_cmyk:nw #1#2 ~ #3 ~ #4 ~ #5 \s__draw_stop
-  { \use:c { __draw_backend_color_ #1 _cmyk:nnnn } {#2} {#3} {#4} {#5} }
-\cs_new_protected:Npn \__draw_color_gray:nw #1#2 \s__draw_stop
-  { \use:c { __draw_backend_color_ #1 _gray:n } {#2} }
-\cs_new_protected:Npn \__draw_color_rgb:nw #1#2 ~ #3 ~ #4 \s__draw_stop
-  { \use:c { __draw_backend_color_ #1 _rgb:nnn } {#2} {#3} {#4} }
-\cs_new_protected:Npn \__draw_color_spot:nw #1#2 ~ #3 \s__draw_stop
-  { \use:c { __draw_backend_color_ #1 _spot:nn } {#2} {#3} }
+\cs_new_protected:Npn \__draw_color:nnn #1#2#3
+  { \use:c { __draw_backend_color_ #3 _ #1 :n } {#2} }
 %% File: l3draw-transforms.dtx
 \bool_new:N \l__draw_matrix_active_bool
 \fp_new:N \l__draw_matrix_a_fp

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty	2020-06-18 21:08:59 UTC (rev 55586)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3graphics.dtx
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3graphics}{2020-06-03}{}
+\ProvidesExplPackage{l3graphics}{2020-06-18}{}
   {L3 Experimental graphics inclusion support}
 \ior_new:N \l__graphics_tmp_ior
 \tl_new:N  \l__graphics_tmp_tl

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty	2020-06-18 21:08:59 UTC (rev 55586)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3pdf.dtx
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3pdf}{2020-06-03}{}
+\ProvidesExplPackage{l3pdf}{2020-06-18}{}
   {L3 Experimental core PDF support}
 \scan_new:N \s__pdf_stop
 \bool_new:N \g__pdf_init_bool

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty	2020-06-18 21:08:59 UTC (rev 55586)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3str-format.dtx
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3str-format}{2020-06-03}{}
+\ProvidesExplPackage{l3str-format}{2020-06-18}{}
   {L3 Experimental string formatting}
 \cs_generate_variant:Nn \use:nn { nf }
 \cs_generate_variant:Nn \use:nnn { fnf }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty	2020-06-18 21:08:59 UTC (rev 55586)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3sys-shell.dtx
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3sys-shell}{2020-06-03}{}
+\ProvidesExplPackage{l3sys-shell}{2020-06-18}{}
   {L3 Experimental system shell functions}
 \scan_new:N \s__sys_stop
 \quark_new:N \q__sys_nil

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty	2020-06-18 21:08:59 UTC (rev 55586)
@@ -20,7 +20,7 @@
 %% 
 %% File: xcoffins.dtx
 \RequirePackage{xparse}
-\ProvidesExplPackage{xcoffins}{2020-06-03}{}
+\ProvidesExplPackage{xcoffins}{2020-06-18}{}
   {L3 Experimental design level coffins}
 \keys_define:nn { coffin }
   {

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty	2020-06-18 21:08:59 UTC (rev 55586)
@@ -32,7 +32,7 @@
       }%
     \endinput
   }
-\ProvidesExplPackage{l3galley}{2020-06-03}{}
+\ProvidesExplPackage{l3galley}{2020-06-18}{}
   {L3 Experimental galley code}
 \int_new:N \l__galley_tmp_int
 \seq_new:N \g__galley_tmpa_seq

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty	2020-06-18 21:08:59 UTC (rev 55586)
@@ -20,7 +20,7 @@
 %% 
 %% File: xgalley.dtx
 \RequirePackage{xparse}
-\ProvidesExplPackage{xgalley}{2020-06-03}{}
+\ProvidesExplPackage{xgalley}{2020-06-18}{}
   {L3 Experimental galley}
 \RequirePackage{xparse,xtemplate,l3galley}
 \clist_new:N \l__galley_tmpa_clist

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2020-06-18 21:08:59 UTC (rev 55586)
@@ -68,7 +68,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2020-06-03}%
+\def\ExplFileDate{2020-06-18}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -6410,6 +6410,39 @@
   }
 \cs_generate_variant:Nn \seq_map_variable:NNn {     Nc }
 \cs_generate_variant:Nn \seq_map_variable:NNn { c , cc }
+\cs_new:Npn \seq_map_indexed_function:NN #1#2
+  {
+    \__seq_map_indexed:NN #1#2
+    \prg_break_point:Nn \seq_map_break: { }
+  }
+\cs_new_protected:Npn \seq_map_indexed_inline:Nn #1#2
+  {
+    \int_gincr:N \g__kernel_prg_map_int
+    \cs_gset_protected:cpn
+      { __seq_map_ \int_use:N \g__kernel_prg_map_int :w } ##1##2 {#2}
+    \exp_args:NNc \__seq_map_indexed:NN #1
+      { __seq_map_ \int_use:N \g__kernel_prg_map_int :w }
+    \prg_break_point:Nn \seq_map_break:
+      { \int_gdecr:N \g__kernel_prg_map_int }
+  }
+\cs_new:Npn \__seq_map_indexed:NN #1#2
+  {
+    \exp_after:wN \__seq_map_indexed:Nw
+    \exp_after:wN #2
+    \int_value:w 1
+    \exp_after:wN \use_i:nn
+    \exp_after:wN ;
+    #1
+    \prg_break: \__seq_item:n { } \prg_break_point:
+  }
+\cs_new:Npn \__seq_map_indexed:Nw #1#2 ; #3 \__seq_item:n #4
+  {
+    #3
+    #1 {#2} {#4}
+    \exp_after:wN \__seq_map_indexed:Nw
+    \exp_after:wN #1
+    \int_value:w \int_eval:w 1 + #2 ;
+  }
 \cs_new:Npn \seq_count:N #1
   {
     \int_eval:n
@@ -10823,6 +10856,37 @@
 \cs_generate_variant:Nn \__kernel_msg_expandable_error:nnnnn { nnfff }
 \cs_generate_variant:Nn \__kernel_msg_expandable_error:nnnn { nnff }
 \cs_generate_variant:Nn \__kernel_msg_expandable_error:nnn { nnf }
+\cs_new:Npn \msg_expandable_error:nnnnnn #1#2#3#4#5#6
+  {
+    \exp_args:Ne \__msg_expandable_error_module:nn
+      {
+        \exp_args:Nc \exp_args:Noooo
+          { \c__msg_text_prefix_tl #1 / #2 }
+          { \tl_to_str:n {#3} }
+          { \tl_to_str:n {#4} }
+          { \tl_to_str:n {#5} }
+          { \tl_to_str:n {#6} }
+      }
+      {#1}
+  }
+\cs_new:Npn \msg_expandable_error:nnnnn #1#2#3#4#5
+  { \msg_expandable_error:nnnnnn {#1} {#2} {#3} {#4} {#5} { } }
+\cs_new:Npn \msg_expandable_error:nnnn #1#2#3#4
+  { \msg_expandable_error:nnnnnn {#1} {#2} {#3} {#4} { } { } }
+\cs_new:Npn \msg_expandable_error:nnn #1#2#3
+  { \msg_expandable_error:nnnnnn {#1} {#2} {#3} { } { } { } }
+\cs_new:Npn \msg_expandable_error:nn #1#2
+  { \msg_expandable_error:nnnnnn {#1} {#2} { } { } { } { } }
+\cs_generate_variant:Nn \msg_expandable_error:nnnnnn { nnffff }
+\cs_generate_variant:Nn \msg_expandable_error:nnnnn  { nnfff }
+\cs_generate_variant:Nn \msg_expandable_error:nnnn   { nnff }
+\cs_generate_variant:Nn \msg_expandable_error:nnn    { nnf }
+\cs_new:Npn \__msg_expandable_error_module:nn #1#2
+  {
+    \exp_after:wN \exp_after:wN
+    \exp_after:wN \__msg_use_none_delimit_by_s_stop:w
+    \use:n { \::error ! ~ #2 : ~ #1 } \s__msg_stop
+  }
 %% File: l3file.dtx
 \tl_new:N  \l__ior_internal_tl
 \int_const:Nn \c__ior_term_ior { 16 }
@@ -26688,16 +26752,15 @@
 \cs_new_protected:Npn \color_ensure_current:
   {
     \__color_backend_pickup:N \l__color_current_tl
-    \__color_select:V \l__color_current_tl
+    \__color_select:N \l__color_current_tl
   }
 \scan_new:N \s__color_stop
-\cs_new_protected:Npn \__color_select:n #1
-  { \__color_select:w #1 \s__color_stop }
-\cs_generate_variant:Nn \__color_select:n { V }
-\cs_new_protected:Npn \__color_select:w #1 ~ #2 \s__color_stop
-  { \use:c { __color_backend_ #1 :w } #2 \s__color_stop }
+\cs_new_protected:Npn \__color_select:N #1
+  { \exp_after:wN \__color_select:nn #1 }
+\cs_new_protected:Npn \__color_select:nn #1#2
+  { \use:c { __color_backend_ #1 :n } {#2} }
 \tl_new:N \l__color_current_tl
-\tl_set:Nn \l__color_current_tl { gray~0 }
+\tl_set:Nn \l__color_current_tl { { gray } { 0 } }
 %% File: l3coffins.dtx
 \box_new:N \l__coffin_internal_box
 \dim_new:N \l__coffin_internal_dim
@@ -30448,37 +30511,6 @@
       \cs:w flag~#1 \cs_end: 0 ;
     \fi:
   }
-\cs_new:Npn \msg_expandable_error:nnnnnn #1#2#3#4#5#6
-  {
-    \exp_args:Ne \__msg_expandable_error_module:nn
-      {
-        \exp_args:Nc \exp_args:Noooo
-          { \c__msg_text_prefix_tl #1 / #2 }
-          { \tl_to_str:n {#3} }
-          { \tl_to_str:n {#4} }
-          { \tl_to_str:n {#5} }
-          { \tl_to_str:n {#6} }
-      }
-      {#1}
-  }
-\cs_new:Npn \msg_expandable_error:nnnnn #1#2#3#4#5
-  { \msg_expandable_error:nnnnnn {#1} {#2} {#3} {#4} {#5} { } }
-\cs_new:Npn \msg_expandable_error:nnnn #1#2#3#4
-  { \msg_expandable_error:nnnnnn {#1} {#2} {#3} {#4} { } { } }
-\cs_new:Npn \msg_expandable_error:nnn #1#2#3
-  { \msg_expandable_error:nnnnnn {#1} {#2} {#3} { } { } { } }
-\cs_new:Npn \msg_expandable_error:nn #1#2
-  { \msg_expandable_error:nnnnnn {#1} {#2} { } { } { } { } }
-\cs_generate_variant:Nn \msg_expandable_error:nnnnnn { nnffff }
-\cs_generate_variant:Nn \msg_expandable_error:nnnnn  { nnfff }
-\cs_generate_variant:Nn \msg_expandable_error:nnnn   { nnff }
-\cs_generate_variant:Nn \msg_expandable_error:nnn    { nnf }
-\cs_new:Npn \__msg_expandable_error_module:nn #1#2
-  {
-    \exp_after:wN \exp_after:wN
-    \exp_after:wN \__msg_use_none_delimit_by_s_stop:w
-    \use:n { \::error ! ~ #2 : ~ #1 } \s__msg_stop
-  }
 \cs_new_protected:Npn \msg_show_eval:Nn #1#2
   { \exp_args:Nf \__msg_show_eval:nnN { #1 {#2} } {#2} \tl_show:n }
 \cs_new_protected:Npn \msg_log_eval:Nn #1#2
@@ -30619,39 +30651,6 @@
   { \seq_set_from_inline_x:Nnn #1 {#2} { #3 {##1} } }
 \cs_new_protected:Npn \seq_gset_from_function:NnN #1#2#3
   { \seq_gset_from_inline_x:Nnn #1 {#2} { #3 {##1} } }
-\cs_new:Npn \seq_indexed_map_function:NN #1#2
-  {
-    \__seq_indexed_map:NN #1#2
-    \prg_break_point:Nn \seq_map_break: { }
-  }
-\cs_new_protected:Npn \seq_indexed_map_inline:Nn #1#2
-  {
-    \int_gincr:N \g__kernel_prg_map_int
-    \cs_gset_protected:cpn
-      { __seq_map_ \int_use:N \g__kernel_prg_map_int :w } ##1##2 {#2}
-    \exp_args:NNc \__seq_indexed_map:NN #1
-      { __seq_map_ \int_use:N \g__kernel_prg_map_int :w }
-    \prg_break_point:Nn \seq_map_break:
-      { \int_gdecr:N \g__kernel_prg_map_int }
-  }
-\cs_new:Npn \__seq_indexed_map:NN #1#2
-  {
-    \exp_after:wN \__seq_indexed_map:Nw
-    \exp_after:wN #2
-    \int_value:w 1
-    \exp_after:wN \use_i:nn
-    \exp_after:wN ;
-    #1
-    \prg_break: \__seq_item:n { } \prg_break_point:
-  }
-\cs_new:Npn \__seq_indexed_map:Nw #1#2 ; #3 \__seq_item:n #4
-  {
-    #3
-    #1 {#2} {#4}
-    \exp_after:wN \__seq_indexed_map:Nw
-    \exp_after:wN #1
-    \int_value:w \int_eval:w 1 + #2 ;
-  }
 \str_const:Nx \c_sys_engine_version_str
   {
     \str_case:on \c_sys_engine_str

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2020-06-18 21:08:59 UTC (rev 55586)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2020-06-03}%
+\def\ExplFileDate{2020-06-18}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \def\tempa{LaTeX2e}%

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx	2020-06-18 21:08:59 UTC (rev 55586)
@@ -19,26 +19,34 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2020-06-03}%
+\def\ExplFileDate{2020-06-18}%
 \let\ExplLoaderFileDate\ExplFileDate
 \everyjob\expandafter{\the\everyjob
   \message{L3 programming layer <\ExplFileDate>}%
 }
-\protected\def\ProvidesExplPackage#1#2#3#4%
+\protected\def\ProvidesExplPackage
+  {\@expl at provides@file@@Nnnnnn\ProvidesPackage{Package}}
+\protected\def\ProvidesExplClass
+  {\@expl at provides@file@@Nnnnnn\ProvidesClass{Document Class}}
+\protected\def\ProvidesExplFile
+  {\@expl at provides@file@@Nnnnnn\ProvidesFile{File}}
+\protected\long\def\@expl at provides@file@@Nnnnnn#1#2#3#4#5#6%
   {%
-    \ProvidesPackage{#1}[#2 \ifx\relax#3\relax\else v#3\space\fi #4]%
+    \ifnum0%
+        \ifdefined#11\fi
+        \ifx\relax#1\else1\fi
+        =11
+      \expandafter#1%
+    \else
+      \@expl at provides@generic@@wnnw{#2}%
+    \fi
+      {#3}[{#4 \ifx\relax#5\relax\else v#5\space\fi #6}]%
     \ExplSyntaxOn
-  }%
-\protected\def\ProvidesExplClass#1#2#3#4%
+  }
+\protected\long\def\@expl at provides@generic@@wnnw#1\fi#2[#3]%
   {%
-    \ProvidesClass{#1}[#2 \ifx\relax#3\relax\else v#3\space\fi #4]%
-    \ExplSyntaxOn
-  }%
-\protected\def\ProvidesExplFile#1#2#3#4%
-  {%
-    \ProvidesFile{#1}[#2 \ifx\relax#3\relax\else v#3\space\fi #4]%
-    \ExplSyntaxOn
-  }%
+    \immediate\write-1{#1: #2 #3}%
+  }
 \begingroup\expandafter\expandafter\expandafter\endgroup
 \expandafter\ifx\csname tex\string _let:D\endcsname\relax
   \expandafter\@firstofone
@@ -50,10 +58,13 @@
 \expandafter\ifx\csname tex\string _let:D\endcsname\relax
   \expandafter\endinput
 \fi
-\ifdefined\@pushfilenameaux
+\ifcsname\detokenize{g__expl_reload_bool}\endcsname
   \ExplSyntaxOn
+  \bool_gset_true:N \g__expl_reload_bool
+\else
+  \bool_new:N \g__expl_reload_bool
 \fi
-\cs_if_exist:NF \c__expl_def_ext_tl
+\tl_if_exist:NF \c__expl_def_ext_tl
   { \tl_const:Nn \c__expl_def_ext_tl { def } }
 \cs_gset_protected:Npn \__kernel_sys_configuration_load:n #1
   {
@@ -88,12 +99,19 @@
         \sys_load_deprecation:
       }
   }
-\tl_put_left:Nn \document
+\cs_if_exist:NF \@expl at sys@load at backend@@
   {
-    \endgroup
+    \tl_put_left:Nn \document
+      {
+        \endgroup
+        \@expl at sys@load at backend@@
+        \begingroup
+      }
+  }
+\cs_gset_protected:Npn \@expl at sys@load at backend@@
+  {
     \str_if_exist:NF \c_sys_backend_str
       { \sys_load_backend:n { } }
-    \begingroup
   }
 \cs_if_free:cTF { ver at expl3.sty }
   {
@@ -107,11 +125,16 @@
 \reverse_if:N \if_cs_exist:N \s__expl_stop
   \scan_new:N \s__expl_stop
 \fi:
-\tl_put_left:Nn \@pushfilename
+\cs_if_exist:NF \@expl at push@filename@@
   {
+    \tl_put_left:Nn  \@pushfilename { \@expl at push@filename@@ }
+    \tl_put_right:Nn \@pushfilename { \@expl at push@filename at aux@@ }
+  }
+\cs_gset_protected:Npn \@expl at push@filename@@
+  {
     \exp_args:Nx \__kernel_file_input_push:n
       {
-        \tl_to_str:N \@currname
+        \tl_to_str:N \@currname .
         \tl_to_str:N \@currext
       }
     \tl_put_left:Nx \l__expl_status_stack_tl
@@ -122,14 +145,18 @@
       }
     \ExplSyntaxOff
   }
-\tl_put_right:Nn \@pushfilename { \@pushfilenameaux }
-\cs_set_protected:Npn \@pushfilenameaux #1#2#3
+\cs_gset_protected:Npn \@expl at push@filename at aux@@ #1#2#3
   {
     \str_gset:Nn \g_file_curr_name_str {#3}
     #1 #2 {#3}
   }
-\tl_put_right:Nn \@popfilename
+\cs_if_exist:NF \@expl at pop@filename@@
   {
+    \tl_put_right:Nn \@popfilename
+      { \@expl at pop@filename@@ }
+  }
+\cs_gset_protected:Npn \@expl at pop@filename@@
+  {
     \__kernel_file_input_pop:
     \tl_if_empty:NTF \l__expl_status_stack_tl
       { \ExplSyntaxOff }

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2020-06-18 21:08:59 UTC (rev 55586)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2020-06-03}%
+\def\ExplFileDate{2020-06-18}%
 \let\ExplLoaderFileDate\ExplFileDate
 \ProvidesPackage{expl3}
   [%
@@ -26,21 +26,29 @@
     \ExplFileDate\space
     L3 programming layer (loader)
   ]%
-\protected\def\ProvidesExplPackage#1#2#3#4%
+\protected\def\ProvidesExplPackage
+  {\@expl at provides@file@@Nnnnnn\ProvidesPackage{Package}}
+\protected\def\ProvidesExplClass
+  {\@expl at provides@file@@Nnnnnn\ProvidesClass{Document Class}}
+\protected\def\ProvidesExplFile
+  {\@expl at provides@file@@Nnnnnn\ProvidesFile{File}}
+\protected\long\def\@expl at provides@file@@Nnnnnn#1#2#3#4#5#6%
   {%
-    \ProvidesPackage{#1}[#2 \ifx\relax#3\relax\else v#3\space\fi #4]%
+    \ifnum0%
+        \ifdefined#11\fi
+        \ifx\relax#1\else1\fi
+        =11
+      \expandafter#1%
+    \else
+      \@expl at provides@generic@@wnnw{#2}%
+    \fi
+      {#3}[{#4 \ifx\relax#5\relax\else v#5\space\fi #6}]%
     \ExplSyntaxOn
-  }%
-\protected\def\ProvidesExplClass#1#2#3#4%
+  }
+\protected\long\def\@expl at provides@generic@@wnnw#1\fi#2[#3]%
   {%
-    \ProvidesClass{#1}[#2 \ifx\relax#3\relax\else v#3\space\fi #4]%
-    \ExplSyntaxOn
-  }%
-\protected\def\ProvidesExplFile#1#2#3#4%
-  {%
-    \ProvidesFile{#1}[#2 \ifx\relax#3\relax\else v#3\space\fi #4]%
-    \ExplSyntaxOn
-  }%
+    \immediate\write-1{#1: #2 #3}%
+  }
 \begingroup\expandafter\expandafter\expandafter\endgroup
 \expandafter\ifx\csname tex\string _let:D\endcsname\relax
   \expandafter\@firstofone
@@ -52,10 +60,13 @@
 \expandafter\ifx\csname tex\string _let:D\endcsname\relax
   \expandafter\endinput
 \fi
-\ifdefined\@pushfilenameaux
+\ifcsname\detokenize{g__expl_reload_bool}\endcsname
   \ExplSyntaxOn
+  \bool_gset_true:N \g__expl_reload_bool
+\else
+  \bool_new:N \g__expl_reload_bool
 \fi
-\cs_if_exist:NF \c__expl_def_ext_tl
+\tl_if_exist:NF \c__expl_def_ext_tl
   { \tl_const:Nn \c__expl_def_ext_tl { def } }
 \cs_gset_protected:Npn \__kernel_sys_configuration_load:n #1
   {
@@ -71,7 +82,7 @@
     \@onefilewithoptions {#1} [ ] [ ]
       \c__expl_def_ext_tl
   }
-\cs_if_exist:NF \l__expl_options_clist
+\clist_if_exist:NF \l__expl_options_clist
   { \clist_new:N \l__expl_options_clist }
 \DeclareOption*
   { \clist_put_right:NV \l__expl_options_clist \CurrentOption }
@@ -103,14 +114,29 @@
         \sys_load_deprecation:
       }
   }
+\cs_if_exist:NF \@expl at sys@load at backend@@
+  {
+    \tl_put_left:Nn \document
+      {
+        \endgroup
+        \@expl at sys@load at backend@@
+        \begingroup
+      }
+  }
+\cs_gset_protected:Npn \@expl at sys@load at backend@@
+  {
+    \str_if_exist:NF \c_sys_backend_str
+      { \sys_load_backend:n { } }
+  }
 \keys_set:nV { sys } \l__expl_options_clist
 \str_if_exist:NF \c_sys_backend_str
   { \sys_load_backend:n { } }
-\cs_if_exist:NT \@pushfilenameaux
+\bool_if:NT \g__expl_reload_bool
   {
     \cs_gset_eq:NN \__kernel_sys_configuration_load:n
       \__kernel_sys_configuration_load_std:n
-    \endinput
+    \ExplSyntaxOff
+    \file_input_stop:
   }
 \cs_if_free:cTF { ver at expl3.sty }
   {
@@ -124,11 +150,16 @@
 \reverse_if:N \if_cs_exist:N \s__expl_stop
   \scan_new:N \s__expl_stop
 \fi:
-\tl_put_left:Nn \@pushfilename
+\cs_if_exist:NF \@expl at push@filename@@
   {
+    \tl_put_left:Nn  \@pushfilename { \@expl at push@filename@@ }
+    \tl_put_right:Nn \@pushfilename { \@expl at push@filename at aux@@ }
+  }
+\cs_gset_protected:Npn \@expl at push@filename@@
+  {
     \exp_args:Nx \__kernel_file_input_push:n
       {
-        \tl_to_str:N \@currname
+        \tl_to_str:N \@currname .
         \tl_to_str:N \@currext
       }
     \tl_put_left:Nx \l__expl_status_stack_tl
@@ -139,14 +170,18 @@
       }
     \ExplSyntaxOff
   }
-\tl_put_right:Nn \@pushfilename { \@pushfilenameaux }
-\cs_set_protected:Npn \@pushfilenameaux #1#2#3
+\cs_gset_protected:Npn \@expl at push@filename at aux@@ #1#2#3
   {
     \str_gset:Nn \g_file_curr_name_str {#3}
     #1 #2 {#3}
   }
-\tl_put_right:Nn \@popfilename
+\cs_if_exist:NF \@expl at pop@filename@@
   {
+    \tl_put_right:Nn \@popfilename
+      { \@expl at pop@filename@@ }
+  }
+\cs_gset_protected:Npn \@expl at pop@filename@@
+  {
     \__kernel_file_input_pop:
     \tl_if_empty:NTF \l__expl_status_stack_tl
       { \ExplSyntaxOff }

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def	2020-06-18 21:06:33 UTC (rev 55585)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def	2020-06-18 21:08:59 UTC (rev 55586)
@@ -207,6 +207,10 @@
 \cs_gset:Npn \str_if_eq_x:nnF { \str_if_eq:eeF }
 \__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \str_if_eq:eeTF }
 \cs_gset:Npn \str_if_eq_x:nnTF { \str_if_eq:eeTF }
+\__kernel_patch_deprecation:nnNNpn { 2022-07-01 } { \seq_map_indexed_inline:Nn }
+\cs_gset:Npn \seq_indexed_map_inline:Nn { \seq_map_indexed_inline:Nn }
+\__kernel_patch_deprecation:nnNNpn { 2022-07-01 } { \seq_map_indexed_function:NN }
+\cs_gset:Npn \seq_indexed_map_function:NN { \seq_map_indexed_function:NN }
 \__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \file_get:nnN }
 \cs_gset_protected:Npn \tl_set_from_file:Nnn #1#2#3
   { \file_get:nnN {#3} {#2} #1 }



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