texlive[66710] Master/texmf-dist: l3 (30mar23)

commits+karl at tug.org commits+karl at tug.org
Thu Mar 30 22:05:06 CEST 2023


Revision: 66710
          http://tug.org/svn/texlive?view=revision&revision=66710
Author:   karl
Date:     2023-03-30 22:05:05 +0200 (Thu, 30 Mar 2023)
Log Message:
-----------
l3 (30mar23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/l3backend/README.md
    trunk/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf
    trunk/Master/texmf-dist/doc/latex/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/l3bitset/l3bitset.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/l3opacity/l3opacity.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/l3doc.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.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-opacity.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend.ins
    trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.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/l3opacity/l3opacity.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/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/l3cctab.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-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/l3pdf.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.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-luatex.def
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.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/l3opacity/l3opacity.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

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.lua

Modified: trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md	2023-03-30 20:05:05 UTC (rev 66710)
@@ -6,6 +6,12 @@
 
 ## [Unreleased]
 
+## [2023-03-30]
+
+### Changed
+- Integrate l3color and l3opacity with luaotfload to ensure that
+  opacity specifications don't conflict.
+
 ## [2023-01-16]
 
 ### Changed
@@ -14,7 +20,7 @@
 ## [2022-10-26]
 
 ### Changed
-- Avoid setting media box is `\mag` is non-standard
+- Avoid setting media box if `\mag` is non-standard
 
 ## [2022-09-28]
 
@@ -282,7 +288,8 @@
 - Include `l3backend` in file names
 - Moved backend code to internal for each 'parent' module
 
-[Unreleased]: https://github.com/latex3/latex3/compare/2023-01-16...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2023-03-30...HEAD
+[2023-03-30]: https://github.com/latex3/latex3/compare/2023-01-16...2023-03-30
 [2023-01-16]: https://github.com/latex3/latex3/compare/2022-10-26...2023-01-16
 [2022-10-26]: https://github.com/latex3/latex3/compare/2022-09-28...2022-10-26
 [2022-09-28]: https://github.com/latex3/latex3/compare/2022-08-30...2022-09-28

Modified: trunk/Master/texmf-dist/doc/latex/l3backend/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3backend/README.md	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/doc/latex/l3backend/README.md	2023-03-30 20:05:05 UTC (rev 66710)
@@ -1,7 +1,7 @@
 LaTeX3 Backend Drivers
 ======================
 
-Release 2023-01-16
+Release 2023-03-30
 
 This package forms parts of `expl3`, and contains the code used to interface
 with backends (drivers) across the `expl3` codebase. The functions here are

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

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md	2023-03-30 20:05:05 UTC (rev 66710)
@@ -7,6 +7,12 @@
 
 ## [Unreleased]
 
+## [2023-03-30]
+
+### Fixed
+- 'Fallback' value used for benchmarking single op
+  (see \#1182)
+
 ## [2023-01-24]
 
 ### Changed
@@ -256,7 +262,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/2023-01-24...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2023-03-30...HEAD
+[2023-03-30]: https://github.com/latex3/latex3/compare/2023-01-24...2023-03-30
 [2023-01-24]: https://github.com/latex3/latex3/compare/2022-04-20...2023-01-24
 [2022-04-20]: https://github.com/latex3/latex3/compare/2022-04-10...2022-04-20
 [2022-04-10]: https://github.com/latex3/latex3/compare/2022-02-05...2022-04-10

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3experimental/README.md	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/doc/latex/l3experimental/README.md	2023-03-30 20:05:05 UTC (rev 66710)
@@ -1,7 +1,7 @@
 Experimental LaTeX3 Concepts
 ============================
 
-Release 2023-01-24
+Release 2023-03-30
 
 Overview
 --------

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

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3bitset/l3bitset.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/l3opacity/l3opacity.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	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md	2023-03-30 20:05:05 UTC (rev 66710)
@@ -7,6 +7,21 @@
 
 ## [Unreleased]
 
+## [2023-03-30]
+
+
+### Added
+- `\tex_endlocalcontrol:D` as expl3 name for the LuaTeX primitive
+
+### Changed
+- Allow non-integer values in color expressions
+- Restrict color expressions values to the range [0, 100]
+- Leave Greek spacing diacritics unchanged in uppercasing
+
+### Fixed
+- Fix minor version in `\c_sys_engine_version_str` for pdfTeX and LuaTeX
+  (issue [\#1186](https://github.com/latex3/latex3/issues/1186))
+
 ## [2023-02-22]
 
 ### Changed
@@ -1304,7 +1319,8 @@
 - Step functions have been added for dim variables,
   e.g. `\dim_step_inline:nnnn`
 
-[Unreleased]: https://github.com/latex3/latex3/compare/2023-02-22...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2023-03-30...HEAD
+[2023-03-30]: https://github.com/latex3/latex3/compare/2023-02-22...2023-03-30
 [2023-02-22]: https://github.com/latex3/latex3/compare/2023-02-07...2023-02-22
 [2023-02-07]: https://github.com/latex3/latex3/compare/2023-02-02...2023-02-07
 [2023-02-02]: https://github.com/latex3/latex3/compare/2023-02-01...2023-02-02

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2023-03-30 20:05:05 UTC (rev 66710)
@@ -1,7 +1,7 @@
 LaTeX3 Programming Conventions
 ==============================
 
-Release 2023-02-22
+Release 2023-03-30
 
 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	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex	2023-03-30 20:05:05 UTC (rev 66710)
@@ -62,7 +62,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2023-02-22}
+\date{Released 2023-03-30}
 
 \pagenumbering{roman}
 \maketitle

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.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	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex	2023-03-30 20:05:05 UTC (rev 66710)
@@ -32,7 +32,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2023-02-22}
+\date{Released 2023-03-30}
 
 \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	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex	2023-03-30 20:05:05 UTC (rev 66710)
@@ -32,7 +32,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2023-02-22}
+\date{Released 2023-03-30}
 
 \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	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex	2023-03-30 20:05:05 UTC (rev 66710)
@@ -32,7 +32,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2023-02-22}
+\date{Released 2023-03-30}
 
 \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	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex	2023-03-30 20:05:05 UTC (rev 66710)
@@ -53,7 +53,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2023-02-22}
+\date{Released 2023-03-30}
 
 \pagenumbering{roman}
 \maketitle

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-16}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -53,7 +53,7 @@
 %
 % \begin{implementation}
 %
-% \section{\pkg{l3backend-basics} Implementation}
+% \section{\pkg{l3backend-basics} implementation}
 %
 %    \begin{macrocode}
 %<*package>
@@ -70,27 +70,27 @@
 %    \begin{macrocode}
 \ProvidesExplFile
 %<*dvipdfmx>
-  {l3backend-dvipdfmx.def}{2023-01-16}{}
+  {l3backend-dvipdfmx.def}{2023-03-30}{}
   {L3 backend support: dvipdfmx}
 %</dvipdfmx>
 %<*dvips>
-  {l3backend-dvips.def}{2023-01-16}{}
+  {l3backend-dvips.def}{2023-03-30}{}
   {L3 backend support: dvips}
 %</dvips>
 %<*dvisvgm>
-  {l3backend-dvisvgm.def}{2023-01-16}{}
+  {l3backend-dvisvgm.def}{2023-03-30}{}
   {L3 backend support: dvisvgm}
 %</dvisvgm>
 %<*luatex>
-  {l3backend-luatex.def}{2023-01-16}{}
+  {l3backend-luatex.def}{2023-03-30}{}
   {L3 backend support: PDF output (LuaTeX)}
 %</luatex>
 %<*pdftex>
-  {l3backend-pdftex.def}{2023-01-16}{}
+  {l3backend-pdftex.def}{2023-03-30}{}
   {L3 backend support: PDF output (pdfTeX)}
 %</pdftex>
 %<*xetex>
-  {l3backend-xetex.def}{2023-01-16}{}
+  {l3backend-xetex.def}{2023-03-30}{}
   {L3 backend support: XeTeX}
 %</xetex>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-16}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -53,7 +53,7 @@
 %
 % \begin{implementation}
 %
-% \section{\pkg{l3backend-box} Implementation}
+% \section{\pkg{l3backend-box} implementation}
 %
 %    \begin{macrocode}
 %<*package>

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-16}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -53,7 +53,7 @@
 %
 % \begin{implementation}
 %
-% \section{\pkg{l3backend-color} Implementation}
+% \section{\pkg{l3backend-color} implementation}
 %
 %    \begin{macrocode}
 %<*package>
@@ -68,85 +68,6 @@
 % \texttt{dvipdfmx}/\XeTeX{} is PDF-based means it (largely) sticks closer to
 % direct PDF output.
 %
-% \subsection{Collecting information from \LaTeXe{}}
-%
-% \subsubsection{\texttt{dvips}-style}
-%
-%    \begin{macrocode}
-%<*dvisvgm|dvipdfmx|dvips|xetex>
-%    \end{macrocode}
-%
-% \begin{macro}{\@@_backend_pickup:N}
-% \begin{macro}{\@@_backend_pickup:w}
-%   Allow for \LaTeXe{} color. Here, the possible input values are limited:
-%   \texttt{dvips}-style colors can be taken as-is. The \texttt{x}-type expansion
-%   is there to cover the case where \pkg{xcolor} is in use.
-%    \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_pickup:N #1
-  {
-    \exp_args:NV \tl_if_head_is_space:nTF \current at color
-      {
-        \tl_set:Nn #1 { { gray } { 0 } }
-        \msg_warning:nnx { color } { unhandled }
-          { \current at color }
-      }
-      {
-        \exp_last_unbraced:Nx \@@_backend_pickup:w
-          { \current at color } \s_@@_stop #1
-      }
-  }
-\cs_new_protected:Npn \@@_backend_pickup:w #1 ~ #2 \s_@@_stop #3
-  { \tl_set:Nn #3 { {#1} {#2} } }
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-%    \begin{macrocode}
-%</dvisvgm|dvipdfmx|dvips|xetex>
-%    \end{macrocode}
-%
-% \subsubsection{\LuaTeX{} and \pdfTeX{}}
-%
-%    \begin{macrocode}
-%<*luatex|pdftex>
-%    \end{macrocode}
-%
-% \begin{macro}{\@@_backend_pickup:N}
-% \begin{macro}{\@@_backend_pickup:w}
-%  Same ideas, but with a different backend-dependent format.
-%    \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_pickup:N #1
-  {
-    \exp_last_unbraced:Nx \@@_backend_pickup:w
-      { \current at color } ~ 0 ~ 0 ~ 0 \s_@@_stop #1
-  }
-\cs_new_protected:Npn \@@_backend_pickup:w
-  #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \s_@@_stop #7
-  {
-    \str_if_eq:nnTF {#2} { g }
-      { \tl_set:Nn #7 { { gray } {#1} } }
-      {
-        \str_if_eq:nnTF {#4} { rg }
-          { \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 #1 { { gray } { 0 } }
-                \msg_warning:nnx { color } { unhandled }
-                  { \current at color }
-              }
-          }
-      }
-  }
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-%    \begin{macrocode}
-%</luatex|pdftex>
-%    \end{macrocode}
-%
 % \subsection{The color stack}
 %
 % For PDF-based engines, we have a color stack available inside the specials.
@@ -289,6 +210,8 @@
 %    \begin{macrocode}
 \tl_new:N \l_@@_backend_fill_tl
 \tl_new:N \l_@@_backend_stroke_tl
+\tl_set:Nn \l_@@_backend_fill_tl { 0 ~ g }
+\tl_set:Nn \l_@@_backend_stroke_tl { 0 ~ G }
 %    \end{macrocode}
 % \end{variable}
 %
@@ -1341,6 +1264,85 @@
 %</package>
 %    \end{macrocode}
 %
+% \subsection{Font handling integration}
+%
+% In \LuaTeX{} these colors should also be usable to color fonts, so
+% \texttt{luaotfload} color handling is extended to include these.
+%
+%    \begin{macrocode}
+%<*lua>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+local l = lpeg
+local spaces = l.P' '^0
+local digit16 = l.R('09', 'af', 'AF')
+
+local octet = digit16 * digit16 / function(s)
+  return string.format('%.3g ', tonumber(s, 16) / 255)
+end
+
+if luaotfload and luaotfload.set_transparent_colorstack then
+  local htmlcolor = l.Cs(octet * octet * octet * -1 * l.Cc'rg')
+  local color_export = {
+    token.create'tex_endlocalcontrol:D',
+    token.create'tex_hpack:D',
+    token.new(0, 1),
+    token.create'color_export:nnN',
+    token.new(0, 1),
+    '',
+    token.new(0, 2),
+    token.new(0, 1),
+    'backend',
+    token.new(0, 2),
+    token.create'l_tmpa_tl',
+    token.create'exp_after:wN',
+    token.create'__color_select:nn',
+    token.create'l_tmpa_tl',
+    token.new(0, 2),
+  }
+  local group_end = token.create'group_end:'
+  local value = (1 - l.P'}')^0
+  luatexbase.add_to_callback('luaotfload.parse_color', function (value)
+% Also allow HTML colors to preserve compatibility
+    local html = htmlcolor:match(value)
+    if html then return html end
+
+    tex.runtoks(function()
+      token.get_next()
+      color_export[6] = value
+      tex.sprint(-2, color_export)
+    end)
+    local list = token.scan_list()
+    if not list.head or list.head.next
+        or list.head.subtype ~= node.subtype'pdf_colorstack' then
+      error'Unexpected backend behavior'
+    end
+    local cmd = list.head.data
+    node.free(list)
+    return cmd
+  end, 'l3color')
+end
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</lua>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*luatex>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*package>
+\lua_load_module:n {l3backend-luatex}
+%</package>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</luatex>
+%    \end{macrocode}
+%
 % \end{implementation}
 %
 % \PrintIndex

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-16}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -53,7 +53,7 @@
 %
 % \begin{implementation}
 %
-% \section{\pkg{l3backend-draw} Implementation}
+% \section{\pkg{l3backend-draw} implementation}
 %
 %    \begin{macrocode}
 %<*package>

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-16}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -53,7 +53,7 @@
 %
 % \begin{implementation}
 %
-% \section{\pkg{l3backend-graphics} Implementation}
+% \section{\pkg{l3backend-graphics} implementation}
 %
 %    \begin{macrocode}
 %<*package>

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-16}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -53,7 +53,7 @@
 %
 % \begin{implementation}
 %
-% \section{\pkg{l3backend-header} Implementation}
+% \section{\pkg{l3backend-header} implementation}
 %
 %    \begin{macrocode}
 %<*dvips&header>

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-16}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -53,7 +53,7 @@
 %
 % \begin{implementation}
 %
-% \section{\pkg{l3backend-opacity} Implementation}
+% \section{\pkg{l3backend-opacity} implementation}
 %
 %    \begin{macrocode}
 %<*package>
@@ -287,6 +287,69 @@
 %</package>
 %    \end{macrocode}
 %
+% \subsection{Font handling integration}
+%
+% In \LuaTeX{} we want to use these functions also for transparent fonts
+% to avoid interference between both uses of transparency.
+%
+%    \begin{macrocode}
+%<*lua>
+%    \end{macrocode}
+%
+% First we need to check if pdfmanagement is active from Lua.
+%    \begin{macrocode}
+local pdfmanagement_active do
+  local pdfmanagement_if_active_p = token.create'pdfmanagement_if_active_p:'
+  local cmd = pdfmanagement_if_active_p.cmdname
+  if cmd == 'undefined_cs' then
+    pdfmanagement_active = false
+  else
+    token.put_next(pdfmanagement_if_active_p)
+    pdfmanagement_active = token.scan_int() ~= 0
+  end
+end
+
+if pdfmanagement_active and luaotfload and luaotfload.set_transparent_colorstack then
+  luaotfload.set_transparent_colorstack(token.create'c__opacity_backend_stack_int'.index)
+
+  local transparent_register = {
+    token.create'pdfmanagement_add:nnn',
+    token.new(0, 1),
+      'Page/Resources/ExtGState',
+    token.new(0, 2),
+    token.new(0, 1),
+      '',
+    token.new(0, 2),
+    token.new(0, 1),
+      '<</ca ',
+      '',
+      '/CA ',
+      '',
+      '>>',
+    token.new(0, 2),
+  }
+  luatexbase.add_to_callback('luaotfload.parse_transparent', function(value)
+    value = (octet * -1):match(value)
+    if not value then
+      tex.error'Invalid transparency value'
+      return
+    end
+    value = value:sub(1, -2)
+    local result = 'opacity' .. value
+    tex.runtoks(function()
+      transparent_register[6], transparent_register[10], transparent_register[12] = result, value, value
+      tex.sprint(-2, transparent_register)
+    end)
+    return '/' .. result .. ' gs'
+  end, 'l3opacity')
+end
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</lua>
+%    \end{macrocode}
+%
+%
 % \end{implementation}
 %
 % \PrintIndex

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-16}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -53,7 +53,7 @@
 %
 % \begin{implementation}
 %
-% \section{\pkg{l3backend-pdf} Implementation}
+% \section{\pkg{l3backend-pdf} implementation}
 %
 %    \begin{macrocode}
 %<*package>

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend.ins	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend.ins	2023-03-30 20:05:05 UTC (rev 66710)
@@ -137,4 +137,32 @@
       }
   }
 
+% Lua code
+
+\def\MetaPrefix{--}
+\preamble
+
+Copyright (C) 2023 The LaTeX Project
+
+It may be distributed and/or modified under the conditions of
+the LaTeX Project Public License (LPPL), either version 1.3c of
+this license or (at your option) any later version.  The latest
+version of this license is in the file:
+
+   https://www.latex-project.org/lppl.txt
+
+This file is part of the "l3backend bundle" (The Work in LPPL)
+and all files in that bundle must be distributed together.
+
+\endpreamble
+\nopostamble
+\generate
+  {
+    \file{l3backend-luatex.lua}
+      {
+        \from{l3backend-color.dtx}   {lua}
+        \from{l3backend-opacity.dtx} {lua}
+      }
+  }
+
 \endbatchfile

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-24}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -122,7 +122,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{l3benchmark}{2023-01-24}{}
+\ProvidesExplPackage{l3benchmark}{2023-03-30}{}
   {L3 Experimental benchmarking}
 %    \end{macrocode}
 %
@@ -408,7 +408,7 @@
     \tl_gset:Nn \g_@@_code_tl
       { \int_gadd:Nn \g_@@_duration_int { 0 } }
     \@@_aux:
-    \fp_gset:Nn \g_@@_one_op_fp { max(\g_benchmark_time_fp, 1e-16) }
+    \fp_gset:Nn \g_@@_one_op_fp { max(\g_benchmark_time_fp, 1e-8) }
     \int_gset:Nn \g_@@_duration_int
       { \fp_to_int:n { 65536 * \g_benchmark_duration_target_fp } }
   }

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-24}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 % \begin{documentation}
@@ -264,7 +264,7 @@
 %<@@=bitset>
 %    \end{macrocode}
 %    \begin{macrocode}
-\ProvidesExplPackage{l3bitset}{2023-01-24}{}
+\ProvidesExplPackage{l3bitset}{2023-03-30}{}
   {L3 Experimental bitset support}
 %    \end{macrocode}
 % A bitset is a string variable.

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-24}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-24}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-24}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-24}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-24}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-24}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-24}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-24}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -110,7 +110,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-24}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -1173,7 +1173,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{l3draw}{2023-01-24}{}
+\ProvidesExplPackage{l3draw}{2023-03-30}{}
   {L3 Experimental core drawing support}
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-24}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -185,7 +185,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{l3graphics}{2023-01-24}{}
+\ProvidesExplPackage{l3graphics}{2023-03-30}{}
   {L3 Experimental graphics inclusion support}
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-24}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -85,7 +85,7 @@
 %
 % \begin{implementation}
 %
-% \section{\pkg{l3opacity} Implementation}
+% \section{\pkg{l3opacity} implementation}
 %
 %    \begin{macrocode}
 %<*package>
@@ -96,7 +96,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{l3opacity}{2023-01-24}{}
+\ProvidesExplPackage{l3opacity}{2023-03-30}{}
   {L3 Experimental opacity support}
 %    \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	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -48,7 +48,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-24}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -166,7 +166,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{l3str-format}{2023-01-24}{}
+\ProvidesExplPackage{l3str-format}{2023-03-30}{}
   {L3 Experimental string formatting}
 %    \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	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-24}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -151,7 +151,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{l3sys-shell}{2023-01-24}{}
+\ProvidesExplPackage{l3sys-shell}{2023-03-30}{}
   {L3 Experimental system shell functions}
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -53,7 +53,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-24}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -672,7 +672,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{xcoffins}{2023-01-24}{}
+\ProvidesExplPackage{xcoffins}{2023-03-30}{}
   {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	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -61,7 +61,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-24}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -615,7 +615,7 @@
 %
 % \begin{implementation}
 %
-% \section{\pkg{l3galley} Implementation}
+% \section{\pkg{l3galley} implementation}
 %
 % At the implementation level, there are a number of challenges which
 % have to be overcome in order to make the galley easy to use at the
@@ -686,7 +686,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{l3galley}{2023-01-24}{}
+\ProvidesExplPackage{l3galley}{2023-03-30}{}
   {L3 Experimental galley code}
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-01-24}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -715,7 +715,7 @@
 %
 % \begin{implementation}
 %
-% \section{\pkg{xgalley} Implementation}
+% \section{\pkg{xgalley} implementation}
 %
 % This module provided a template-level interface for the \LaTeX3 galley. As
 % such, the code here is intended for design-level changes which apply to
@@ -731,7 +731,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{xgalley}{2023-01-24}{}
+\ProvidesExplPackage{xgalley}{2023-03-30}{}
   {L3 Experimental galley}
 \RequirePackage{xtemplate,l3galley}
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -24,7 +24,7 @@
 %
 %<*driver|generic|package|2ekernel>
 %</driver|generic|package|2ekernel>
-\def\ExplFileDate{2023-02-22}%
+\def\ExplFileDate{2023-03-30}%
 %<*driver>
 \documentclass[full]{l3doc}
 \usepackage{graphicx}
@@ -51,7 +51,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -1267,6 +1267,9 @@
 %   latter function does not turn the control sequence in question into
 %   "\scan_stop:"! This can be useful when dealing with control
 %   sequences which cannot be entered as a single token.
+%   \begin{texnote}
+%     These are \TeX{}'s \tn{ifdefined} and \tn{ifcsname}, respectively.
+%   \end{texnote}
 % \end{function}
 %
 % \begin{function}[EXP]

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -1319,8 +1319,10 @@
       {
         { pdftex }
           {
-            \fp_eval:n { round(\int_use:N \tex_pdftexversion:D / 100 , 2) }
+            \int_div_truncate:nn { \tex_pdftexversion:D } { 100 }
             .
+            \int_mod:nn { \tex_pdftexversion:D } { 100 }
+            .
             \tex_pdftexrevision:D
           }
         { ptex }
@@ -1338,8 +1340,10 @@
           }
         { luatex }
           {
-            \fp_eval:n { round(\int_use:N \tex_luatexversion:D / 100, 2) }
+            \int_div_truncate:nn { \tex_luatexversion:D } { 100 }
             .
+            \int_mod:nn { \tex_luatexversion:D } { 100 }
+            .
             \tex_luatexrevision:D
           }
         { uptex }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3color.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3color.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -155,13 +155,13 @@
 % In addition to allowing specification of color by model and values,
 % \pkg{l3color} also supports color expressions. These are created
 % by combining one or more color names, with the amount of each specified
-% as a percentage. The latter is given between |!| symbols in the expression.
-% Thus for example
+% as a value in the range $0$--$100$. The value should be given between
+% |!| symbols in the expression. Thus for example
 % \begin{verbatim}
 %   red!50!green
 % \end{verbatim}
-% is a mixture of $50\,\%$ red and $50\,\%$ green. A trailing percentage is
-% interpreted as implicitly followed by |white|, and so
+% is a mixture of $50\,\%$ red and $50\,\%$ green. A trailing value is
+% interpreted as implicitly followed by |!white|, and so
 % \begin{verbatim}
 %   red!25
 % \end{verbatim}
@@ -643,6 +643,14 @@
 %    \end{macrocode}
 % \end{variable}
 %
+% \begin{variable}{\l_@@_ignore_error_bool}
+%   Used to avoid issuing multiple errors if there is a change-of-model with
+%   input container an error.
+%    \begin{macrocode}
+\bool_new:N \l_@@_ignore_error_bool
+%    \end{macrocode}
+% \end{variable}
+%
 % \subsection{Utility functions}
 %
 % \begin{macro}[pTF, EXP]{\color_if_exist:n}
@@ -825,6 +833,7 @@
 % \begin{macro}{\@@_parse:Nw}
 % \begin{macro}{\@@_parse_loop_init:Nnn}
 % \begin{macro}{\@@_parse_loop:w}
+% \begin{macro}{\@@_parse_loop_check:nn}
 % \begin{macro}{\@@_parse_loop:nn}
 % \begin{macro}{\@@_parse_gray:n, \@@_parse_std:n}
 % \begin{macro}{\@@_parse_break:w}
@@ -936,18 +945,12 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_parse_loop:w #1 ! #2 ! #3 ! #4 ! #5 \s_@@_stop
   {
-    \bool_lazy_or:nnF
-      { \tl_if_blank_p:n {#1} }
-      { \int_compare_p:nNn {#1} = { 100 } }
+    \tl_if_blank:nF {#1}
       {
-        \int_compare:nNnTF {#1} = { 0 }
+        \bool_lazy_and:nnTF
+          { \fp_compare_p:nNn {#1} > { 0 } }
+          { \fp_compare_p:nNn {#1} < { 100 } }
           {
-            \tl_if_blank:nTF {#2}
-              { \@@_extract:nNN { white } }
-              { \@@_extract:nNN {#2} }
-                \l_@@_model_tl \l_@@_value_tl
-          }
-          {
             \use:x
               {
                 \@@_parse_loop:nn {#1}
@@ -954,6 +957,7 @@
                   { \tl_if_blank:nTF {#2} { white } {#2} }
               }
           }
+          { \@@_parse_loop_check:nn {#1} {#2} }
       }
     \tl_if_blank:nF {#3}
       { \@@_parse_loop:w #3 ! #4 ! #5 \s_@@_stop }
@@ -960,6 +964,28 @@
     \@@_parse_end:
   }
 %    \end{macrocode}
+%   As these are unusual cases, we accept slower performance here for clearer
+%   code: check for the error conditions, handle the boundary cases after
+%   that.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_parse_loop_check:nn #1#2
+  {
+    \bool_if:NF \l_@@_ignore_error_bool
+      {
+        \bool_lazy_or:nnT
+          { \fp_compare_p:nNn {#1} < { 0 } }
+          { \fp_compare_p:nNn {#1} > { 100 } }
+          { \msg_error:nnnnn { color } { out-of-range } {#1} { 0 } { 100 } }
+      }
+    \fp_compare:nNnF {#1} > \c_zero_fp
+      {
+        \tl_if_blank:nTF {#2}
+          { \@@_extract:nNN { white } }
+          { \@@_extract:nNN {#2} }
+            \l_@@_model_tl \l_@@_value_tl
+      }
+  }
+%    \end{macrocode}
 %   The \enquote{payload} of calculation in the loop first. If the model for
 %   the upcoming color is different from that of the existing (partial) color,
 %   convert the model. For |gray| the two are flipped round so that the outcome
@@ -1065,6 +1091,7 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
+% \end{macro}
 %
 % \begin{macro}[EXP]
 %   {
@@ -1779,6 +1806,7 @@
             \prop_if_in:cnF { l_@@_named_ #1 _prop } {##1}
               {
                 \group_begin:
+                  \bool_set_true:N \l_@@_ignore_error_bool
                   \tl_set:cn { l_@@_named_ #3 _tl } {##1}
                   \@@_parse:nN {#2} \l_@@_internal_tl
                 \exp_args:NNNV \group_end:
@@ -3116,6 +3144,13 @@
     LaTeX~was~asked~to~define~a~new~color~model~called~'#1',~but~
     this~color~model~already~exists.
   }
+\msg_new:nnnn { color } { out-of-range }
+  { Input~value~#1~out~of~range~[#2,~#3]. }
+  {
+    LaTeX~was~expecting~a~value~in~the~range~[#2,~#3]~as~part~of~a~color,~
+    but~you~gave~#1.~LaTeX~will~assume~you~meant~the~limit~of~the~range~
+    and~continue.
+  }
 \msg_new:nnnn { color } { separation-alternative-model }
   { Separation~color~space~'#1'~require~an~alternative~model. }
   {

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -85,7 +85,7 @@
 %    require you to do updates, if the class changes.}}
 %
 % \author{\Team}
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 % \maketitle
 % \tableofcontents
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -63,7 +63,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 % \maketitle
 %
 % \begin{documentation}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 % \maketitle
 %
 % \begin{documentation}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -49,7 +49,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -681,6 +681,8 @@
 %   can be accessed as \texttt{deg}.
 % \end{variable}
 %
+% \section{Scratch variables}
+%
 % \begin{variable}[module = fp]{\l_tmpa_fp, \l_tmpb_fp}
 %   Scratch floating points for local assignment. These are never used by
 %   the kernel code, and so are safe for use with any \LaTeX3-defined

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -832,6 +832,7 @@
   \@@_primitive:NN \dvivariable           \tex_dvivariable:D
   \@@_primitive:NN \eTeXglueshrinkorder   \tex_eTeXglueshrinkorder:D
   \@@_primitive:NN \eTeXgluestretchorder  \tex_eTeXgluestretchorder:D
+  \@@_primitive:NN \endlocalcontrol       \tex_endlocalcontrol:D
   \@@_primitive:NN \etoksapp              \tex_etoksapp:D
   \@@_primitive:NN \etokspre              \tex_etokspre:D
   \@@_primitive:NN \exceptionpenalty      \tex_exceptionpenalty:D

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %
@@ -885,6 +885,8 @@
 % \begin{macro}[EXP,pTF]{\@@_change_case_if_greek:n}
 % \begin{macro}[EXP]{\@@_change_case_if_greek:n}
 % \begin{macro}[EXP,pTF]{\@@_change_case_if_greek:n}
+% \begin{macro}[EXP,pTF]{\@@_change_case_if_greek_spacing_diacritic:n}
+% \begin{macro}[EXP]{\@@_change_case_if_greek_spacing_diacritic:n}
 % \begin{macro}[EXP,pTF]{\@@_change_case_if_greek_accent:n}
 % \begin{macro}[EXP]{\@@_change_case_if_greek_accent:n}
 % \begin{macro}[EXP,pTF]{\@@_change_case_if_greek_diacritic:n}
@@ -903,19 +905,32 @@
 %   although necessarily the implementation is somewhat different. The
 %   \emph{ypogegrammeni} is filtered out here as it is not actually in the
 %   Greek range, so gets lost if we leave until later. The one Greek codepoint
-%   we skip is the numeral sign: it's got an awkward NFD for \pdfTeX{} so is
-%   best left unchanged.
+%   we skip is the numeral sign and question mark: the first has an awkward NFD
+%   for \pdfTeX{} so is best left unchanged, and the latter has issues concerning
+%   how \texttt{LGR} outputs the input and output (differently!).
 %    \begin{macrocode}
 \cs_new:Npn \@@_change_case_upper_el:nnnn #1#2#3#4
   {
     \bool_lazy_and:nnTF
       { \@@_change_case_if_greek_p:n {#4} }
-      { ! \@@_codepoint_compare_p:nNn {#4} = { "0374 } }
       {
-        \exp_args:Ne \@@_change_case_upper_el:nnn
+        ! \bool_lazy_or_p:nn
+          { \@@_codepoint_compare_p:nNn {#4} = { "0374 } }
+          { \@@_codepoint_compare_p:nNn {#4} = { "037E } }
+      }
+      {
+        \@@_change_case_if_greek_spacing_diacritic:nTF {#4}
           {
-            \codepoint_to_nfd:n { \@@_codepoint_from_chars:Nw #4 }
+            \@@_change_case_store:n {#4}
+            \@@_change_case_loop:nnw
           }
+          {
+            \exp_args:Ne \@@_change_case_upper_el:nnn
+              {
+                \codepoint_to_nfd:n
+                  { \@@_codepoint_from_chars:Nw #4 }
+              }
+          }
             {#2} {#3}
       }
       {
@@ -1247,6 +1262,84 @@
       \fi:
     \fi:
   }
+\prg_new_conditional:Npnn \@@_change_case_if_greek_spacing_diacritic:n
+  #1 { TF }
+  {
+    \exp_args:Nf \@@_change_case_if_greek_spacing_diacritic:n
+      { \int_eval:n { \@@_codepoint_from_chars:Nw #1 } }
+  }
+\cs_new:Npn \@@_change_case_if_greek_spacing_diacritic:n #1
+  {
+    \if_int_compare:w #1 < "1FBD \exp_stop_f:
+      \if_int_compare:w #1 = "037A \exp_stop_f:
+        \prg_return_true:
+      \else:
+        \prg_return_false:
+      \fi:
+    \else:
+      \if_int_compare:w #1 = "1FBD \exp_stop_f:
+        \prg_return_true:
+      \else:
+        \if_int_compare:w #1 = "1FBF \exp_stop_f:
+          \prg_return_true:
+        \else:
+          \if_int_compare:w #1 = "1FC0 \exp_stop_f:
+            \prg_return_true:
+          \else:
+            \if_int_compare:w #1 = "1FC1 \exp_stop_f:
+              \prg_return_true:
+            \else:
+              \if_int_compare:w #1 = "1FCD \exp_stop_f:
+                \prg_return_true:
+              \else:
+                \if_int_compare:w #1 = "1FCE \exp_stop_f:
+                  \prg_return_true:
+                \else:
+                  \if_int_compare:w #1 = "1FCF \exp_stop_f:
+                    \prg_return_true:
+                   \else:
+                    \if_int_compare:w #1 = "1FDD \exp_stop_f:
+                      \prg_return_true:
+                    \else:
+                      \if_int_compare:w #1 = "1FDE \exp_stop_f:
+                        \prg_return_true:
+                      \else:
+                        \if_int_compare:w #1 = "1FDF \exp_stop_f:
+                          \prg_return_true:
+                        \else:
+                          \if_int_compare:w #1 = "1FED \exp_stop_f:
+                            \prg_return_true:
+                          \else:
+                            \if_int_compare:w #1 = "1FEE \exp_stop_f:
+                              \prg_return_true:
+                            \else:
+                              \if_int_compare:w #1 = "1FEF \exp_stop_f:
+                                \prg_return_true:
+                              \else:
+                                \if_int_compare:w #1 = "1FFD \exp_stop_f:
+                                  \prg_return_true:
+                                \else:
+                                  \if_int_compare:w #1 = "1FFE \exp_stop_f:
+                                    \prg_return_true:
+                                  \else:
+                                    \prg_return_false:
+                                  \fi:
+                                \fi:
+                              \fi:
+                            \fi:
+                          \fi:
+                        \fi:
+                      \fi:
+                    \fi:
+                  \fi:
+                \fi:
+              \fi:
+            \fi:
+          \fi:
+        \fi:
+      \fi:
+    \fi:
+  }
 \prg_new_conditional:Npnn \@@_change_case_if_greek_diacritic:n
   #1 { TF , p }
   {
@@ -1267,11 +1360,7 @@
           \if_int_compare:w #1 = "0314 \exp_stop_f:
             \prg_return_true:
           \else:
-            \if_int_compare:w #1 = "0343 \exp_stop_f:
-              \prg_return_true:
-            \else:
-              \prg_return_false:
-            \fi:
+            \prg_return_false:
           \fi:
         \fi:
       \fi:
@@ -1351,6 +1440,8 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
+% \end{macro}
+% \end{macro}
 % \begin{macro}[EXP]
 %   {\@@_change_case_boundary_upper_el:Nnnw, \@@_change_case_boundary_upper_el-x-iota:Nnnw}
 % \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:nnN}
@@ -1383,9 +1474,13 @@
   }
 \cs_new:Npn \@@_change_case_boundary_upper_el:nnn #1#2#3
   {
-    \bool_lazy_or:nnTF
-      { \@@_codepoint_compare_p:nNn {#3} = { "03AE } }
-      { \@@_codepoint_compare_p:nNn {#3} = { "1F22 } }
+    \bool_lazy_any:nTF
+      {
+        { \@@_codepoint_compare_p:nNn {#3} = { "0389 } }
+        { \@@_codepoint_compare_p:nNn {#3} = { "03AE } }
+        { \@@_codepoint_compare_p:nNn {#3} = { "1F22 } }
+        { \@@_codepoint_compare_p:nNn {#3} = { "1F2A } }
+      }
       { \@@_change_case_boundary_upper_el:nnnw {#1} {#2} {#3} }
       { \@@_change_case_loop:nnw {#1} {#2} #3 }
   }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-02-22}
+% \date{Released 2023-03-30}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def	2023-03-30 20:05:05 UTC (rev 66710)
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvipdfmx.def}{2023-01-16}{}
+  {l3backend-dvipdfmx.def}{2023-03-30}{}
   {L3 backend support: dvipdfmx}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -66,21 +66,6 @@
 \cs_new_protected:Npn \__kernel_backend_scope_end:
   { \__kernel_backend_literal:n { x:grestore } }
 %% File: l3backend-color.dtx
-\cs_new_protected:Npn \__color_backend_pickup:N #1
-  {
-    \exp_args:NV \tl_if_head_is_space:nTF \current at color
-      {
-        \tl_set:Nn #1 { { gray } { 0 } }
-        \msg_warning:nnx { color } { unhandled }
-          { \current at color }
-      }
-      {
-        \exp_last_unbraced:Nx \__color_backend_pickup:w
-          { \current at color } \s__color_stop #1
-      }
-  }
-\cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
-  { \tl_set:Nn #3 { {#1} {#2} } }
 \cs_new_protected:Npn \__color_backend_select:n #1
   { \__kernel_backend_literal:n { pdf : bc ~ [ #1 ] } }
 \cs_new_eq:NN \__color_backend_select_cmyk:n \__color_backend_select:n

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def	2023-03-30 20:05:05 UTC (rev 66710)
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvips.def}{2023-01-16}{}
+  {l3backend-dvips.def}{2023-03-30}{}
   {L3 backend support: dvips}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -83,21 +83,6 @@
 \cs_new_protected:Npn \__kernel_backend_scope_end:
   { \__kernel_backend_literal:n { ps:grestore } }
 %% File: l3backend-color.dtx
-\cs_new_protected:Npn \__color_backend_pickup:N #1
-  {
-    \exp_args:NV \tl_if_head_is_space:nTF \current at color
-      {
-        \tl_set:Nn #1 { { gray } { 0 } }
-        \msg_warning:nnx { color } { unhandled }
-          { \current at color }
-      }
-      {
-        \exp_last_unbraced:Nx \__color_backend_pickup:w
-          { \current at color } \s__color_stop #1
-      }
-  }
-\cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
-  { \tl_set:Nn #3 { {#1} {#2} } }
 \cs_new_protected:Npn \__color_backend_select_cmyk:n #1
   { \__color_backend_select:n { cmyk ~ #1 } }
 \cs_new_protected:Npn \__color_backend_select_gray:n #1

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def	2023-03-30 20:05:05 UTC (rev 66710)
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvisvgm.def}{2023-01-16}{}
+  {l3backend-dvisvgm.def}{2023-03-30}{}
   {L3 backend support: dvisvgm}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -97,21 +97,6 @@
   }
 \cs_generate_variant:Nn \__kernel_backend_scope:n { x }
 %% File: l3backend-color.dtx
-\cs_new_protected:Npn \__color_backend_pickup:N #1
-  {
-    \exp_args:NV \tl_if_head_is_space:nTF \current at color
-      {
-        \tl_set:Nn #1 { { gray } { 0 } }
-        \msg_warning:nnx { color } { unhandled }
-          { \current at color }
-      }
-      {
-        \exp_last_unbraced:Nx \__color_backend_pickup:w
-          { \current at color } \s__color_stop #1
-      }
-  }
-\cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
-  { \tl_set:Nn #3 { {#1} {#2} } }
 \cs_new_protected:Npn \__color_backend_select_cmyk:n #1
   { \__color_backend_select:n { cmyk ~ #1 } }
 \cs_new_protected:Npn \__color_backend_select_gray:n #1

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def	2023-03-30 20:05:05 UTC (rev 66710)
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-luatex.def}{2023-01-16}{}
+  {l3backend-luatex.def}{2023-03-30}{}
   {L3 backend support: PDF output (LuaTeX)}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -82,30 +82,6 @@
   }
 \cs_generate_variant:Nn \__kernel_backend_matrix:n { x }
 %% File: l3backend-color.dtx
-\cs_new_protected:Npn \__color_backend_pickup:N #1
-  {
-    \exp_last_unbraced:Nx \__color_backend_pickup:w
-      { \current at color } ~ 0 ~ 0 ~ 0 \s__color_stop #1
-  }
-\cs_new_protected:Npn \__color_backend_pickup:w
-  #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \s__color_stop #7
-  {
-    \str_if_eq:nnTF {#2} { g }
-      { \tl_set:Nn #7 { { gray } {#1} } }
-      {
-        \str_if_eq:nnTF {#4} { rg }
-          { \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 #1 { { gray } { 0 } }
-                \msg_warning:nnx { color } { unhandled }
-                  { \current at color }
-              }
-          }
-      }
-  }
 \int_new:N \l__color_backend_stack_int
 \cs_new_protected:Npn \__kernel_color_backend_stack_init:Nnn #1#2#3
   {
@@ -128,6 +104,8 @@
   }
 \tl_new:N \l__color_backend_fill_tl
 \tl_new:N \l__color_backend_stroke_tl
+\tl_set:Nn \l__color_backend_fill_tl { 0 ~ g }
+\tl_set:Nn \l__color_backend_stroke_tl { 0 ~ G }
 \cs_new_protected:Npn \__color_backend_select_cmyk:n #1
   { \__color_backend_select:nn { #1 ~ k } { #1 ~ K } }
 \cs_new_protected:Npn \__color_backend_select_gray:n #1
@@ -343,6 +321,7 @@
 \cs_new_eq:NN \__color_backend_stroke_devicen:nn \__color_backend_stroke_separation:nn
 \cs_new_eq:NN \__color_backend_fill_reset: \__color_backend_reset:
 \cs_new_eq:NN \__color_backend_stroke_reset: \__color_backend_reset:
+\lua_load_module:n {l3backend-luatex}
 %% File: l3backend-box.dtx
 \cs_new_protected:Npn \__box_backend_clip:N #1
   {

Added: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.lua	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.lua	2023-03-30 20:05:05 UTC (rev 66710)
@@ -0,0 +1,116 @@
+--
+-- This is file `l3backend-luatex.lua',
+-- generated with the docstrip utility.
+--
+-- The original source files were:
+--
+-- l3backend-color.dtx  (with options: `lua')
+-- l3backend-opacity.dtx  (with options: `lua')
+-- 
+-- Copyright (C) 2023 The LaTeX Project
+-- 
+-- It may be distributed and/or modified under the conditions of
+-- the LaTeX Project Public License (LPPL), either version 1.3c of
+-- this license or (at your option) any later version.  The latest
+-- version of this license is in the file:
+-- 
+--    https://www.latex-project.org/lppl.txt
+-- 
+-- This file is part of the "l3backend bundle" (The Work in LPPL)
+-- and all files in that bundle must be distributed together.
+-- 
+-- File: l3backend-color.dtx
+local l = lpeg
+local spaces = l.P' '^0
+local digit16 = l.R('09', 'af', 'AF')
+
+local octet = digit16 * digit16 / function(s)
+  return string.format('%.3g ', tonumber(s, 16) / 255)
+end
+
+if luaotfload and luaotfload.set_transparent_colorstack then
+  local htmlcolor = l.Cs(octet * octet * octet * -1 * l.Cc'rg')
+  local color_export = {
+    token.create'tex_endlocalcontrol:D',
+    token.create'tex_hpack:D',
+    token.new(0, 1),
+    token.create'color_export:nnN',
+    token.new(0, 1),
+    '',
+    token.new(0, 2),
+    token.new(0, 1),
+    'backend',
+    token.new(0, 2),
+    token.create'l_tmpa_tl',
+    token.create'exp_after:wN',
+    token.create'__color_select:nn',
+    token.create'l_tmpa_tl',
+    token.new(0, 2),
+  }
+  local group_end = token.create'group_end:'
+  local value = (1 - l.P'}')^0
+  luatexbase.add_to_callback('luaotfload.parse_color', function (value)
+    local html = htmlcolor:match(value)
+    if html then return html end
+
+    tex.runtoks(function()
+      token.get_next()
+      color_export[6] = value
+      tex.sprint(-2, color_export)
+    end)
+    local list = token.scan_list()
+    if not list.head or list.head.next
+        or list.head.subtype ~= node.subtype'pdf_colorstack' then
+      error'Unexpected backend behavior'
+    end
+    local cmd = list.head.data
+    node.free(list)
+    return cmd
+  end, 'l3color')
+end
+-- File: l3backend-opacity.dtx
+local pdfmanagement_active do
+  local pdfmanagement_if_active_p = token.create'pdfmanagement_if_active_p:'
+  local cmd = pdfmanagement_if_active_p.cmdname
+  if cmd == 'undefined_cs' then
+    pdfmanagement_active = false
+  else
+    token.put_next(pdfmanagement_if_active_p)
+    pdfmanagement_active = token.scan_int() ~= 0
+  end
+end
+
+if pdfmanagement_active and luaotfload and luaotfload.set_transparent_colorstack then
+  luaotfload.set_transparent_colorstack(token.create'c__opacity_backend_stack_int'.index)
+
+  local transparent_register = {
+    token.create'pdfmanagement_add:nnn',
+    token.new(0, 1),
+      'Page/Resources/ExtGState',
+    token.new(0, 2),
+    token.new(0, 1),
+      '',
+    token.new(0, 2),
+    token.new(0, 1),
+      '<</ca ',
+      '',
+      '/CA ',
+      '',
+      '>>',
+    token.new(0, 2),
+  }
+  luatexbase.add_to_callback('luaotfload.parse_transparent', function(value)
+    value = (octet * -1):match(value)
+    if not value then
+      tex.error'Invalid transparency value'
+      return
+    end
+    value = value:sub(1, -2)
+    local result = 'opacity' .. value
+    tex.runtoks(function()
+      transparent_register[6], transparent_register[10], transparent_register[12] = result, value, value
+      tex.sprint(-2, transparent_register)
+    end)
+    return '/' .. result .. ' gs'
+  end, 'l3opacity')
+end


Property changes on: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.lua
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def	2023-03-30 20:05:05 UTC (rev 66710)
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-pdftex.def}{2023-01-16}{}
+  {l3backend-pdftex.def}{2023-03-30}{}
   {L3 backend support: PDF output (pdfTeX)}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -82,30 +82,6 @@
   }
 \cs_generate_variant:Nn \__kernel_backend_matrix:n { x }
 %% File: l3backend-color.dtx
-\cs_new_protected:Npn \__color_backend_pickup:N #1
-  {
-    \exp_last_unbraced:Nx \__color_backend_pickup:w
-      { \current at color } ~ 0 ~ 0 ~ 0 \s__color_stop #1
-  }
-\cs_new_protected:Npn \__color_backend_pickup:w
-  #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \s__color_stop #7
-  {
-    \str_if_eq:nnTF {#2} { g }
-      { \tl_set:Nn #7 { { gray } {#1} } }
-      {
-        \str_if_eq:nnTF {#4} { rg }
-          { \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 #1 { { gray } { 0 } }
-                \msg_warning:nnx { color } { unhandled }
-                  { \current at color }
-              }
-          }
-      }
-  }
 \int_new:N \l__color_backend_stack_int
 \cs_new_protected:Npn \__kernel_color_backend_stack_init:Nnn #1#2#3
   {
@@ -128,6 +104,8 @@
   }
 \tl_new:N \l__color_backend_fill_tl
 \tl_new:N \l__color_backend_stroke_tl
+\tl_set:Nn \l__color_backend_fill_tl { 0 ~ g }
+\tl_set:Nn \l__color_backend_stroke_tl { 0 ~ G }
 \cs_new_protected:Npn \__color_backend_select_cmyk:n #1
   { \__color_backend_select:nn { #1 ~ k } { #1 ~ K } }
 \cs_new_protected:Npn \__color_backend_select_gray:n #1

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def	2023-03-30 20:05:05 UTC (rev 66710)
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-xetex.def}{2023-01-16}{}
+  {l3backend-xetex.def}{2023-03-30}{}
   {L3 backend support: XeTeX}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -66,21 +66,6 @@
 \cs_new_protected:Npn \__kernel_backend_scope_end:
   { \__kernel_backend_literal:n { x:grestore } }
 %% File: l3backend-color.dtx
-\cs_new_protected:Npn \__color_backend_pickup:N #1
-  {
-    \exp_args:NV \tl_if_head_is_space:nTF \current at color
-      {
-        \tl_set:Nn #1 { { gray } { 0 } }
-        \msg_warning:nnx { color } { unhandled }
-          { \current at color }
-      }
-      {
-        \exp_last_unbraced:Nx \__color_backend_pickup:w
-          { \current at color } \s__color_stop #1
-      }
-  }
-\cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
-  { \tl_set:Nn #3 { {#1} {#2} } }
 \cs_new_protected:Npn \__color_backend_select:n #1
   { \__kernel_backend_literal:n { pdf : bc ~ [ #1 ] } }
 \cs_new_eq:NN \__color_backend_select_cmyk:n \__color_backend_select:n

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty	2023-03-30 20:05:05 UTC (rev 66710)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3benchmark.dtx
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3benchmark}{2023-01-24}{}
+\ProvidesExplPackage{l3benchmark}{2023-03-30}{}
   {L3 Experimental benchmarking}
 \fp_new:N \g_benchmark_duration_target_fp
 \fp_gset:Nn \g_benchmark_duration_target_fp { 1 }
@@ -175,7 +175,7 @@
     \tl_gset:Nn \g__benchmark_code_tl
       { \int_gadd:Nn \g__benchmark_duration_int { 0 } }
     \__benchmark_aux:
-    \fp_gset:Nn \g__benchmark_one_op_fp { max(\g_benchmark_time_fp, 1e-16) }
+    \fp_gset:Nn \g__benchmark_one_op_fp { max(\g_benchmark_time_fp, 1e-8) }
     \int_gset:Nn \g__benchmark_duration_int
       { \fp_to_int:n { 65536 * \g_benchmark_duration_target_fp } }
   }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty	2023-03-30 20:05:05 UTC (rev 66710)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: l3bitset.dtx
-\ProvidesExplPackage{l3bitset}{2023-01-24}{}
+\ProvidesExplPackage{l3bitset}{2023-03-30}{}
   {L3 Experimental bitset support}
 \cs_new_protected:Npn \bitset_new:N #1
   {

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty	2023-03-30 20:05:05 UTC (rev 66710)
@@ -28,7 +28,7 @@
 %% 
 %% File: l3draw.dtx
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3draw}{2023-01-24}{}
+\ProvidesExplPackage{l3draw}{2023-03-30}{}
   {L3 Experimental core drawing support}
 \scan_new:N \s__draw_mark
 \scan_new:N \s__draw_stop

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty	2023-03-30 20:05:05 UTC (rev 66710)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3graphics.dtx
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3graphics}{2023-01-24}{}
+\ProvidesExplPackage{l3graphics}{2023-03-30}{}
   {L3 Experimental graphics inclusion support}
 \dim_new:N \l__graphics_internal_dim
 \ior_new:N \l__graphics_internal_ior

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty	2023-03-30 20:05:05 UTC (rev 66710)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3opacity.dtx
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3opacity}{2023-01-24}{}
+\ProvidesExplPackage{l3opacity}{2023-03-30}{}
   {L3 Experimental opacity support}
 \cs_new_protected:Npn \opacity_select:n #1
   { \__opacity_select:nN {#1} \__opacity_backend_select:n }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty	2023-03-30 20:05:05 UTC (rev 66710)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3str-format.dtx
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3str-format}{2023-01-24}{}
+\ProvidesExplPackage{l3str-format}{2023-03-30}{}
   {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	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty	2023-03-30 20:05:05 UTC (rev 66710)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3sys-shell.dtx
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3sys-shell}{2023-01-24}{}
+\ProvidesExplPackage{l3sys-shell}{2023-03-30}{}
   {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	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty	2023-03-30 20:05:05 UTC (rev 66710)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: xcoffins.dtx
-\ProvidesExplPackage{xcoffins}{2023-01-24}{}
+\ProvidesExplPackage{xcoffins}{2023-03-30}{}
   {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	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty	2023-03-30 20:05:05 UTC (rev 66710)
@@ -32,7 +32,7 @@
       }%
     \endinput
   }
-\ProvidesExplPackage{l3galley}{2023-01-24}{}
+\ProvidesExplPackage{l3galley}{2023-03-30}{}
   {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	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty	2023-03-30 20:05:05 UTC (rev 66710)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: xgalley.dtx
-\ProvidesExplPackage{xgalley}{2023-01-24}{}
+\ProvidesExplPackage{xgalley}{2023-03-30}{}
   {L3 Experimental galley}
 \RequirePackage{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	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2023-03-30 20:05:05 UTC (rev 66710)
@@ -71,7 +71,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2023-02-22}%
+\def\ExplFileDate{2023-03-30}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -957,6 +957,7 @@
   \__kernel_primitive:NN \dvivariable           \tex_dvivariable:D
   \__kernel_primitive:NN \eTeXglueshrinkorder   \tex_eTeXglueshrinkorder:D
   \__kernel_primitive:NN \eTeXgluestretchorder  \tex_eTeXgluestretchorder:D
+  \__kernel_primitive:NN \endlocalcontrol       \tex_endlocalcontrol:D
   \__kernel_primitive:NN \etoksapp              \tex_etoksapp:D
   \__kernel_primitive:NN \etokspre              \tex_etokspre:D
   \__kernel_primitive:NN \exceptionpenalty      \tex_exceptionpenalty:D
@@ -28485,6 +28486,7 @@
 \int_new:N \l__color_internal_int
 \tl_new:N \l__color_internal_tl
 \scan_new:N \s__color_mark
+\bool_new:N \l__color_ignore_error_bool
 \prg_new_conditional:Npnn \color_if_exist:n #1 { p , T, F, TF }
   {
     \prop_if_exist:cTF { l__color_named_ #1 _prop }
@@ -28651,18 +28653,12 @@
   }
 \cs_new_protected:Npn \__color_parse_loop:w #1 ! #2 ! #3 ! #4 ! #5 \s__color_stop
   {
-    \bool_lazy_or:nnF
-      { \tl_if_blank_p:n {#1} }
-      { \int_compare_p:nNn {#1} = { 100 } }
+    \tl_if_blank:nF {#1}
       {
-        \int_compare:nNnTF {#1} = { 0 }
+        \bool_lazy_and:nnTF
+          { \fp_compare_p:nNn {#1} > { 0 } }
+          { \fp_compare_p:nNn {#1} < { 100 } }
           {
-            \tl_if_blank:nTF {#2}
-              { \__color_extract:nNN { white } }
-              { \__color_extract:nNN {#2} }
-                \l__color_model_tl \l__color_value_tl
-          }
-          {
             \use:x
               {
                 \__color_parse_loop:nn {#1}
@@ -28669,11 +28665,29 @@
                   { \tl_if_blank:nTF {#2} { white } {#2} }
               }
           }
+          { \__color_parse_loop_check:nn {#1} {#2} }
       }
     \tl_if_blank:nF {#3}
       { \__color_parse_loop:w #3 ! #4 ! #5 \s__color_stop }
     \__color_parse_end:
   }
+\cs_new_protected:Npn \__color_parse_loop_check:nn #1#2
+  {
+    \bool_if:NF \l__color_ignore_error_bool
+      {
+        \bool_lazy_or:nnT
+          { \fp_compare_p:nNn {#1} < { 0 } }
+          { \fp_compare_p:nNn {#1} > { 100 } }
+          { \msg_error:nnnnn { color } { out-of-range } {#1} { 0 } { 100 } }
+      }
+    \fp_compare:nNnF {#1} > \c_zero_fp
+      {
+        \tl_if_blank:nTF {#2}
+          { \__color_extract:nNN { white } }
+          { \__color_extract:nNN {#2} }
+            \l__color_model_tl \l__color_value_tl
+      }
+  }
 \cs_new_protected:Npn \__color_parse_loop:nn #1#2
   {
     \color_if_exist:nTF {#2}
@@ -29184,6 +29198,7 @@
             \prop_if_in:cnF { l__color_named_ #1 _prop } {##1}
               {
                 \group_begin:
+                  \bool_set_true:N \l__color_ignore_error_bool
                   \tl_set:cn { l__color_named_ #3 _tl } {##1}
                   \__color_parse:nN {#2} \l__color_internal_tl
                 \exp_args:NNNV \group_end:
@@ -30109,6 +30124,13 @@
     LaTeX~was~asked~to~define~a~new~color~model~called~'#1',~but~
     this~color~model~already~exists.
   }
+\msg_new:nnnn { color } { out-of-range }
+  { Input~value~#1~out~of~range~[#2,~#3]. }
+  {
+    LaTeX~was~expecting~a~value~in~the~range~[#2,~#3]~as~part~of~a~color,~
+    but~you~gave~#1.~LaTeX~will~assume~you~meant~the~limit~of~the~range~
+    and~continue.
+  }
 \msg_new:nnnn { color } { separation-alternative-model }
   { Separation~color~space~'#1'~require~an~alternative~model. }
   {
@@ -33503,12 +33525,24 @@
   {
     \bool_lazy_and:nnTF
       { \__text_change_case_if_greek_p:n {#4} }
-      { ! \__text_codepoint_compare_p:nNn {#4} = { "0374 } }
       {
-        \exp_args:Ne \__text_change_case_upper_el:nnn
+        ! \bool_lazy_or_p:nn
+          { \__text_codepoint_compare_p:nNn {#4} = { "0374 } }
+          { \__text_codepoint_compare_p:nNn {#4} = { "037E } }
+      }
+      {
+        \__text_change_case_if_greek_spacing_diacritic:nTF {#4}
           {
-            \codepoint_to_nfd:n { \__text_codepoint_from_chars:Nw #4 }
+            \__text_change_case_store:n {#4}
+            \__text_change_case_loop:nnw
           }
+          {
+            \exp_args:Ne \__text_change_case_upper_el:nnn
+              {
+                \codepoint_to_nfd:n
+                  { \__text_codepoint_from_chars:Nw #4 }
+              }
+          }
             {#2} {#3}
       }
       {
@@ -33805,6 +33839,84 @@
       \fi:
     \fi:
   }
+\prg_new_conditional:Npnn \__text_change_case_if_greek_spacing_diacritic:n
+  #1 { TF }
+  {
+    \exp_args:Nf \__text_change_case_if_greek_spacing_diacritic:n
+      { \int_eval:n { \__text_codepoint_from_chars:Nw #1 } }
+  }
+\cs_new:Npn \__text_change_case_if_greek_spacing_diacritic:n #1
+  {
+    \if_int_compare:w #1 < "1FBD \exp_stop_f:
+      \if_int_compare:w #1 = "037A \exp_stop_f:
+        \prg_return_true:
+      \else:
+        \prg_return_false:
+      \fi:
+    \else:
+      \if_int_compare:w #1 = "1FBD \exp_stop_f:
+        \prg_return_true:
+      \else:
+        \if_int_compare:w #1 = "1FBF \exp_stop_f:
+          \prg_return_true:
+        \else:
+          \if_int_compare:w #1 = "1FC0 \exp_stop_f:
+            \prg_return_true:
+          \else:
+            \if_int_compare:w #1 = "1FC1 \exp_stop_f:
+              \prg_return_true:
+            \else:
+              \if_int_compare:w #1 = "1FCD \exp_stop_f:
+                \prg_return_true:
+              \else:
+                \if_int_compare:w #1 = "1FCE \exp_stop_f:
+                  \prg_return_true:
+                \else:
+                  \if_int_compare:w #1 = "1FCF \exp_stop_f:
+                    \prg_return_true:
+                   \else:
+                    \if_int_compare:w #1 = "1FDD \exp_stop_f:
+                      \prg_return_true:
+                    \else:
+                      \if_int_compare:w #1 = "1FDE \exp_stop_f:
+                        \prg_return_true:
+                      \else:
+                        \if_int_compare:w #1 = "1FDF \exp_stop_f:
+                          \prg_return_true:
+                        \else:
+                          \if_int_compare:w #1 = "1FED \exp_stop_f:
+                            \prg_return_true:
+                          \else:
+                            \if_int_compare:w #1 = "1FEE \exp_stop_f:
+                              \prg_return_true:
+                            \else:
+                              \if_int_compare:w #1 = "1FEF \exp_stop_f:
+                                \prg_return_true:
+                              \else:
+                                \if_int_compare:w #1 = "1FFD \exp_stop_f:
+                                  \prg_return_true:
+                                \else:
+                                  \if_int_compare:w #1 = "1FFE \exp_stop_f:
+                                    \prg_return_true:
+                                  \else:
+                                    \prg_return_false:
+                                  \fi:
+                                \fi:
+                              \fi:
+                            \fi:
+                          \fi:
+                        \fi:
+                      \fi:
+                    \fi:
+                  \fi:
+                \fi:
+              \fi:
+            \fi:
+          \fi:
+        \fi:
+      \fi:
+    \fi:
+  }
 \prg_new_conditional:Npnn \__text_change_case_if_greek_diacritic:n
   #1 { TF , p }
   {
@@ -33825,11 +33937,7 @@
           \if_int_compare:w #1 = "0314 \exp_stop_f:
             \prg_return_true:
           \else:
-            \if_int_compare:w #1 = "0343 \exp_stop_f:
-              \prg_return_true:
-            \else:
-              \prg_return_false:
-            \fi:
+            \prg_return_false:
           \fi:
         \fi:
       \fi:
@@ -33903,9 +34011,13 @@
   }
 \cs_new:Npn \__text_change_case_boundary_upper_el:nnn #1#2#3
   {
-    \bool_lazy_or:nnTF
-      { \__text_codepoint_compare_p:nNn {#3} = { "03AE } }
-      { \__text_codepoint_compare_p:nNn {#3} = { "1F22 } }
+    \bool_lazy_any:nTF
+      {
+        { \__text_codepoint_compare_p:nNn {#3} = { "0389 } }
+        { \__text_codepoint_compare_p:nNn {#3} = { "03AE } }
+        { \__text_codepoint_compare_p:nNn {#3} = { "1F22 } }
+        { \__text_codepoint_compare_p:nNn {#3} = { "1F2A } }
+      }
       { \__text_change_case_boundary_upper_el:nnnw {#1} {#2} {#3} }
       { \__text_change_case_loop:nnw {#1} {#2} #3 }
   }
@@ -35605,8 +35717,10 @@
       {
         { pdftex }
           {
-            \fp_eval:n { round(\int_use:N \tex_pdftexversion:D / 100 , 2) }
+            \int_div_truncate:nn { \tex_pdftexversion:D } { 100 }
             .
+            \int_mod:nn { \tex_pdftexversion:D } { 100 }
+            .
             \tex_pdftexrevision:D
           }
         { ptex }
@@ -35624,8 +35738,10 @@
           }
         { luatex }
           {
-            \fp_eval:n { round(\int_use:N \tex_luatexversion:D / 100, 2) }
+            \int_div_truncate:nn { \tex_luatexversion:D } { 100 }
             .
+            \int_mod:nn { \tex_luatexversion:D } { 100 }
+            .
             \tex_luatexrevision:D
           }
         { uptex }

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2023-03-30 20:05:05 UTC (rev 66710)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2023-02-22}%
+\def\ExplFileDate{2023-03-30}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \catcode`\_=11

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx	2023-03-30 20:05:05 UTC (rev 66710)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2023-02-22}%
+\def\ExplFileDate{2023-03-30}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \catcode`\_=11

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2023-03-30 20:02:45 UTC (rev 66709)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2023-03-30 20:05:05 UTC (rev 66710)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2023-02-22}%
+\def\ExplFileDate{2023-03-30}%
 \let\ExplLoaderFileDate\ExplFileDate
 \ProvidesPackage{expl3}
   [%



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