texlive[45340] Master/texmf-dist: l3 (19sep17)

commits+karl at tug.org commits+karl at tug.org
Wed Sep 20 00:02:28 CEST 2017


Revision: 45340
          http://tug.org/svn/texlive?view=revision&revision=45340
Author:   karl
Date:     2017-09-20 00:02:28 +0200 (Wed, 20 Sep 2017)
Log Message:
-----------
l3 (19sep17)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/l3experimental/README.md
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-convert.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.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/README.md
    trunk/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt
    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/source3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex
    trunk/Master/texmf-dist/doc/latex/l3packages/README.md
    trunk/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf
    trunk/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf
    trunk/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf
    trunk/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf
    trunk/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf
    trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3color.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/l3drivers.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.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/l3oldmodules.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.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-build.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
    trunk/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx
    trunk/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx
    trunk/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx
    trunk/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
    trunk/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.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.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
    trunk/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
    trunk/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty
    trunk/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
    trunk/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
    trunk/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3experimental/README.md	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/doc/latex/l3experimental/README.md	2017-09-19 22:02:28 UTC (rev 45340)
@@ -1,7 +1,7 @@
 Experimental LaTeX3 Concepts
 ============================
 
-Release 2017/07/19
+Release 2017/09/18
 
 Overview
 --------

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-convert.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/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/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2017-09-19 22:02:28 UTC (rev 45340)
@@ -1,7 +1,7 @@
 LaTeX3 Programming Conventions
 ==============================
 
-Release 2017/07/19
+Release 2017/09/18
 
 Overview
 --------

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

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

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex	2017-09-19 22:02:28 UTC (rev 45340)
@@ -63,7 +63,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2017/07/19}
+\date{Released 2017/09/18}
 
 \pagenumbering{roman}
 \maketitle

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

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt	2017-09-19 22:02:28 UTC (rev 45340)
@@ -18,6 +18,8 @@
 \c_minus_one                      2018
 \box_resize:cnn                   2018
 \box_resize:Nnn                   2018
+\box_use_clear:c                  2018
+\box_use_clear:N                  2018
 \file_add_path:nN                 2018
 \file_if_exist_input:nT           2017
 \file_if_exist_input:nTF          2017

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	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex	2017-09-19 22:02:28 UTC (rev 45340)
@@ -30,7 +30,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2017/07/19}
+\date{Released 2017/09/18}
 
 \begin{document}
 

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

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex	2017-09-19 22:02:28 UTC (rev 45340)
@@ -30,7 +30,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2017/07/19}
+\date{Released 2017/09/18}
 
 \newcommand{\TF}{\textit{(TF)}}
 

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

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex	2017-09-19 22:02:28 UTC (rev 45340)
@@ -62,7 +62,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2017/07/19}
+\date{Released 2017/09/18}
 
 \pagenumbering{roman}
 \maketitle

Modified: trunk/Master/texmf-dist/doc/latex/l3packages/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3packages/README.md	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/doc/latex/l3packages/README.md	2017-09-19 22:02:28 UTC (rev 45340)
@@ -1,7 +1,7 @@
 LaTeX3 High-Level Concepts
 ==========================
 
-Release 2017/07/19
+Release 2017/09/18
 
 Overview
 --------

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

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

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

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

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

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -47,7 +47,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -252,7 +252,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{l3str-convert}{2017/07/19}{}
+\ProvidesExplPackage{l3str-convert}{2017/09/18}{}
   {L3 Experimental string encoding conversions}
 %    \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	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -47,7 +47,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -163,7 +163,7 @@
 %
 %    \begin{macrocode}
 %<*package>
-\ProvidesExplPackage{l3str-format}{2017/07/19}{}
+\ProvidesExplPackage{l3str-format}{2017/09/18}{}
   {L3 Experimental string formatting}
 \RequirePackage{l3str}
 %</package>

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -54,7 +54,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -673,7 +673,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{xcoffins}{2017/07/19}{}
+\ProvidesExplPackage{xcoffins}{2017/09/18}{}
   {L3 Experimental design level coffins}
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -24,8 +24,8 @@
 %<*driver|package>
 % The version of expl3 required is tested as early as possible, as
 % some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2017/07/19]
-%<package>\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+%<package>\@ifpackagelater{expl3}{2017/09/18}
 %<package>  {}
 %<package>  {%
 %<package>    \PackageError{l3galley}{Support package l3kernel too old}
@@ -59,7 +59,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -685,7 +685,7 @@
 %
 %    \begin{macrocode}
 %<*package>
-\ProvidesExplPackage{l3galley}{2017/07/19}{}
+\ProvidesExplPackage{l3galley}{2017/09/18}{}
   {L3 Experimental galley code}
 %</package>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -45,7 +45,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -732,7 +732,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{xgalley}{2017/07/19}{}
+\ProvidesExplPackage{xgalley}{2017/09/18}{}
   {L3 Experimental galley}
 \RequirePackage{xparse,xtemplate,l3galley}
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -21,7 +21,7 @@
 % for those people who are interested.
 %
 %<*driver|generic|package>
-\def\ExplFileDate{2017/07/19}%
+\def\ExplFileDate{2017/09/18}%
 %</driver|generic|package>
 %<*driver>
 \documentclass[full]{l3doc}
@@ -49,7 +49,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -459,7 +459,7 @@
 % Due to the nature of the underlying \TeX{} implementation, it is
 % possible to assign values to token list variables and comma lists
 % without first declaring them. However, this is \emph{not supported
-%   behaviour}. The \LaTeX3 coding convention is that all variables must
+% behavior}. The \LaTeX3 coding convention is that all variables must
 % be declared before use.
 %
 % The \pkg{expl3} package can be loaded with the \texttt{check-declarations}
@@ -563,7 +563,7 @@
 %
 % To denote that some argument to a function needs special treatment one
 % just uses different letters in the arg-spec part of the function to
-% mark the desired behaviour. In the above example one would write
+% mark the desired behavior. In the above example one would write
 % \begin{quote}
 %   \cs{seq_gpush:NV} |\g_ior_file_name_seq \l_ior_curr_file_tl|
 % \end{quote}
@@ -949,6 +949,7 @@
 %     than \LaTeX3 code.
 %   \item[dvips] Use the \texttt{dvips} driver.
 %   \item[dvipdfmx] Use the \texttt{dvipdfmx} driver.
+%   \item[dvisvgm] Use the \texttt{dvisvgm} driver.
 %   \item[pdfmode] Use the \texttt{pdfmode} driver (direct PDF output from
 %     \pdfTeX{} or \LuaTeX{}).
 %   \item[xdvipdfmx] Use the \texttt{xdvipdfmx} driver (\XeTeX{} only).
@@ -989,7 +990,8 @@
 % \end{itemize}
 % Any engine which defines |\pdfoutput| (\emph{i.e.}~allows direct production
 % of a PDF file without a DVI intermediate) must also provide |\pdfcolorstack|,
-% |\pdfliteral|, |\pdfmatrix|, |\pdfrestore| and |\pdfsave|.
+% |\pdfliteral|, |\pdfmatrix|, |\pdfrestore| and |\pdfsave| or equivalent
+% functionality.
 %
 % Practically, these requirements are met by the engines
 % \begin{itemize}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -1233,6 +1233,23 @@
 %   \cs{cs_if_exist_p:N}, and if not raises a kernel-level error.
 % \end{function}
 %
+% \begin{function}{\__debug_chk_expr:nNnN}
+%   \begin{syntax}
+%     \cs{__debug_chk_expr:nNnN} \Arg{expr} \meta{eval} \Arg{convert} \meta{caller}
+%   \end{syntax}
+%   This function is only created if debugging is enabled.  By default
+%   it is equivalent to \cs{use_i:nnnn}.  When expression checking is
+%   enabled, it leaves in the input stream the result of \cs{tex_the:D}
+%   \meta{eval} \meta{expr} \cs{tex_relax:D} after checking that no
+%   token was left over.  If any token was not taken as part of the
+%   expression, there is an error message displaying the result of the
+%   evaluation as well as the \meta{caller}.  For instance \meta{eval}
+%   can be \cs{__int_eval:w} and \meta{caller} can be \cs{int_eval:n} or
+%   \cs{int_set:Nn}.  The argument \meta{convert} is empty except for mu
+%   expressions where it is \cs{etex_mutoglue:D}, used for internal
+%   purposes.
+% \end{function}
+%
 % \begin{function}{\__debug_chk_var_exist:N}
 %   \begin{syntax}
 %     \cs{__debug_chk_var_exist:N} \meta{var}
@@ -1307,7 +1324,7 @@
 %     \cs{cs_new:Npn} \cs{int_eval:n} |#1| \\
 %     ~~|{ \__int_value:w \__int_eval:w #1 \__int_eval_end: }|
 %   \end{quote}
-%   replaces |#1| by |(#1)| in the definition of \cs{int_eval:n} when
+%   would replace |#1| by |(#1)| in the definition of \cs{int_eval:n} when
 %   debugging is enabled.  This fails if the \meta{code} contains~|##|.
 %   The \cs{__debug_patch_conditional_args:nNNpnn} function is for use
 %   before \cs{prg_new_conditional:Npnn} or its \texttt{_protected}
@@ -1446,11 +1463,15 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}[EXP]{\if_int_compare:w, \__int_to_roman:w}
+%    \begin{macrocode}
+%<@@=int>
+%    \end{macrocode}
+%
+% \begin{macro}[EXP]{\if_int_compare:w, \@@_to_roman:w}
 %   For integers.
 %    \begin{macrocode}
 \tex_let:D \if_int_compare:w   \tex_ifnum:D
-\tex_let:D \__int_to_roman:w     \tex_romannumeral:D
+\tex_let:D \@@_to_roman:w     \tex_romannumeral:D
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1583,12 +1604,16 @@
 %
 % \subsection{Selecting tokens}
 %
-% \begin{variable}{\l__exp_internal_tl}
+%    \begin{macrocode}
+%<@@=exp>
+%    \end{macrocode}
+%
+% \begin{variable}{\l_@@_internal_tl}
 %   Scratch token list variable for \pkg{l3expan}, used by \cs{use:x},
 %   used in defining conditionals.  We don't use |tl| methods because
 %   \pkg{l3basics} is loaded earlier.
 %    \begin{macrocode}
-\cs_set_nopar:Npn \l__exp_internal_tl { }
+\cs_set_nopar:Npn \l_@@_internal_tl { }
 %    \end{macrocode}
 % \end{variable}
 %
@@ -1601,12 +1626,12 @@
 %
 % \begin{macro}{\use:x}
 %   Fully expands its argument and passes it to the input stream. Uses
-%   the reserved \cs{l__exp_internal_tl} which will be set up in \pkg{l3expan}.
+%   the reserved \cs{l_@@_internal_tl} which will be set up in \pkg{l3expan}.
 %    \begin{macrocode}
 \cs_set_protected:Npn \use:x #1
   {
-    \cs_set_nopar:Npx \l__exp_internal_tl {#1}
-    \l__exp_internal_tl
+    \cs_set_nopar:Npx \l_@@_internal_tl {#1}
+    \l_@@_internal_tl
   }
 %    \end{macrocode}
 % \end{macro}
@@ -1715,7 +1740,11 @@
 %
 % \subsection{Debugging and patching later definitions}
 %
-% \begin{macro}[int]{\__debug:TF}
+%    \begin{macrocode}
+%<@@=debug>
+%    \end{macrocode}
+%
+% \begin{macro}[int]{\@@:TF}
 %   A more meaningful test of whether debugging is enabled than messing
 %   up with guards.  We can also more easily change the logic in one
 %   place then.  At present, debugging is disabled in the format and in
@@ -1723,10 +1752,10 @@
 %   options \texttt{enable-debug}, \texttt{log-functions} or
 %   \texttt{check-declarations} was given.
 %    \begin{macrocode}
-\cs_set_protected:Npn \__debug:TF #1#2 {#2}
+\cs_set_protected:Npn \@@:TF #1#2 {#2}
 %<*package>
 \tex_ifodd:D \l at expl@enable at debug@bool
-  \cs_set_protected:Npn \__debug:TF #1#2 {#1}
+  \cs_set_protected:Npn \@@:TF #1#2 {#1}
 \fi:
 %</package>
 %    \end{macrocode}
@@ -1735,13 +1764,13 @@
 % \begin{macro}{\debug_on:n, \debug_off:n}
 %   
 %    \begin{macrocode}
-\__debug:TF
+\@@:TF
   {
     \cs_set_protected:Npn \debug_on:n #1
       {
         \exp_args:No \clist_map_inline:nn { \tl_to_str:n {#1} }
           {
-            \cs_if_exist_use:cF { __debug_##1_on: }
+            \cs_if_exist_use:cF { @@_##1_on: }
               { \__msg_kernel_error:nnn { kernel } { debug } {##1} }
           }
       }
@@ -1749,7 +1778,7 @@
       {
         \exp_args:No \clist_map_inline:nn { \tl_to_str:n {#1} }
           {
-            \cs_if_exist_use:cF { __debug_##1_off: }
+            \cs_if_exist_use:cF { @@_##1_off: }
               { \__msg_kernel_error:nnn { kernel } { debug } {##1} }
           }
       }
@@ -1770,20 +1799,20 @@
 % \end{macro}
 %
 % \begin{macro}[aux]
-%   {\__debug_check-declarations_on:, \__debug_check-declarations_off:}
-% \begin{macro}[int]{\__debug_chk_var_exist:N}
-% \begin{macro}[int]{\__debug_chk_cs_exist:N, \__debug_chk_cs_exist:c}
-%   When debugging is not active these two functions produce an
-%   error.  Otherwise they set up \cs{__debug_chk_var_exist:N} and
-%   \cs{__debug_chk_cs_exist:N}, two functions that test (when
+%   {\@@_check-declarations_on:, \@@_check-declarations_off:}
+% \begin{macro}[int]{\@@_chk_var_exist:N}
+% \begin{macro}[int]{\@@_chk_cs_exist:N, \@@_chk_cs_exist:c}
+%   When debugging is enabled these two functions
+%   set up \cs{@@_chk_var_exist:N} and
+%   \cs{@@_chk_cs_exist:N}, two functions that test (when
 %   \texttt{check-declarations} is active) that their argument is
 %   defined.
 %    \begin{macrocode}
-\__debug:TF
+\@@:TF
   {
-    \exp_args:Nc \cs_set_protected:Npn { __debug_check-declarations_on: }
+    \exp_args:Nc \cs_set_protected:Npn { @@_check-declarations_on: }
       {
-        \cs_set_protected:Npn \__debug_chk_var_exist:N ##1
+        \cs_set_protected:Npn \@@_chk_var_exist:N ##1
           {
             \cs_if_exist:NF ##1
               {
@@ -1791,7 +1820,7 @@
                   { \token_to_str:N ##1 }
               }
           }
-        \cs_set_protected:Npn \__debug_chk_cs_exist:N ##1
+        \cs_set_protected:Npn \@@_chk_cs_exist:N ##1
           {
             \cs_if_exist:NF ##1
               {
@@ -1800,17 +1829,17 @@
               }
           }
       }
-    \exp_args:Nc \cs_set_protected:Npn { __debug_check-declarations_off: }
+    \exp_args:Nc \cs_set_protected:Npn { @@_check-declarations_off: }
       {
-        \cs_set_protected:Npn \__debug_chk_var_exist:N ##1 { }
-        \cs_set_protected:Npn \__debug_chk_cs_exist:N ##1 { }
+        \cs_set_protected:Npn \@@_chk_var_exist:N ##1 { }
+        \cs_set_protected:Npn \@@_chk_cs_exist:N ##1 { }
       }
-    \cs_set_protected:Npn \__debug_chk_cs_exist:c
-      { \exp_args:Nc \__debug_chk_cs_exist:N }
+    \cs_set_protected:Npn \@@_chk_cs_exist:c
+      { \exp_args:Nc \@@_chk_cs_exist:N }
     \tex_ifodd:D \l at expl@check at declarations@bool
-      \use:c { __debug_check-declarations_on: }
+      \use:c { @@_check-declarations_on: }
     \else:
-      \use:c { __debug_check-declarations_off: }
+      \use:c { @@_check-declarations_off: }
     \fi:
   }
   { }
@@ -1819,52 +1848,110 @@
 % \end{macro}
 % \end{macro}
 %
-% \begin{macro}[aux]{\__debug_log-functions_on:, \__debug_log-functions_off:}
-% \begin{macro}[int]{\__debug_log:x, \__debug_suspend_log:, \__debug_resume_log:}
+% \begin{macro}[aux]
+%   {\@@_check-expressions_on:, \@@_check-expressions_off:}
+% \begin{macro}[int]{\@@_chk_expr:nNnN}
+% \begin{macro}[aux]{\@@_chk_expr_aux:nNnN}
+%   When debugging is enabled these two functions set
+%   \cs{@@_chk_expr:nNnN} to test or not whether the given
+%   expression is valid.  The idea is to evaluate the expression within
+%   a brace group (to catch trailing \cs{use_none:nn} or similar), then
+%   test that the result is what we expect.  This is done by turning it
+%   to an integer and hitting that with \cs{tex_romannumeral:D} after
+%   replacing the first character by |-0|.  If all goes well, that
+%   primitive finds a non-positive integer and gives an empty output.
+%   If the original expression evaluation stopped early it leaves a
+%   trailing \cs{tex_relax:D}, which stops the second evaluation (used
+%   to convert to integer) before it encounters the final
+%   \cs{tex_relax:D}.  Since \cs{tex_romannumeral:D} does not absorb
+%   \cs{tex_relax:D} the output will be nonempty.  Note that |#3| is
+%   empty except for mu expressions for which it is \cs{etex_mutoglue:D}
+%   to avoid an \enquote{incompatible glue units} error.  Note also that
+%   if we had omitted the first \cs{tex_relax:D} then for instance
+%   |1+2\relax+3| would incorrectly be accepted as a valid integer
+%   expression.
+%    \begin{macrocode}
+\@@:TF
+  {
+    \exp_args:Nc \cs_set_protected:Npn { @@_check-expressions_on: }
+      {
+        \cs_set:Npn \@@_chk_expr:nNnN ##1##2
+          {
+            \exp_after:wN \@@_chk_expr_aux:nNnN
+            \exp_after:wN { \tex_the:D ##2 ##1 \tex_relax:D }
+            ##2
+          }
+      }
+    \exp_args:Nc \cs_set_protected:Npn { @@_check-expressions_off: }
+      { \cs_set:Npn \@@_chk_expr:nNnN ##1##2##3##4 {##1} }
+    \use:c { @@_check-expressions_off: }
+    \cs_set:Npn \@@_chk_expr_aux:nNnN #1#2#3#4
+      {
+        \tl_if_empty:oF
+          {
+            \tex_romannumeral:D - 0
+            \exp_after:wN \use_none:n
+            \__int_value:w #3 #2 #1 \tex_relax:D
+          }
+          {
+            \__msg_kernel_expandable_error:nnnn
+              { kernel } { expr } {#4} {#1}
+          }
+        #1
+      }
+  }
+  { }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}[aux]{\@@_log-functions_on:, \@@_log-functions_off:}
+% \begin{macro}[int]{\@@_log:x, \@@_suspend_log:, \@@_resume_log:}
 %   These two functions
 %   (corresponding to the \pkg{expl3} option \texttt{log-functions})
-%   control whether \cs{__debug_log:x} writes to the log file or not.
+%   control whether \cs{@@_log:x} writes to the log file or not.
 %   Since \cs{iow_log:x} does not yet have its final definition we do
 %   not use \cs{cs_set_eq:NN} (not defined yet anyway).  The
-%   \cs{__debug_suspend_log:} function disables \cs{__debug_log:x} until
-%   the matching \cs{__debug_resume_log:}.  These two commands are used
+%   \cs{@@_suspend_log:} function disables \cs{@@_log:x} until
+%   the matching \cs{@@_resume_log:}.  These two commands are used
 %   to improve the logging for datatypes with multiple parts, currently
 %   only coffins.  They should come in pairs, which can be nested (this
 %   complicates the code here and is currently unused).  The function
 %   \cs{exp_not:o} is defined in \pkg{l3expan} later on but
-%   \cs{__debug_suspend_log:} and \cs{__debug_resume_log:} are not used
+%   \cs{@@_suspend_log:} and \cs{@@_resume_log:} are not used
 %   before that point.  Once everything is defined, turn logging on or
 %   off depending on what option was given.
 %   When debugging is not enabled, simply produce an error.
 %    \begin{macrocode}
-\__debug:TF
+\@@:TF
   {
-    \exp_args:Nc \cs_set_protected:Npn { __debug_log-functions_on: }
+    \exp_args:Nc \cs_set_protected:Npn { @@_log-functions_on: }
       {
-        \cs_set_protected:Npn \__debug_log:x { \iow_log:x }
-        \cs_set_protected:Npn \__debug_suspend_log:
+        \cs_set_protected:Npn \@@_log:x { \iow_log:x }
+        \cs_set_protected:Npn \@@_suspend_log:
           {
-            \cs_set_protected:Npx \__debug_resume_log:
+            \cs_set_protected:Npx \@@_resume_log:
               {
-                \cs_set_protected:Npn \__debug_resume_log:
-                  { \exp_not:o { \__debug_resume_log: } }
-                \cs_set_protected:Npn \__debug_log:x
-                  { \exp_not:o { \__debug_log:x } }
+                \cs_set_protected:Npn \@@_resume_log:
+                  { \exp_not:o { \@@_resume_log: } }
+                \cs_set_protected:Npn \@@_log:x
+                  { \exp_not:o { \@@_log:x } }
               }
-            \cs_set_protected:Npn \__debug_log:x { \use_none:n }
+            \cs_set_protected:Npn \@@_log:x { \use_none:n }
           }
-        \cs_set_protected:Npn \__debug_resume_log: { }
+        \cs_set_protected:Npn \@@_resume_log: { }
       }
-    \exp_args:Nc \cs_set_protected:Npn { __debug_log-functions_off: }
+    \exp_args:Nc \cs_set_protected:Npn { @@_log-functions_off: }
       {
-        \cs_set_protected:Npn \__debug_log:x { \use_none:n }
-        \cs_set_protected:Npn \__debug_suspend_log: { }
-        \cs_set_protected:Npn \__debug_resume_log: { }
+        \cs_set_protected:Npn \@@_log:x { \use_none:n }
+        \cs_set_protected:Npn \@@_suspend_log: { }
+        \cs_set_protected:Npn \@@_resume_log: { }
       }
     \tex_ifodd:D \l at expl@log at functions@bool
-      \use:c { __debug_log-functions_on: }
+      \use:c { @@_log-functions_on: }
     \else:
-      \use:c { __debug_log-functions_off: }
+      \use:c { @@_log-functions_off: }
     \fi:
   }
   { }
@@ -1872,21 +1959,21 @@
 % \end{macro}
 % \end{macro}
 %
-% \begin{macro}{\__debug_deprecation_on:, \__debug_deprecation_off:}
-% \begin{variable}{\g__debug_deprecation_on_tl, \g__debug_deprecation_off_tl}
+% \begin{macro}{\@@_deprecation_on:, \@@_deprecation_off:}
+% \begin{variable}{\g_@@_deprecation_on_tl, \g_@@_deprecation_off_tl}
 %   Some commands were more recently deprecated and not yet removed;
 %   only make these into errors if the user requests it.  This relies on
 %   two token lists, filled up by calls to
-%   \cs{__debug_deprecation:nnNNpn} in each module.
+%   \cs{@@_deprecation:nnNNpn} in each module.
 %    \begin{macrocode}
-\__debug:TF
+\@@:TF
   {
-    \cs_set_protected:Npn \__debug_deprecation_on:
-      { \g__debug_deprecation_on_tl }
-    \cs_set_protected:Npn \__debug_deprecation_off:
-      { \g__debug_deprecation_off_tl }
-    \cs_set_nopar:Npn \g__debug_deprecation_on_tl { }
-    \cs_set_nopar:Npn \g__debug_deprecation_off_tl { }
+    \cs_set_protected:Npn \@@_deprecation_on:
+      { \g_@@_deprecation_on_tl }
+    \cs_set_protected:Npn \@@_deprecation_off:
+      { \g_@@_deprecation_off_tl }
+    \cs_set_nopar:Npn \g_@@_deprecation_on_tl { }
+    \cs_set_nopar:Npn \g_@@_deprecation_off_tl { }
   }
   { }
 %    \end{macrocode}
@@ -1893,12 +1980,12 @@
 % \end{variable}
 % \end{macro}
 %
-% \begin{macro}[int]{\__debug_deprecation:nnNNpn}
-% \begin{macro}[aux]{\__debug_deprecation_aux:nnNnn}
+% \begin{macro}[int]{\@@_deprecation:nnNNpn}
+% \begin{macro}[aux]{\@@_deprecation_aux:nnNnn}
 %   Grab a definition (at present, must be \cs{cs_new_protected:Npn}).
-%   Add to \cs{g__debug_deprecation_on_tl} some code that makes the
+%   Add to \cs{g_@@_deprecation_on_tl} some code that makes the
 %   defined macro |#3| outer (and defines it as an error).  Add to
-%   \cs{g__debug_deprecation_off_tl} the definition itself.  In both
+%   \cs{g_@@_deprecation_off_tl} the definition itself.  In both
 %   cases we undefine the token with \cs{tex_let:D} to avoid taking a
 %   potentially outer macro as the argument of some \pkg{expl3}
 %   function.  Finally define the macro itself to produce a warning then
@@ -1906,12 +1993,12 @@
 %   together with the \texttt{x}-expanding assignment and \cs{exp_not:n}
 %   this gives a convenient way of storing the macro's definition in
 %   itself in order to only produce the warning once for each macro.
-%   If debugging is disabled, \cs{__debug_deprecation:nnNNpn} lets the
+%   If debugging is disabled, \cs{@@_deprecation:nnNNpn} lets the
 %   definition happen.
 %    \begin{macrocode}
-\__debug:TF
+\@@:TF
   {
-    \cs_set_protected:Npn \__debug_deprecation:nnNNpn #1#2#3#4#5#
+    \cs_set_protected:Npn \@@_deprecation:nnNNpn #1#2#3#4#5#
       {
         \if_meaning:w \cs_new_protected:Npn #3
         \else:
@@ -1918,16 +2005,16 @@
           \__msg_kernel_error:nnx { kernel } { debug-unpatchable }
             { \token_to_str:N #3 ~(for~deprecation) }
         \fi:
-        \__debug_deprecation_aux:nnNnn {#1} {#2} #4 {#5}
+        \@@_deprecation_aux:nnNnn {#1} {#2} #4 {#5}
       }
-    \cs_set_protected:Npn \__debug_deprecation_aux:nnNnn #1#2#3#4#5
+    \cs_set_protected:Npn \@@_deprecation_aux:nnNnn #1#2#3#4#5
       {
-        \tl_gput_right:Nn \g__debug_deprecation_on_tl
+        \tl_gput_right:Nn \g_@@_deprecation_on_tl
           {
             \tex_let:D #3 \scan_stop:
             \__deprecation_error:Nnn #3 {#2} {#1}
           }
-        \tl_gput_right:Nn \g__debug_deprecation_off_tl
+        \tl_gput_right:Nn \g_@@_deprecation_off_tl
           {
             \tex_let:D #3 \scan_stop:
             \cs_set_protected:Npn #3 #4 {#5}
@@ -1942,36 +2029,36 @@
           }
       }
   }
-  { \cs_set_protected:Npn \__debug_deprecation:nnNNpn #1#2 { } }
+  { \cs_set_protected:Npn \@@_deprecation:nnNNpn #1#2 { } }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 %
 % \begin{macro}[int]
-%   {\__debug_patch:nnNNpn, \__debug_patch_conditional:nNNpnn}
+%   {\@@_patch:nnNNpn, \@@_patch_conditional:nNNpnn}
 % \begin{macro}[aux]
-%   {\__debug_patch_aux:nnNNnn, \__debug_patch_aux:nNNnnn}
-%   When debugging is not enabled, \cs{__debug_patch:nnNNpn} and
-%   \cs{__debug_patch_conditional:nNNpnn} throw the patch away.
+%   {\@@_patch_aux:nnNNnn, \@@_patch_aux:nNNnnn}
+%   When debugging is not enabled, \cs{@@_patch:nnNNpn} and
+%   \cs{@@_patch_conditional:nNNpnn} throw the patch away.
 %   Otherwise they can be followed by \cs{cs_new:Npn} (or similar), and
 %   \cs{prg_new_conditional:Npnn} (or similar), respectively.  In each
 %   case, grab the name of the function to be defined and its parameters
 %   then insert tokens before and/or after the definition.
 %    \begin{macrocode}
-\__debug:TF
+\@@:TF
   {
-    \cs_set_protected:Npn \__debug_patch:nnNNpn #1#2#3#4#5#
-      { \__debug_patch_aux:nnNNnn {#1} {#2} #3 #4 {#5} }
-    \cs_set_protected:Npn \__debug_patch_conditional:nNNpnn #1#2#3#4#
-      { \__debug_patch_aux:nNNnnn {#1} #2 #3 {#4} }
-    \cs_set_protected:Npn \__debug_patch_aux:nnNNnn #1#2#3#4#5#6
+    \cs_set_protected:Npn \@@_patch:nnNNpn #1#2#3#4#5#
+      { \@@_patch_aux:nnNNnn {#1} {#2} #3 #4 {#5} }
+    \cs_set_protected:Npn \@@_patch_conditional:nNNpnn #1#2#3#4#
+      { \@@_patch_aux:nNNnnn {#1} #2 #3 {#4} }
+    \cs_set_protected:Npn \@@_patch_aux:nnNNnn #1#2#3#4#5#6
       { #3 #4 #5 { #1 #6 #2 } }
-    \cs_set_protected:Npn \__debug_patch_aux:nNNnnn #1#2#3#4#5#6
+    \cs_set_protected:Npn \@@_patch_aux:nNNnnn #1#2#3#4#5#6
       { #2 #3 #4 {#5} { #1 #6 } }
   }
   {
-    \cs_set_protected:Npn \__debug_patch:nnNNpn #1#2 { }
-    \cs_set_protected:Npn \__debug_patch_conditional:nNNpnn #1 { }
+    \cs_set_protected:Npn \@@_patch:nnNNpn #1#2 { }
+    \cs_set_protected:Npn \@@_patch_conditional:nNNpnn #1 { }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -1978,14 +2065,14 @@
 % \end{macro}
 %
 % \begin{macro}[int]
-%   {\__debug_patch_args:nNNpn, \__debug_patch_conditional_args:nNNpnn}
+%   {\@@_patch_args:nNNpn, \@@_patch_conditional_args:nNNpnn}
 % \begin{macro}[aux]
 %   {
-%     \__debug_tmp:w,
-%     \__debug_patch_args_aux:nNNnn,
-%     \__debug_patch_args_aux:nNNnnn
+%     \@@_tmp:w,
+%     \@@_patch_args_aux:nNNnn,
+%     \@@_patch_args_aux:nNNnnn
 %   }
-%   See \cs{__debug_patch:nnNNpn}.  The first argument is something like
+%   See \cs{@@_patch:nnNNpn}.  The first argument is something like
 %   |{#1}{(#2)}|.  Define a temporary macro using the \meta{parameters}
 %   and \meta{code} of the definition that follows, then expand that
 %   temporary macro in front of the first argument to obtain new
@@ -1993,28 +2080,28 @@
 %   was directly typed in the file.  To make it easy to expand in the
 %   definition, treat it as a \enquote{pre}-code to an empty definition.
 %    \begin{macrocode}
-\__debug:TF
+\@@:TF
   {
-    \cs_set_protected:Npn \__debug_patch_args:nNNpn #1#2#3#4#
-      { \__debug_patch_args_aux:nNNnn {#1} #2 #3 {#4} }
-    \cs_set_protected:Npn \__debug_patch_conditional_args:nNNpnn #1#2#3#4#
-      { \__debug_patch_args_aux:nNNnnn {#1} #2 #3 {#4} }
-    \cs_set_protected:Npn \__debug_patch_args_aux:nNNnn #1#2#3#4#5
+    \cs_set_protected:Npn \@@_patch_args:nNNpn #1#2#3#4#
+      { \@@_patch_args_aux:nNNnn {#1} #2 #3 {#4} }
+    \cs_set_protected:Npn \@@_patch_conditional_args:nNNpnn #1#2#3#4#
+      { \@@_patch_args_aux:nNNnnn {#1} #2 #3 {#4} }
+    \cs_set_protected:Npn \@@_patch_args_aux:nNNnn #1#2#3#4#5
       {
-        \cs_set:Npn \__debug_tmp:w #4 {#5}
-        \exp_after:wN \__debug_patch_aux:nnNNnn \exp_after:wN
-          { \__debug_tmp:w #1 } { } #2 #3 {#4} { }
+        \cs_set:Npn \@@_tmp:w #4 {#5}
+        \exp_after:wN \@@_patch_aux:nnNNnn \exp_after:wN
+          { \@@_tmp:w #1 } { } #2 #3 {#4} { }
       }
-    \cs_set_protected:Npn \__debug_patch_args_aux:nNNnnn #1#2#3#4#5#6
+    \cs_set_protected:Npn \@@_patch_args_aux:nNNnnn #1#2#3#4#5#6
       {
-        \cs_set:Npn \__debug_tmp:w #4 {#6}
-        \exp_after:wN \__debug_patch_aux:nNNnnn \exp_after:wN
-          { \__debug_tmp:w #1 } #2 #3 {#4} {#5} { }
+        \cs_set:Npn \@@_tmp:w #4 {#6}
+        \exp_after:wN \@@_patch_aux:nNNnnn \exp_after:wN
+          { \@@_tmp:w #1 } #2 #3 {#4} {#5} { }
       }
   }
   {
-    \cs_set_protected:Npn \__debug_patch_args:nNNpn #1 { }
-    \cs_set_protected:Npn \__debug_patch_conditional_args:nNNpnn #1 { }
+    \cs_set_protected:Npn \@@_patch_args:nNNpn #1 { }
+    \cs_set_protected:Npn \@@_patch_conditional_args:nNNpnn #1 { }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -2022,6 +2109,10 @@
 %
 % \subsection{Conditional processing and definitions}
 %
+%    \begin{macrocode}
+%<@@=prg>
+%    \end{macrocode}
+%
 % Underneath any predicate function (|_p|) or other conditional forms
 % (|TF|, etc.) is a built-in logic saying that it after all of the
 % testing and processing must return the \meta{state} this leaves
@@ -2070,7 +2161,7 @@
 %     \prg_set_protected_conditional:Npnn ,
 %     \prg_new_protected_conditional:Npnn ,
 %   }
-% \begin{macro}[aux]{\__prg_generate_conditional_parm:nnNpnn}
+% \begin{macro}[aux]{\@@_generate_conditional_parm:nnNpnn}
 %   The user functions for the types using parameter text from the
 %   programmer. The various functions only differ by which function is
 %   used for the assignment. For those |Npnn| type functions, we must
@@ -2082,16 +2173,16 @@
 %   conditionals.
 %    \begin{macrocode}
 \cs_set_protected:Npn \prg_set_conditional:Npnn
-  { \__prg_generate_conditional_parm:nnNpnn { set } { } }
+  { \@@_generate_conditional_parm:nnNpnn { set } { } }
 \cs_set_protected:Npn \prg_new_conditional:Npnn
-  { \__prg_generate_conditional_parm:nnNpnn { new } { } }
+  { \@@_generate_conditional_parm:nnNpnn { new } { } }
 \cs_set_protected:Npn \prg_set_protected_conditional:Npnn
-  { \__prg_generate_conditional_parm:nnNpnn { set } { _protected } }
+  { \@@_generate_conditional_parm:nnNpnn { set } { _protected } }
 \cs_set_protected:Npn \prg_new_protected_conditional:Npnn
-  { \__prg_generate_conditional_parm:nnNpnn { new } { _protected } }
-\cs_set_protected:Npn \__prg_generate_conditional_parm:nnNpnn #1#2#3#4#
+  { \@@_generate_conditional_parm:nnNpnn { new } { _protected } }
+\cs_set_protected:Npn \@@_generate_conditional_parm:nnNpnn #1#2#3#4#
   {
-    \__cs_split_function:NN #3 \__prg_generate_conditional:nnNnnnnn
+    \__cs_split_function:NN #3 \@@_generate_conditional:nnNnnnnn
     {#1} {#2} {#4}
   }
 %    \end{macrocode}
@@ -2107,8 +2198,8 @@
 %   }
 % \begin{macro}[aux]
 %   {
-%     \__prg_generate_conditional_count:nnNnn ,
-%     \__prg_generate_conditional_count:nnNnnnn
+%     \@@_generate_conditional_count:nnNnn ,
+%     \@@_generate_conditional_count:nnNnnnn
 %   }
 %   The user functions for the types automatically inserting the correct
 %   parameter text based on the signature. The various functions only
@@ -2124,22 +2215,22 @@
 %   later.
 %    \begin{macrocode}
 \cs_set_protected:Npn \prg_set_conditional:Nnn
-  { \__prg_generate_conditional_count:nnNnn { set } { } }
+  { \@@_generate_conditional_count:nnNnn { set } { } }
 \cs_set_protected:Npn \prg_new_conditional:Nnn
-  { \__prg_generate_conditional_count:nnNnn { new } { } }
+  { \@@_generate_conditional_count:nnNnn { new } { } }
 \cs_set_protected:Npn \prg_set_protected_conditional:Nnn
-  { \__prg_generate_conditional_count:nnNnn { set } { _protected } }
+  { \@@_generate_conditional_count:nnNnn { set } { _protected } }
 \cs_set_protected:Npn \prg_new_protected_conditional:Nnn
-  { \__prg_generate_conditional_count:nnNnn { new } { _protected } }
-\cs_set_protected:Npn \__prg_generate_conditional_count:nnNnn #1#2#3
+  { \@@_generate_conditional_count:nnNnn { new } { _protected } }
+\cs_set_protected:Npn \@@_generate_conditional_count:nnNnn #1#2#3
   {
-    \__cs_split_function:NN #3 \__prg_generate_conditional_count:nnNnnnn
+    \__cs_split_function:NN #3 \@@_generate_conditional_count:nnNnnnn
     {#1} {#2}
   }
-\cs_set_protected:Npn \__prg_generate_conditional_count:nnNnnnn #1#2#3#4#5
+\cs_set_protected:Npn \@@_generate_conditional_count:nnNnnnn #1#2#3#4#5
   {
     \__cs_parm_from_arg_count:nnF
-      { \__prg_generate_conditional:nnNnnnnn {#1} {#2} #3 {#4} {#5} }
+      { \@@_generate_conditional:nnNnnnnn {#1} {#2} #3 {#4} {#5} }
       { \tl_count:n {#2} }
       {
         \__msg_kernel_error:nnxx { kernel } { bad-number-of-arguments }
@@ -2154,8 +2245,8 @@
 %
 % \begin{macro}[aux]
 %   {
-%     \__prg_generate_conditional:nnNnnnnn,
-%     \__prg_generate_conditional:nnnnnnw
+%     \@@_generate_conditional:nnNnnnnn,
+%     \@@_generate_conditional:nnnnnnw
 %   }
 %   The workhorse here is going through a list of desired forms, \emph{i.e.},
 %   |p|, |TF|, |T| and |F|. The first three arguments come from splitting up
@@ -2168,7 +2259,7 @@
 %   replacement text which we will augment when defining the forms.
 %   The use of \cs{tl_to_str:n} makes the later loop more robust.
 %    \begin{macrocode}
-\cs_set_protected:Npn \__prg_generate_conditional:nnNnnnnn #1#2#3#4#5#6#7#8
+\cs_set_protected:Npn \@@_generate_conditional:nnNnnnnn #1#2#3#4#5#6#7#8
   {
     \if_meaning:w \c_false_bool #3
       \__msg_kernel_error:nnx { kernel } { missing-colon }
@@ -2177,7 +2268,7 @@
     \fi:
     \use:x
       {
-        \exp_not:N \__prg_generate_conditional:nnnnnnw
+        \exp_not:N \@@_generate_conditional:nnnnnnw
         \exp_not:n { {#4} {#5} {#1} {#2} {#6} {#8} }
         \tl_to_str:n {#7}
         \exp_not:n { , \q_recursion_tail , \q_recursion_stop }
@@ -2192,12 +2283,12 @@
 %   then \cs{use_none:nnnnnnn} cleans up.  Otherwise, the
 %   error message is removed by the variant form.
 %    \begin{macrocode}
-\cs_set_protected:Npn \__prg_generate_conditional:nnnnnnw #1#2#3#4#5#6#7 ,
+\cs_set_protected:Npn \@@_generate_conditional:nnnnnnw #1#2#3#4#5#6#7 ,
   {
     \if_meaning:w \q_recursion_tail #7
       \exp_after:wN \use_none_delimit_by_q_recursion_stop:w
     \fi:
-    \use:c { __prg_generate_ #7 _form:wnnnnnn }
+    \use:c { @@_generate_ #7 _form:wnnnnnn }
         \tl_if_empty:nF {#7}
           {
             \__msg_kernel_error:nnxx
@@ -2207,7 +2298,7 @@
         \use_none:nnnnnnn
       \q_stop
       {#1} {#2} {#3} {#4} {#5} {#6}
-    \__prg_generate_conditional:nnnnnnw {#1} {#2} {#3} {#4} {#5} {#6}
+    \@@_generate_conditional:nnnnnnw {#1} {#2} {#3} {#4} {#5} {#6}
   }
 %    \end{macrocode}
 % \end{macro}
@@ -2214,10 +2305,10 @@
 %
 % \begin{macro}[aux]
 %   {
-%     \__prg_generate_p_form:wnnnnnn,
-%     \__prg_generate_TF_form:wnnnnnn,
-%     \__prg_generate_T_form:wnnnnnn,
-%     \__prg_generate_F_form:wnnnnnn
+%     \@@_generate_p_form:wnnnnnn,
+%     \@@_generate_TF_form:wnnnnnn,
+%     \@@_generate_T_form:wnnnnnn,
+%     \@@_generate_F_form:wnnnnnn
 %   }
 %   How to generate the various forms. Those functions take the
 %   following arguments: 1: \texttt{set} or \texttt{new}, 2: empty or
@@ -2229,7 +2320,7 @@
 %   version.  The |p| form is only valid for expandable tests, we check
 %   for that by making sure that the second argument is empty.
 %    \begin{macrocode}
-\cs_set_protected:Npn \__prg_generate_p_form:wnnnnnn
+\cs_set_protected:Npn \@@_generate_p_form:wnnnnnn
     #1 \q_stop #2#3#4#5#6#7
   {
     \if_meaning:w \scan_stop: #3 \scan_stop:
@@ -2246,19 +2337,19 @@
           { \token_to_str:c { #4 _p: #5 } }
       }
   }
-\cs_set_protected:Npn \__prg_generate_T_form:wnnnnnn
+\cs_set_protected:Npn \@@_generate_T_form:wnnnnnn
     #1 \q_stop #2#3#4#5#6#7
   {
     \exp_args:cc { cs_ #2 #3 :Npn } { #4 : #5 T } #6
       { #7 \exp_end: \use:n \use_none:n }
   }
-\cs_set_protected:Npn \__prg_generate_F_form:wnnnnnn
+\cs_set_protected:Npn \@@_generate_F_form:wnnnnnn
     #1 \q_stop #2#3#4#5#6#7
   {
     \exp_args:cc { cs_ #2 #3 :Npn } { #4 : #5 F } #6
       { #7 \exp_end: { } }
   }
-\cs_set_protected:Npn \__prg_generate_TF_form:wnnnnnn
+\cs_set_protected:Npn \@@_generate_TF_form:wnnnnnn
     #1 \q_stop #2#3#4#5#6#7
   {
     \exp_args:cc { cs_ #2 #3 :Npn } { #4 : #5 TF } #6
@@ -2268,7 +2359,7 @@
 % \end{macro}
 %
 % \begin{macro}{\prg_set_eq_conditional:NNn, \prg_new_eq_conditional:NNn}
-% \begin{macro}[aux]{\__prg_set_eq_conditional:NNNn}
+% \begin{macro}[aux]{\@@_set_eq_conditional:NNNn}
 %   The setting-equal functions.  Split both functions and feed
 %   \Arg{name_1} \Arg{signature_1} \meta{boolean_1}
 %   \Arg{name_2} \Arg{signature_2} \meta{boolean_2}
@@ -2277,14 +2368,14 @@
 %   to a first auxiliary.
 %    \begin{macrocode}
 \cs_set_protected:Npn \prg_set_eq_conditional:NNn
-  { \__prg_set_eq_conditional:NNNn \cs_set_eq:cc }
+  { \@@_set_eq_conditional:NNNn \cs_set_eq:cc }
 \cs_set_protected:Npn \prg_new_eq_conditional:NNn
-  { \__prg_set_eq_conditional:NNNn \cs_new_eq:cc }
-\cs_set_protected:Npn \__prg_set_eq_conditional:NNNn #1#2#3#4
+  { \@@_set_eq_conditional:NNNn \cs_new_eq:cc }
+\cs_set_protected:Npn \@@_set_eq_conditional:NNNn #1#2#3#4
   {
     \use:x
       {
-        \exp_not:N \__prg_set_eq_conditional:nnNnnNNw
+        \exp_not:N \@@_set_eq_conditional:nnNnnNNw
           \__cs_split_function:NN #2 \prg_do_nothing:
           \__cs_split_function:NN #3 \prg_do_nothing:
           \exp_not:N #1
@@ -2298,15 +2389,15 @@
 %
 % \begin{macro}[aux]
 %   {
-%     \__prg_set_eq_conditional:nnNnnNNw ,
-%     \__prg_set_eq_conditional_loop:nnnnNw
+%     \@@_set_eq_conditional:nnNnnNNw ,
+%     \@@_set_eq_conditional_loop:nnnnNw
 %   }
 % \begin{macro}[aux, EXP]
 %   {
-%     \__prg_set_eq_conditional_p_form:nnn  ,
-%     \__prg_set_eq_conditional_TF_form:nnn ,
-%     \__prg_set_eq_conditional_T_form:nnn  ,
-%     \__prg_set_eq_conditional_F_form:nnn  ,
+%     \@@_set_eq_conditional_p_form:nnn  ,
+%     \@@_set_eq_conditional_TF_form:nnn ,
+%     \@@_set_eq_conditional_T_form:nnn  ,
+%     \@@_set_eq_conditional_F_form:nnn  ,
 %   }
 %   Split the function to be defined, and setup a manual clist loop over
 %   argument |#6| of the first auxiliary.  The second auxiliary receives
@@ -2319,7 +2410,7 @@
 %   step in the loop, make sure that the conditional form we copy is
 %   defined, and copy it, otherwise abort.
 %    \begin{macrocode}
-\cs_set_protected:Npn \__prg_set_eq_conditional:nnNnnNNw #1#2#3#4#5#6
+\cs_set_protected:Npn \@@_set_eq_conditional:nnNnnNNw #1#2#3#4#5#6
   {
     \if_meaning:w \c_false_bool #3
       \__msg_kernel_error:nnx { kernel } { missing-colon }
@@ -2331,14 +2422,14 @@
         { \token_to_str:c {#4} }
       \exp_after:wN \use_none_delimit_by_q_recursion_stop:w
     \fi:
-    \__prg_set_eq_conditional_loop:nnnnNw {#1} {#2} {#4} {#5}
+    \@@_set_eq_conditional_loop:nnnnNw {#1} {#2} {#4} {#5}
   }
-\cs_set_protected:Npn \__prg_set_eq_conditional_loop:nnnnNw #1#2#3#4#5#6 ,
+\cs_set_protected:Npn \@@_set_eq_conditional_loop:nnnnNw #1#2#3#4#5#6 ,
   {
     \if_meaning:w \q_recursion_tail #6
       \exp_after:wN \use_none_delimit_by_q_recursion_stop:w
     \fi:
-    \use:c { __prg_set_eq_conditional_ #6 _form:wNnnnn }
+    \use:c { @@_set_eq_conditional_ #6 _form:wNnnnn }
         \tl_if_empty:nF {#6}
           {
             \__msg_kernel_error:nnxx
@@ -2348,23 +2439,23 @@
         \use_none:nnnnnn
       \q_stop
       #5 {#1} {#2} {#3} {#4}
-    \__prg_set_eq_conditional_loop:nnnnNw {#1} {#2} {#3} {#4} #5
+    \@@_set_eq_conditional_loop:nnnnNw {#1} {#2} {#3} {#4} #5
   }
 \__debug_patch:nnNNpn
   { \__debug_chk_cs_exist:c { #5 _p : #6    } } { }
-\cs_set:Npn \__prg_set_eq_conditional_p_form:wNnnnn #1 \q_stop #2#3#4#5#6
+\cs_set:Npn \@@_set_eq_conditional_p_form:wNnnnn #1 \q_stop #2#3#4#5#6
   { #2 { #3 _p : #4    }    { #5 _p : #6    } }
 \__debug_patch:nnNNpn
   { \__debug_chk_cs_exist:c { #5    : #6 TF } } { }
-\cs_set:Npn \__prg_set_eq_conditional_TF_form:wNnnnn #1 \q_stop #2#3#4#5#6
+\cs_set:Npn \@@_set_eq_conditional_TF_form:wNnnnn #1 \q_stop #2#3#4#5#6
   { #2 { #3    : #4 TF }    { #5    : #6 TF } }
 \__debug_patch:nnNNpn
   { \__debug_chk_cs_exist:c { #5    : #6 T  } } { }
-\cs_set:Npn \__prg_set_eq_conditional_T_form:wNnnnn #1 \q_stop #2#3#4#5#6
+\cs_set:Npn \@@_set_eq_conditional_T_form:wNnnnn #1 \q_stop #2#3#4#5#6
   { #2 { #3    : #4 T  }    { #5    : #6 T  } }
 \__debug_patch:nnNNpn
   { \__debug_chk_cs_exist:c { #5    : #6  F } } { }
-\cs_set:Npn \__prg_set_eq_conditional_F_form:wNnnnn #1 \q_stop #2#3#4#5#6
+\cs_set:Npn \@@_set_eq_conditional_F_form:wNnnnn #1 \q_stop #2#3#4#5#6
   { #2 { #3    : #4  F }    { #5    : #6  F } }
 %    \end{macrocode}
 % \end{macro}
@@ -2389,8 +2480,12 @@
 %
 % \subsection{Dissecting a control sequence}
 %
+%    \begin{macrocode}
+%<@@=cs>
+%    \end{macrocode}
+%
 % \begin{macro}[EXP]{\cs_to_str:N}
-% \begin{macro}[aux, EXP]{\__cs_to_str:N, \__cs_to_str:w}
+% \begin{macro}[aux, EXP]{\@@_to_str:N, \@@_to_str:w}
 %   This converts a control sequence into the character string of its
 %   name, removing the leading escape character. This turns out to be
 %   a non-trivial matter as there a different cases:
@@ -2411,17 +2506,17 @@
 %   a little more intricate still. When the escape character is printable,
 %   \verb*|\token_to_str:N \ | yields the escape character itself and a space.
 %   The character codes are different, thus the \cs{if:w} test is false,
-%   and \TeX{} reads \cs{__cs_to_str:N} after turning the following
+%   and \TeX{} reads \cs{@@_to_str:N} after turning the following
 %   control sequence into a string; this auxiliary removes the escape
 %   character, and stops the expansion of the initial \cs{tex_romannumeral:D}.
 %   The second case is that the escape character is not printable. Then
 %   the \cs{if:w} test is unfinished after reading a the space from
-%   \verb*|\token_to_str:N \ |, and the auxiliary \cs{__cs_to_str:w}
+%   \verb*|\token_to_str:N \ |, and the auxiliary \cs{@@_to_str:w}
 %   is expanded, feeding |-| as a second character for the test;
 %   the test is false, and \TeX{} skips to \cs{fi:}, then performs
 %   \cs{token_to_str:N}, and stops the \cs{tex_romannumeral:D} with \cs{c_zero}.
 %   The last case is that the escape character is itself a space. In this
-%   case, the \cs{if:w} test is true, and the auxiliary \cs{__cs_to_str:w}
+%   case, the \cs{if:w} test is true, and the auxiliary \cs{@@_to_str:w}
 %   comes into play, inserting |-\__int_value:w|, which expands \cs{c_zero}
 %   to the character |0|. The initial \cs{tex_romannumeral:D} then sees
 %   |0|, which is not a terminated number, followed by the escape character,
@@ -2440,11 +2535,11 @@
 %    we make this dependency explicit.
 %    \begin{macrocode}
     \tex_romannumeral:D
-      \if:w \token_to_str:N \ \__cs_to_str:w \fi:
-      \exp_after:wN \__cs_to_str:N \token_to_str:N
+      \if:w \token_to_str:N \ \@@_to_str:w \fi:
+      \exp_after:wN \@@_to_str:N \token_to_str:N
   }
-\cs_set:Npn \__cs_to_str:N #1 { \c_zero }
-\cs_set:Npn \__cs_to_str:w #1 \__cs_to_str:N
+\cs_set:Npn \@@_to_str:N #1 { \c_zero }
+\cs_set:Npn \@@_to_str:w #1 \@@_to_str:N
   { - \__int_value:w \fi: \exp_after:wN \c_zero }
 %    \end{macrocode}
 %   If speed is a concern we could use \tn{csstring} in \LuaTeX{}.  For
@@ -2454,18 +2549,18 @@
 % \end{macro}
 % \end{macro}
 %
-% \begin{macro}[EXP, int]{\__cs_split_function:NN}
+% \begin{macro}[EXP, int]{\@@_split_function:NN}
 % \begin{macro}[aux, EXP]
-%   {\__cs_split_function_auxi:w, \__cs_split_function_auxii:w}
+%   {\@@_split_function_auxi:w, \@@_split_function_auxii:w}
 %   This function takes a function name and splits it into name with
 %   the escape char removed and argument specification. In addition to
 %   this, a third argument, a boolean \meta{true} or \meta{false} is
 %   returned with \meta{true} for when there is a colon in the function
 %   and \meta{false} if there is not. Lastly, the second argument of
-%   \cs{__cs_split_function:NN} is supposed to be a function
+%   \cs{@@_split_function:NN} is supposed to be a function
 %   taking three variables, one for name, one for signature, and one
 %   for the boolean.  For example,
-%   |\__cs_split_function:NN \foo_bar:cnx \use_i:nnn| as input
+%   |\@@_split_function:NN \foo_bar:cnx \use_i:nnn| as input
 %   becomes |\use_i:nnn {foo_bar} {cnx} \c_true_bool|.
 %
 %   We cannot use |:| directly as it has the wrong category code so
@@ -2482,10 +2577,10 @@
 %   auxiliary trims the trailing \cs{q_mark} from the function name if
 %   present (that is, if the original function had no colon).
 %    \begin{macrocode}
-\cs_set:Npx \__cs_split_function:NN #1
+\cs_set:Npx \@@_split_function:NN #1
   {
     \exp_not:N \exp_after:wN \exp_not:N \exp_after:wN
-    \exp_not:N \exp_after:wN \exp_not:N \__cs_split_function_auxi:w
+    \exp_not:N \exp_after:wN \exp_not:N \@@_split_function_auxi:w
       \exp_not:N \cs_to_str:N #1 \exp_not:N \q_mark \c_true_bool
       \token_to_str:N : \exp_not:N \q_mark \c_false_bool
       \exp_not:N \q_stop
@@ -2492,11 +2587,11 @@
   }
 \use:x
   {
-    \cs_set:Npn \exp_not:N \__cs_split_function_auxi:w
+    \cs_set:Npn \exp_not:N \@@_split_function_auxi:w
       ##1 \token_to_str:N : ##2 \exp_not:N \q_mark ##3##4 \exp_not:N \q_stop ##5
   }
-  { \__cs_split_function_auxii:w #5 #1 \q_mark \q_stop {#2} #3 }
-\cs_set:Npn \__cs_split_function_auxii:w #1#2 \q_mark #3 \q_stop
+  { \@@_split_function_auxii:w #5 #1 \q_mark \q_stop {#2} #3 }
+\cs_set:Npn \@@_split_function_auxii:w #1#2 \q_mark #3 \q_stop
   { #1 {#2} }
 %    \end{macrocode}
 % \end{macro}
@@ -2503,13 +2598,13 @@
 % \end{macro}
 %
 % \begin{macro}[EXP, int]
-%   {\__cs_get_function_name:N, \__cs_get_function_signature:N}
+%   {\@@_get_function_name:N, \@@_get_function_signature:N}
 %   Simple wrappers.
 %    \begin{macrocode}
-\cs_set:Npn \__cs_get_function_name:N #1
-  { \__cs_split_function:NN #1 \use_i:nnn }
-\cs_set:Npn \__cs_get_function_signature:N #1
-  { \__cs_split_function:NN #1 \use_ii:nnn }
+\cs_set:Npn \@@_get_function_name:N #1
+  { \@@_split_function:NN #1 \use_i:nnn }
+\cs_set:Npn \@@_get_function_signature:N #1
+  { \@@_split_function:NN #1 \use_ii:nnn }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -2715,6 +2810,10 @@
 %
 % \subsection{Defining new functions}
 %
+%    \begin{macrocode}
+%<@@=cs>
+%    \end{macrocode}
+%
 % \begin{macro}
 %   {
 %     \cs_new_nopar:Npn           , \cs_new_nopar:Npx           ,
@@ -2722,11 +2821,11 @@
 %     \cs_new_protected_nopar:Npn , \cs_new_protected_nopar:Npx ,
 %     \cs_new_protected:Npn       , \cs_new_protected:Npx
 %   }
-% \begin{macro}[int]{\__cs_tmp:w}
+% \begin{macro}[int]{\@@_tmp:w}
 %   Function which check that the control sequence is free before
 %   defining it.
 %     \begin{macrocode}
-\cs_set:Npn \__cs_tmp:w #1#2
+\cs_set:Npn \@@_tmp:w #1#2
   {
     \cs_set_protected:Npn #1 ##1
        {
@@ -2734,14 +2833,14 @@
          #2 ##1
       }
   }
-\__cs_tmp:w \cs_new_nopar:Npn           \cs_gset_nopar:Npn
-\__cs_tmp:w \cs_new_nopar:Npx           \cs_gset_nopar:Npx
-\__cs_tmp:w \cs_new:Npn                 \cs_gset:Npn
-\__cs_tmp:w \cs_new:Npx                 \cs_gset:Npx
-\__cs_tmp:w \cs_new_protected_nopar:Npn \cs_gset_protected_nopar:Npn
-\__cs_tmp:w \cs_new_protected_nopar:Npx \cs_gset_protected_nopar:Npx
-\__cs_tmp:w \cs_new_protected:Npn       \cs_gset_protected:Npn
-\__cs_tmp:w \cs_new_protected:Npx       \cs_gset_protected:Npx
+\@@_tmp:w \cs_new_nopar:Npn           \cs_gset_nopar:Npn
+\@@_tmp:w \cs_new_nopar:Npx           \cs_gset_nopar:Npx
+\@@_tmp:w \cs_new:Npn                 \cs_gset:Npn
+\@@_tmp:w \cs_new:Npx                 \cs_gset:Npx
+\@@_tmp:w \cs_new_protected_nopar:Npn \cs_gset_protected_nopar:Npn
+\@@_tmp:w \cs_new_protected_nopar:Npx \cs_gset_protected_nopar:Npx
+\@@_tmp:w \cs_new_protected:Npn       \cs_gset_protected:Npn
+\@@_tmp:w \cs_new_protected:Npx       \cs_gset_protected:Npx
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -2763,14 +2862,14 @@
 %   \cs{cs_set_nopar:Npn}.  This means that there might be a parameter
 %   string between the two arguments.
 %    \begin{macrocode}
-\cs_set:Npn \__cs_tmp:w #1#2
+\cs_set:Npn \@@_tmp:w #1#2
   { \cs_new_protected_nopar:Npn #1 { \exp_args:Nc #2 } }
-\__cs_tmp:w \cs_set_nopar:cpn  \cs_set_nopar:Npn
-\__cs_tmp:w \cs_set_nopar:cpx  \cs_set_nopar:Npx
-\__cs_tmp:w \cs_gset_nopar:cpn \cs_gset_nopar:Npn
-\__cs_tmp:w \cs_gset_nopar:cpx \cs_gset_nopar:Npx
-\__cs_tmp:w \cs_new_nopar:cpn  \cs_new_nopar:Npn
-\__cs_tmp:w \cs_new_nopar:cpx  \cs_new_nopar:Npx
+\@@_tmp:w \cs_set_nopar:cpn  \cs_set_nopar:Npn
+\@@_tmp:w \cs_set_nopar:cpx  \cs_set_nopar:Npx
+\@@_tmp:w \cs_gset_nopar:cpn \cs_gset_nopar:Npn
+\@@_tmp:w \cs_gset_nopar:cpx \cs_gset_nopar:Npx
+\@@_tmp:w \cs_new_nopar:cpn  \cs_new_nopar:Npn
+\@@_tmp:w \cs_new_nopar:cpx  \cs_new_nopar:Npx
 %    \end{macrocode}
 % \end{macro}
 %
@@ -2783,12 +2882,12 @@
 %   Variants of the \cs{cs_set:Npn} versions which make a csname out
 %   of the first arguments. We may also do this globally.
 %    \begin{macrocode}
-\__cs_tmp:w \cs_set:cpn  \cs_set:Npn
-\__cs_tmp:w \cs_set:cpx  \cs_set:Npx
-\__cs_tmp:w \cs_gset:cpn \cs_gset:Npn
-\__cs_tmp:w \cs_gset:cpx \cs_gset:Npx
-\__cs_tmp:w \cs_new:cpn  \cs_new:Npn
-\__cs_tmp:w \cs_new:cpx  \cs_new:Npx
+\@@_tmp:w \cs_set:cpn  \cs_set:Npn
+\@@_tmp:w \cs_set:cpx  \cs_set:Npx
+\@@_tmp:w \cs_gset:cpn \cs_gset:Npn
+\@@_tmp:w \cs_gset:cpx \cs_gset:Npx
+\@@_tmp:w \cs_new:cpn  \cs_new:Npn
+\@@_tmp:w \cs_new:cpx  \cs_new:Npx
 %    \end{macrocode}
 % \end{macro}
 %
@@ -2801,12 +2900,12 @@
 %   Variants of the \cs{cs_set_protected_nopar:Npn} versions which make
 %   a csname out of the first arguments. We may also do this globally.
 %    \begin{macrocode}
-\__cs_tmp:w \cs_set_protected_nopar:cpn  \cs_set_protected_nopar:Npn
-\__cs_tmp:w \cs_set_protected_nopar:cpx  \cs_set_protected_nopar:Npx
-\__cs_tmp:w \cs_gset_protected_nopar:cpn \cs_gset_protected_nopar:Npn
-\__cs_tmp:w \cs_gset_protected_nopar:cpx \cs_gset_protected_nopar:Npx
-\__cs_tmp:w \cs_new_protected_nopar:cpn  \cs_new_protected_nopar:Npn
-\__cs_tmp:w \cs_new_protected_nopar:cpx  \cs_new_protected_nopar:Npx
+\@@_tmp:w \cs_set_protected_nopar:cpn  \cs_set_protected_nopar:Npn
+\@@_tmp:w \cs_set_protected_nopar:cpx  \cs_set_protected_nopar:Npx
+\@@_tmp:w \cs_gset_protected_nopar:cpn \cs_gset_protected_nopar:Npn
+\@@_tmp:w \cs_gset_protected_nopar:cpx \cs_gset_protected_nopar:Npx
+\@@_tmp:w \cs_new_protected_nopar:cpn  \cs_new_protected_nopar:Npn
+\@@_tmp:w \cs_new_protected_nopar:cpx  \cs_new_protected_nopar:Npx
 %    \end{macrocode}
 % \end{macro}
 %
@@ -2819,12 +2918,12 @@
 %   Variants of the \cs{cs_set_protected:Npn} versions which make a csname
 %   out of the first arguments. We may also do this globally.
 %    \begin{macrocode}
-\__cs_tmp:w \cs_set_protected:cpn  \cs_set_protected:Npn
-\__cs_tmp:w \cs_set_protected:cpx  \cs_set_protected:Npx
-\__cs_tmp:w \cs_gset_protected:cpn \cs_gset_protected:Npn
-\__cs_tmp:w \cs_gset_protected:cpx \cs_gset_protected:Npx
-\__cs_tmp:w \cs_new_protected:cpn  \cs_new_protected:Npn
-\__cs_tmp:w \cs_new_protected:cpx  \cs_new_protected:Npx
+\@@_tmp:w \cs_set_protected:cpn  \cs_set_protected:Npn
+\@@_tmp:w \cs_set_protected:cpx  \cs_set_protected:Npx
+\@@_tmp:w \cs_gset_protected:cpn \cs_gset_protected:Npn
+\@@_tmp:w \cs_gset_protected:cpx \cs_gset_protected:Npx
+\@@_tmp:w \cs_new_protected:cpn  \cs_new_protected:Npn
+\@@_tmp:w \cs_new_protected:cpx  \cs_new_protected:Npx
 %    \end{macrocode}
 % \end{macro}
 %
@@ -2893,8 +2992,12 @@
 %
 % \subsection{Generating parameter text from argument count}
 %
-% \begin{macro}[int]{\__cs_parm_from_arg_count:nnF}
-% \begin{macro}[aux]{\__cs_parm_from_arg_count_test:nnF}
+%    \begin{macrocode}
+%<@@=cs>
+%    \end{macrocode}
+%
+% \begin{macro}[int]{\@@_parm_from_arg_count:nnF}
+% \begin{macro}[aux]{\@@_parm_from_arg_count_test:nnF}
 %   \LaTeX3 provides shorthands to define control sequences and
 %   conditionals with a simple parameter text, derived directly from the
 %   signature, or more generally from knowing the number of arguments,
@@ -2907,9 +3010,9 @@
 %   the functions use here are not defined yet, but will be defined
 %   before this function is called.
 %    \begin{macrocode}
-\cs_set_protected:Npn \__cs_parm_from_arg_count:nnF #1#2
+\cs_set_protected:Npn \@@_parm_from_arg_count:nnF #1#2
   {
-    \exp_args:Nx \__cs_parm_from_arg_count_test:nnF
+    \exp_args:Nx \@@_parm_from_arg_count_test:nnF
       {
         \exp_after:wN \exp_not:n
         \if_case:w \__int_eval:w (#2) \__int_eval_end:
@@ -2928,7 +3031,7 @@
       }
       {#1}
   }
-\cs_set_protected:Npn \__cs_parm_from_arg_count_test:nnF #1#2
+\cs_set_protected:Npn \@@_parm_from_arg_count_test:nnF #1#2
   {
     \if_meaning:w \c_false_bool #1
       \exp_after:wN \use_ii:nn
@@ -2943,8 +3046,12 @@
 %
 % \subsection{Defining functions from a given number of arguments}
 %
-% \begin{macro}[EXP, int]{\__cs_count_signature:N, \__cs_count_signature:c}
-% \begin{macro}[aux, EXP]{\__cs_count_signature:nnN}
+%    \begin{macrocode}
+%<@@=cs>
+%    \end{macrocode}
+%
+% \begin{macro}[EXP, int]{\@@_count_signature:N, \@@_count_signature:c}
+% \begin{macro}[aux, EXP]{\@@_count_signature:nnN}
 %   Counting the number of tokens in the signature, \emph{i.e.}, the
 %   number of arguments the function should take.  Since this is not
 %   used in any time-critical function, we simply use \cs{tl_count:n} if
@@ -2951,9 +3058,9 @@
 %   there is a signature, otherwise $-1$ arguments to signal an error.
 %   We need a variant form right away.
 %    \begin{macrocode}
-\cs_new:Npn \__cs_count_signature:N #1
-  { \int_eval:n { \__cs_split_function:NN #1 \__cs_count_signature:nnN } }
-\cs_new:Npn \__cs_count_signature:nnN #1#2#3
+\cs_new:Npn \@@_count_signature:N #1
+  { \int_eval:n { \@@_split_function:NN #1 \@@_count_signature:nnN } }
+\cs_new:Npn \@@_count_signature:nnN #1#2#3
   {
     \if_meaning:w \c_true_bool #3
       \tl_count:n {#2}
@@ -2961,8 +3068,8 @@
       -1
     \fi:
   }
-\cs_new:Npn \__cs_count_signature:c
-  { \exp_args:Nc \__cs_count_signature:N }
+\cs_new:Npn \@@_count_signature:c
+  { \exp_args:Nc \@@_count_signature:N }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -2986,7 +3093,7 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \cs_generate_from_arg_count:NNnn #1#2#3#4
   {
-    \__cs_parm_from_arg_count:nnF { \use:nnn #2 #1 } {#3}
+    \@@_parm_from_arg_count:nnF { \use:nnn #2 #1 } {#3}
       {
         \__msg_kernel_error:nnxx { kernel } { bad-number-of-arguments }
           { \token_to_str:N #1 } { \int_eval:n {#3} }
@@ -3007,6 +3114,10 @@
 %
 % \subsection{Using the signature to define functions}
 %
+%    \begin{macrocode}
+%<@@=cs>
+%    \end{macrocode}
+%
 % We can now combine some of the tools we have to provide a simple
 % interface for defining functions, where the number of arguments is
 % read from the signature.  For instance,
@@ -3040,25 +3151,25 @@
 %   make it simpler by temporarily defining a function to do this for
 %   us.
 %    \begin{macrocode}
-\cs_set:Npn \__cs_tmp:w #1#2#3
+\cs_set:Npn \@@_tmp:w #1#2#3
   {
     \cs_new_protected:cpx { cs_ #1 : #2 }
       {
-        \exp_not:N \__cs_generate_from_signature:NNn
+        \exp_not:N \@@_generate_from_signature:NNn
         \exp_after:wN \exp_not:N \cs:w cs_ #1 : #3 \cs_end:
       }
   }
-\cs_new_protected:Npn \__cs_generate_from_signature:NNn #1#2
+\cs_new_protected:Npn \@@_generate_from_signature:NNn #1#2
   {
-    \__cs_split_function:NN #2 \__cs_generate_from_signature:nnNNNn
+    \@@_split_function:NN #2 \@@_generate_from_signature:nnNNNn
     #1 #2
   }
-\cs_new_protected:Npn \__cs_generate_from_signature:nnNNNn #1#2#3#4#5#6
+\cs_new_protected:Npn \@@_generate_from_signature:nnNNNn #1#2#3#4#5#6
   {
     \bool_if:NTF #3
       {
         \str_if_eq_x:nnF { }
-          { \tl_map_function:nN {#2} \__cs_generate_from_signature:n }
+          { \tl_map_function:nN {#2} \@@_generate_from_signature:n }
           {
             \__msg_kernel_error:nnx { kernel } { non-base-function }
               { \token_to_str:N #5 }
@@ -3071,7 +3182,7 @@
           { \token_to_str:N #5 }
       }
   }
-\cs_new:Npn \__cs_generate_from_signature:n #1
+\cs_new:Npn \@@_generate_from_signature:n #1
   {
     \if:w n #1 \else: \if:w N #1 \else:
     \if:w T #1 \else: \if:w F #1 \else: #1 \fi: \fi: \fi: \fi:
@@ -3079,30 +3190,30 @@
 %    \end{macrocode}
 %   Then we define the 24 variants beginning with |N|.
 %    \begin{macrocode}
-\__cs_tmp:w { set }                  { Nn } { Npn }
-\__cs_tmp:w { set }                  { Nx } { Npx }
-\__cs_tmp:w { set_nopar }            { Nn } { Npn }
-\__cs_tmp:w { set_nopar }            { Nx } { Npx }
-\__cs_tmp:w { set_protected }        { Nn } { Npn }
-\__cs_tmp:w { set_protected }        { Nx } { Npx }
-\__cs_tmp:w { set_protected_nopar }  { Nn } { Npn }
-\__cs_tmp:w { set_protected_nopar }  { Nx } { Npx }
-\__cs_tmp:w { gset }                 { Nn } { Npn }
-\__cs_tmp:w { gset }                 { Nx } { Npx }
-\__cs_tmp:w { gset_nopar }           { Nn } { Npn }
-\__cs_tmp:w { gset_nopar }           { Nx } { Npx }
-\__cs_tmp:w { gset_protected }       { Nn } { Npn }
-\__cs_tmp:w { gset_protected }       { Nx } { Npx }
-\__cs_tmp:w { gset_protected_nopar } { Nn } { Npn }
-\__cs_tmp:w { gset_protected_nopar } { Nx } { Npx }
-\__cs_tmp:w { new }                  { Nn } { Npn }
-\__cs_tmp:w { new }                  { Nx } { Npx }
-\__cs_tmp:w { new_nopar }            { Nn } { Npn }
-\__cs_tmp:w { new_nopar }            { Nx } { Npx }
-\__cs_tmp:w { new_protected }        { Nn } { Npn }
-\__cs_tmp:w { new_protected }        { Nx } { Npx }
-\__cs_tmp:w { new_protected_nopar }  { Nn } { Npn }
-\__cs_tmp:w { new_protected_nopar }  { Nx } { Npx }
+\@@_tmp:w { set }                  { Nn } { Npn }
+\@@_tmp:w { set }                  { Nx } { Npx }
+\@@_tmp:w { set_nopar }            { Nn } { Npn }
+\@@_tmp:w { set_nopar }            { Nx } { Npx }
+\@@_tmp:w { set_protected }        { Nn } { Npn }
+\@@_tmp:w { set_protected }        { Nx } { Npx }
+\@@_tmp:w { set_protected_nopar }  { Nn } { Npn }
+\@@_tmp:w { set_protected_nopar }  { Nx } { Npx }
+\@@_tmp:w { gset }                 { Nn } { Npn }
+\@@_tmp:w { gset }                 { Nx } { Npx }
+\@@_tmp:w { gset_nopar }           { Nn } { Npn }
+\@@_tmp:w { gset_nopar }           { Nx } { Npx }
+\@@_tmp:w { gset_protected }       { Nn } { Npn }
+\@@_tmp:w { gset_protected }       { Nx } { Npx }
+\@@_tmp:w { gset_protected_nopar } { Nn } { Npn }
+\@@_tmp:w { gset_protected_nopar } { Nx } { Npx }
+\@@_tmp:w { new }                  { Nn } { Npn }
+\@@_tmp:w { new }                  { Nx } { Npx }
+\@@_tmp:w { new_nopar }            { Nn } { Npn }
+\@@_tmp:w { new_nopar }            { Nx } { Npx }
+\@@_tmp:w { new_protected }        { Nn } { Npn }
+\@@_tmp:w { new_protected }        { Nx } { Npx }
+\@@_tmp:w { new_protected_nopar }  { Nn } { Npn }
+\@@_tmp:w { new_protected_nopar }  { Nx } { Npx }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -3123,7 +3234,7 @@
 %   }
 %   The 24 |c| variants simply use \cs{exp_args:Nc}.
 %    \begin{macrocode}
-\cs_set:Npn \__cs_tmp:w #1#2
+\cs_set:Npn \@@_tmp:w #1#2
   {
     \cs_new_protected:cpx { cs_ #1 : c #2 }
       {
@@ -3131,30 +3242,30 @@
         \exp_after:wN \exp_not:N \cs:w cs_ #1 : N #2 \cs_end:
       }
   }
-\__cs_tmp:w { set }                  { n }
-\__cs_tmp:w { set }                  { x }
-\__cs_tmp:w { set_nopar }            { n }
-\__cs_tmp:w { set_nopar }            { x }
-\__cs_tmp:w { set_protected }        { n }
-\__cs_tmp:w { set_protected }        { x }
-\__cs_tmp:w { set_protected_nopar }  { n }
-\__cs_tmp:w { set_protected_nopar }  { x }
-\__cs_tmp:w { gset }                 { n }
-\__cs_tmp:w { gset }                 { x }
-\__cs_tmp:w { gset_nopar }           { n }
-\__cs_tmp:w { gset_nopar }           { x }
-\__cs_tmp:w { gset_protected }       { n }
-\__cs_tmp:w { gset_protected }       { x }
-\__cs_tmp:w { gset_protected_nopar } { n }
-\__cs_tmp:w { gset_protected_nopar } { x }
-\__cs_tmp:w { new }                  { n }
-\__cs_tmp:w { new }                  { x }
-\__cs_tmp:w { new_nopar }            { n }
-\__cs_tmp:w { new_nopar }            { x }
-\__cs_tmp:w { new_protected }        { n }
-\__cs_tmp:w { new_protected }        { x }
-\__cs_tmp:w { new_protected_nopar }  { n }
-\__cs_tmp:w { new_protected_nopar }  { x }
+\@@_tmp:w { set }                  { n }
+\@@_tmp:w { set }                  { x }
+\@@_tmp:w { set_nopar }            { n }
+\@@_tmp:w { set_nopar }            { x }
+\@@_tmp:w { set_protected }        { n }
+\@@_tmp:w { set_protected }        { x }
+\@@_tmp:w { set_protected_nopar }  { n }
+\@@_tmp:w { set_protected_nopar }  { x }
+\@@_tmp:w { gset }                 { n }
+\@@_tmp:w { gset }                 { x }
+\@@_tmp:w { gset_nopar }           { n }
+\@@_tmp:w { gset_nopar }           { x }
+\@@_tmp:w { gset_protected }       { n }
+\@@_tmp:w { gset_protected }       { x }
+\@@_tmp:w { gset_protected_nopar } { n }
+\@@_tmp:w { gset_protected_nopar } { x }
+\@@_tmp:w { new }                  { n }
+\@@_tmp:w { new }                  { x }
+\@@_tmp:w { new_nopar }            { n }
+\@@_tmp:w { new_nopar }            { x }
+\@@_tmp:w { new_protected }        { n }
+\@@_tmp:w { new_protected }        { x }
+\@@_tmp:w { new_protected_nopar }  { n }
+\@@_tmp:w { new_protected_nopar }  { x }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -3186,8 +3297,12 @@
 %
 % \subsection{Diagnostic functions}
 %
-% \begin{macro}[int]{\__kernel_register_show:N, \__kernel_register_show:c}
-% \begin{macro}[aux]{\__kernel_register_show_aux:n}
+%    \begin{macrocode}
+%<@@=kernel>
+%    \end{macrocode}
+%
+% \begin{macro}[int]{\@@_register_show:N, \@@_register_show:c}
+% \begin{macro}[aux]{\@@_register_show_aux:n}
 %   Simply using the \tn{showthe} primitive does not allow for
 %   line-wrapping, so instead use \cs{__msg_show_variable:NNNnn} (defined
 %   in \pkg{l3msg}).  This checks that the variable exists (using
@@ -3197,26 +3312,26 @@
 %   \tn{currentgrouptype}) altered by the line-wrapping code would show
 %   wrong values.
 %    \begin{macrocode}
-\cs_new_protected:Npn \__kernel_register_show:N #1
-  { \exp_args:No \__kernel_register_show_aux:nN { \tex_the:D #1 } #1 }
-\cs_new_protected:Npn \__kernel_register_show_aux:nN #1#2
+\cs_new_protected:Npn \@@_register_show:N #1
+  { \exp_args:No \@@_register_show_aux:nN { \tex_the:D #1 } #1 }
+\cs_new_protected:Npn \@@_register_show_aux:nN #1#2
   {
     \__msg_show_variable:NNNnn #2 \cs_if_exist:NTF ? { }
       { > ~ \token_to_str:N #2 = #1 }
   }
-\cs_new_protected:Npn \__kernel_register_show:c
-  { \exp_args:Nc \__kernel_register_show:N }
+\cs_new_protected:Npn \@@_register_show:c
+  { \exp_args:Nc \@@_register_show:N }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 %
-% \begin{macro}[int]{\__kernel_register_log:N, \__kernel_register_log:c}
-%   Redirect the output of \cs{__kernel_register_show:N} to the log.
+% \begin{macro}[int]{\@@_register_log:N, \@@_register_log:c}
+%   Redirect the output of \cs{@@_register_show:N} to the log.
 %    \begin{macrocode}
-\cs_new_protected:Npn \__kernel_register_log:N
-  { \__msg_log_next: \__kernel_register_show:N }
-\cs_new_protected:Npn \__kernel_register_log:c
-  { \exp_args:Nc \__kernel_register_log:N }
+\cs_new_protected:Npn \@@_register_log:N
+  { \__msg_log_next: \@@_register_show:N }
+\cs_new_protected:Npn \@@_register_log:c
+  { \exp_args:Nc \@@_register_log:N }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -3269,38 +3384,42 @@
 %
 % \subsection{Breaking out of mapping functions}
 %
-% \begin{macro}[EXP]{\__prg_break_point:Nn, \__prg_map_break:Nn}
+%    \begin{macrocode}
+%<@@=prg>
+%    \end{macrocode}
+%
+% \begin{macro}[EXP]{\@@_break_point:Nn, \@@_map_break:Nn}
 %   In inline mappings, the nesting level must be reset
 %   at the end of the mapping, even when the user decides
 %   to break out. This is done by putting the code that
-%   must be performed as an argument of \cs{__prg_break_point:Nn}.
+%   must be performed as an argument of \cs{@@_break_point:Nn}.
 %   The breaking functions are then defined to jump to
-%   that point and perform the argument of \cs{__prg_break_point:Nn},
+%   that point and perform the argument of \cs{@@_break_point:Nn},
 %   before the user's code (if any).  There is a check that we close the
 %   correct loop, otherwise we continue breaking.
 %    \begin{macrocode}
-\cs_new_eq:NN \__prg_break_point:Nn \use_ii:nn
-\cs_new:Npn \__prg_map_break:Nn #1#2#3 \__prg_break_point:Nn #4#5
+\cs_new_eq:NN \@@_break_point:Nn \use_ii:nn
+\cs_new:Npn \@@_map_break:Nn #1#2#3 \@@_break_point:Nn #4#5
   {
     #5
     \if_meaning:w #1 #4
       \exp_after:wN \use_iii:nnn
     \fi:
-    \__prg_map_break:Nn #1 {#2}
+    \@@_map_break:Nn #1 {#2}
   }
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\__prg_break_point:}
-% \begin{macro}{\__prg_break:, \__prg_break:n}
-%   Very simple analogues of \cs{__prg_break_point:Nn} and
-%   \cs{__prg_map_break:Nn}, for use in fast short-term recursions which
+% \begin{macro}{\@@_break_point:}
+% \begin{macro}{\@@_break:, \@@_break:n}
+%   Very simple analogues of \cs{@@_break_point:Nn} and
+%   \cs{@@_map_break:Nn}, for use in fast short-term recursions which
 %   are not mappings, do not need to support nesting, and in which
 %   nothing has to be done at the end of the loop.
 %    \begin{macrocode}
-\cs_new_eq:NN \__prg_break_point: \prg_do_nothing:
-\cs_new:Npn \__prg_break: #1 \__prg_break_point: { }
-\cs_new:Npn \__prg_break:n #1#2 \__prg_break_point: {#1}
+\cs_new_eq:NN \@@_break_point: \prg_do_nothing:
+\cs_new:Npn \@@_break: #1 \@@_break_point: { }
+\cs_new:Npn \@@_break:n #1#2 \@@_break_point: {#1}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -138,7 +138,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -227,7 +227,7 @@
 %
 %    \begin{macrocode}
 %<*initex|package>
-%<@@=expl>
+%<@@=kernel>
 %    \end{macrocode}
 %
 % \subsection{Format-specific code}
@@ -597,7 +597,7 @@
     \catcode 124 = \the\catcode 124\relax
     \catcode 126 = \the\catcode 126\relax
     \endlinechar = \the\endlinechar\relax
-    \chardef\csname\detokenize{l__kernel_expl_bool}\endcsname = 0\relax
+    \chardef\csname\detokenize{l_@@_expl_bool}\endcsname = 0\relax
   }%
 %</package>
 %    \end{macrocode}
@@ -617,10 +617,10 @@
 \endlinechar = 32\relax
 %    \end{macrocode}
 %
-% \begin{variable}{\l__kernel_expl_bool}
+% \begin{variable}{\l_@@_expl_bool}
 %   The status for experimental code syntax: this is on at present.
 %    \begin{macrocode}
-\chardef\l__kernel_expl_bool = 1\relax
+\chardef\l_@@_expl_bool = 1\relax
 %    \end{macrocode}
 %\end{variable}
 %
@@ -634,7 +634,7 @@
 %    \begin{macrocode}
 \protected \def \ExplSyntaxOn
   {
-    \bool_if:NF \l__kernel_expl_bool
+    \bool_if:NF \l_@@_expl_bool
       {
         \cs_set_protected:Npx \ExplSyntaxOff
           {
@@ -649,7 +649,7 @@
             \char_set_catcode:nn { 126 } { \char_value_catcode:n { 126 } }
             \tex_endlinechar:D =
               \tex_the:D \tex_endlinechar:D \scan_stop:
-            \bool_set_false:N \l__kernel_expl_bool
+            \bool_set_false:N \l_@@_expl_bool
             \cs_set_protected:Npn \ExplSyntaxOff { }
           }
       }
@@ -663,7 +663,7 @@
     \char_set_catcode_other:n            { 124 } % pipe
     \char_set_catcode_space:n            { 126 } % tilde
     \tex_endlinechar:D = 32 \scan_stop:
-    \bool_set_true:N \l__kernel_expl_bool
+    \bool_set_true:N \l_@@_expl_bool
   }
 %    \end{macrocode}
 % \end{macro}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -67,7 +67,7 @@
 %     \cs{box_clear:N} \meta{box}
 %   \end{syntax}
 %   Clears the content of the \meta{box} by setting the box equal to
-%   \cs{c_void_box}.
+%   \cs{c_empty_box}.
 % \end{function}
 %
 % \begin{function}
@@ -139,13 +139,34 @@
 %   \end{texnote}
 % \end{function}
 %
-% \begin{function}{\box_use_clear:N, \box_use_clear:c}
+% \begin{function}{\box_use_drop:N, \box_use_drop:c}
 %   \begin{syntax}
-%     \cs{box_use_clear:N} \meta{box}
+%     \cs{box_use_drop:N} \meta{box}
 %   \end{syntax}
 %   Inserts the current content of the \meta{box} onto the current
-%   list for typesetting, then globally clears the content of the
-%   \meta{box}.
+%   list for typesetting. The \meta{box} is then cleared at the group level the
+%   box was set at, \emph{i.e.}~the current content is \enquote{dropped} entirely.
+%   For example, with
+%   \begin{verbatim}
+%     \hbox_set:Nn \l_tmpa_box { A }
+%     \group_begin:
+%       \hbox_set:Nn \l_tmpa_box { B }
+%       \group_begin:
+%         \box_use_drop:N \l_tmpa_box
+%       \group_end:
+%       \box_show:N \l_tmpa_box
+%     \group_end:
+%     \box_show:N \l_tmpa_box
+%   \end{verbatim}
+%   the first use of |\box_show:N| will show an entirely cleared (void) box, and the
+%   second will show the letter |A| in the box.
+%
+%   This function is useful as boxes can contain an open-ended amount of material. As
+%   such, they can have a significant memory impact on \TeX{}. At the same time, it is
+%   often the case that once a box has been inserted, it is no longer needed at all.
+%   Using |\box_use_drop:N| in these circumstances therefore offers improved memory
+%   use and performance. It should therefore be preferred over \cs{box_use:N} where
+%   it is clear that the content is no longer needed in the variable.
 %   \begin{texnote}
 %     This is the \TeX{} primitive \tn{box}.
 %   \end{texnote}
@@ -170,7 +191,7 @@
 %   \end{syntax}
 %   This function operates in horizontal mode, and inserts the
 %   material specified by the \meta{box function}
-%   such that its reference point is displaced vertical by the given
+%   such that its reference point is displaced vertically by the given
 %   \meta{dimexpr} from the reference point for typesetting, up
 %   or down as appropriate. The \meta{box function} should be
 %   a box operation such as |\box_use:N \<box>| or a \enquote{raw}
@@ -283,6 +304,9 @@
 % \begin{variable}[updated = 2012-11-04]{\c_empty_box}
 %   This is a permanently empty box, which is neither set as horizontal
 %   nor vertical.
+%   \begin{texnote}
+%     At the \TeX{} level this is a void box.
+%   \end{texnote}
 % \end{variable}
 %
 % \section{Scratch boxes}
@@ -604,7 +628,7 @@
 %   \end{texnote}
 % \end{function}
 %
-% \subsection{Affine transformations}
+% \section{Affine transformations}
 %
 % Affine transformations are changes which (informally) preserve straight
 % lines. Simple translations are affine transformations, but are better handled
@@ -968,14 +992,14 @@
 %
 % \subsection{Using boxes}
 %
-% \begin{macro}{\box_use_clear:N, \box_use_clear:c}
+% \begin{macro}{\box_use_drop:N, \box_use_drop:c}
 % \begin{macro}{\box_use:N, \box_use:c}
 %   Using a \meta{box}. These are just \TeX{} primitives with meaningful
 %   names.
 %    \begin{macrocode}
-\cs_new_eq:NN \box_use_clear:N \tex_box:D
+\cs_new_eq:NN \box_use_drop:N \tex_box:D
 \cs_new_eq:NN \box_use:N \tex_copy:D
-\cs_generate_variant:Nn \box_use_clear:N { c }
+\cs_generate_variant:Nn \box_use_drop:N { c }
 \cs_generate_variant:Nn \box_use:N { c }
 %    \end{macrocode}
 % \end{macro}
@@ -1166,7 +1190,7 @@
 %    \end{macrocode}
 % \end{macro}
 %
-%  \subsection{Horizontal mode boxes}
+% \subsection{Horizontal mode boxes}
 %
 % \begin{macro}{\hbox:n}
 % \testfile{m3box002.lvt}
@@ -1629,7 +1653,7 @@
     \box_set_dp:Nn \l_@@_internal_box { -\l_@@_bottom_new_dim }
     \box_set_wd:Nn \l_@@_internal_box
       { \l_@@_right_new_dim - \l_@@_left_new_dim }
-    \box_use:N \l_@@_internal_box
+    \box_use_drop:N \l_@@_internal_box
   }
 %    \end{macrocode}
 % \end{macro}
@@ -1982,7 +2006,7 @@
         \hbox_to_wd:nn { \l_@@_right_new_dim }
           {
             \tex_kern:D \l_@@_right_new_dim
-            \box_use:N \l_@@_internal_box
+            \box_use_drop:N \l_@@_internal_box
             \tex_hss:D
           }
       }
@@ -1991,7 +2015,7 @@
         \hbox:n
           {
             \tex_kern:D \c_zero_dim
-            \box_use:N \l_@@_internal_box
+            \box_use_drop:N \l_@@_internal_box
             \tex_hss:D
           }
       }
@@ -2002,6 +2026,7 @@
 % \subsection{Deprecated functions}
 %
 % \begin{macro}[deprecated = 2018-12-31]{\box_resize:Nnn, \box_resize:cnn}
+% \begin{macro}[deprecated = 2018-12-31]{\box_use_clear:N, \box_use_clear:c}
 %    \begin{macrocode}
 \__debug_deprecation:nnNNpn
   { 2018-12-31 } { \box_resize_to_wd_and_ht_plus_dp:Nnn }
@@ -2011,8 +2036,15 @@
   { 2018-12-31 } { \box_resize_to_wd_and_ht_plus_dp:cnn }
 \cs_new_protected:Npn \box_resize:cnn
   { \box_resize_to_wd_and_ht_plus_dp:cnn }
+\__debug_deprecation:nnNNpn
+  { 2018-12-31 } { \box_use_clear:N }
+\cs_new_protected:Npn \box_use_clear:N { \box_use_drop:N }
+\__debug_deprecation:nnNNpn
+  { 2018-12-31 } { \box_use_clear:c }
+\cs_new_protected:Npn \box_use_clear:c { \box_use_drop:c }
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
 %    \begin{macrocode}
 %</initex|package>

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -84,7 +84,7 @@
 %
 % \section{Additions to \pkg{l3basics}}
 %
-% \begin{function}[added = 2017-07-16]{\debug_on:n, \debug_off:n}
+% \begin{function}[added = 2017-07-16, updated = 2017-08-02]{\debug_on:n, \debug_off:n}
 %   \begin{syntax}
 %     \cs{debug_on:n} |{| \meta{comma-separated list} |}|
 %     \cs{debug_off:n} |{| \meta{comma-separated list} |}|
@@ -95,6 +95,8 @@
 %   \begin{itemize}
 %     \item \texttt{check-declarations} that checks all \pkg{expl3}
 %       variables used were previously declared;
+%     \item \texttt{check-expressions} that checks integer, dimension,
+%       skip, and muskip expressions are not terminated prematurely;
 %     \item \texttt{deprecation} that makes soon-to-be-deprecated commands produce errors;
 %     \item \texttt{log-functions} that logs function definitions;
 %   \end{itemize}
@@ -935,6 +937,11 @@
 %
 % \section{Additions to \pkg{l3token}}
 %
+% \begin{variable}[added = 2017-08-07]{\c_catcode_active_space_tl}
+%   Token list containing one character with category code $13$,
+%   (\enquote{active}), and character code $32$ (space).
+% \end{variable}
+%
 % \begin{function}[TF, updated = 2012-12-20]{\peek_N_type:}
 %   \begin{syntax}
 %     \cs{peek_N_type:TF} \Arg{true code} \Arg{false code}
@@ -2151,6 +2158,8 @@
 %   Unpack the primitive.
 %    \begin{macrocode}
 \cs_new:Npn \sys_rand_seed: { \tex_the:D \pdftex_randomseed:D }
+\cs_if_exist:NF \pdftex_randomseed:D
+  { \cs_set:Npn \sys_rand_seed: { 0 } }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -4060,7 +4069,22 @@
 %
 % \subsection{Additions to \pkg{l3token}}
 %
+% \begin{variable}{\c_catcode_active_space_tl}
+%   While \cs{__char_generate:nn} can produce active characters in some
+%   engines it cannot in general.  It would be possible to simply change
+%   the catcode of space but then the code would need to avoid all
+%   spaces, making it quite unreadable.  Instead we use the primitive
+%   \cs{tex_lowercase:D} trick.
 %    \begin{macrocode}
+\group_begin:
+  \char_set_catcode_active:N *
+  \char_set_lccode:nn { `* } { `\ }
+  \tex_lowercase:D { \tl_const:Nn \c_catcode_active_space_tl { * } }
+\group_end:
+%    \end{macrocode}
+% \end{variable}
+%
+%    \begin{macrocode}
 %<@@=peek>
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -1352,7 +1352,7 @@
     \mode_leave_vertical:
     \@@_align:NnnNnnnnN \c_empty_coffin { H } { l }
       #1 {#2} {#3} {#4} {#5} \l_@@_aligned_coffin
-    \box_use:N \l_@@_aligned_coffin
+    \box_use_drop:N \l_@@_aligned_coffin
   }
 \cs_generate_variant:Nn \coffin_typeset:Nnnnn { c }
 %    \end{macrocode}
@@ -1565,7 +1565,7 @@
         \prop_remove:Nn \l_@@_display_poles_prop {##1}
         \@@_display_handles_aux:nnnnnn {##1} ##2 {#2}
       }
-    \box_use:N \l_@@_display_coffin
+    \box_use_drop:N \l_@@_display_coffin
   }
 %    \end{macrocode}
 %   For each pole there is a check for an intersection, which here does

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3color.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3color.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -70,7 +70,7 @@
 % This isn't included in the typeset documentation because it's a bit
 % ugly:
 %<*class>
-\ProvidesExplClass{l3doc}{2017/07/19}{}
+\ProvidesExplClass{l3doc}{2017/09/18}{}
   {L3 Experimental documentation class}
 %</class>
 % \fi
@@ -77,7 +77,7 @@
 %
 % \title{The \cls{l3doc} class}
 % \author{\Team}
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 % \maketitle
 % \tableofcontents
 %
@@ -564,6 +564,19 @@
 %    \end{macrocode}
 % \end{variable}
 %
+% \begin{variable}[int]{\l_@@_detect_internals_bool, \l_@@_detect_internals_tl}
+%   If \texttt{true}, \pkg{l3doc} will check for use of internal
+%   commands \cs[no-index]{__\meta{pkg}_\ldots{}} from other packages in
+%   \texttt{macrocode} environments and in~\cs{cs}.  Also a token list
+%   to store temporary data for this purpose.
+%    \begin{macrocode}
+\bool_new:N \l_@@_detect_internals_bool
+\bool_set_true:N \l_@@_detect_internals_bool
+\tl_new:N \l_@@_detect_internals_tl
+\tl_new:N \l_@@_detect_internals_cs_tl
+%    \end{macrocode}
+% \end{variable}
+%
 % \begin{variable}[int]{\l_@@_output_coffin}
 %   The \env{function} environment is typeset by combining coffins
 %   containing various pieces (function names, description, \emph{etc.})
@@ -968,9 +981,23 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}[int]{\@@_trim_right:Nn, \@@_trim_right:No}
+%   Removes all material after |#2| in the token list variable~|#1|.
+%   Perhaps combine with \cs{@@_key_trim_module:n}?
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_trim_right:Nn #1#2
+  {
+    \cs_set:Npn \@@_tmp:w ##1 #2 ##2 \q_stop { \exp_not:n {##1} }
+    \tl_set:Nx #1 { \exp_after:wN \@@_tmp:w #1 #2 \q_stop }
+  }
+\cs_generate_variant:Nn \@@_trim_right:Nn { No }
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}[int]{\@@_replace_at_at:N}
 % \begin{macro}[aux]{\@@_replace_at_at_aux:Nn}
-%   The goal is to replace |@@| by the current module name.  If there is
+%   The goal is to replace |@@| by the current module name.  We take
+%   advantage of this function to also detect internal macros.  If there is
 %   no \meta{module~name}, do nothing.  Otherwise, sanitize the catcodes
 %   of |@| and~|_|, temporarily change |@@@@| to |aa| with different catcodes and later to |@@|, and replace |__@@| and |_@@| and |@@| by
 %   |__|\meta{module~name}.  The result contains |_| with category
@@ -982,6 +1009,11 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_replace_at_at:N #1
   {
+    \bool_if:NT \l_@@_in_implementation_bool
+      {
+        \bool_if:NT \l_@@_detect_internals_bool
+          { \@@_detect_internals:N #1 }
+      }
     \tl_if_empty:NF \g_@@_module_name_tl
       {
         \exp_args:NNo \@@_replace_at_at_aux:Nn
@@ -1002,6 +1034,48 @@
 % \end{macro}
 % \end{macro}
 %
+% \begin{macro}[aux]{\@@_detect_internals:N}
+%   After splitting at each |__| and removing the leading item from the
+%   sequence (since it does not follow |__|), remove everything after
+%   any space or end-of-line to get a good approximation of the control
+%   sequence (for the warning message), then remove anything after any
+%   |_| or |:| (with either catcode) to get the module name.  If that
+%   name is not empty and differs from the current |@@| name then
+%   complain.
+%    \begin{macrocode}
+\group_begin:
+  \char_set_catcode_active:N \^^M
+  \cs_new_protected:Npn \@@_detect_internals:N #1
+    {
+      \tl_set_eq:NN \l_@@_detect_internals_tl #1
+      \tl_replace_all:Non \l_@@_detect_internals_tl { \token_to_str:N _ } { _ }
+      \seq_set_split:NnV \l_@@_tmpa_seq { _ _ } \l_@@_detect_internals_tl
+      \seq_pop_left:NN \l_@@_tmpa_seq \l_@@_detect_internals_tl
+      \seq_map_variable:NNn \l_@@_tmpa_seq \l_@@_detect_internals_tl
+        {
+          \@@_trim_right:No \l_@@_detect_internals_tl
+            \c_catcode_active_space_tl
+          \@@_trim_right:Nn \l_@@_detect_internals_tl ^^M
+          \tl_set_eq:NN \l_@@_detect_internals_cs_tl \l_@@_detect_internals_tl
+          \@@_trim_right:Nn \l_@@_detect_internals_tl _
+          \@@_trim_right:Nn \l_@@_detect_internals_tl :
+          \@@_trim_right:No \l_@@_detect_internals_tl { \token_to_str:N : }
+          \tl_if_empty:NF \l_@@_detect_internals_tl
+            {
+              \str_if_eq:NNF \l_@@_detect_internals_tl \g_@@_module_name_tl
+                {
+                  \msg_warning:nnxxx { l3doc } { foreign-internal }
+                    { \tl_to_str:N \l_@@_detect_internals_cs_tl }
+                    { \tl_to_str:N \l_@@_detect_internals_tl }
+                    { \tl_to_str:N \g_@@_module_name_tl }
+                }
+            }
+        }
+    }
+\group_end:
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}[aux,rEXP]{\@@_signature_base_form:n}
 % \begin{macro}[aux]
 %   {\@@_signature_base_form_aux:n, \@@_signature_base_form_aux:w}
@@ -1244,6 +1318,12 @@
     The~'syntax'~environment~should~only~be~used~once~in~
     a~'function'~environment.
   }
+\msg_new:nnn { l3doc } { foreign-internal }
+  {
+    A~control~sequence~of~the~form~'...__#1'~was~used.~
+    It~should~only~be~used~in~the~module~'#2'
+    \tl_if_empty:nF {#3} { ,~not~in~'#3' } .
+  }
 %    \end{macrocode}
 %
 % \subsection{Options and configuration}
@@ -2355,7 +2435,7 @@
 \cs_new_protected:Npn \@@_function_assemble:
   {
     \hcoffin_set:Nn  \l_@@_syntax_coffin
-      { \box_use_clear:N \g_@@_syntax_box }
+      { \box_use_drop:N \g_@@_syntax_box }
     \bool_if:NTF \l_@@_long_name_bool
       {
         \coffin_join:NnnNnnnn
@@ -2568,7 +2648,7 @@
       {
         \begin{quote}
           \mode_leave_vertical:
-          \box_use_clear:N \g_@@_syntax_box
+          \box_use_drop:N \g_@@_syntax_box
         \end{quote}
       }
   }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -61,7 +61,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -45,7 +45,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -519,7 +519,7 @@
     \@ifpackageloaded { color }
       {
         \cs_new_protected:Npn \@@_color_pickup:
-          { \tl_set_eq:NN \l__color_current_tl \current at color }
+          { \tl_set:Nx \l__color_current_tl { \current at color } }
       }
       { \cs_new_protected:Npn \@@_color_pickup: { } }
   }
@@ -555,10 +555,13 @@
 %    \end{macrocode}
 %
 % \begin{macro}[aux]{\@@_color_pickup:}
-% \begin{macro}[aux]{\@@_color_pickup_aux:}
+% \begin{macro}[aux]{\@@_color_pickup_aux:w}
 %   The current color in driver-dependent format: pick up the package-mode
 %   data if available. We end up converting back and forward in this route as
 %   we store our color data in \texttt{dvips} format.
+%   The \tn{current at color} needs to be \texttt{x}-expanded before
+%   \cs{@@_color_pickup_aux:w} breaks it apart, because for instance
+%   \pkg{xcolor} sets it to be instructions to generate a colour
 %    \begin{macrocode}
 %<*package>
 \AtBeginDocument
@@ -567,24 +570,23 @@
       {
         \cs_new_protected:Npn \@@_color_pickup:
           {
-            \tl_set:Nx \l__color_current_tl
-              {
-                \exp_after:wN \exp_after:wN\exp_after:wN
-                  \@@_color_pickup_aux:w \exp_after:wN
-                  \current at color \c_space_tl 0 ~ 0 ~ 0 \q_stop
-              }
+            \exp_last_unbraced:Nx \@@_color_pickup_aux:w
+              { \current at color } ~ 0 ~ 0 ~ 0 \q_stop
           }
         \cs_new:Npn \@@_color_pickup_aux:w #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \q_stop
           {
-            \str_if_eq:nnTF {#2} { g }
-              { gray ~ #1 }
+            \tl_set:Nx \l__color_current_tl
               {
-                \str_if_eq:nnTF {#4} { rg }
-                  { rgb ~ #1 ~ #2 ~ #3 }
+                \str_if_eq:nnTF {#2} { g }
+                  { gray ~ #1 }
                   {
-                    \str_if_eq:nnTF {#5} { k }
-                      { cmyk ~ #1 ~ #2 ~ #3 ~ #4 }
-                      { gray ~ #1 }
+                    \str_if_eq:nnTF {#4} { rg }
+                      { rgb ~ #1 ~ #2 ~ #3 }
+                      {
+                        \str_if_eq:nnTF {#5} { k }
+                          { cmyk ~ #1 ~ #2 ~ #3 ~ #4 }
+                          { gray ~ #1 }
+                      }
                   }
               }
           }
@@ -1218,12 +1220,10 @@
     \tex_special:D { ps::~72~Resolution~div~72~VResolution~div~neg~scale }
     \tex_special:D { ps::~magscale~{1~DVImag~div~dup~scale}~if }
     \tex_special:D { ps::~l3x~neg~l3y~neg~translate }
-    \group_begin:
-      \box_set_wd:Nn #1 { 0pt }
-      \box_set_ht:Nn #1 { 0pt }
-      \box_set_dp:Nn #1 { 0pt }
-      \box_use:N #1
-    \group_end:
+    \box_set_wd:Nn #1 { 0pt }
+    \box_set_ht:Nn #1 { 0pt }
+    \box_set_dp:Nn #1 { 0pt }
+    \box_use:N #1
     \tex_special:D { ps::[begin] }
     \@@_scope_end:
   }
@@ -1339,7 +1339,7 @@
 \cs_new_protected:Npn \@@_box_use_rotate:Nn #1#2
   {
     \@@_scope_begin:
-    \box_set_wd:Nn #1 \c_zero_dim
+    \box_set_wd:Nn #1 { 0pt }
     \fp_set:Nn \l_@@_cos_fp { round ( cosd ( #2 ) , 5 ) }
     \fp_compare:nNnT \l_@@_cos_fp = \c_zero_fp
       { \fp_zero:N \l_@@_cos_fp }
@@ -1733,11 +1733,11 @@
         (#1)
         \bool_lazy_or:nnT
           { \l__image_interpolate_bool }
-          { ! \tl_if_empty_p:N \l__imge_decode_tl }
+          { ! \tl_if_empty_p:N \l__image_decode_tl }
           {
             <<
-              \tl_if_empty:NF \l__imge_decode_tl
-                { /Decode~[ \l__imge_decode_tl ] }
+              \tl_if_empty:NF \l__image_decode_tl
+                { /Decode~[ \l__image_decode_tl ] }
               \bool_if:NT \l__image_interpolate_bool
                 { /Interpolate~true> }
             >>
@@ -2849,12 +2849,10 @@
             transform="scale(-1,1)~translate({?x},{?y})~scale(-1,-1)"
         >
       }
-    \group_begin:
-      \box_set_wd:Nn #1 { 0pt }
-      \box_set_ht:Nn #1 { 0pt }
-      \box_set_dp:Nn #1 { 0pt }
-      \box_use:N #1
-    \group_end:
+    \box_set_wd:Nn #1 { 0pt }
+    \box_set_ht:Nn #1 { 0pt }
+    \box_set_dp:Nn #1 { 0pt }
+    \box_use:N #1
     \@@_literal:n { </g> }
     \@@_scope_end:
   }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -600,11 +600,6 @@
 %   and MiK\TeX{} systems.
 % \end{variable}
 %
-% \begin{variable}[added = 2011-09-05]{\c_catcode_other_space_tl}
-%   Token list containing one character with category code $12$,
-%   (\enquote{other}), and character code $32$ (space).
-% \end{variable}
-%
 % \subsection{Constant input--output streams}
 %
 % \begin{variable}{\c_term_ior}
@@ -1754,13 +1749,6 @@
 % used by the messaging system, but is designed such that it is
 % available for other uses.
 %
-% \begin{macro}{\c_catcode_other_space_tl}
-%   Create a space with category code $12$: an \enquote{other} space.
-%    \begin{macrocode}
-\tl_const:Nx \c_catcode_other_space_tl { \char_generate:nn { `\  } { 12 } }
-%    \end{macrocode}
-% \end{macro}
-%
 % \begin{variable}{\l_iow_line_count_int}
 %   This is the \enquote{raw} number of characters in a line which
 %   can be written to the terminal.

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 % \maketitle
 %
 % \begin{documentation}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -703,8 +703,9 @@
 %   \[
 %   \left(
 %     \sum_{i=1}^{4} \meta{X_i} \cdot 10^{-4i} \cdot 10^{-\meta{shift}}
-%     - \meta{X'_1} \cdot 10^{-8} + \meta{X'_2} \cdot 10^{-16}
 %   \right)
+%   - \bigl( \meta{X'_1} \cdot 10^{-8} + \meta{X'_2} \cdot 10^{-16} \bigr)
+%   = 0.\meta{extra-digits} \cdot 10^{-16}
 %   \in [0,10^{-16}).
 %   \]
 %   To round properly later, we need to remember some information

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -868,24 +868,22 @@
 % Raising a number $a$ to a power $b$ leads to many distinct situations.
 % \begin{center}\def\abs#1{\lvert #1\rvert}
 %   \begin{tabular}{>{$}c<{$}|*8{>{$}l<{$}}}
-%     a^b          &-\infty &(-\infty,-0)  &-p/5^k              &\pm 0 &+p/5^k            &(0,\infty)      &+\infty &\nan \\ \hline
+%     a^b          &-\infty &(-\infty,-0)  &-\text{integer}     &\pm 0 &+\text{integer}   &(0,\infty)      &+\infty &\nan \\ \hline
 %     +\infty      &+0      &\multicolumn{2}{c}{$+0$}           &+1    &\multicolumn{2}{c}{$+\infty$}      &+\infty &\nan \\
 %     (1,\infty)   &+0      &\multicolumn{2}{c}{$+\abs{a}^{b}$} &+1    &\multicolumn{2}{c}{$+\abs{a}^{b}$} &+\infty &\nan \\
 %     +1           &+1      &\multicolumn{2}{c}{$+1$}           &+1    &\multicolumn{2}{c}{$+1$}           &+1      &+1   \\
 %     (0,1)        &+\infty &\multicolumn{2}{c}{$+\abs{a}^{b}$} &+1    &\multicolumn{2}{c}{$+\abs{a}^{b}$} &+0      &\nan \\
 %     +0           &+\infty &\multicolumn{2}{c}{$+\infty$}      &+1    &\multicolumn{2}{c}{$+0$}           &+0      &\nan \\
-%     -0           &+\infty &\nan          &(-1)^p\infty        &+1    &(-1)^p 0          &+0              &+0      &\nan \\
-%     (-1,0)       &+\infty &\nan          &(-1)^p\abs{a}^{b}   &+1    &(-1)^p\abs{a}^{b} &\nan            &+0      &\nan \\
-%     -1           &+1      &\nan          &(-1)^p              &+1    &(-1)^p            &\nan            &+1      &\nan \\
-%     (-\infty,-1) &+0      &\nan          &(-1)^p\abs{a}^{b}   &+1    &(-1)^p\abs{a}^{b} &\nan            &+\infty &\nan \\
-%     -\infty      &+0      &+0            &(-1)^p 0            &+1    &(-1)^p\infty      &\nan            &+\infty &\nan \\
+%     -0           &+\infty &\nan          &(-1)^b\infty        &+1    &(-1)^b 0          &+0              &+0      &\nan \\
+%     (-1,0)       &+\infty &\nan          &(-1)^b\abs{a}^{b}   &+1    &(-1)^b\abs{a}^{b} &\nan            &+0      &\nan \\
+%     -1           &+1      &\nan          &(-1)^b              &+1    &(-1)^b            &\nan            &+1      &\nan \\
+%     (-\infty,-1) &+0      &\nan          &(-1)^b\abs{a}^{b}   &+1    &(-1)^b\abs{a}^{b} &\nan            &+\infty &\nan \\
+%     -\infty      &+0      &+0            &(-1)^b 0            &+1    &(-1)^b\infty      &\nan            &+\infty &\nan \\
 %     \nan         &\nan    &\nan          &\nan                &+1    &\nan              &\nan            &\nan    &\nan \\
 %   \end{tabular}
 % \end{center}
 % We distinguished in this table the cases of finite (positive or
-% negative) exponents of the form $b=p/q$ with $q$~odd (hence
-% necessarily a power of~$5$), as $(-1)^{p/q}=(-1)^p$ is defined in that
-% case.
+% negative) integer exponents, as $(-1)^b$ is defined in that case.
 % One peculiarity of this operation is that $\nan^0 = 1^\nan = 1$,
 % because this relation is obeyed for any number, even $\pm\infty$.
 %
@@ -1189,22 +1187,18 @@
 % \begin{macro}[aux, rEXP]
 %   {
 %     \@@_pow_neg_case:w, \@@_pow_neg_case_aux:nnnnn,
-%     \@@_pow_neg_case_aux:w
+%     \@@_pow_neg_case_aux:Nnnw
 %   }
 %   This function expects a floating point number, and determines its
 %   \enquote{parity}.  It should be used after \cs{if_case:w} or in an
-%   integer expression.  It gives $-1$ if the number is an even integer
-%   divided by some power of~$5$, $0$~if the number is an odd integer
-%   divided by some power of~$5$, and $1$~otherwise.  Zeros and
+%   integer expression.  It gives $-1$ if the number is an even integer,
+%   $0$~if the number is an odd integer, and $1$~otherwise.  Zeros and
 %   $\pm\infty$ are even (because very large finite floating points are
 %   even), while \texttt{nan} is a non-integer.  The sign of normal
-%   numbers is irrelevant to parity.  The idea is to repeatedly multiply
-%   the number by~$5$ (by halving the mantissa and shifting the
-%   exponent) until the mantissa is odd (this can only happen at most
-%   $53$ times since $2^{54}>10^{16}$): if the resulting exponent is
-%   larger than $16$ the parity is even, if it is exactly $16$ the
-%   parity is odd, and otherwise we should return~$1$.  Of course there
-%   is a shortcut: we stop as soon as the exponent exceeds~$16$.
+%   numbers is irrelevant to parity.  After \cs{@@_decimate:nNnnnn} the
+%   argument |#1| of \cs{@@_pow_neg_case_aux:Nnnw} is a rounding digit,
+%   |0|~if and only if the number was an integer, and |#3| is the $8$
+%   least significant digits of that integer.
 %    \begin{macrocode}
 \cs_new:Npn \@@_pow_neg_case:w \s_@@ \@@_chk:w #1#2#3;
   {
@@ -1217,25 +1211,25 @@
     \exp_stop_f:
   }
 \cs_new:Npn \@@_pow_neg_case_aux:nnnnn #1#2#3#4#5
-  { \@@_pow_neg_case_aux:w #1 ; #2 #3 ; #4 #5 ; }
-\cs_new:Npn \@@_pow_neg_case_aux:w #1 ; #2 ; #3 ;
   {
     \if_int_compare:w #1 > \c_@@_prec_int
       -1
     \else:
+      \@@_decimate:nNnnnn { \c_@@_prec_int - #1 }
+        \@@_pow_neg_case_aux:Nnnw
+        {#2} {#3} {#4} {#5}
+    \fi:
+  }
+\cs_new:Npn \@@_pow_neg_case_aux:Nnnw #1#2#3#4 ;
+  {
+    \if_meaning:w 0 #1
       \if_int_odd:w #3 \exp_stop_f:
-        \if_int_compare:w #1 = \c_@@_prec_int
-          0
-        \else:
-          1
-        \fi:
+        0
       \else:
-        \exp_after:wN \@@_pow_neg_case_aux:w
-        \__int_value:w \__int_eval:w #1 + 1 \exp_after:wN ;
-        \__int_value:w \__int_eval:w (#2 + 1) / 2 - 1 \exp_after:wN ;
-        \__int_value:w \__int_eval:w
-          \if_int_odd:w #2 \exp_stop_f: 5000 0000 + \fi: #3 / 2 ;
+        -1
       \fi:
+    \else:
+      1
     \fi:
   }
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 % \maketitle
 %
 % \begin{documentation}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -38,7 +38,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -47,7 +47,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -932,8 +932,8 @@
 %   operation is right associative, hence \texttt{2 ** 2 ** 3} equals
 %   $2^{2^{3}} = 256$.  If \meta{operand_1} is negative or $-0$ then:
 %   the result's sign is $+$ if the \meta{operand_2} is infinite and
-%   $(-1)^p$ if the \meta{operand_2} is $p/q$ with $p$ integer and $q$
-%   odd; the result is $+0$ if
+%   $(-1)^p$ if the \meta{operand_2} is $p/5^q$ with $p$, $q$ integers;
+%   the result is $+0$ if
 %   |abs(|\meta{operand_1}|)^|\meta{operand_2} evaluates to zero; in
 %   other cases the \enquote{invalid operation} exception occurs because
 %   the sign cannot be determined.  \enquote{Division by zero} occurs

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -1010,7 +1010,8 @@
 %   or directly in the input stream.
 %   When debugging, use parentheses to catch early termination.
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  { { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_eval:n } }
 \cs_new:Npn \int_eval:n #1
   { \@@_value:w \@@_eval:w #1 \@@_eval_end: }
 %    \end{macrocode}
@@ -1028,7 +1029,8 @@
 %   evaluation.  The absolute value is obtained by removing a leading
 %   sign if any.  All three functions expand in two steps.
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  { { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_abs:n } }
 \cs_new:Npn \int_abs:n #1
   {
     \@@_value:w \exp_after:wN \@@_abs:N
@@ -1037,7 +1039,11 @@
   }
 \cs_new:Npn \@@_abs:N #1
   { \if_meaning:w - #1 \else: \exp_after:wN #1 \fi: }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+  {
+    { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_max:nn }
+    { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \int_max:nn }
+  }
 \cs_set:Npn \int_max:nn #1#2
   {
     \@@_value:w \exp_after:wN \@@_maxmin:wwN
@@ -1046,7 +1052,11 @@
       >
     \exp_stop_f:
   }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+  {
+    { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_min:nn }
+    { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \int_min:nn }
+  }
 \cs_set:Npn \int_min:nn #1#2
   {
     \@@_value:w \exp_after:wN \@@_maxmin:wwN
@@ -1091,7 +1101,11 @@
 %   truncating behaviour that we want. The details are thanks to Heiko
 %   Oberdiek: getting things right in all cases is not so easy.
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+  {
+    { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_div_truncate:nn }
+    { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \int_div_truncate:nn }
+  }
 \cs_new:Npn \int_div_truncate:nn #1#2
   {
     \@@_value:w \@@_eval:w
@@ -1121,7 +1135,11 @@
 %    \end{macrocode}
 %   Finally there's the modulus operation.
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+  {
+    { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_mod:nn }
+    { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \int_mod:nn }
+  }
 \cs_new:Npn \int_mod:nn #1#2
   {
     \@@_value:w \@@_eval:w \exp_after:wN \@@_mod:ww
@@ -1168,6 +1186,8 @@
 %   set up code to determine what can be done. No full engine testing just yet
 %   so everything is a little awkward.
 %    \begin{macrocode}
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \int_const:Nn } }
 \cs_new_protected:Npn \int_const:Nn #1#2
   {
     \int_compare:nNnTF {#2} < \c_zero
@@ -1184,7 +1204,7 @@
           {
             \__chk_if_free_cs:N #1
             \tex_global:D \@@_constdef:Nw #1 =
-              \@@_eval:w (#2) \@@_eval_end:
+              \@@_eval:w #2 \@@_eval_end:
           }
       }
   }
@@ -1274,10 +1294,12 @@
 % \UnitTested
 %    Adding and subtracting to and from a counter \ldots
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \int_add:Nn } }
 \cs_new_protected:Npn \int_add:Nn #1#2
   { \tex_advance:D #1 by \@@_eval:w #2 \@@_eval_end: }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \int_sub:Nn } }
 \cs_new_protected:Npn \int_sub:Nn #1#2
   { \tex_advance:D #1 by - \@@_eval:w #2 \@@_eval_end: }
 \cs_new_protected:Npn \int_gadd:Nn
@@ -1331,7 +1353,8 @@
 %   if they are not defined. Thus there is no need for the checking
 %   code seen with token list variables.
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \int_set:Nn } }
 \cs_new_protected:Npn \int_set:Nn #1#2
   { #1 ~ \@@_eval:w #2 \@@_eval_end: }
 \cs_new_protected:Npn \int_gset:Nn { \tex_global:D \int_set:Nn }
@@ -1536,7 +1559,12 @@
 % \UnitTested
 % More efficient but less natural in typing.
 %    \begin{macrocode}
-\__debug_patch_conditional_args:nNNpnn { { (#1) \@@_eval_end: } {#2} { (#3) } }
+\__debug_patch_conditional_args:nNNpnn
+  {
+    { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_compare:nNn }
+    { \@@_eval_end: #2 }
+    { \__debug_chk_expr:nNnN {#3} \@@_eval:w { } \int_compare:nNn }
+  }
 \prg_new_conditional:Npnn \int_compare:nNn #1#2#3 { p , T , F , TF }
   {
     \if_int_compare:w \@@_eval:w #1 #2 \@@_eval:w #3 \@@_eval_end:
@@ -1595,7 +1623,8 @@
 % \UnitTested
 %   A predicate function.
 %    \begin{macrocode}
-\__debug_patch_conditional_args:nNNpnn { { (#1) } }
+\__debug_patch_conditional_args:nNNpnn
+  { { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_if_odd:n } }
 \prg_new_conditional:Npnn \int_if_odd:n #1 { p , T , F , TF}
   {
     \if_int_odd:w \@@_eval:w #1 \@@_eval_end:
@@ -1604,7 +1633,8 @@
       \prg_return_false:
     \fi:
   }
-\__debug_patch_conditional_args:nNNpnn { { (#1) } }
+\__debug_patch_conditional_args:nNNpnn
+  { { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_if_even:n } }
 \prg_new_conditional:Npnn \int_if_even:n #1 { p , T , F , TF}
   {
     \if_int_odd:w \@@_eval:w #1 \@@_eval_end:
@@ -1720,7 +1750,12 @@
 %   step size of zero before checking the sign, but we optimize for the
 %   most frequent case (positive step).
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } { (#3) } }
+\__debug_patch_args:nNNpn
+  {
+    { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_step_function:nnnN }
+    { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \int_step_function:nnnN }
+    { \__debug_chk_expr:nNnN {#3} \@@_eval:w { } \int_step_function:nnnN }
+  }
 \cs_new:Npn \int_step_function:nnnN #1#2#3
   {
     \exp_after:wN \@@_step:wwwN

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -1959,6 +1959,7 @@
         '\iow_char:N\\debug_off:n'~only~accept~the~arguments~
         'check-declarations',~'deprecation',~'log-functions',~not~'#1'.
       }
+    \@@_kernel_new:nnn { kernel } { expr } { '#2'~in~#1 }
     \@@_kernel_new:nnnn { kernel } { non-declared-variable }
       { The~variable~#1~has~not~been~declared~\msg_line_context:. }
       {

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -85,9 +85,10 @@
 %<*initex|package>
 %    \end{macrocode}
 %
-%  No prefix substitution here.
+% The prefix here is \texttt{kernel}.  A few places need |@@| to be left
+% as is; this is obtained as |@@@@|.
 %    \begin{macrocode}
-%<@@=>
+%<@@=kernel>
 %    \end{macrocode}
 %
 % The code here simply renames all of the primitives to new, internal,
@@ -109,16 +110,16 @@
 %    \end{macrocode}
 %
 % Everything is inside a (rather long) group, which keeps
-% \cs{__kernel_primitive:NN} trapped.
+% \cs{@@_primitive:NN} trapped.
 %    \begin{macrocode}
 \begingroup
 %    \end{macrocode}
 %
-% \begin{macro}[aux]{\__kernel_primitive:NN}
+% \begin{macro}[aux]{\@@_primitive:NN}
 %   A temporary function to actually do the renaming. This also allows the
 %   original names to be removed in format mode.
 %    \begin{macrocode}
-  \long \def \__kernel_primitive:NN #1#2
+  \long \def \@@_primitive:NN #1#2
     {
       \tex_global:D \tex_let:D #2 #1
 %<*initex>
@@ -140,406 +141,406 @@
 % These are given modified new names, so that they may be entered
 % without catcode tricks.
 %    \begin{macrocode}
-  \__kernel_primitive:NN \                          \tex_space:D
-  \__kernel_primitive:NN \/                         \tex_italiccorrection:D
-  \__kernel_primitive:NN \-                         \tex_hyphen:D
+  \@@_primitive:NN \                          \tex_space:D
+  \@@_primitive:NN \/                         \tex_italiccorrection:D
+  \@@_primitive:NN \-                         \tex_hyphen:D
 %    \end{macrocode}
 %
 % Now all the other primitives.
 %    \begin{macrocode}
-  \__kernel_primitive:NN \above                       \tex_above:D
-  \__kernel_primitive:NN \abovedisplayshortskip       \tex_abovedisplayshortskip:D
-  \__kernel_primitive:NN \abovedisplayskip            \tex_abovedisplayskip:D
-  \__kernel_primitive:NN \abovewithdelims             \tex_abovewithdelims:D
-  \__kernel_primitive:NN \accent                      \tex_accent:D
-  \__kernel_primitive:NN \adjdemerits                 \tex_adjdemerits:D
-  \__kernel_primitive:NN \advance                     \tex_advance:D
-  \__kernel_primitive:NN \afterassignment             \tex_afterassignment:D
-  \__kernel_primitive:NN \aftergroup                  \tex_aftergroup:D
-  \__kernel_primitive:NN \atop                        \tex_atop:D
-  \__kernel_primitive:NN \atopwithdelims              \tex_atopwithdelims:D
-  \__kernel_primitive:NN \badness                     \tex_badness:D
-  \__kernel_primitive:NN \baselineskip                \tex_baselineskip:D
-  \__kernel_primitive:NN \batchmode                   \tex_batchmode:D
-  \__kernel_primitive:NN \begingroup                  \tex_begingroup:D
-  \__kernel_primitive:NN \belowdisplayshortskip       \tex_belowdisplayshortskip:D
-  \__kernel_primitive:NN \belowdisplayskip            \tex_belowdisplayskip:D
-  \__kernel_primitive:NN \binoppenalty                \tex_binoppenalty:D
-  \__kernel_primitive:NN \botmark                     \tex_botmark:D
-  \__kernel_primitive:NN \box                         \tex_box:D
-  \__kernel_primitive:NN \boxmaxdepth                 \tex_boxmaxdepth:D
-  \__kernel_primitive:NN \brokenpenalty               \tex_brokenpenalty:D
-  \__kernel_primitive:NN \catcode                     \tex_catcode:D
-  \__kernel_primitive:NN \char                        \tex_char:D
-  \__kernel_primitive:NN \chardef                     \tex_chardef:D
-  \__kernel_primitive:NN \cleaders                    \tex_cleaders:D
-  \__kernel_primitive:NN \closein                     \tex_closein:D
-  \__kernel_primitive:NN \closeout                    \tex_closeout:D
-  \__kernel_primitive:NN \clubpenalty                 \tex_clubpenalty:D
-  \__kernel_primitive:NN \copy                        \tex_copy:D
-  \__kernel_primitive:NN \count                       \tex_count:D
-  \__kernel_primitive:NN \countdef                    \tex_countdef:D
-  \__kernel_primitive:NN \cr                          \tex_cr:D
-  \__kernel_primitive:NN \crcr                        \tex_crcr:D
-  \__kernel_primitive:NN \csname                      \tex_csname:D
-  \__kernel_primitive:NN \day                         \tex_day:D
-  \__kernel_primitive:NN \deadcycles                  \tex_deadcycles:D
-  \__kernel_primitive:NN \def                         \tex_def:D
-  \__kernel_primitive:NN \defaulthyphenchar           \tex_defaulthyphenchar:D
-  \__kernel_primitive:NN \defaultskewchar             \tex_defaultskewchar:D
-  \__kernel_primitive:NN \delcode                     \tex_delcode:D
-  \__kernel_primitive:NN \delimiter                   \tex_delimiter:D
-  \__kernel_primitive:NN \delimiterfactor             \tex_delimiterfactor:D
-  \__kernel_primitive:NN \delimitershortfall          \tex_delimitershortfall:D
-  \__kernel_primitive:NN \dimen                       \tex_dimen:D
-  \__kernel_primitive:NN \dimendef                    \tex_dimendef:D
-  \__kernel_primitive:NN \discretionary               \tex_discretionary:D
-  \__kernel_primitive:NN \displayindent               \tex_displayindent:D
-  \__kernel_primitive:NN \displaylimits               \tex_displaylimits:D
-  \__kernel_primitive:NN \displaystyle                \tex_displaystyle:D
-  \__kernel_primitive:NN \displaywidowpenalty         \tex_displaywidowpenalty:D
-  \__kernel_primitive:NN \displaywidth                \tex_displaywidth:D
-  \__kernel_primitive:NN \divide                      \tex_divide:D
-  \__kernel_primitive:NN \doublehyphendemerits        \tex_doublehyphendemerits:D
-  \__kernel_primitive:NN \dp                          \tex_dp:D
-  \__kernel_primitive:NN \dump                        \tex_dump:D
-  \__kernel_primitive:NN \edef                        \tex_edef:D
-  \__kernel_primitive:NN \else                        \tex_else:D
-  \__kernel_primitive:NN \emergencystretch            \tex_emergencystretch:D
-  \__kernel_primitive:NN \end                         \tex_end:D
-  \__kernel_primitive:NN \endcsname                   \tex_endcsname:D
-  \__kernel_primitive:NN \endgroup                    \tex_endgroup:D
-  \__kernel_primitive:NN \endinput                    \tex_endinput:D
-  \__kernel_primitive:NN \endlinechar                 \tex_endlinechar:D
-  \__kernel_primitive:NN \eqno                        \tex_eqno:D
-  \__kernel_primitive:NN \errhelp                     \tex_errhelp:D
-  \__kernel_primitive:NN \errmessage                  \tex_errmessage:D
-  \__kernel_primitive:NN \errorcontextlines           \tex_errorcontextlines:D
-  \__kernel_primitive:NN \errorstopmode               \tex_errorstopmode:D
-  \__kernel_primitive:NN \escapechar                  \tex_escapechar:D
-  \__kernel_primitive:NN \everycr                     \tex_everycr:D
-  \__kernel_primitive:NN \everydisplay                \tex_everydisplay:D
-  \__kernel_primitive:NN \everyhbox                   \tex_everyhbox:D
-  \__kernel_primitive:NN \everyjob                    \tex_everyjob:D
-  \__kernel_primitive:NN \everymath                   \tex_everymath:D
-  \__kernel_primitive:NN \everypar                    \tex_everypar:D
-  \__kernel_primitive:NN \everyvbox                   \tex_everyvbox:D
-  \__kernel_primitive:NN \exhyphenpenalty             \tex_exhyphenpenalty:D
-  \__kernel_primitive:NN \expandafter                 \tex_expandafter:D
-  \__kernel_primitive:NN \fam                         \tex_fam:D
-  \__kernel_primitive:NN \fi                          \tex_fi:D
-  \__kernel_primitive:NN \finalhyphendemerits         \tex_finalhyphendemerits:D
-  \__kernel_primitive:NN \firstmark                   \tex_firstmark:D
-  \__kernel_primitive:NN \floatingpenalty             \tex_floatingpenalty:D
-  \__kernel_primitive:NN \font                        \tex_font:D
-  \__kernel_primitive:NN \fontdimen                   \tex_fontdimen:D
-  \__kernel_primitive:NN \fontname                    \tex_fontname:D
-  \__kernel_primitive:NN \futurelet                   \tex_futurelet:D
-  \__kernel_primitive:NN \gdef                        \tex_gdef:D
-  \__kernel_primitive:NN \global                      \tex_global:D
-  \__kernel_primitive:NN \globaldefs                  \tex_globaldefs:D
-  \__kernel_primitive:NN \halign                      \tex_halign:D
-  \__kernel_primitive:NN \hangafter                   \tex_hangafter:D
-  \__kernel_primitive:NN \hangindent                  \tex_hangindent:D
-  \__kernel_primitive:NN \hbadness                    \tex_hbadness:D
-  \__kernel_primitive:NN \hbox                        \tex_hbox:D
-  \__kernel_primitive:NN \hfil                        \tex_hfil:D
-  \__kernel_primitive:NN \hfill                       \tex_hfill:D
-  \__kernel_primitive:NN \hfilneg                     \tex_hfilneg:D
-  \__kernel_primitive:NN \hfuzz                       \tex_hfuzz:D
-  \__kernel_primitive:NN \hoffset                     \tex_hoffset:D
-  \__kernel_primitive:NN \holdinginserts              \tex_holdinginserts:D
-  \__kernel_primitive:NN \hrule                       \tex_hrule:D
-  \__kernel_primitive:NN \hsize                       \tex_hsize:D
-  \__kernel_primitive:NN \hskip                       \tex_hskip:D
-  \__kernel_primitive:NN \hss                         \tex_hss:D
-  \__kernel_primitive:NN \ht                          \tex_ht:D
-  \__kernel_primitive:NN \hyphenation                 \tex_hyphenation:D
-  \__kernel_primitive:NN \hyphenchar                  \tex_hyphenchar:D
-  \__kernel_primitive:NN \hyphenpenalty               \tex_hyphenpenalty:D
-  \__kernel_primitive:NN \if                          \tex_if:D
-  \__kernel_primitive:NN \ifcase                      \tex_ifcase:D
-  \__kernel_primitive:NN \ifcat                       \tex_ifcat:D
-  \__kernel_primitive:NN \ifdim                       \tex_ifdim:D
-  \__kernel_primitive:NN \ifeof                       \tex_ifeof:D
-  \__kernel_primitive:NN \iffalse                     \tex_iffalse:D
-  \__kernel_primitive:NN \ifhbox                      \tex_ifhbox:D
-  \__kernel_primitive:NN \ifhmode                     \tex_ifhmode:D
-  \__kernel_primitive:NN \ifinner                     \tex_ifinner:D
-  \__kernel_primitive:NN \ifmmode                     \tex_ifmmode:D
-  \__kernel_primitive:NN \ifnum                       \tex_ifnum:D
-  \__kernel_primitive:NN \ifodd                       \tex_ifodd:D
-  \__kernel_primitive:NN \iftrue                      \tex_iftrue:D
-  \__kernel_primitive:NN \ifvbox                      \tex_ifvbox:D
-  \__kernel_primitive:NN \ifvmode                     \tex_ifvmode:D
-  \__kernel_primitive:NN \ifvoid                      \tex_ifvoid:D
-  \__kernel_primitive:NN \ifx                         \tex_ifx:D
-  \__kernel_primitive:NN \ignorespaces                \tex_ignorespaces:D
-  \__kernel_primitive:NN \immediate                   \tex_immediate:D
-  \__kernel_primitive:NN \indent                      \tex_indent:D
-  \__kernel_primitive:NN \input                       \tex_input:D
-  \__kernel_primitive:NN \inputlineno                 \tex_inputlineno:D
-  \__kernel_primitive:NN \insert                      \tex_insert:D
-  \__kernel_primitive:NN \insertpenalties             \tex_insertpenalties:D
-  \__kernel_primitive:NN \interlinepenalty            \tex_interlinepenalty:D
-  \__kernel_primitive:NN \jobname                     \tex_jobname:D
-  \__kernel_primitive:NN \kern                        \tex_kern:D
-  \__kernel_primitive:NN \language                    \tex_language:D
-  \__kernel_primitive:NN \lastbox                     \tex_lastbox:D
-  \__kernel_primitive:NN \lastkern                    \tex_lastkern:D
-  \__kernel_primitive:NN \lastpenalty                 \tex_lastpenalty:D
-  \__kernel_primitive:NN \lastskip                    \tex_lastskip:D
-  \__kernel_primitive:NN \lccode                      \tex_lccode:D
-  \__kernel_primitive:NN \leaders                     \tex_leaders:D
-  \__kernel_primitive:NN \left                        \tex_left:D
-  \__kernel_primitive:NN \lefthyphenmin               \tex_lefthyphenmin:D
-  \__kernel_primitive:NN \leftskip                    \tex_leftskip:D
-  \__kernel_primitive:NN \leqno                       \tex_leqno:D
-  \__kernel_primitive:NN \let                         \tex_let:D
-  \__kernel_primitive:NN \limits                      \tex_limits:D
-  \__kernel_primitive:NN \linepenalty                 \tex_linepenalty:D
-  \__kernel_primitive:NN \lineskip                    \tex_lineskip:D
-  \__kernel_primitive:NN \lineskiplimit               \tex_lineskiplimit:D
-  \__kernel_primitive:NN \long                        \tex_long:D
-  \__kernel_primitive:NN \looseness                   \tex_looseness:D
-  \__kernel_primitive:NN \lower                       \tex_lower:D
-  \__kernel_primitive:NN \lowercase                   \tex_lowercase:D
-  \__kernel_primitive:NN \mag                         \tex_mag:D
-  \__kernel_primitive:NN \mark                        \tex_mark:D
-  \__kernel_primitive:NN \mathaccent                  \tex_mathaccent:D
-  \__kernel_primitive:NN \mathbin                     \tex_mathbin:D
-  \__kernel_primitive:NN \mathchar                    \tex_mathchar:D
-  \__kernel_primitive:NN \mathchardef                 \tex_mathchardef:D
-  \__kernel_primitive:NN \mathchoice                  \tex_mathchoice:D
-  \__kernel_primitive:NN \mathclose                   \tex_mathclose:D
-  \__kernel_primitive:NN \mathcode                    \tex_mathcode:D
-  \__kernel_primitive:NN \mathinner                   \tex_mathinner:D
-  \__kernel_primitive:NN \mathop                      \tex_mathop:D
-  \__kernel_primitive:NN \mathopen                    \tex_mathopen:D
-  \__kernel_primitive:NN \mathord                     \tex_mathord:D
-  \__kernel_primitive:NN \mathpunct                   \tex_mathpunct:D
-  \__kernel_primitive:NN \mathrel                     \tex_mathrel:D
-  \__kernel_primitive:NN \mathsurround                \tex_mathsurround:D
-  \__kernel_primitive:NN \maxdeadcycles               \tex_maxdeadcycles:D
-  \__kernel_primitive:NN \maxdepth                    \tex_maxdepth:D
-  \__kernel_primitive:NN \meaning                     \tex_meaning:D
-  \__kernel_primitive:NN \medmuskip                   \tex_medmuskip:D
-  \__kernel_primitive:NN \message                     \tex_message:D
-  \__kernel_primitive:NN \mkern                       \tex_mkern:D
-  \__kernel_primitive:NN \month                       \tex_month:D
-  \__kernel_primitive:NN \moveleft                    \tex_moveleft:D
-  \__kernel_primitive:NN \moveright                   \tex_moveright:D
-  \__kernel_primitive:NN \mskip                       \tex_mskip:D
-  \__kernel_primitive:NN \multiply                    \tex_multiply:D
-  \__kernel_primitive:NN \muskip                      \tex_muskip:D
-  \__kernel_primitive:NN \muskipdef                   \tex_muskipdef:D
-  \__kernel_primitive:NN \newlinechar                 \tex_newlinechar:D
-  \__kernel_primitive:NN \noalign                     \tex_noalign:D
-  \__kernel_primitive:NN \noboundary                  \tex_noboundary:D
-  \__kernel_primitive:NN \noexpand                    \tex_noexpand:D
-  \__kernel_primitive:NN \noindent                    \tex_noindent:D
-  \__kernel_primitive:NN \nolimits                    \tex_nolimits:D
-  \__kernel_primitive:NN \nonscript                   \tex_nonscript:D
-  \__kernel_primitive:NN \nonstopmode                 \tex_nonstopmode:D
-  \__kernel_primitive:NN \nulldelimiterspace          \tex_nulldelimiterspace:D
-  \__kernel_primitive:NN \nullfont                    \tex_nullfont:D
-  \__kernel_primitive:NN \number                      \tex_number:D
-  \__kernel_primitive:NN \omit                        \tex_omit:D
-  \__kernel_primitive:NN \openin                      \tex_openin:D
-  \__kernel_primitive:NN \openout                     \tex_openout:D
-  \__kernel_primitive:NN \or                          \tex_or:D
-  \__kernel_primitive:NN \outer                       \tex_outer:D
-  \__kernel_primitive:NN \output                      \tex_output:D
-  \__kernel_primitive:NN \outputpenalty               \tex_outputpenalty:D
-  \__kernel_primitive:NN \over                        \tex_over:D
-  \__kernel_primitive:NN \overfullrule                \tex_overfullrule:D
-  \__kernel_primitive:NN \overline                    \tex_overline:D
-  \__kernel_primitive:NN \overwithdelims              \tex_overwithdelims:D
-  \__kernel_primitive:NN \pagedepth                   \tex_pagedepth:D
-  \__kernel_primitive:NN \pagefilllstretch            \tex_pagefilllstretch:D
-  \__kernel_primitive:NN \pagefillstretch             \tex_pagefillstretch:D
-  \__kernel_primitive:NN \pagefilstretch              \tex_pagefilstretch:D
-  \__kernel_primitive:NN \pagegoal                    \tex_pagegoal:D
-  \__kernel_primitive:NN \pageshrink                  \tex_pageshrink:D
-  \__kernel_primitive:NN \pagestretch                 \tex_pagestretch:D
-  \__kernel_primitive:NN \pagetotal                   \tex_pagetotal:D
-  \__kernel_primitive:NN \par                         \tex_par:D
-  \__kernel_primitive:NN \parfillskip                 \tex_parfillskip:D
-  \__kernel_primitive:NN \parindent                   \tex_parindent:D
-  \__kernel_primitive:NN \parshape                    \tex_parshape:D
-  \__kernel_primitive:NN \parskip                     \tex_parskip:D
-  \__kernel_primitive:NN \patterns                    \tex_patterns:D
-  \__kernel_primitive:NN \pausing                     \tex_pausing:D
-  \__kernel_primitive:NN \penalty                     \tex_penalty:D
-  \__kernel_primitive:NN \postdisplaypenalty          \tex_postdisplaypenalty:D
-  \__kernel_primitive:NN \predisplaypenalty           \tex_predisplaypenalty:D
-  \__kernel_primitive:NN \predisplaysize              \tex_predisplaysize:D
-  \__kernel_primitive:NN \pretolerance                \tex_pretolerance:D
-  \__kernel_primitive:NN \prevdepth                   \tex_prevdepth:D
-  \__kernel_primitive:NN \prevgraf                    \tex_prevgraf:D
-  \__kernel_primitive:NN \radical                     \tex_radical:D
-  \__kernel_primitive:NN \raise                       \tex_raise:D
-  \__kernel_primitive:NN \read                        \tex_read:D
-  \__kernel_primitive:NN \relax                       \tex_relax:D
-  \__kernel_primitive:NN \relpenalty                  \tex_relpenalty:D
-  \__kernel_primitive:NN \right                       \tex_right:D
-  \__kernel_primitive:NN \righthyphenmin              \tex_righthyphenmin:D
-  \__kernel_primitive:NN \rightskip                   \tex_rightskip:D
-  \__kernel_primitive:NN \romannumeral                \tex_romannumeral:D
-  \__kernel_primitive:NN \scriptfont                  \tex_scriptfont:D
-  \__kernel_primitive:NN \scriptscriptfont            \tex_scriptscriptfont:D
-  \__kernel_primitive:NN \scriptscriptstyle           \tex_scriptscriptstyle:D
-  \__kernel_primitive:NN \scriptspace                 \tex_scriptspace:D
-  \__kernel_primitive:NN \scriptstyle                 \tex_scriptstyle:D
-  \__kernel_primitive:NN \scrollmode                  \tex_scrollmode:D
-  \__kernel_primitive:NN \setbox                      \tex_setbox:D
-  \__kernel_primitive:NN \setlanguage                 \tex_setlanguage:D
-  \__kernel_primitive:NN \sfcode                      \tex_sfcode:D
-  \__kernel_primitive:NN \shipout                     \tex_shipout:D
-  \__kernel_primitive:NN \show                        \tex_show:D
-  \__kernel_primitive:NN \showbox                     \tex_showbox:D
-  \__kernel_primitive:NN \showboxbreadth              \tex_showboxbreadth:D
-  \__kernel_primitive:NN \showboxdepth                \tex_showboxdepth:D
-  \__kernel_primitive:NN \showlists                   \tex_showlists:D
-  \__kernel_primitive:NN \showthe                     \tex_showthe:D
-  \__kernel_primitive:NN \skewchar                    \tex_skewchar:D
-  \__kernel_primitive:NN \skip                        \tex_skip:D
-  \__kernel_primitive:NN \skipdef                     \tex_skipdef:D
-  \__kernel_primitive:NN \spacefactor                 \tex_spacefactor:D
-  \__kernel_primitive:NN \spaceskip                   \tex_spaceskip:D
-  \__kernel_primitive:NN \span                        \tex_span:D
-  \__kernel_primitive:NN \special                     \tex_special:D
-  \__kernel_primitive:NN \splitbotmark                \tex_splitbotmark:D
-  \__kernel_primitive:NN \splitfirstmark              \tex_splitfirstmark:D
-  \__kernel_primitive:NN \splitmaxdepth               \tex_splitmaxdepth:D
-  \__kernel_primitive:NN \splittopskip                \tex_splittopskip:D
-  \__kernel_primitive:NN \string                      \tex_string:D
-  \__kernel_primitive:NN \tabskip                     \tex_tabskip:D
-  \__kernel_primitive:NN \textfont                    \tex_textfont:D
-  \__kernel_primitive:NN \textstyle                   \tex_textstyle:D
-  \__kernel_primitive:NN \the                         \tex_the:D
-  \__kernel_primitive:NN \thickmuskip                 \tex_thickmuskip:D
-  \__kernel_primitive:NN \thinmuskip                  \tex_thinmuskip:D
-  \__kernel_primitive:NN \time                        \tex_time:D
-  \__kernel_primitive:NN \toks                        \tex_toks:D
-  \__kernel_primitive:NN \toksdef                     \tex_toksdef:D
-  \__kernel_primitive:NN \tolerance                   \tex_tolerance:D
-  \__kernel_primitive:NN \topmark                     \tex_topmark:D
-  \__kernel_primitive:NN \topskip                     \tex_topskip:D
-  \__kernel_primitive:NN \tracingcommands             \tex_tracingcommands:D
-  \__kernel_primitive:NN \tracinglostchars            \tex_tracinglostchars:D
-  \__kernel_primitive:NN \tracingmacros               \tex_tracingmacros:D
-  \__kernel_primitive:NN \tracingonline               \tex_tracingonline:D
-  \__kernel_primitive:NN \tracingoutput               \tex_tracingoutput:D
-  \__kernel_primitive:NN \tracingpages                \tex_tracingpages:D
-  \__kernel_primitive:NN \tracingparagraphs           \tex_tracingparagraphs:D
-  \__kernel_primitive:NN \tracingrestores             \tex_tracingrestores:D
-  \__kernel_primitive:NN \tracingstats                \tex_tracingstats:D
-  \__kernel_primitive:NN \uccode                      \tex_uccode:D
-  \__kernel_primitive:NN \uchyph                      \tex_uchyph:D
-  \__kernel_primitive:NN \underline                   \tex_underline:D
-  \__kernel_primitive:NN \unhbox                      \tex_unhbox:D
-  \__kernel_primitive:NN \unhcopy                     \tex_unhcopy:D
-  \__kernel_primitive:NN \unkern                      \tex_unkern:D
-  \__kernel_primitive:NN \unpenalty                   \tex_unpenalty:D
-  \__kernel_primitive:NN \unskip                      \tex_unskip:D
-  \__kernel_primitive:NN \unvbox                      \tex_unvbox:D
-  \__kernel_primitive:NN \unvcopy                     \tex_unvcopy:D
-  \__kernel_primitive:NN \uppercase                   \tex_uppercase:D
-  \__kernel_primitive:NN \vadjust                     \tex_vadjust:D
-  \__kernel_primitive:NN \valign                      \tex_valign:D
-  \__kernel_primitive:NN \vbadness                    \tex_vbadness:D
-  \__kernel_primitive:NN \vbox                        \tex_vbox:D
-  \__kernel_primitive:NN \vcenter                     \tex_vcenter:D
-  \__kernel_primitive:NN \vfil                        \tex_vfil:D
-  \__kernel_primitive:NN \vfill                       \tex_vfill:D
-  \__kernel_primitive:NN \vfilneg                     \tex_vfilneg:D
-  \__kernel_primitive:NN \vfuzz                       \tex_vfuzz:D
-  \__kernel_primitive:NN \voffset                     \tex_voffset:D
-  \__kernel_primitive:NN \vrule                       \tex_vrule:D
-  \__kernel_primitive:NN \vsize                       \tex_vsize:D
-  \__kernel_primitive:NN \vskip                       \tex_vskip:D
-  \__kernel_primitive:NN \vsplit                      \tex_vsplit:D
-  \__kernel_primitive:NN \vss                         \tex_vss:D
-  \__kernel_primitive:NN \vtop                        \tex_vtop:D
-  \__kernel_primitive:NN \wd                          \tex_wd:D
-  \__kernel_primitive:NN \widowpenalty                \tex_widowpenalty:D
-  \__kernel_primitive:NN \write                       \tex_write:D
-  \__kernel_primitive:NN \xdef                        \tex_xdef:D
-  \__kernel_primitive:NN \xleaders                    \tex_xleaders:D
-  \__kernel_primitive:NN \xspaceskip                  \tex_xspaceskip:D
-  \__kernel_primitive:NN \year                        \tex_year:D
+  \@@_primitive:NN \above                       \tex_above:D
+  \@@_primitive:NN \abovedisplayshortskip       \tex_abovedisplayshortskip:D
+  \@@_primitive:NN \abovedisplayskip            \tex_abovedisplayskip:D
+  \@@_primitive:NN \abovewithdelims             \tex_abovewithdelims:D
+  \@@_primitive:NN \accent                      \tex_accent:D
+  \@@_primitive:NN \adjdemerits                 \tex_adjdemerits:D
+  \@@_primitive:NN \advance                     \tex_advance:D
+  \@@_primitive:NN \afterassignment             \tex_afterassignment:D
+  \@@_primitive:NN \aftergroup                  \tex_aftergroup:D
+  \@@_primitive:NN \atop                        \tex_atop:D
+  \@@_primitive:NN \atopwithdelims              \tex_atopwithdelims:D
+  \@@_primitive:NN \badness                     \tex_badness:D
+  \@@_primitive:NN \baselineskip                \tex_baselineskip:D
+  \@@_primitive:NN \batchmode                   \tex_batchmode:D
+  \@@_primitive:NN \begingroup                  \tex_begingroup:D
+  \@@_primitive:NN \belowdisplayshortskip       \tex_belowdisplayshortskip:D
+  \@@_primitive:NN \belowdisplayskip            \tex_belowdisplayskip:D
+  \@@_primitive:NN \binoppenalty                \tex_binoppenalty:D
+  \@@_primitive:NN \botmark                     \tex_botmark:D
+  \@@_primitive:NN \box                         \tex_box:D
+  \@@_primitive:NN \boxmaxdepth                 \tex_boxmaxdepth:D
+  \@@_primitive:NN \brokenpenalty               \tex_brokenpenalty:D
+  \@@_primitive:NN \catcode                     \tex_catcode:D
+  \@@_primitive:NN \char                        \tex_char:D
+  \@@_primitive:NN \chardef                     \tex_chardef:D
+  \@@_primitive:NN \cleaders                    \tex_cleaders:D
+  \@@_primitive:NN \closein                     \tex_closein:D
+  \@@_primitive:NN \closeout                    \tex_closeout:D
+  \@@_primitive:NN \clubpenalty                 \tex_clubpenalty:D
+  \@@_primitive:NN \copy                        \tex_copy:D
+  \@@_primitive:NN \count                       \tex_count:D
+  \@@_primitive:NN \countdef                    \tex_countdef:D
+  \@@_primitive:NN \cr                          \tex_cr:D
+  \@@_primitive:NN \crcr                        \tex_crcr:D
+  \@@_primitive:NN \csname                      \tex_csname:D
+  \@@_primitive:NN \day                         \tex_day:D
+  \@@_primitive:NN \deadcycles                  \tex_deadcycles:D
+  \@@_primitive:NN \def                         \tex_def:D
+  \@@_primitive:NN \defaulthyphenchar           \tex_defaulthyphenchar:D
+  \@@_primitive:NN \defaultskewchar             \tex_defaultskewchar:D
+  \@@_primitive:NN \delcode                     \tex_delcode:D
+  \@@_primitive:NN \delimiter                   \tex_delimiter:D
+  \@@_primitive:NN \delimiterfactor             \tex_delimiterfactor:D
+  \@@_primitive:NN \delimitershortfall          \tex_delimitershortfall:D
+  \@@_primitive:NN \dimen                       \tex_dimen:D
+  \@@_primitive:NN \dimendef                    \tex_dimendef:D
+  \@@_primitive:NN \discretionary               \tex_discretionary:D
+  \@@_primitive:NN \displayindent               \tex_displayindent:D
+  \@@_primitive:NN \displaylimits               \tex_displaylimits:D
+  \@@_primitive:NN \displaystyle                \tex_displaystyle:D
+  \@@_primitive:NN \displaywidowpenalty         \tex_displaywidowpenalty:D
+  \@@_primitive:NN \displaywidth                \tex_displaywidth:D
+  \@@_primitive:NN \divide                      \tex_divide:D
+  \@@_primitive:NN \doublehyphendemerits        \tex_doublehyphendemerits:D
+  \@@_primitive:NN \dp                          \tex_dp:D
+  \@@_primitive:NN \dump                        \tex_dump:D
+  \@@_primitive:NN \edef                        \tex_edef:D
+  \@@_primitive:NN \else                        \tex_else:D
+  \@@_primitive:NN \emergencystretch            \tex_emergencystretch:D
+  \@@_primitive:NN \end                         \tex_end:D
+  \@@_primitive:NN \endcsname                   \tex_endcsname:D
+  \@@_primitive:NN \endgroup                    \tex_endgroup:D
+  \@@_primitive:NN \endinput                    \tex_endinput:D
+  \@@_primitive:NN \endlinechar                 \tex_endlinechar:D
+  \@@_primitive:NN \eqno                        \tex_eqno:D
+  \@@_primitive:NN \errhelp                     \tex_errhelp:D
+  \@@_primitive:NN \errmessage                  \tex_errmessage:D
+  \@@_primitive:NN \errorcontextlines           \tex_errorcontextlines:D
+  \@@_primitive:NN \errorstopmode               \tex_errorstopmode:D
+  \@@_primitive:NN \escapechar                  \tex_escapechar:D
+  \@@_primitive:NN \everycr                     \tex_everycr:D
+  \@@_primitive:NN \everydisplay                \tex_everydisplay:D
+  \@@_primitive:NN \everyhbox                   \tex_everyhbox:D
+  \@@_primitive:NN \everyjob                    \tex_everyjob:D
+  \@@_primitive:NN \everymath                   \tex_everymath:D
+  \@@_primitive:NN \everypar                    \tex_everypar:D
+  \@@_primitive:NN \everyvbox                   \tex_everyvbox:D
+  \@@_primitive:NN \exhyphenpenalty             \tex_exhyphenpenalty:D
+  \@@_primitive:NN \expandafter                 \tex_expandafter:D
+  \@@_primitive:NN \fam                         \tex_fam:D
+  \@@_primitive:NN \fi                          \tex_fi:D
+  \@@_primitive:NN \finalhyphendemerits         \tex_finalhyphendemerits:D
+  \@@_primitive:NN \firstmark                   \tex_firstmark:D
+  \@@_primitive:NN \floatingpenalty             \tex_floatingpenalty:D
+  \@@_primitive:NN \font                        \tex_font:D
+  \@@_primitive:NN \fontdimen                   \tex_fontdimen:D
+  \@@_primitive:NN \fontname                    \tex_fontname:D
+  \@@_primitive:NN \futurelet                   \tex_futurelet:D
+  \@@_primitive:NN \gdef                        \tex_gdef:D
+  \@@_primitive:NN \global                      \tex_global:D
+  \@@_primitive:NN \globaldefs                  \tex_globaldefs:D
+  \@@_primitive:NN \halign                      \tex_halign:D
+  \@@_primitive:NN \hangafter                   \tex_hangafter:D
+  \@@_primitive:NN \hangindent                  \tex_hangindent:D
+  \@@_primitive:NN \hbadness                    \tex_hbadness:D
+  \@@_primitive:NN \hbox                        \tex_hbox:D
+  \@@_primitive:NN \hfil                        \tex_hfil:D
+  \@@_primitive:NN \hfill                       \tex_hfill:D
+  \@@_primitive:NN \hfilneg                     \tex_hfilneg:D
+  \@@_primitive:NN \hfuzz                       \tex_hfuzz:D
+  \@@_primitive:NN \hoffset                     \tex_hoffset:D
+  \@@_primitive:NN \holdinginserts              \tex_holdinginserts:D
+  \@@_primitive:NN \hrule                       \tex_hrule:D
+  \@@_primitive:NN \hsize                       \tex_hsize:D
+  \@@_primitive:NN \hskip                       \tex_hskip:D
+  \@@_primitive:NN \hss                         \tex_hss:D
+  \@@_primitive:NN \ht                          \tex_ht:D
+  \@@_primitive:NN \hyphenation                 \tex_hyphenation:D
+  \@@_primitive:NN \hyphenchar                  \tex_hyphenchar:D
+  \@@_primitive:NN \hyphenpenalty               \tex_hyphenpenalty:D
+  \@@_primitive:NN \if                          \tex_if:D
+  \@@_primitive:NN \ifcase                      \tex_ifcase:D
+  \@@_primitive:NN \ifcat                       \tex_ifcat:D
+  \@@_primitive:NN \ifdim                       \tex_ifdim:D
+  \@@_primitive:NN \ifeof                       \tex_ifeof:D
+  \@@_primitive:NN \iffalse                     \tex_iffalse:D
+  \@@_primitive:NN \ifhbox                      \tex_ifhbox:D
+  \@@_primitive:NN \ifhmode                     \tex_ifhmode:D
+  \@@_primitive:NN \ifinner                     \tex_ifinner:D
+  \@@_primitive:NN \ifmmode                     \tex_ifmmode:D
+  \@@_primitive:NN \ifnum                       \tex_ifnum:D
+  \@@_primitive:NN \ifodd                       \tex_ifodd:D
+  \@@_primitive:NN \iftrue                      \tex_iftrue:D
+  \@@_primitive:NN \ifvbox                      \tex_ifvbox:D
+  \@@_primitive:NN \ifvmode                     \tex_ifvmode:D
+  \@@_primitive:NN \ifvoid                      \tex_ifvoid:D
+  \@@_primitive:NN \ifx                         \tex_ifx:D
+  \@@_primitive:NN \ignorespaces                \tex_ignorespaces:D
+  \@@_primitive:NN \immediate                   \tex_immediate:D
+  \@@_primitive:NN \indent                      \tex_indent:D
+  \@@_primitive:NN \input                       \tex_input:D
+  \@@_primitive:NN \inputlineno                 \tex_inputlineno:D
+  \@@_primitive:NN \insert                      \tex_insert:D
+  \@@_primitive:NN \insertpenalties             \tex_insertpenalties:D
+  \@@_primitive:NN \interlinepenalty            \tex_interlinepenalty:D
+  \@@_primitive:NN \jobname                     \tex_jobname:D
+  \@@_primitive:NN \kern                        \tex_kern:D
+  \@@_primitive:NN \language                    \tex_language:D
+  \@@_primitive:NN \lastbox                     \tex_lastbox:D
+  \@@_primitive:NN \lastkern                    \tex_lastkern:D
+  \@@_primitive:NN \lastpenalty                 \tex_lastpenalty:D
+  \@@_primitive:NN \lastskip                    \tex_lastskip:D
+  \@@_primitive:NN \lccode                      \tex_lccode:D
+  \@@_primitive:NN \leaders                     \tex_leaders:D
+  \@@_primitive:NN \left                        \tex_left:D
+  \@@_primitive:NN \lefthyphenmin               \tex_lefthyphenmin:D
+  \@@_primitive:NN \leftskip                    \tex_leftskip:D
+  \@@_primitive:NN \leqno                       \tex_leqno:D
+  \@@_primitive:NN \let                         \tex_let:D
+  \@@_primitive:NN \limits                      \tex_limits:D
+  \@@_primitive:NN \linepenalty                 \tex_linepenalty:D
+  \@@_primitive:NN \lineskip                    \tex_lineskip:D
+  \@@_primitive:NN \lineskiplimit               \tex_lineskiplimit:D
+  \@@_primitive:NN \long                        \tex_long:D
+  \@@_primitive:NN \looseness                   \tex_looseness:D
+  \@@_primitive:NN \lower                       \tex_lower:D
+  \@@_primitive:NN \lowercase                   \tex_lowercase:D
+  \@@_primitive:NN \mag                         \tex_mag:D
+  \@@_primitive:NN \mark                        \tex_mark:D
+  \@@_primitive:NN \mathaccent                  \tex_mathaccent:D
+  \@@_primitive:NN \mathbin                     \tex_mathbin:D
+  \@@_primitive:NN \mathchar                    \tex_mathchar:D
+  \@@_primitive:NN \mathchardef                 \tex_mathchardef:D
+  \@@_primitive:NN \mathchoice                  \tex_mathchoice:D
+  \@@_primitive:NN \mathclose                   \tex_mathclose:D
+  \@@_primitive:NN \mathcode                    \tex_mathcode:D
+  \@@_primitive:NN \mathinner                   \tex_mathinner:D
+  \@@_primitive:NN \mathop                      \tex_mathop:D
+  \@@_primitive:NN \mathopen                    \tex_mathopen:D
+  \@@_primitive:NN \mathord                     \tex_mathord:D
+  \@@_primitive:NN \mathpunct                   \tex_mathpunct:D
+  \@@_primitive:NN \mathrel                     \tex_mathrel:D
+  \@@_primitive:NN \mathsurround                \tex_mathsurround:D
+  \@@_primitive:NN \maxdeadcycles               \tex_maxdeadcycles:D
+  \@@_primitive:NN \maxdepth                    \tex_maxdepth:D
+  \@@_primitive:NN \meaning                     \tex_meaning:D
+  \@@_primitive:NN \medmuskip                   \tex_medmuskip:D
+  \@@_primitive:NN \message                     \tex_message:D
+  \@@_primitive:NN \mkern                       \tex_mkern:D
+  \@@_primitive:NN \month                       \tex_month:D
+  \@@_primitive:NN \moveleft                    \tex_moveleft:D
+  \@@_primitive:NN \moveright                   \tex_moveright:D
+  \@@_primitive:NN \mskip                       \tex_mskip:D
+  \@@_primitive:NN \multiply                    \tex_multiply:D
+  \@@_primitive:NN \muskip                      \tex_muskip:D
+  \@@_primitive:NN \muskipdef                   \tex_muskipdef:D
+  \@@_primitive:NN \newlinechar                 \tex_newlinechar:D
+  \@@_primitive:NN \noalign                     \tex_noalign:D
+  \@@_primitive:NN \noboundary                  \tex_noboundary:D
+  \@@_primitive:NN \noexpand                    \tex_noexpand:D
+  \@@_primitive:NN \noindent                    \tex_noindent:D
+  \@@_primitive:NN \nolimits                    \tex_nolimits:D
+  \@@_primitive:NN \nonscript                   \tex_nonscript:D
+  \@@_primitive:NN \nonstopmode                 \tex_nonstopmode:D
+  \@@_primitive:NN \nulldelimiterspace          \tex_nulldelimiterspace:D
+  \@@_primitive:NN \nullfont                    \tex_nullfont:D
+  \@@_primitive:NN \number                      \tex_number:D
+  \@@_primitive:NN \omit                        \tex_omit:D
+  \@@_primitive:NN \openin                      \tex_openin:D
+  \@@_primitive:NN \openout                     \tex_openout:D
+  \@@_primitive:NN \or                          \tex_or:D
+  \@@_primitive:NN \outer                       \tex_outer:D
+  \@@_primitive:NN \output                      \tex_output:D
+  \@@_primitive:NN \outputpenalty               \tex_outputpenalty:D
+  \@@_primitive:NN \over                        \tex_over:D
+  \@@_primitive:NN \overfullrule                \tex_overfullrule:D
+  \@@_primitive:NN \overline                    \tex_overline:D
+  \@@_primitive:NN \overwithdelims              \tex_overwithdelims:D
+  \@@_primitive:NN \pagedepth                   \tex_pagedepth:D
+  \@@_primitive:NN \pagefilllstretch            \tex_pagefilllstretch:D
+  \@@_primitive:NN \pagefillstretch             \tex_pagefillstretch:D
+  \@@_primitive:NN \pagefilstretch              \tex_pagefilstretch:D
+  \@@_primitive:NN \pagegoal                    \tex_pagegoal:D
+  \@@_primitive:NN \pageshrink                  \tex_pageshrink:D
+  \@@_primitive:NN \pagestretch                 \tex_pagestretch:D
+  \@@_primitive:NN \pagetotal                   \tex_pagetotal:D
+  \@@_primitive:NN \par                         \tex_par:D
+  \@@_primitive:NN \parfillskip                 \tex_parfillskip:D
+  \@@_primitive:NN \parindent                   \tex_parindent:D
+  \@@_primitive:NN \parshape                    \tex_parshape:D
+  \@@_primitive:NN \parskip                     \tex_parskip:D
+  \@@_primitive:NN \patterns                    \tex_patterns:D
+  \@@_primitive:NN \pausing                     \tex_pausing:D
+  \@@_primitive:NN \penalty                     \tex_penalty:D
+  \@@_primitive:NN \postdisplaypenalty          \tex_postdisplaypenalty:D
+  \@@_primitive:NN \predisplaypenalty           \tex_predisplaypenalty:D
+  \@@_primitive:NN \predisplaysize              \tex_predisplaysize:D
+  \@@_primitive:NN \pretolerance                \tex_pretolerance:D
+  \@@_primitive:NN \prevdepth                   \tex_prevdepth:D
+  \@@_primitive:NN \prevgraf                    \tex_prevgraf:D
+  \@@_primitive:NN \radical                     \tex_radical:D
+  \@@_primitive:NN \raise                       \tex_raise:D
+  \@@_primitive:NN \read                        \tex_read:D
+  \@@_primitive:NN \relax                       \tex_relax:D
+  \@@_primitive:NN \relpenalty                  \tex_relpenalty:D
+  \@@_primitive:NN \right                       \tex_right:D
+  \@@_primitive:NN \righthyphenmin              \tex_righthyphenmin:D
+  \@@_primitive:NN \rightskip                   \tex_rightskip:D
+  \@@_primitive:NN \romannumeral                \tex_romannumeral:D
+  \@@_primitive:NN \scriptfont                  \tex_scriptfont:D
+  \@@_primitive:NN \scriptscriptfont            \tex_scriptscriptfont:D
+  \@@_primitive:NN \scriptscriptstyle           \tex_scriptscriptstyle:D
+  \@@_primitive:NN \scriptspace                 \tex_scriptspace:D
+  \@@_primitive:NN \scriptstyle                 \tex_scriptstyle:D
+  \@@_primitive:NN \scrollmode                  \tex_scrollmode:D
+  \@@_primitive:NN \setbox                      \tex_setbox:D
+  \@@_primitive:NN \setlanguage                 \tex_setlanguage:D
+  \@@_primitive:NN \sfcode                      \tex_sfcode:D
+  \@@_primitive:NN \shipout                     \tex_shipout:D
+  \@@_primitive:NN \show                        \tex_show:D
+  \@@_primitive:NN \showbox                     \tex_showbox:D
+  \@@_primitive:NN \showboxbreadth              \tex_showboxbreadth:D
+  \@@_primitive:NN \showboxdepth                \tex_showboxdepth:D
+  \@@_primitive:NN \showlists                   \tex_showlists:D
+  \@@_primitive:NN \showthe                     \tex_showthe:D
+  \@@_primitive:NN \skewchar                    \tex_skewchar:D
+  \@@_primitive:NN \skip                        \tex_skip:D
+  \@@_primitive:NN \skipdef                     \tex_skipdef:D
+  \@@_primitive:NN \spacefactor                 \tex_spacefactor:D
+  \@@_primitive:NN \spaceskip                   \tex_spaceskip:D
+  \@@_primitive:NN \span                        \tex_span:D
+  \@@_primitive:NN \special                     \tex_special:D
+  \@@_primitive:NN \splitbotmark                \tex_splitbotmark:D
+  \@@_primitive:NN \splitfirstmark              \tex_splitfirstmark:D
+  \@@_primitive:NN \splitmaxdepth               \tex_splitmaxdepth:D
+  \@@_primitive:NN \splittopskip                \tex_splittopskip:D
+  \@@_primitive:NN \string                      \tex_string:D
+  \@@_primitive:NN \tabskip                     \tex_tabskip:D
+  \@@_primitive:NN \textfont                    \tex_textfont:D
+  \@@_primitive:NN \textstyle                   \tex_textstyle:D
+  \@@_primitive:NN \the                         \tex_the:D
+  \@@_primitive:NN \thickmuskip                 \tex_thickmuskip:D
+  \@@_primitive:NN \thinmuskip                  \tex_thinmuskip:D
+  \@@_primitive:NN \time                        \tex_time:D
+  \@@_primitive:NN \toks                        \tex_toks:D
+  \@@_primitive:NN \toksdef                     \tex_toksdef:D
+  \@@_primitive:NN \tolerance                   \tex_tolerance:D
+  \@@_primitive:NN \topmark                     \tex_topmark:D
+  \@@_primitive:NN \topskip                     \tex_topskip:D
+  \@@_primitive:NN \tracingcommands             \tex_tracingcommands:D
+  \@@_primitive:NN \tracinglostchars            \tex_tracinglostchars:D
+  \@@_primitive:NN \tracingmacros               \tex_tracingmacros:D
+  \@@_primitive:NN \tracingonline               \tex_tracingonline:D
+  \@@_primitive:NN \tracingoutput               \tex_tracingoutput:D
+  \@@_primitive:NN \tracingpages                \tex_tracingpages:D
+  \@@_primitive:NN \tracingparagraphs           \tex_tracingparagraphs:D
+  \@@_primitive:NN \tracingrestores             \tex_tracingrestores:D
+  \@@_primitive:NN \tracingstats                \tex_tracingstats:D
+  \@@_primitive:NN \uccode                      \tex_uccode:D
+  \@@_primitive:NN \uchyph                      \tex_uchyph:D
+  \@@_primitive:NN \underline                   \tex_underline:D
+  \@@_primitive:NN \unhbox                      \tex_unhbox:D
+  \@@_primitive:NN \unhcopy                     \tex_unhcopy:D
+  \@@_primitive:NN \unkern                      \tex_unkern:D
+  \@@_primitive:NN \unpenalty                   \tex_unpenalty:D
+  \@@_primitive:NN \unskip                      \tex_unskip:D
+  \@@_primitive:NN \unvbox                      \tex_unvbox:D
+  \@@_primitive:NN \unvcopy                     \tex_unvcopy:D
+  \@@_primitive:NN \uppercase                   \tex_uppercase:D
+  \@@_primitive:NN \vadjust                     \tex_vadjust:D
+  \@@_primitive:NN \valign                      \tex_valign:D
+  \@@_primitive:NN \vbadness                    \tex_vbadness:D
+  \@@_primitive:NN \vbox                        \tex_vbox:D
+  \@@_primitive:NN \vcenter                     \tex_vcenter:D
+  \@@_primitive:NN \vfil                        \tex_vfil:D
+  \@@_primitive:NN \vfill                       \tex_vfill:D
+  \@@_primitive:NN \vfilneg                     \tex_vfilneg:D
+  \@@_primitive:NN \vfuzz                       \tex_vfuzz:D
+  \@@_primitive:NN \voffset                     \tex_voffset:D
+  \@@_primitive:NN \vrule                       \tex_vrule:D
+  \@@_primitive:NN \vsize                       \tex_vsize:D
+  \@@_primitive:NN \vskip                       \tex_vskip:D
+  \@@_primitive:NN \vsplit                      \tex_vsplit:D
+  \@@_primitive:NN \vss                         \tex_vss:D
+  \@@_primitive:NN \vtop                        \tex_vtop:D
+  \@@_primitive:NN \wd                          \tex_wd:D
+  \@@_primitive:NN \widowpenalty                \tex_widowpenalty:D
+  \@@_primitive:NN \write                       \tex_write:D
+  \@@_primitive:NN \xdef                        \tex_xdef:D
+  \@@_primitive:NN \xleaders                    \tex_xleaders:D
+  \@@_primitive:NN \xspaceskip                  \tex_xspaceskip:D
+  \@@_primitive:NN \year                        \tex_year:D
 %    \end{macrocode}
 % Since \LaTeX3 requires at least the \eTeX{} extensions,
 % we also rename the additional primitives. These are all
 % given the prefix | \etex_|.
 %    \begin{macrocode}
-  \__kernel_primitive:NN \beginL                      \etex_beginL:D
-  \__kernel_primitive:NN \beginR                      \etex_beginR:D
-  \__kernel_primitive:NN \botmarks                    \etex_botmarks:D
-  \__kernel_primitive:NN \clubpenalties               \etex_clubpenalties:D
-  \__kernel_primitive:NN \currentgrouplevel           \etex_currentgrouplevel:D
-  \__kernel_primitive:NN \currentgrouptype            \etex_currentgrouptype:D
-  \__kernel_primitive:NN \currentifbranch             \etex_currentifbranch:D
-  \__kernel_primitive:NN \currentiflevel              \etex_currentiflevel:D
-  \__kernel_primitive:NN \currentiftype               \etex_currentiftype:D
-  \__kernel_primitive:NN \detokenize                  \etex_detokenize:D
-  \__kernel_primitive:NN \dimexpr                     \etex_dimexpr:D
-  \__kernel_primitive:NN \displaywidowpenalties       \etex_displaywidowpenalties:D
-  \__kernel_primitive:NN \endL                        \etex_endL:D
-  \__kernel_primitive:NN \endR                        \etex_endR:D
-  \__kernel_primitive:NN \eTeXrevision                \etex_eTeXrevision:D
-  \__kernel_primitive:NN \eTeXversion                 \etex_eTeXversion:D
-  \__kernel_primitive:NN \everyeof                    \etex_everyeof:D
-  \__kernel_primitive:NN \firstmarks                  \etex_firstmarks:D
-  \__kernel_primitive:NN \fontchardp                  \etex_fontchardp:D
-  \__kernel_primitive:NN \fontcharht                  \etex_fontcharht:D
-  \__kernel_primitive:NN \fontcharic                  \etex_fontcharic:D
-  \__kernel_primitive:NN \fontcharwd                  \etex_fontcharwd:D
-  \__kernel_primitive:NN \glueexpr                    \etex_glueexpr:D
-  \__kernel_primitive:NN \glueshrink                  \etex_glueshrink:D
-  \__kernel_primitive:NN \glueshrinkorder             \etex_glueshrinkorder:D
-  \__kernel_primitive:NN \gluestretch                 \etex_gluestretch:D
-  \__kernel_primitive:NN \gluestretchorder            \etex_gluestretchorder:D
-  \__kernel_primitive:NN \gluetomu                    \etex_gluetomu:D
-  \__kernel_primitive:NN \ifcsname                    \etex_ifcsname:D
-  \__kernel_primitive:NN \ifdefined                   \etex_ifdefined:D
-  \__kernel_primitive:NN \iffontchar                  \etex_iffontchar:D
-  \__kernel_primitive:NN \interactionmode             \etex_interactionmode:D
-  \__kernel_primitive:NN \interlinepenalties          \etex_interlinepenalties:D
-  \__kernel_primitive:NN \lastlinefit                 \etex_lastlinefit:D
-  \__kernel_primitive:NN \lastnodetype                \etex_lastnodetype:D
-  \__kernel_primitive:NN \marks                       \etex_marks:D
-  \__kernel_primitive:NN \middle                      \etex_middle:D
-  \__kernel_primitive:NN \muexpr                      \etex_muexpr:D
-  \__kernel_primitive:NN \mutoglue                    \etex_mutoglue:D
-  \__kernel_primitive:NN \numexpr                     \etex_numexpr:D
-  \__kernel_primitive:NN \pagediscards                \etex_pagediscards:D
-  \__kernel_primitive:NN \parshapedimen               \etex_parshapedimen:D
-  \__kernel_primitive:NN \parshapeindent              \etex_parshapeindent:D
-  \__kernel_primitive:NN \parshapelength              \etex_parshapelength:D
-  \__kernel_primitive:NN \predisplaydirection         \etex_predisplaydirection:D
-  \__kernel_primitive:NN \protected                   \etex_protected:D
-  \__kernel_primitive:NN \readline                    \etex_readline:D
-  \__kernel_primitive:NN \savinghyphcodes             \etex_savinghyphcodes:D
-  \__kernel_primitive:NN \savingvdiscards             \etex_savingvdiscards:D
-  \__kernel_primitive:NN \scantokens                  \etex_scantokens:D
-  \__kernel_primitive:NN \showgroups                  \etex_showgroups:D
-  \__kernel_primitive:NN \showifs                     \etex_showifs:D
-  \__kernel_primitive:NN \showtokens                  \etex_showtokens:D
-  \__kernel_primitive:NN \splitbotmarks               \etex_splitbotmarks:D
-  \__kernel_primitive:NN \splitdiscards               \etex_splitdiscards:D
-  \__kernel_primitive:NN \splitfirstmarks             \etex_splitfirstmarks:D
-  \__kernel_primitive:NN \TeXXeTstate                 \etex_TeXXeTstate:D
-  \__kernel_primitive:NN \topmarks                    \etex_topmarks:D
-  \__kernel_primitive:NN \tracingassigns              \etex_tracingassigns:D
-  \__kernel_primitive:NN \tracinggroups               \etex_tracinggroups:D
-  \__kernel_primitive:NN \tracingifs                  \etex_tracingifs:D
-  \__kernel_primitive:NN \tracingnesting              \etex_tracingnesting:D
-  \__kernel_primitive:NN \tracingscantokens           \etex_tracingscantokens:D
-  \__kernel_primitive:NN \unexpanded                  \etex_unexpanded:D
-  \__kernel_primitive:NN \unless                      \etex_unless:D
-  \__kernel_primitive:NN \widowpenalties              \etex_widowpenalties:D
+  \@@_primitive:NN \beginL                      \etex_beginL:D
+  \@@_primitive:NN \beginR                      \etex_beginR:D
+  \@@_primitive:NN \botmarks                    \etex_botmarks:D
+  \@@_primitive:NN \clubpenalties               \etex_clubpenalties:D
+  \@@_primitive:NN \currentgrouplevel           \etex_currentgrouplevel:D
+  \@@_primitive:NN \currentgrouptype            \etex_currentgrouptype:D
+  \@@_primitive:NN \currentifbranch             \etex_currentifbranch:D
+  \@@_primitive:NN \currentiflevel              \etex_currentiflevel:D
+  \@@_primitive:NN \currentiftype               \etex_currentiftype:D
+  \@@_primitive:NN \detokenize                  \etex_detokenize:D
+  \@@_primitive:NN \dimexpr                     \etex_dimexpr:D
+  \@@_primitive:NN \displaywidowpenalties       \etex_displaywidowpenalties:D
+  \@@_primitive:NN \endL                        \etex_endL:D
+  \@@_primitive:NN \endR                        \etex_endR:D
+  \@@_primitive:NN \eTeXrevision                \etex_eTeXrevision:D
+  \@@_primitive:NN \eTeXversion                 \etex_eTeXversion:D
+  \@@_primitive:NN \everyeof                    \etex_everyeof:D
+  \@@_primitive:NN \firstmarks                  \etex_firstmarks:D
+  \@@_primitive:NN \fontchardp                  \etex_fontchardp:D
+  \@@_primitive:NN \fontcharht                  \etex_fontcharht:D
+  \@@_primitive:NN \fontcharic                  \etex_fontcharic:D
+  \@@_primitive:NN \fontcharwd                  \etex_fontcharwd:D
+  \@@_primitive:NN \glueexpr                    \etex_glueexpr:D
+  \@@_primitive:NN \glueshrink                  \etex_glueshrink:D
+  \@@_primitive:NN \glueshrinkorder             \etex_glueshrinkorder:D
+  \@@_primitive:NN \gluestretch                 \etex_gluestretch:D
+  \@@_primitive:NN \gluestretchorder            \etex_gluestretchorder:D
+  \@@_primitive:NN \gluetomu                    \etex_gluetomu:D
+  \@@_primitive:NN \ifcsname                    \etex_ifcsname:D
+  \@@_primitive:NN \ifdefined                   \etex_ifdefined:D
+  \@@_primitive:NN \iffontchar                  \etex_iffontchar:D
+  \@@_primitive:NN \interactionmode             \etex_interactionmode:D
+  \@@_primitive:NN \interlinepenalties          \etex_interlinepenalties:D
+  \@@_primitive:NN \lastlinefit                 \etex_lastlinefit:D
+  \@@_primitive:NN \lastnodetype                \etex_lastnodetype:D
+  \@@_primitive:NN \marks                       \etex_marks:D
+  \@@_primitive:NN \middle                      \etex_middle:D
+  \@@_primitive:NN \muexpr                      \etex_muexpr:D
+  \@@_primitive:NN \mutoglue                    \etex_mutoglue:D
+  \@@_primitive:NN \numexpr                     \etex_numexpr:D
+  \@@_primitive:NN \pagediscards                \etex_pagediscards:D
+  \@@_primitive:NN \parshapedimen               \etex_parshapedimen:D
+  \@@_primitive:NN \parshapeindent              \etex_parshapeindent:D
+  \@@_primitive:NN \parshapelength              \etex_parshapelength:D
+  \@@_primitive:NN \predisplaydirection         \etex_predisplaydirection:D
+  \@@_primitive:NN \protected                   \etex_protected:D
+  \@@_primitive:NN \readline                    \etex_readline:D
+  \@@_primitive:NN \savinghyphcodes             \etex_savinghyphcodes:D
+  \@@_primitive:NN \savingvdiscards             \etex_savingvdiscards:D
+  \@@_primitive:NN \scantokens                  \etex_scantokens:D
+  \@@_primitive:NN \showgroups                  \etex_showgroups:D
+  \@@_primitive:NN \showifs                     \etex_showifs:D
+  \@@_primitive:NN \showtokens                  \etex_showtokens:D
+  \@@_primitive:NN \splitbotmarks               \etex_splitbotmarks:D
+  \@@_primitive:NN \splitdiscards               \etex_splitdiscards:D
+  \@@_primitive:NN \splitfirstmarks             \etex_splitfirstmarks:D
+  \@@_primitive:NN \TeXXeTstate                 \etex_TeXXeTstate:D
+  \@@_primitive:NN \topmarks                    \etex_topmarks:D
+  \@@_primitive:NN \tracingassigns              \etex_tracingassigns:D
+  \@@_primitive:NN \tracinggroups               \etex_tracinggroups:D
+  \@@_primitive:NN \tracingifs                  \etex_tracingifs:D
+  \@@_primitive:NN \tracingnesting              \etex_tracingnesting:D
+  \@@_primitive:NN \tracingscantokens           \etex_tracingscantokens:D
+  \@@_primitive:NN \unexpanded                  \etex_unexpanded:D
+  \@@_primitive:NN \unless                      \etex_unless:D
+  \@@_primitive:NN \widowpenalties              \etex_widowpenalties:D
 %    \end{macrocode}
 % The newer primitives are more complex: there are an awful lot of them,
 % and we don't use them all at the moment. So the following is selective,
@@ -550,134 +551,134 @@
 % are not related to PDF output. These ones related to PDF output or only
 % work in PDF mode.
 %    \begin{macrocode}
-  \__kernel_primitive:NN \pdfannot                    \pdftex_pdfannot:D
-  \__kernel_primitive:NN \pdfcatalog                  \pdftex_pdfcatalog:D
-  \__kernel_primitive:NN \pdfcompresslevel            \pdftex_pdfcompresslevel:D
-  \__kernel_primitive:NN \pdfcolorstack               \pdftex_pdfcolorstack:D
-  \__kernel_primitive:NN \pdfcolorstackinit           \pdftex_pdfcolorstackinit:D
-  \__kernel_primitive:NN \pdfcreationdate             \pdftex_pdfcreationdate:D
-  \__kernel_primitive:NN \pdfdecimaldigits            \pdftex_pdfdecimaldigits:D
-  \__kernel_primitive:NN \pdfdest                     \pdftex_pdfdest:D
-  \__kernel_primitive:NN \pdfdestmargin               \pdftex_pdfdestmargin:D
-  \__kernel_primitive:NN \pdfendlink                  \pdftex_pdfendlink:D
-  \__kernel_primitive:NN \pdfendthread                \pdftex_pdfendthread:D
-  \__kernel_primitive:NN \pdffontattr                 \pdftex_pdffontattr:D
-  \__kernel_primitive:NN \pdffontname                 \pdftex_pdffontname:D
-  \__kernel_primitive:NN \pdffontobjnum               \pdftex_pdffontobjnum:D
-  \__kernel_primitive:NN \pdfgamma                    \pdftex_pdfgamma:D
-  \__kernel_primitive:NN \pdfimageapplygamma          \pdftex_pdfimageapplygamma:D
-  \__kernel_primitive:NN \pdfimagegamma               \pdftex_pdfimagegamma:D
-  \__kernel_primitive:NN \pdfgentounicode             \pdftex_pdfgentounicode:D
-  \__kernel_primitive:NN \pdfglyphtounicode           \pdftex_pdfglyphtounicode:D
-  \__kernel_primitive:NN \pdfhorigin                  \pdftex_pdfhorigin:D
-  \__kernel_primitive:NN \pdfimagehicolor             \pdftex_pdfimagehicolor:D
-  \__kernel_primitive:NN \pdfimageresolution          \pdftex_pdfimageresolution:D
-  \__kernel_primitive:NN \pdfincludechars             \pdftex_pdfincludechars:D
-  \__kernel_primitive:NN \pdfinclusioncopyfonts       \pdftex_pdfinclusioncopyfonts:D
-  \__kernel_primitive:NN \pdfinclusionerrorlevel      \pdftex_pdfinclusionerrorlevel:D
-  \__kernel_primitive:NN \pdfinfo                     \pdftex_pdfinfo:D
-  \__kernel_primitive:NN \pdflastannot                \pdftex_pdflastannot:D
-  \__kernel_primitive:NN \pdflastlink                 \pdftex_pdflastlink:D
-  \__kernel_primitive:NN \pdflastobj                  \pdftex_pdflastobj:D
-  \__kernel_primitive:NN \pdflastxform                \pdftex_pdflastxform:D
-  \__kernel_primitive:NN \pdflastximage               \pdftex_pdflastximage:D
-  \__kernel_primitive:NN \pdflastximagecolordepth     \pdftex_pdflastximagecolordepth:D
-  \__kernel_primitive:NN \pdflastximagepages          \pdftex_pdflastximagepages:D
-  \__kernel_primitive:NN \pdflinkmargin               \pdftex_pdflinkmargin:D
-  \__kernel_primitive:NN \pdfliteral                  \pdftex_pdfliteral:D
-  \__kernel_primitive:NN \pdfminorversion             \pdftex_pdfminorversion:D
-  \__kernel_primitive:NN \pdfnames                    \pdftex_pdfnames:D
-  \__kernel_primitive:NN \pdfobj                      \pdftex_pdfobj:D
-  \__kernel_primitive:NN \pdfobjcompresslevel         \pdftex_pdfobjcompresslevel:D
-  \__kernel_primitive:NN \pdfoutline                  \pdftex_pdfoutline:D
-  \__kernel_primitive:NN \pdfoutput                   \pdftex_pdfoutput:D
-  \__kernel_primitive:NN \pdfpageattr                 \pdftex_pdfpageattr:D
-  \__kernel_primitive:NN \pdfpagebox                  \pdftex_pdfpagebox:D
-  \__kernel_primitive:NN \pdfpageref                  \pdftex_pdfpageref:D
-  \__kernel_primitive:NN \pdfpageresources            \pdftex_pdfpageresources:D
-  \__kernel_primitive:NN \pdfpagesattr                \pdftex_pdfpagesattr:D
-  \__kernel_primitive:NN \pdfrefobj                   \pdftex_pdfrefobj:D
-  \__kernel_primitive:NN \pdfrefxform                 \pdftex_pdfrefxform:D
-  \__kernel_primitive:NN \pdfrefximage                \pdftex_pdfrefximage:D
-  \__kernel_primitive:NN \pdfrestore                  \pdftex_pdfrestore:D
-  \__kernel_primitive:NN \pdfretval                   \pdftex_pdfretval:D
-  \__kernel_primitive:NN \pdfsave                     \pdftex_pdfsave:D
-  \__kernel_primitive:NN \pdfsetmatrix                \pdftex_pdfsetmatrix:D
-  \__kernel_primitive:NN \pdfstartlink                \pdftex_pdfstartlink:D
-  \__kernel_primitive:NN \pdfstartthread              \pdftex_pdfstartthread:D
-  \__kernel_primitive:NN \pdfsuppressptexinfo         \pdftex_pdfsuppressptexinfo:D
-  \__kernel_primitive:NN \pdfthread                   \pdftex_pdfthread:D
-  \__kernel_primitive:NN \pdfthreadmargin             \pdftex_pdfthreadmargin:D
-  \__kernel_primitive:NN \pdftrailer                  \pdftex_pdftrailer:D
-  \__kernel_primitive:NN \pdfuniqueresname            \pdftex_pdfuniqueresname:D
-  \__kernel_primitive:NN \pdfvorigin                  \pdftex_pdfvorigin:D
-  \__kernel_primitive:NN \pdfxform                    \pdftex_pdfxform:D
-  \__kernel_primitive:NN \pdfxformattr                \pdftex_pdfxformattr:D
-  \__kernel_primitive:NN \pdfxformname                \pdftex_pdfxformname:D
-  \__kernel_primitive:NN \pdfxformresources           \pdftex_pdfxformresources:D
-  \__kernel_primitive:NN \pdfximage                   \pdftex_pdfximage:D
-  \__kernel_primitive:NN \pdfximagebbox               \pdftex_pdfximagebbox:D
+  \@@_primitive:NN \pdfannot                    \pdftex_pdfannot:D
+  \@@_primitive:NN \pdfcatalog                  \pdftex_pdfcatalog:D
+  \@@_primitive:NN \pdfcompresslevel            \pdftex_pdfcompresslevel:D
+  \@@_primitive:NN \pdfcolorstack               \pdftex_pdfcolorstack:D
+  \@@_primitive:NN \pdfcolorstackinit           \pdftex_pdfcolorstackinit:D
+  \@@_primitive:NN \pdfcreationdate             \pdftex_pdfcreationdate:D
+  \@@_primitive:NN \pdfdecimaldigits            \pdftex_pdfdecimaldigits:D
+  \@@_primitive:NN \pdfdest                     \pdftex_pdfdest:D
+  \@@_primitive:NN \pdfdestmargin               \pdftex_pdfdestmargin:D
+  \@@_primitive:NN \pdfendlink                  \pdftex_pdfendlink:D
+  \@@_primitive:NN \pdfendthread                \pdftex_pdfendthread:D
+  \@@_primitive:NN \pdffontattr                 \pdftex_pdffontattr:D
+  \@@_primitive:NN \pdffontname                 \pdftex_pdffontname:D
+  \@@_primitive:NN \pdffontobjnum               \pdftex_pdffontobjnum:D
+  \@@_primitive:NN \pdfgamma                    \pdftex_pdfgamma:D
+  \@@_primitive:NN \pdfimageapplygamma          \pdftex_pdfimageapplygamma:D
+  \@@_primitive:NN \pdfimagegamma               \pdftex_pdfimagegamma:D
+  \@@_primitive:NN \pdfgentounicode             \pdftex_pdfgentounicode:D
+  \@@_primitive:NN \pdfglyphtounicode           \pdftex_pdfglyphtounicode:D
+  \@@_primitive:NN \pdfhorigin                  \pdftex_pdfhorigin:D
+  \@@_primitive:NN \pdfimagehicolor             \pdftex_pdfimagehicolor:D
+  \@@_primitive:NN \pdfimageresolution          \pdftex_pdfimageresolution:D
+  \@@_primitive:NN \pdfincludechars             \pdftex_pdfincludechars:D
+  \@@_primitive:NN \pdfinclusioncopyfonts       \pdftex_pdfinclusioncopyfonts:D
+  \@@_primitive:NN \pdfinclusionerrorlevel      \pdftex_pdfinclusionerrorlevel:D
+  \@@_primitive:NN \pdfinfo                     \pdftex_pdfinfo:D
+  \@@_primitive:NN \pdflastannot                \pdftex_pdflastannot:D
+  \@@_primitive:NN \pdflastlink                 \pdftex_pdflastlink:D
+  \@@_primitive:NN \pdflastobj                  \pdftex_pdflastobj:D
+  \@@_primitive:NN \pdflastxform                \pdftex_pdflastxform:D
+  \@@_primitive:NN \pdflastximage               \pdftex_pdflastximage:D
+  \@@_primitive:NN \pdflastximagecolordepth     \pdftex_pdflastximagecolordepth:D
+  \@@_primitive:NN \pdflastximagepages          \pdftex_pdflastximagepages:D
+  \@@_primitive:NN \pdflinkmargin               \pdftex_pdflinkmargin:D
+  \@@_primitive:NN \pdfliteral                  \pdftex_pdfliteral:D
+  \@@_primitive:NN \pdfminorversion             \pdftex_pdfminorversion:D
+  \@@_primitive:NN \pdfnames                    \pdftex_pdfnames:D
+  \@@_primitive:NN \pdfobj                      \pdftex_pdfobj:D
+  \@@_primitive:NN \pdfobjcompresslevel         \pdftex_pdfobjcompresslevel:D
+  \@@_primitive:NN \pdfoutline                  \pdftex_pdfoutline:D
+  \@@_primitive:NN \pdfoutput                   \pdftex_pdfoutput:D
+  \@@_primitive:NN \pdfpageattr                 \pdftex_pdfpageattr:D
+  \@@_primitive:NN \pdfpagebox                  \pdftex_pdfpagebox:D
+  \@@_primitive:NN \pdfpageref                  \pdftex_pdfpageref:D
+  \@@_primitive:NN \pdfpageresources            \pdftex_pdfpageresources:D
+  \@@_primitive:NN \pdfpagesattr                \pdftex_pdfpagesattr:D
+  \@@_primitive:NN \pdfrefobj                   \pdftex_pdfrefobj:D
+  \@@_primitive:NN \pdfrefxform                 \pdftex_pdfrefxform:D
+  \@@_primitive:NN \pdfrefximage                \pdftex_pdfrefximage:D
+  \@@_primitive:NN \pdfrestore                  \pdftex_pdfrestore:D
+  \@@_primitive:NN \pdfretval                   \pdftex_pdfretval:D
+  \@@_primitive:NN \pdfsave                     \pdftex_pdfsave:D
+  \@@_primitive:NN \pdfsetmatrix                \pdftex_pdfsetmatrix:D
+  \@@_primitive:NN \pdfstartlink                \pdftex_pdfstartlink:D
+  \@@_primitive:NN \pdfstartthread              \pdftex_pdfstartthread:D
+  \@@_primitive:NN \pdfsuppressptexinfo         \pdftex_pdfsuppressptexinfo:D
+  \@@_primitive:NN \pdfthread                   \pdftex_pdfthread:D
+  \@@_primitive:NN \pdfthreadmargin             \pdftex_pdfthreadmargin:D
+  \@@_primitive:NN \pdftrailer                  \pdftex_pdftrailer:D
+  \@@_primitive:NN \pdfuniqueresname            \pdftex_pdfuniqueresname:D
+  \@@_primitive:NN \pdfvorigin                  \pdftex_pdfvorigin:D
+  \@@_primitive:NN \pdfxform                    \pdftex_pdfxform:D
+  \@@_primitive:NN \pdfxformattr                \pdftex_pdfxformattr:D
+  \@@_primitive:NN \pdfxformname                \pdftex_pdfxformname:D
+  \@@_primitive:NN \pdfxformresources           \pdftex_pdfxformresources:D
+  \@@_primitive:NN \pdfximage                   \pdftex_pdfximage:D
+  \@@_primitive:NN \pdfximagebbox               \pdftex_pdfximagebbox:D
 %    \end{macrocode}
 % While these are not.
 %    \begin{macrocode}
-  \__kernel_primitive:NN \ifpdfabsdim                 \pdftex_ifabsdim:D
-  \__kernel_primitive:NN \ifpdfabsnum                 \pdftex_ifabsnum:D
-  \__kernel_primitive:NN \ifpdfprimitive              \pdftex_ifprimitive:D
-  \__kernel_primitive:NN \pdfadjustspacing            \pdftex_adjustspacing:D
-  \__kernel_primitive:NN \pdfcopyfont                 \pdftex_copyfont:D
-  \__kernel_primitive:NN \pdfdraftmode                \pdftex_draftmode:D
-  \__kernel_primitive:NN \pdfeachlinedepth            \pdftex_eachlinedepth:D
-  \__kernel_primitive:NN \pdfeachlineheight           \pdftex_eachlineheight:D
-  \__kernel_primitive:NN \pdffilemoddate              \pdftex_filemoddate:D
-  \__kernel_primitive:NN \pdffilesize                 \pdftex_filesize:D
-  \__kernel_primitive:NN \pdffirstlineheight          \pdftex_firstlineheight:D
-  \__kernel_primitive:NN \pdffontexpand               \pdftex_fontexpand:D
-  \__kernel_primitive:NN \pdffontsize                 \pdftex_fontsize:D
-  \__kernel_primitive:NN \pdfignoreddimen             \pdftex_ignoreddimen:D
-  \__kernel_primitive:NN \pdfinsertht                 \pdftex_insertht:D
-  \__kernel_primitive:NN \pdflastlinedepth            \pdftex_lastlinedepth:D
-  \__kernel_primitive:NN \pdflastxpos                 \pdftex_lastxpos:D
-  \__kernel_primitive:NN \pdflastypos                 \pdftex_lastypos:D
-  \__kernel_primitive:NN \pdfmapfile                  \pdftex_mapfile:D
-  \__kernel_primitive:NN \pdfmapline                  \pdftex_mapline:D
-  \__kernel_primitive:NN \pdfmdfivesum                \pdftex_mdfivesum:D
-  \__kernel_primitive:NN \pdfnoligatures              \pdftex_noligatures:D
-  \__kernel_primitive:NN \pdfnormaldeviate            \pdftex_normaldeviate:D
-  \__kernel_primitive:NN \pdfpageheight               \pdftex_pageheight:D
-  \__kernel_primitive:NN \pdfpagewidth                \pdftex_pagewidth:D
-  \__kernel_primitive:NN \pdfpkmode                   \pdftex_pkmode:D
-  \__kernel_primitive:NN \pdfpkresolution             \pdftex_pkresolution:D
-  \__kernel_primitive:NN \pdfprimitive                \pdftex_primitive:D
-  \__kernel_primitive:NN \pdfprotrudechars            \pdftex_protrudechars:D
-  \__kernel_primitive:NN \pdfpxdimen                  \pdftex_pxdimen:D
-  \__kernel_primitive:NN \pdfrandomseed               \pdftex_randomseed:D
-  \__kernel_primitive:NN \pdfsavepos                  \pdftex_savepos:D
-  \__kernel_primitive:NN \pdfstrcmp                   \pdftex_strcmp:D
-  \__kernel_primitive:NN \pdfsetrandomseed            \pdftex_setrandomseed:D
-  \__kernel_primitive:NN \pdfshellescape              \pdftex_shellescape:D
-  \__kernel_primitive:NN \pdftracingfonts             \pdftex_tracingfonts:D
-  \__kernel_primitive:NN \pdfuniformdeviate           \pdftex_uniformdeviate:D
+  \@@_primitive:NN \ifpdfabsdim                 \pdftex_ifabsdim:D
+  \@@_primitive:NN \ifpdfabsnum                 \pdftex_ifabsnum:D
+  \@@_primitive:NN \ifpdfprimitive              \pdftex_ifprimitive:D
+  \@@_primitive:NN \pdfadjustspacing            \pdftex_adjustspacing:D
+  \@@_primitive:NN \pdfcopyfont                 \pdftex_copyfont:D
+  \@@_primitive:NN \pdfdraftmode                \pdftex_draftmode:D
+  \@@_primitive:NN \pdfeachlinedepth            \pdftex_eachlinedepth:D
+  \@@_primitive:NN \pdfeachlineheight           \pdftex_eachlineheight:D
+  \@@_primitive:NN \pdffilemoddate              \pdftex_filemoddate:D
+  \@@_primitive:NN \pdffilesize                 \pdftex_filesize:D
+  \@@_primitive:NN \pdffirstlineheight          \pdftex_firstlineheight:D
+  \@@_primitive:NN \pdffontexpand               \pdftex_fontexpand:D
+  \@@_primitive:NN \pdffontsize                 \pdftex_fontsize:D
+  \@@_primitive:NN \pdfignoreddimen             \pdftex_ignoreddimen:D
+  \@@_primitive:NN \pdfinsertht                 \pdftex_insertht:D
+  \@@_primitive:NN \pdflastlinedepth            \pdftex_lastlinedepth:D
+  \@@_primitive:NN \pdflastxpos                 \pdftex_lastxpos:D
+  \@@_primitive:NN \pdflastypos                 \pdftex_lastypos:D
+  \@@_primitive:NN \pdfmapfile                  \pdftex_mapfile:D
+  \@@_primitive:NN \pdfmapline                  \pdftex_mapline:D
+  \@@_primitive:NN \pdfmdfivesum                \pdftex_mdfivesum:D
+  \@@_primitive:NN \pdfnoligatures              \pdftex_noligatures:D
+  \@@_primitive:NN \pdfnormaldeviate            \pdftex_normaldeviate:D
+  \@@_primitive:NN \pdfpageheight               \pdftex_pageheight:D
+  \@@_primitive:NN \pdfpagewidth                \pdftex_pagewidth:D
+  \@@_primitive:NN \pdfpkmode                   \pdftex_pkmode:D
+  \@@_primitive:NN \pdfpkresolution             \pdftex_pkresolution:D
+  \@@_primitive:NN \pdfprimitive                \pdftex_primitive:D
+  \@@_primitive:NN \pdfprotrudechars            \pdftex_protrudechars:D
+  \@@_primitive:NN \pdfpxdimen                  \pdftex_pxdimen:D
+  \@@_primitive:NN \pdfrandomseed               \pdftex_randomseed:D
+  \@@_primitive:NN \pdfsavepos                  \pdftex_savepos:D
+  \@@_primitive:NN \pdfstrcmp                   \pdftex_strcmp:D
+  \@@_primitive:NN \pdfsetrandomseed            \pdftex_setrandomseed:D
+  \@@_primitive:NN \pdfshellescape              \pdftex_shellescape:D
+  \@@_primitive:NN \pdftracingfonts             \pdftex_tracingfonts:D
+  \@@_primitive:NN \pdfuniformdeviate           \pdftex_uniformdeviate:D
 %    \end{macrocode}
 % The version primitives are not related to PDF mode but are related to
 % \pdfTeX{} so retain the full prefix.
 %    \begin{macrocode}
-  \__kernel_primitive:NN \pdftexbanner                \pdftex_pdftexbanner:D
-  \__kernel_primitive:NN \pdftexrevision              \pdftex_pdftexrevision:D
-  \__kernel_primitive:NN \pdftexversion               \pdftex_pdftexversion:D
+  \@@_primitive:NN \pdftexbanner                \pdftex_pdftexbanner:D
+  \@@_primitive:NN \pdftexrevision              \pdftex_pdftexrevision:D
+  \@@_primitive:NN \pdftexversion               \pdftex_pdftexversion:D
 %    \end{macrocode}
 % These ones appear in \pdfTeX{} but don't have |pdf| in the name at all.
 % (\tn{synctex} is odd as it's really not from \pdfTeX{} but from SyncTeX!)
 %    \begin{macrocode}
-  \__kernel_primitive:NN \efcode                      \pdftex_efcode:D
-  \__kernel_primitive:NN \ifincsname                  \pdftex_ifincsname:D
-  \__kernel_primitive:NN \leftmarginkern              \pdftex_leftmarginkern:D
-  \__kernel_primitive:NN \letterspacefont             \pdftex_letterspacefont:D
-  \__kernel_primitive:NN \lpcode                      \pdftex_lpcode:D
-  \__kernel_primitive:NN \quitvmode                   \pdftex_quitvmode:D
-  \__kernel_primitive:NN \rightmarginkern             \pdftex_rightmarginkern:D
-  \__kernel_primitive:NN \rpcode                      \pdftex_rpcode:D
-  \__kernel_primitive:NN \synctex                     \pdftex_synctex:D
-  \__kernel_primitive:NN \tagcode                     \pdftex_tagcode:D
+  \@@_primitive:NN \efcode                      \pdftex_efcode:D
+  \@@_primitive:NN \ifincsname                  \pdftex_ifincsname:D
+  \@@_primitive:NN \leftmarginkern              \pdftex_leftmarginkern:D
+  \@@_primitive:NN \letterspacefont             \pdftex_letterspacefont:D
+  \@@_primitive:NN \lpcode                      \pdftex_lpcode:D
+  \@@_primitive:NN \quitvmode                   \pdftex_quitvmode:D
+  \@@_primitive:NN \rightmarginkern             \pdftex_rightmarginkern:D
+  \@@_primitive:NN \rpcode                      \pdftex_rpcode:D
+  \@@_primitive:NN \synctex                     \pdftex_synctex:D
+  \@@_primitive:NN \tagcode                     \pdftex_tagcode:D
 %    \end{macrocode}
 % Post \pdfTeX{} primitive availability gets more complex. Both \XeTeX{} and
 % \LuaTeX{} have varying names for some primitives from \pdfTeX{}. Particularly
@@ -688,7 +689,7 @@
 %<*initex|package>
   \tex_long:D \tex_def:D \use_ii:nn #1#2 {#2}
   \tex_long:D \tex_def:D \use_none:n #1 { }
-  \tex_long:D \tex_def:D \__kernel_primitive:NN #1#2
+  \tex_long:D \tex_def:D \@@_primitive:NN #1#2
     {
       \etex_ifdefined:D #1
         \tex_expandafter:D \use_ii:nn
@@ -707,151 +708,151 @@
 % into the \enquote{base} name. A few cross-compatibility names which lack
 % the |pdf| of the original are handled later.
 %    \begin{macrocode}
-  \__kernel_primitive:NN \suppressfontnotfounderror   \xetex_suppressfontnotfounderror:D
-  \__kernel_primitive:NN \XeTeXcharclass              \xetex_charclass:D
-  \__kernel_primitive:NN \XeTeXcharglyph              \xetex_charglyph:D
-  \__kernel_primitive:NN \XeTeXcountfeatures          \xetex_countfeatures:D
-  \__kernel_primitive:NN \XeTeXcountglyphs            \xetex_countglyphs:D
-  \__kernel_primitive:NN \XeTeXcountselectors         \xetex_countselectors:D
-  \__kernel_primitive:NN \XeTeXcountvariations        \xetex_countvariations:D
-  \__kernel_primitive:NN \XeTeXdefaultencoding        \xetex_defaultencoding:D
-  \__kernel_primitive:NN \XeTeXdashbreakstate         \xetex_dashbreakstate:D
-  \__kernel_primitive:NN \XeTeXfeaturecode            \xetex_featurecode:D
-  \__kernel_primitive:NN \XeTeXfeaturename            \xetex_featurename:D
-  \__kernel_primitive:NN \XeTeXfindfeaturebyname      \xetex_findfeaturebyname:D
-  \__kernel_primitive:NN \XeTeXfindselectorbyname     \xetex_findselectorbyname:D
-  \__kernel_primitive:NN \XeTeXfindvariationbyname    \xetex_findvariationbyname:D
-  \__kernel_primitive:NN \XeTeXfirstfontchar          \xetex_firstfontchar:D
-  \__kernel_primitive:NN \XeTeXfonttype               \xetex_fonttype:D
-  \__kernel_primitive:NN \XeTeXgenerateactualtext     \xetex_generateactualtext:D
-  \__kernel_primitive:NN \XeTeXglyph                  \xetex_glyph:D
-  \__kernel_primitive:NN \XeTeXglyphbounds            \xetex_glyphbounds:D
-  \__kernel_primitive:NN \XeTeXglyphindex             \xetex_glyphindex:D
-  \__kernel_primitive:NN \XeTeXglyphname              \xetex_glyphname:D
-  \__kernel_primitive:NN \XeTeXinputencoding          \xetex_inputencoding:D
-  \__kernel_primitive:NN \XeTeXinputnormalization     \xetex_inputnormalization:D
-  \__kernel_primitive:NN \XeTeXinterchartokenstate    \xetex_interchartokenstate:D
-  \__kernel_primitive:NN \XeTeXinterchartoks          \xetex_interchartoks:D
-  \__kernel_primitive:NN \XeTeXisdefaultselector      \xetex_isdefaultselector:D
-  \__kernel_primitive:NN \XeTeXisexclusivefeature     \xetex_isexclusivefeature:D
-  \__kernel_primitive:NN \XeTeXlastfontchar           \xetex_lastfontchar:D
-  \__kernel_primitive:NN \XeTeXlinebreakskip          \xetex_linebreakskip:D
-  \__kernel_primitive:NN \XeTeXlinebreaklocale        \xetex_linebreaklocale:D
-  \__kernel_primitive:NN \XeTeXlinebreakpenalty       \xetex_linebreakpenalty:D
-  \__kernel_primitive:NN \XeTeXOTcountfeatures        \xetex_OTcountfeatures:D
-  \__kernel_primitive:NN \XeTeXOTcountlanguages       \xetex_OTcountlanguages:D
-  \__kernel_primitive:NN \XeTeXOTcountscripts         \xetex_OTcountscripts:D
-  \__kernel_primitive:NN \XeTeXOTfeaturetag           \xetex_OTfeaturetag:D
-  \__kernel_primitive:NN \XeTeXOTlanguagetag          \xetex_OTlanguagetag:D
-  \__kernel_primitive:NN \XeTeXOTscripttag            \xetex_OTscripttag:D
-  \__kernel_primitive:NN \XeTeXpdffile                \xetex_pdffile:D
-  \__kernel_primitive:NN \XeTeXpdfpagecount           \xetex_pdfpagecount:D
-  \__kernel_primitive:NN \XeTeXpicfile                \xetex_picfile:D
-  \__kernel_primitive:NN \XeTeXselectorname           \xetex_selectorname:D
-  \__kernel_primitive:NN \XeTeXtracingfonts           \xetex_tracingfonts:D
-  \__kernel_primitive:NN \XeTeXupwardsmode            \xetex_upwardsmode:D
-  \__kernel_primitive:NN \XeTeXuseglyphmetrics        \xetex_useglyphmetrics:D
-  \__kernel_primitive:NN \XeTeXvariation              \xetex_variation:D
-  \__kernel_primitive:NN \XeTeXvariationdefault       \xetex_variationdefault:D
-  \__kernel_primitive:NN \XeTeXvariationmax           \xetex_variationmax:D
-  \__kernel_primitive:NN \XeTeXvariationmin           \xetex_variationmin:D
-  \__kernel_primitive:NN \XeTeXvariationname          \xetex_variationname:D
+  \@@_primitive:NN \suppressfontnotfounderror   \xetex_suppressfontnotfounderror:D
+  \@@_primitive:NN \XeTeXcharclass              \xetex_charclass:D
+  \@@_primitive:NN \XeTeXcharglyph              \xetex_charglyph:D
+  \@@_primitive:NN \XeTeXcountfeatures          \xetex_countfeatures:D
+  \@@_primitive:NN \XeTeXcountglyphs            \xetex_countglyphs:D
+  \@@_primitive:NN \XeTeXcountselectors         \xetex_countselectors:D
+  \@@_primitive:NN \XeTeXcountvariations        \xetex_countvariations:D
+  \@@_primitive:NN \XeTeXdefaultencoding        \xetex_defaultencoding:D
+  \@@_primitive:NN \XeTeXdashbreakstate         \xetex_dashbreakstate:D
+  \@@_primitive:NN \XeTeXfeaturecode            \xetex_featurecode:D
+  \@@_primitive:NN \XeTeXfeaturename            \xetex_featurename:D
+  \@@_primitive:NN \XeTeXfindfeaturebyname      \xetex_findfeaturebyname:D
+  \@@_primitive:NN \XeTeXfindselectorbyname     \xetex_findselectorbyname:D
+  \@@_primitive:NN \XeTeXfindvariationbyname    \xetex_findvariationbyname:D
+  \@@_primitive:NN \XeTeXfirstfontchar          \xetex_firstfontchar:D
+  \@@_primitive:NN \XeTeXfonttype               \xetex_fonttype:D
+  \@@_primitive:NN \XeTeXgenerateactualtext     \xetex_generateactualtext:D
+  \@@_primitive:NN \XeTeXglyph                  \xetex_glyph:D
+  \@@_primitive:NN \XeTeXglyphbounds            \xetex_glyphbounds:D
+  \@@_primitive:NN \XeTeXglyphindex             \xetex_glyphindex:D
+  \@@_primitive:NN \XeTeXglyphname              \xetex_glyphname:D
+  \@@_primitive:NN \XeTeXinputencoding          \xetex_inputencoding:D
+  \@@_primitive:NN \XeTeXinputnormalization     \xetex_inputnormalization:D
+  \@@_primitive:NN \XeTeXinterchartokenstate    \xetex_interchartokenstate:D
+  \@@_primitive:NN \XeTeXinterchartoks          \xetex_interchartoks:D
+  \@@_primitive:NN \XeTeXisdefaultselector      \xetex_isdefaultselector:D
+  \@@_primitive:NN \XeTeXisexclusivefeature     \xetex_isexclusivefeature:D
+  \@@_primitive:NN \XeTeXlastfontchar           \xetex_lastfontchar:D
+  \@@_primitive:NN \XeTeXlinebreakskip          \xetex_linebreakskip:D
+  \@@_primitive:NN \XeTeXlinebreaklocale        \xetex_linebreaklocale:D
+  \@@_primitive:NN \XeTeXlinebreakpenalty       \xetex_linebreakpenalty:D
+  \@@_primitive:NN \XeTeXOTcountfeatures        \xetex_OTcountfeatures:D
+  \@@_primitive:NN \XeTeXOTcountlanguages       \xetex_OTcountlanguages:D
+  \@@_primitive:NN \XeTeXOTcountscripts         \xetex_OTcountscripts:D
+  \@@_primitive:NN \XeTeXOTfeaturetag           \xetex_OTfeaturetag:D
+  \@@_primitive:NN \XeTeXOTlanguagetag          \xetex_OTlanguagetag:D
+  \@@_primitive:NN \XeTeXOTscripttag            \xetex_OTscripttag:D
+  \@@_primitive:NN \XeTeXpdffile                \xetex_pdffile:D
+  \@@_primitive:NN \XeTeXpdfpagecount           \xetex_pdfpagecount:D
+  \@@_primitive:NN \XeTeXpicfile                \xetex_picfile:D
+  \@@_primitive:NN \XeTeXselectorname           \xetex_selectorname:D
+  \@@_primitive:NN \XeTeXtracingfonts           \xetex_tracingfonts:D
+  \@@_primitive:NN \XeTeXupwardsmode            \xetex_upwardsmode:D
+  \@@_primitive:NN \XeTeXuseglyphmetrics        \xetex_useglyphmetrics:D
+  \@@_primitive:NN \XeTeXvariation              \xetex_variation:D
+  \@@_primitive:NN \XeTeXvariationdefault       \xetex_variationdefault:D
+  \@@_primitive:NN \XeTeXvariationmax           \xetex_variationmax:D
+  \@@_primitive:NN \XeTeXvariationmin           \xetex_variationmin:D
+  \@@_primitive:NN \XeTeXvariationname          \xetex_variationname:D
 %    \end{macrocode}
 %   The version primitives retain |XeTeX|.
 %    \begin{macrocode}
-  \__kernel_primitive:NN \XeTeXrevision               \xetex_XeTeXrevision:D
-  \__kernel_primitive:NN \XeTeXversion                \xetex_XeTeXversion:D
+  \@@_primitive:NN \XeTeXrevision               \xetex_XeTeXrevision:D
+  \@@_primitive:NN \XeTeXversion                \xetex_XeTeXversion:D
 %    \end{macrocode}
 % Primitives from \pdfTeX{} that \XeTeX{} renames: also helps with
 % \LuaTeX{}.
 %    \begin{macrocode}
-  \__kernel_primitive:NN \mdfivesum                   \pdftex_mdfivesum:D
-  \__kernel_primitive:NN \ifprimitive                 \pdftex_ifprimitive:D
-  \__kernel_primitive:NN \primitive                   \pdftex_primitive:D
-  \__kernel_primitive:NN \shellescape                 \pdftex_shellescape:D
+  \@@_primitive:NN \mdfivesum                   \pdftex_mdfivesum:D
+  \@@_primitive:NN \ifprimitive                 \pdftex_ifprimitive:D
+  \@@_primitive:NN \primitive                   \pdftex_primitive:D
+  \@@_primitive:NN \shellescape                 \pdftex_shellescape:D
 %    \end{macrocode}
 % Primitives from \LuaTeX{}, some of which have been ported back to
 % \XeTeX{}. Notice that \tn{expanded} was intended for \pdfTeX{}~1.50 but
 % as that was not released we call this a \LuaTeX{} primitive.
 %    \begin{macrocode}
-  \__kernel_primitive:NN \alignmark                   \luatex_alignmark:D
-  \__kernel_primitive:NN \aligntab                    \luatex_aligntab:D
-  \__kernel_primitive:NN \attribute                   \luatex_attribute:D
-  \__kernel_primitive:NN \attributedef                \luatex_attributedef:D
-  \__kernel_primitive:NN \automatichyphenpenalty      \luatex_automatichyphenpenalty:D
-  \__kernel_primitive:NN \begincsname                 \luatex_begincsname:D
-  \__kernel_primitive:NN \catcodetable                \luatex_catcodetable:D
-  \__kernel_primitive:NN \clearmarks                  \luatex_clearmarks:D
-  \__kernel_primitive:NN \crampeddisplaystyle         \luatex_crampeddisplaystyle:D
-  \__kernel_primitive:NN \crampedscriptscriptstyle    \luatex_crampedscriptscriptstyle:D
-  \__kernel_primitive:NN \crampedscriptstyle          \luatex_crampedscriptstyle:D
-  \__kernel_primitive:NN \crampedtextstyle            \luatex_crampedtextstyle:D
-  \__kernel_primitive:NN \directlua                   \luatex_directlua:D
-  \__kernel_primitive:NN \dviextension                \luatex_dviextension:D
-  \__kernel_primitive:NN \dvifeedback                 \luatex_dvifeedback:D
-  \__kernel_primitive:NN \dvivariable                 \luatex_dvivariable:D
-  \__kernel_primitive:NN \etoksapp                    \luatex_etoksapp:D
-  \__kernel_primitive:NN \etokspre                    \luatex_etokspre:D
-  \__kernel_primitive:NN \explicithyphenpenalty       \luatex_explicithyphenpenalty:D
-  \__kernel_primitive:NN \expanded                    \luatex_expanded:D
-  \__kernel_primitive:NN \firstvalidlanguage          \luatex_firstvalidlanguage:D
-  \__kernel_primitive:NN \fontid                      \luatex_fontid:D
-  \__kernel_primitive:NN \formatname                  \luatex_formatname:D
-  \__kernel_primitive:NN \hjcode                      \luatex_hjcode:D
-  \__kernel_primitive:NN \hpack                       \luatex_hpack:D
-  \__kernel_primitive:NN \hyphenationbounds           \luatex_hyphenationbounds:D
-  \__kernel_primitive:NN \hyphenationmin              \luatex_hyphenationmin:D
-  \__kernel_primitive:NN \hyphenpenaltymode           \luatex_hyphenpenaltymode:D
-  \__kernel_primitive:NN \gleaders                    \luatex_gleaders:D
-  \__kernel_primitive:NN \initcatcodetable            \luatex_initcatcodetable:D
-  \__kernel_primitive:NN \lastnamedcs                 \luatex_lastnamedcs:D
-  \__kernel_primitive:NN \latelua                     \luatex_latelua:D
-  \__kernel_primitive:NN \letcharcode                 \luatex_letcharcode:D
-  \__kernel_primitive:NN \luaescapestring             \luatex_luaescapestring:D
-  \__kernel_primitive:NN \luafunction                 \luatex_luafunction:D
-  \__kernel_primitive:NN \luatexbanner                \luatex_luatexbanner:D
-  \__kernel_primitive:NN \luatexdatestamp             \luatex_luatexdatestamp:D
-  \__kernel_primitive:NN \luatexrevision              \luatex_luatexrevision:D
-  \__kernel_primitive:NN \luatexversion               \luatex_luatexversion:D
-  \__kernel_primitive:NN \mathdisplayskipmode         \luatex_mathdisplayskipmode:D
-  \__kernel_primitive:NN \matheqnogapstep             \luatex_matheqnogapstep:D
-  \__kernel_primitive:NN \mathnolimitsmode            \luatex_mathnolimitsmode:D
-  \__kernel_primitive:NN \mathoption                  \luatex_mathoption:D
-  \__kernel_primitive:NN \mathrulesfam                \luatex_mathrulesfam:D
-  \__kernel_primitive:NN \mathscriptsmode             \luatex_mathscriptsmode:D
-  \__kernel_primitive:NN \mathstyle                   \luatex_mathstyle:D
-  \__kernel_primitive:NN \mathsurroundmode            \luatex_mathsurroundmode:D
-  \__kernel_primitive:NN \mathsurroundskip            \luatex_mathsurroundskip:D
-  \__kernel_primitive:NN \nohrule                     \luatex_nohrule:D
-  \__kernel_primitive:NN \nokerns                     \luatex_nokerns:D
-  \__kernel_primitive:NN \noligs                      \luatex_noligs:D
-  \__kernel_primitive:NN \nospaces                    \luatex_nospaces:D
-  \__kernel_primitive:NN \novrule                     \luatex_novrule:D
-  \__kernel_primitive:NN \outputbox                   \luatex_outputbox:D
-  \__kernel_primitive:NN \pagebottomoffset            \luatex_pagebottomoffset:D
-  \__kernel_primitive:NN \pageleftoffset              \luatex_pageleftoffset:D
-  \__kernel_primitive:NN \pagerightoffset             \luatex_pagerightoffset:D
-  \__kernel_primitive:NN \pagetopoffset               \luatex_pagetopoffset:D
-  \__kernel_primitive:NN \pdfextension                \luatex_pdfextension:D
-  \__kernel_primitive:NN \pdffeedback                 \luatex_pdffeedback:D
-  \__kernel_primitive:NN \pdfvariable                 \luatex_pdfvariable:D
-  \__kernel_primitive:NN \postexhyphenchar            \luatex_postexhyphenchar:D
-  \__kernel_primitive:NN \posthyphenchar              \luatex_posthyphenchar:D
-  \__kernel_primitive:NN \predisplaygapfactor         \luatex_predisplaygapfactor:D
-  \__kernel_primitive:NN \preexhyphenchar             \luatex_preexhyphenchar:D
-  \__kernel_primitive:NN \prehyphenchar               \luatex_prehyphenchar:D
-  \__kernel_primitive:NN \savecatcodetable            \luatex_savecatcodetable:D
-  \__kernel_primitive:NN \scantextokens               \luatex_scantextokens:D
-  \__kernel_primitive:NN \setfontid                   \luatex_setfontid:D
-  \__kernel_primitive:NN \shapemode                   \luatex_shapemode:D
-  \__kernel_primitive:NN \suppressifcsnameerror       \luatex_suppressifcsnameerror:D
-  \__kernel_primitive:NN \suppresslongerror           \luatex_suppresslongerror:D
-  \__kernel_primitive:NN \suppressmathparerror        \luatex_suppressmathparerror:D
-  \__kernel_primitive:NN \suppressoutererror          \luatex_suppressoutererror:D
-  \__kernel_primitive:NN \toksapp                     \luatex_toksapp:D
-  \__kernel_primitive:NN \tokspre                     \luatex_tokspre:D
-  \__kernel_primitive:NN \tpack                       \luatex_tpack:D
-  \__kernel_primitive:NN \vpack                       \luatex_vpack:D
+  \@@_primitive:NN \alignmark                   \luatex_alignmark:D
+  \@@_primitive:NN \aligntab                    \luatex_aligntab:D
+  \@@_primitive:NN \attribute                   \luatex_attribute:D
+  \@@_primitive:NN \attributedef                \luatex_attributedef:D
+  \@@_primitive:NN \automatichyphenpenalty      \luatex_automatichyphenpenalty:D
+  \@@_primitive:NN \begincsname                 \luatex_begincsname:D
+  \@@_primitive:NN \catcodetable                \luatex_catcodetable:D
+  \@@_primitive:NN \clearmarks                  \luatex_clearmarks:D
+  \@@_primitive:NN \crampeddisplaystyle         \luatex_crampeddisplaystyle:D
+  \@@_primitive:NN \crampedscriptscriptstyle    \luatex_crampedscriptscriptstyle:D
+  \@@_primitive:NN \crampedscriptstyle          \luatex_crampedscriptstyle:D
+  \@@_primitive:NN \crampedtextstyle            \luatex_crampedtextstyle:D
+  \@@_primitive:NN \directlua                   \luatex_directlua:D
+  \@@_primitive:NN \dviextension                \luatex_dviextension:D
+  \@@_primitive:NN \dvifeedback                 \luatex_dvifeedback:D
+  \@@_primitive:NN \dvivariable                 \luatex_dvivariable:D
+  \@@_primitive:NN \etoksapp                    \luatex_etoksapp:D
+  \@@_primitive:NN \etokspre                    \luatex_etokspre:D
+  \@@_primitive:NN \explicithyphenpenalty       \luatex_explicithyphenpenalty:D
+  \@@_primitive:NN \expanded                    \luatex_expanded:D
+  \@@_primitive:NN \firstvalidlanguage          \luatex_firstvalidlanguage:D
+  \@@_primitive:NN \fontid                      \luatex_fontid:D
+  \@@_primitive:NN \formatname                  \luatex_formatname:D
+  \@@_primitive:NN \hjcode                      \luatex_hjcode:D
+  \@@_primitive:NN \hpack                       \luatex_hpack:D
+  \@@_primitive:NN \hyphenationbounds           \luatex_hyphenationbounds:D
+  \@@_primitive:NN \hyphenationmin              \luatex_hyphenationmin:D
+  \@@_primitive:NN \hyphenpenaltymode           \luatex_hyphenpenaltymode:D
+  \@@_primitive:NN \gleaders                    \luatex_gleaders:D
+  \@@_primitive:NN \initcatcodetable            \luatex_initcatcodetable:D
+  \@@_primitive:NN \lastnamedcs                 \luatex_lastnamedcs:D
+  \@@_primitive:NN \latelua                     \luatex_latelua:D
+  \@@_primitive:NN \letcharcode                 \luatex_letcharcode:D
+  \@@_primitive:NN \luaescapestring             \luatex_luaescapestring:D
+  \@@_primitive:NN \luafunction                 \luatex_luafunction:D
+  \@@_primitive:NN \luatexbanner                \luatex_luatexbanner:D
+  \@@_primitive:NN \luatexdatestamp             \luatex_luatexdatestamp:D
+  \@@_primitive:NN \luatexrevision              \luatex_luatexrevision:D
+  \@@_primitive:NN \luatexversion               \luatex_luatexversion:D
+  \@@_primitive:NN \mathdisplayskipmode         \luatex_mathdisplayskipmode:D
+  \@@_primitive:NN \matheqnogapstep             \luatex_matheqnogapstep:D
+  \@@_primitive:NN \mathnolimitsmode            \luatex_mathnolimitsmode:D
+  \@@_primitive:NN \mathoption                  \luatex_mathoption:D
+  \@@_primitive:NN \mathrulesfam                \luatex_mathrulesfam:D
+  \@@_primitive:NN \mathscriptsmode             \luatex_mathscriptsmode:D
+  \@@_primitive:NN \mathstyle                   \luatex_mathstyle:D
+  \@@_primitive:NN \mathsurroundmode            \luatex_mathsurroundmode:D
+  \@@_primitive:NN \mathsurroundskip            \luatex_mathsurroundskip:D
+  \@@_primitive:NN \nohrule                     \luatex_nohrule:D
+  \@@_primitive:NN \nokerns                     \luatex_nokerns:D
+  \@@_primitive:NN \noligs                      \luatex_noligs:D
+  \@@_primitive:NN \nospaces                    \luatex_nospaces:D
+  \@@_primitive:NN \novrule                     \luatex_novrule:D
+  \@@_primitive:NN \outputbox                   \luatex_outputbox:D
+  \@@_primitive:NN \pagebottomoffset            \luatex_pagebottomoffset:D
+  \@@_primitive:NN \pageleftoffset              \luatex_pageleftoffset:D
+  \@@_primitive:NN \pagerightoffset             \luatex_pagerightoffset:D
+  \@@_primitive:NN \pagetopoffset               \luatex_pagetopoffset:D
+  \@@_primitive:NN \pdfextension                \luatex_pdfextension:D
+  \@@_primitive:NN \pdffeedback                 \luatex_pdffeedback:D
+  \@@_primitive:NN \pdfvariable                 \luatex_pdfvariable:D
+  \@@_primitive:NN \postexhyphenchar            \luatex_postexhyphenchar:D
+  \@@_primitive:NN \posthyphenchar              \luatex_posthyphenchar:D
+  \@@_primitive:NN \predisplaygapfactor         \luatex_predisplaygapfactor:D
+  \@@_primitive:NN \preexhyphenchar             \luatex_preexhyphenchar:D
+  \@@_primitive:NN \prehyphenchar               \luatex_prehyphenchar:D
+  \@@_primitive:NN \savecatcodetable            \luatex_savecatcodetable:D
+  \@@_primitive:NN \scantextokens               \luatex_scantextokens:D
+  \@@_primitive:NN \setfontid                   \luatex_setfontid:D
+  \@@_primitive:NN \shapemode                   \luatex_shapemode:D
+  \@@_primitive:NN \suppressifcsnameerror       \luatex_suppressifcsnameerror:D
+  \@@_primitive:NN \suppresslongerror           \luatex_suppresslongerror:D
+  \@@_primitive:NN \suppressmathparerror        \luatex_suppressmathparerror:D
+  \@@_primitive:NN \suppressoutererror          \luatex_suppressoutererror:D
+  \@@_primitive:NN \toksapp                     \luatex_toksapp:D
+  \@@_primitive:NN \tokspre                     \luatex_tokspre:D
+  \@@_primitive:NN \tpack                       \luatex_tpack:D
+  \@@_primitive:NN \vpack                       \luatex_vpack:D
 %    \end{macrocode}
 % Slightly more awkward are the directional primitives in \LuaTeX{}. These
 % come from Omega/Aleph, but we do not support those engines and
@@ -858,50 +859,50 @@
 % so it seems most sensible to treat them as \LuaTeX{} primitives for prefix
 % purposes. One here is \enquote{new} but fits into the general set.
 %    \begin{macrocode}
-  \__kernel_primitive:NN \bodydir                     \luatex_bodydir:D
-  \__kernel_primitive:NN \boxdir                      \luatex_boxdir:D
-  \__kernel_primitive:NN \leftghost                   \luatex_leftghost:D
-  \__kernel_primitive:NN \linedir                     \luatex_linedir:D
-  \__kernel_primitive:NN \localbrokenpenalty          \luatex_localbrokenpenalty:D
-  \__kernel_primitive:NN \localinterlinepenalty       \luatex_localinterlinepenalty:D
-  \__kernel_primitive:NN \localleftbox                \luatex_localleftbox:D
-  \__kernel_primitive:NN \localrightbox               \luatex_localrightbox:D
-  \__kernel_primitive:NN \mathdir                     \luatex_mathdir:D
-  \__kernel_primitive:NN \pagedir                     \luatex_pagedir:D
-  \__kernel_primitive:NN \pardir                      \luatex_pardir:D
-  \__kernel_primitive:NN \rightghost                  \luatex_rightghost:D
-  \__kernel_primitive:NN \textdir                     \luatex_textdir:D
+  \@@_primitive:NN \bodydir                     \luatex_bodydir:D
+  \@@_primitive:NN \boxdir                      \luatex_boxdir:D
+  \@@_primitive:NN \leftghost                   \luatex_leftghost:D
+  \@@_primitive:NN \linedir                     \luatex_linedir:D
+  \@@_primitive:NN \localbrokenpenalty          \luatex_localbrokenpenalty:D
+  \@@_primitive:NN \localinterlinepenalty       \luatex_localinterlinepenalty:D
+  \@@_primitive:NN \localleftbox                \luatex_localleftbox:D
+  \@@_primitive:NN \localrightbox               \luatex_localrightbox:D
+  \@@_primitive:NN \mathdir                     \luatex_mathdir:D
+  \@@_primitive:NN \pagedir                     \luatex_pagedir:D
+  \@@_primitive:NN \pardir                      \luatex_pardir:D
+  \@@_primitive:NN \rightghost                  \luatex_rightghost:D
+  \@@_primitive:NN \textdir                     \luatex_textdir:D
 %    \end{macrocode}
 % Primitives from \pdfTeX{} that \LuaTeX{} renames.
 %    \begin{macrocode}
-  \__kernel_primitive:NN \adjustspacing               \pdftex_adjustspacing:D
-  \__kernel_primitive:NN \copyfont                    \pdftex_copyfont:D
-  \__kernel_primitive:NN \draftmode                   \pdftex_draftmode:D
-  \__kernel_primitive:NN \expandglyphsinfont          \pdftex_fontexpand:D
-  \__kernel_primitive:NN \ifabsdim                    \pdftex_ifabsdim:D
-  \__kernel_primitive:NN \ifabsnum                    \pdftex_ifabsnum:D
-  \__kernel_primitive:NN \ignoreligaturesinfont       \pdftex_ignoreligaturesinfont:D
-  \__kernel_primitive:NN \insertht                    \pdftex_insertht:D
-  \__kernel_primitive:NN \lastsavedboxresourceindex   \pdftex_pdflastxform:D
-  \__kernel_primitive:NN \lastsavedimageresourceindex \pdftex_pdflastximage:D
-  \__kernel_primitive:NN \lastsavedimageresourcepages \pdftex_pdflastximagepages:D
-  \__kernel_primitive:NN \lastxpos                    \pdftex_lastxpos:D
-  \__kernel_primitive:NN \lastypos                    \pdftex_lastypos:D
-  \__kernel_primitive:NN \normaldeviate               \pdftex_normaldeviate:D
-  \__kernel_primitive:NN \outputmode                  \pdftex_pdfoutput:D
-  \__kernel_primitive:NN \pageheight                  \pdftex_pageheight:D
-  \__kernel_primitive:NN \pagewidth                   \pdftex_pagewith:D
-  \__kernel_primitive:NN \protrudechars               \pdftex_protrudechars:D
-  \__kernel_primitive:NN \pxdimen                     \pdftex_pxdimen:D
-  \__kernel_primitive:NN \randomseed                  \pdftex_randomseed:D
-  \__kernel_primitive:NN \useboxresource              \pdftex_pdfrefxform:D
-  \__kernel_primitive:NN \useimageresource            \pdftex_pdfrefximage:D
-  \__kernel_primitive:NN \savepos                     \pdftex_savepos:D
-  \__kernel_primitive:NN \saveboxresource             \pdftex_pdfxform:D
-  \__kernel_primitive:NN \saveimageresource           \pdftex_pdfximage:D
-  \__kernel_primitive:NN \setrandomseed               \pdftex_setrandomseed:D
-  \__kernel_primitive:NN \tracingfonts                \pdftex_tracingfonts:D
-  \__kernel_primitive:NN \uniformdeviate              \pdftex_uniformdeviate:D
+  \@@_primitive:NN \adjustspacing               \pdftex_adjustspacing:D
+  \@@_primitive:NN \copyfont                    \pdftex_copyfont:D
+  \@@_primitive:NN \draftmode                   \pdftex_draftmode:D
+  \@@_primitive:NN \expandglyphsinfont          \pdftex_fontexpand:D
+  \@@_primitive:NN \ifabsdim                    \pdftex_ifabsdim:D
+  \@@_primitive:NN \ifabsnum                    \pdftex_ifabsnum:D
+  \@@_primitive:NN \ignoreligaturesinfont       \pdftex_ignoreligaturesinfont:D
+  \@@_primitive:NN \insertht                    \pdftex_insertht:D
+  \@@_primitive:NN \lastsavedboxresourceindex   \pdftex_pdflastxform:D
+  \@@_primitive:NN \lastsavedimageresourceindex \pdftex_pdflastximage:D
+  \@@_primitive:NN \lastsavedimageresourcepages \pdftex_pdflastximagepages:D
+  \@@_primitive:NN \lastxpos                    \pdftex_lastxpos:D
+  \@@_primitive:NN \lastypos                    \pdftex_lastypos:D
+  \@@_primitive:NN \normaldeviate               \pdftex_normaldeviate:D
+  \@@_primitive:NN \outputmode                  \pdftex_pdfoutput:D
+  \@@_primitive:NN \pageheight                  \pdftex_pageheight:D
+  \@@_primitive:NN \pagewidth                   \pdftex_pagewith:D
+  \@@_primitive:NN \protrudechars               \pdftex_protrudechars:D
+  \@@_primitive:NN \pxdimen                     \pdftex_pxdimen:D
+  \@@_primitive:NN \randomseed                  \pdftex_randomseed:D
+  \@@_primitive:NN \useboxresource              \pdftex_pdfrefxform:D
+  \@@_primitive:NN \useimageresource            \pdftex_pdfrefximage:D
+  \@@_primitive:NN \savepos                     \pdftex_savepos:D
+  \@@_primitive:NN \saveboxresource             \pdftex_pdfxform:D
+  \@@_primitive:NN \saveimageresource           \pdftex_pdfximage:D
+  \@@_primitive:NN \setrandomseed               \pdftex_setrandomseed:D
+  \@@_primitive:NN \tracingfonts                \pdftex_tracingfonts:D
+  \@@_primitive:NN \uniformdeviate              \pdftex_uniformdeviate:D
 %    \end{macrocode}
 % The set of Unicode math primitives were introduced by \XeTeX{} and \LuaTeX{}
 % in a somewhat complex fashion: a few first as |\XeTeX...| which were then
@@ -911,199 +912,199 @@
 % and drop |\U(math)| from the names. Where there is a related \TeX{}90
 % primitive or where it really seems required we keep the |math| part of the name.
 %    \begin{macrocode}
-  \__kernel_primitive:NN \Uchar                       \utex_char:D
-  \__kernel_primitive:NN \Ucharcat                    \utex_charcat:D
-  \__kernel_primitive:NN \Udelcode                    \utex_delcode:D
-  \__kernel_primitive:NN \Udelcodenum                 \utex_delcodenum:D
-  \__kernel_primitive:NN \Udelimiter                  \utex_delimiter:D
-  \__kernel_primitive:NN \Udelimiterover              \utex_delimiterover:D
-  \__kernel_primitive:NN \Udelimiterunder             \utex_delimiterunder:D
-  \__kernel_primitive:NN \Uhextensible                \utex_hextensible:D
-  \__kernel_primitive:NN \Umathaccent                 \utex_mathaccent:D
-  \__kernel_primitive:NN \Umathaxis                   \utex_mathaxis:D
-  \__kernel_primitive:NN \Umathbinbinspacing          \utex_binbinspacing:D
-  \__kernel_primitive:NN \Umathbinclosespacing        \utex_binclosespacing:D
-  \__kernel_primitive:NN \Umathbininnerspacing        \utex_bininnerspacing:D
-  \__kernel_primitive:NN \Umathbinopenspacing         \utex_binopenspacing:D
-  \__kernel_primitive:NN \Umathbinopspacing           \utex_binopspacing:D
-  \__kernel_primitive:NN \Umathbinordspacing          \utex_binordspacing:D
-  \__kernel_primitive:NN \Umathbinpunctspacing        \utex_binpunctspacing:D
-  \__kernel_primitive:NN \Umathbinrelspacing          \utex_binrelspacing:D
-  \__kernel_primitive:NN \Umathchar                   \utex_mathchar:D
-  \__kernel_primitive:NN \Umathcharclass              \utex_mathcharclass:D
-  \__kernel_primitive:NN \Umathchardef                \utex_mathchardef:D
-  \__kernel_primitive:NN \Umathcharfam                \utex_mathcharfam:D
-  \__kernel_primitive:NN \Umathcharnum                \utex_mathcharnum:D
-  \__kernel_primitive:NN \Umathcharnumdef             \utex_mathcharnumdef:D
-  \__kernel_primitive:NN \Umathcharslot               \utex_mathcharslot:D
-  \__kernel_primitive:NN \Umathclosebinspacing        \utex_closebinspacing:D
-  \__kernel_primitive:NN \Umathcloseclosespacing      \utex_closeclosespacing:D
-  \__kernel_primitive:NN \Umathcloseinnerspacing      \utex_closeinnerspacing:D
-  \__kernel_primitive:NN \Umathcloseopenspacing       \utex_closeopenspacing:D
-  \__kernel_primitive:NN \Umathcloseopspacing         \utex_closeopspacing:D
-  \__kernel_primitive:NN \Umathcloseordspacing        \utex_closeordspacing:D
-  \__kernel_primitive:NN \Umathclosepunctspacing      \utex_closepunctspacing:D
-  \__kernel_primitive:NN \Umathcloserelspacing        \utex_closerelspacing:D
-  \__kernel_primitive:NN \Umathcode                   \utex_mathcode:D
-  \__kernel_primitive:NN \Umathcodenum                \utex_mathcodenum:D
-  \__kernel_primitive:NN \Umathconnectoroverlapmin    \utex_connectoroverlapmin:D
-  \__kernel_primitive:NN \Umathfractiondelsize        \utex_fractiondelsize:D
-  \__kernel_primitive:NN \Umathfractiondenomdown      \utex_fractiondenomdown:D
-  \__kernel_primitive:NN \Umathfractiondenomvgap      \utex_fractiondenomvgap:D
-  \__kernel_primitive:NN \Umathfractionnumup          \utex_fractionnumup:D
-  \__kernel_primitive:NN \Umathfractionnumvgap        \utex_fractionnumvgap:D
-  \__kernel_primitive:NN \Umathfractionrule           \utex_fractionrule:D
-  \__kernel_primitive:NN \Umathinnerbinspacing        \utex_innerbinspacing:D
-  \__kernel_primitive:NN \Umathinnerclosespacing      \utex_innerclosespacing:D
-  \__kernel_primitive:NN \Umathinnerinnerspacing      \utex_innerinnerspacing:D
-  \__kernel_primitive:NN \Umathinneropenspacing       \utex_inneropenspacing:D
-  \__kernel_primitive:NN \Umathinneropspacing         \utex_inneropspacing:D
-  \__kernel_primitive:NN \Umathinnerordspacing        \utex_innerordspacing:D
-  \__kernel_primitive:NN \Umathinnerpunctspacing      \utex_innerpunctspacing:D
-  \__kernel_primitive:NN \Umathinnerrelspacing        \utex_innerrelspacing:D
-  \__kernel_primitive:NN \Umathlimitabovebgap         \utex_limitabovebgap:D
-  \__kernel_primitive:NN \Umathlimitabovekern         \utex_limitabovekern:D
-  \__kernel_primitive:NN \Umathlimitabovevgap         \utex_limitabovevgap:D
-  \__kernel_primitive:NN \Umathlimitbelowbgap         \utex_limitbelowbgap:D
-  \__kernel_primitive:NN \Umathlimitbelowkern         \utex_limitbelowkern:D
-  \__kernel_primitive:NN \Umathlimitbelowvgap         \utex_limitbelowvgap:D
-  \__kernel_primitive:NN \Umathnolimitsubfactor       \utex_nolimitsubfactor:D
-  \__kernel_primitive:NN \Umathnolimitsupfactor       \utex_nolimitsupfactor:D
-  \__kernel_primitive:NN \Umathopbinspacing           \utex_opbinspacing:D
-  \__kernel_primitive:NN \Umathopclosespacing         \utex_opclosespacing:D
-  \__kernel_primitive:NN \Umathopenbinspacing         \utex_openbinspacing:D
-  \__kernel_primitive:NN \Umathopenclosespacing       \utex_openclosespacing:D
-  \__kernel_primitive:NN \Umathopeninnerspacing       \utex_openinnerspacing:D
-  \__kernel_primitive:NN \Umathopenopenspacing        \utex_openopenspacing:D
-  \__kernel_primitive:NN \Umathopenopspacing          \utex_openopspacing:D
-  \__kernel_primitive:NN \Umathopenordspacing         \utex_openordspacing:D
-  \__kernel_primitive:NN \Umathopenpunctspacing       \utex_openpunctspacing:D
-  \__kernel_primitive:NN \Umathopenrelspacing         \utex_openrelspacing:D
-  \__kernel_primitive:NN \Umathoperatorsize           \utex_operatorsize:D
-  \__kernel_primitive:NN \Umathopinnerspacing         \utex_opinnerspacing:D
-  \__kernel_primitive:NN \Umathopopenspacing          \utex_opopenspacing:D
-  \__kernel_primitive:NN \Umathopopspacing            \utex_opopspacing:D
-  \__kernel_primitive:NN \Umathopordspacing           \utex_opordspacing:D
-  \__kernel_primitive:NN \Umathoppunctspacing         \utex_oppunctspacing:D
-  \__kernel_primitive:NN \Umathoprelspacing           \utex_oprelspacing:D
-  \__kernel_primitive:NN \Umathordbinspacing          \utex_ordbinspacing:D
-  \__kernel_primitive:NN \Umathordclosespacing        \utex_ordclosespacing:D
-  \__kernel_primitive:NN \Umathordinnerspacing        \utex_ordinnerspacing:D
-  \__kernel_primitive:NN \Umathordopenspacing         \utex_ordopenspacing:D
-  \__kernel_primitive:NN \Umathordopspacing           \utex_ordopspacing:D
-  \__kernel_primitive:NN \Umathordordspacing          \utex_ordordspacing:D
-  \__kernel_primitive:NN \Umathordpunctspacing        \utex_ordpunctspacing:D
-  \__kernel_primitive:NN \Umathordrelspacing          \utex_ordrelspacing:D
-  \__kernel_primitive:NN \Umathoverbarkern            \utex_overbarkern:D
-  \__kernel_primitive:NN \Umathoverbarrule            \utex_overbarrule:D
-  \__kernel_primitive:NN \Umathoverbarvgap            \utex_overbarvgap:D
-  \__kernel_primitive:NN \Umathoverdelimiterbgap      \utex_overdelimiterbgap:D
-  \__kernel_primitive:NN \Umathoverdelimitervgap      \utex_overdelimitervgap:D
-  \__kernel_primitive:NN \Umathpunctbinspacing        \utex_punctbinspacing:D
-  \__kernel_primitive:NN \Umathpunctclosespacing      \utex_punctclosespacing:D
-  \__kernel_primitive:NN \Umathpunctinnerspacing      \utex_punctinnerspacing:D
-  \__kernel_primitive:NN \Umathpunctopenspacing       \utex_punctopenspacing:D
-  \__kernel_primitive:NN \Umathpunctopspacing         \utex_punctopspacing:D
-  \__kernel_primitive:NN \Umathpunctordspacing        \utex_punctordspacing:D
-  \__kernel_primitive:NN \Umathpunctpunctspacing      \utex_punctpunctspacing:D
-  \__kernel_primitive:NN \Umathpunctrelspacing        \utex_punctrelspacing:D
-  \__kernel_primitive:NN \Umathquad                   \utex_quad:D
-  \__kernel_primitive:NN \Umathradicaldegreeafter     \utex_radicaldegreeafter:D
-  \__kernel_primitive:NN \Umathradicaldegreebefore    \utex_radicaldegreebefore:D
-  \__kernel_primitive:NN \Umathradicaldegreeraise     \utex_radicaldegreeraise:D
-  \__kernel_primitive:NN \Umathradicalkern            \utex_radicalkern:D
-  \__kernel_primitive:NN \Umathradicalrule            \utex_radicalrule:D
-  \__kernel_primitive:NN \Umathradicalvgap            \utex_radicalvgap:D
-  \__kernel_primitive:NN \Umathrelbinspacing          \utex_relbinspacing:D
-  \__kernel_primitive:NN \Umathrelclosespacing        \utex_relclosespacing:D
-  \__kernel_primitive:NN \Umathrelinnerspacing        \utex_relinnerspacing:D
-  \__kernel_primitive:NN \Umathrelopenspacing         \utex_relopenspacing:D
-  \__kernel_primitive:NN \Umathrelopspacing           \utex_relopspacing:D
-  \__kernel_primitive:NN \Umathrelordspacing          \utex_relordspacing:D
-  \__kernel_primitive:NN \Umathrelpunctspacing        \utex_relpunctspacing:D
-  \__kernel_primitive:NN \Umathrelrelspacing          \utex_relrelspacing:D
-  \__kernel_primitive:NN \Umathskewedfractionhgap     \utex_skewedfractionhgap:D
-  \__kernel_primitive:NN \Umathskewedfractionvgap     \utex_skewedfractionvgap:D
-  \__kernel_primitive:NN \Umathspaceafterscript       \utex_spaceafterscript:D
-  \__kernel_primitive:NN \Umathstackdenomdown         \utex_stackdenomdown:D
-  \__kernel_primitive:NN \Umathstacknumup             \utex_stacknumup:D
-  \__kernel_primitive:NN \Umathstackvgap              \utex_stackvgap:D
-  \__kernel_primitive:NN \Umathsubshiftdown           \utex_subshiftdown:D
-  \__kernel_primitive:NN \Umathsubshiftdrop           \utex_subshiftdrop:D
-  \__kernel_primitive:NN \Umathsubsupshiftdown        \utex_subsupshiftdown:D
-  \__kernel_primitive:NN \Umathsubsupvgap             \utex_subsupvgap:D
-  \__kernel_primitive:NN \Umathsubtopmax              \utex_subtopmax:D
-  \__kernel_primitive:NN \Umathsupbottommin           \utex_supbottommin:D
-  \__kernel_primitive:NN \Umathsupshiftdrop           \utex_supshiftdrop:D
-  \__kernel_primitive:NN \Umathsupshiftup             \utex_supshiftup:D
-  \__kernel_primitive:NN \Umathsupsubbottommax        \utex_supsubbottommax:D
-  \__kernel_primitive:NN \Umathunderbarkern           \utex_underbarkern:D
-  \__kernel_primitive:NN \Umathunderbarrule           \utex_underbarrule:D
-  \__kernel_primitive:NN \Umathunderbarvgap           \utex_underbarvgap:D
-  \__kernel_primitive:NN \Umathunderdelimiterbgap     \utex_underdelimiterbgap:D
-  \__kernel_primitive:NN \Umathunderdelimitervgap     \utex_underdelimitervgap:D
-  \__kernel_primitive:NN \Uoverdelimiter              \utex_overdelimiter:D
-  \__kernel_primitive:NN \Uradical                    \utex_radical:D
-  \__kernel_primitive:NN \Uroot                       \utex_root:D
-  \__kernel_primitive:NN \Uskewed                     \utex_skewed:D
-  \__kernel_primitive:NN \Uskewedwithdelims           \utex_skewedwithdelims:D
-  \__kernel_primitive:NN \Ustack                      \utex_stack:D
-  \__kernel_primitive:NN \Ustartdisplaymath           \utex_startdisplaymath:D
-  \__kernel_primitive:NN \Ustartmath                  \utex_startmath:D
-  \__kernel_primitive:NN \Ustopdisplaymath            \utex_stopdisplaymath:D
-  \__kernel_primitive:NN \Ustopmath                   \utex_stopmath:D
-  \__kernel_primitive:NN \Usubscript                  \utex_subscript:D
-  \__kernel_primitive:NN \Usuperscript                \utex_superscript:D
-  \__kernel_primitive:NN \Uunderdelimiter             \utex_underdelimiter:D
-  \__kernel_primitive:NN \Uvextensible                \utex_vextensible:D
+  \@@_primitive:NN \Uchar                       \utex_char:D
+  \@@_primitive:NN \Ucharcat                    \utex_charcat:D
+  \@@_primitive:NN \Udelcode                    \utex_delcode:D
+  \@@_primitive:NN \Udelcodenum                 \utex_delcodenum:D
+  \@@_primitive:NN \Udelimiter                  \utex_delimiter:D
+  \@@_primitive:NN \Udelimiterover              \utex_delimiterover:D
+  \@@_primitive:NN \Udelimiterunder             \utex_delimiterunder:D
+  \@@_primitive:NN \Uhextensible                \utex_hextensible:D
+  \@@_primitive:NN \Umathaccent                 \utex_mathaccent:D
+  \@@_primitive:NN \Umathaxis                   \utex_mathaxis:D
+  \@@_primitive:NN \Umathbinbinspacing          \utex_binbinspacing:D
+  \@@_primitive:NN \Umathbinclosespacing        \utex_binclosespacing:D
+  \@@_primitive:NN \Umathbininnerspacing        \utex_bininnerspacing:D
+  \@@_primitive:NN \Umathbinopenspacing         \utex_binopenspacing:D
+  \@@_primitive:NN \Umathbinopspacing           \utex_binopspacing:D
+  \@@_primitive:NN \Umathbinordspacing          \utex_binordspacing:D
+  \@@_primitive:NN \Umathbinpunctspacing        \utex_binpunctspacing:D
+  \@@_primitive:NN \Umathbinrelspacing          \utex_binrelspacing:D
+  \@@_primitive:NN \Umathchar                   \utex_mathchar:D
+  \@@_primitive:NN \Umathcharclass              \utex_mathcharclass:D
+  \@@_primitive:NN \Umathchardef                \utex_mathchardef:D
+  \@@_primitive:NN \Umathcharfam                \utex_mathcharfam:D
+  \@@_primitive:NN \Umathcharnum                \utex_mathcharnum:D
+  \@@_primitive:NN \Umathcharnumdef             \utex_mathcharnumdef:D
+  \@@_primitive:NN \Umathcharslot               \utex_mathcharslot:D
+  \@@_primitive:NN \Umathclosebinspacing        \utex_closebinspacing:D
+  \@@_primitive:NN \Umathcloseclosespacing      \utex_closeclosespacing:D
+  \@@_primitive:NN \Umathcloseinnerspacing      \utex_closeinnerspacing:D
+  \@@_primitive:NN \Umathcloseopenspacing       \utex_closeopenspacing:D
+  \@@_primitive:NN \Umathcloseopspacing         \utex_closeopspacing:D
+  \@@_primitive:NN \Umathcloseordspacing        \utex_closeordspacing:D
+  \@@_primitive:NN \Umathclosepunctspacing      \utex_closepunctspacing:D
+  \@@_primitive:NN \Umathcloserelspacing        \utex_closerelspacing:D
+  \@@_primitive:NN \Umathcode                   \utex_mathcode:D
+  \@@_primitive:NN \Umathcodenum                \utex_mathcodenum:D
+  \@@_primitive:NN \Umathconnectoroverlapmin    \utex_connectoroverlapmin:D
+  \@@_primitive:NN \Umathfractiondelsize        \utex_fractiondelsize:D
+  \@@_primitive:NN \Umathfractiondenomdown      \utex_fractiondenomdown:D
+  \@@_primitive:NN \Umathfractiondenomvgap      \utex_fractiondenomvgap:D
+  \@@_primitive:NN \Umathfractionnumup          \utex_fractionnumup:D
+  \@@_primitive:NN \Umathfractionnumvgap        \utex_fractionnumvgap:D
+  \@@_primitive:NN \Umathfractionrule           \utex_fractionrule:D
+  \@@_primitive:NN \Umathinnerbinspacing        \utex_innerbinspacing:D
+  \@@_primitive:NN \Umathinnerclosespacing      \utex_innerclosespacing:D
+  \@@_primitive:NN \Umathinnerinnerspacing      \utex_innerinnerspacing:D
+  \@@_primitive:NN \Umathinneropenspacing       \utex_inneropenspacing:D
+  \@@_primitive:NN \Umathinneropspacing         \utex_inneropspacing:D
+  \@@_primitive:NN \Umathinnerordspacing        \utex_innerordspacing:D
+  \@@_primitive:NN \Umathinnerpunctspacing      \utex_innerpunctspacing:D
+  \@@_primitive:NN \Umathinnerrelspacing        \utex_innerrelspacing:D
+  \@@_primitive:NN \Umathlimitabovebgap         \utex_limitabovebgap:D
+  \@@_primitive:NN \Umathlimitabovekern         \utex_limitabovekern:D
+  \@@_primitive:NN \Umathlimitabovevgap         \utex_limitabovevgap:D
+  \@@_primitive:NN \Umathlimitbelowbgap         \utex_limitbelowbgap:D
+  \@@_primitive:NN \Umathlimitbelowkern         \utex_limitbelowkern:D
+  \@@_primitive:NN \Umathlimitbelowvgap         \utex_limitbelowvgap:D
+  \@@_primitive:NN \Umathnolimitsubfactor       \utex_nolimitsubfactor:D
+  \@@_primitive:NN \Umathnolimitsupfactor       \utex_nolimitsupfactor:D
+  \@@_primitive:NN \Umathopbinspacing           \utex_opbinspacing:D
+  \@@_primitive:NN \Umathopclosespacing         \utex_opclosespacing:D
+  \@@_primitive:NN \Umathopenbinspacing         \utex_openbinspacing:D
+  \@@_primitive:NN \Umathopenclosespacing       \utex_openclosespacing:D
+  \@@_primitive:NN \Umathopeninnerspacing       \utex_openinnerspacing:D
+  \@@_primitive:NN \Umathopenopenspacing        \utex_openopenspacing:D
+  \@@_primitive:NN \Umathopenopspacing          \utex_openopspacing:D
+  \@@_primitive:NN \Umathopenordspacing         \utex_openordspacing:D
+  \@@_primitive:NN \Umathopenpunctspacing       \utex_openpunctspacing:D
+  \@@_primitive:NN \Umathopenrelspacing         \utex_openrelspacing:D
+  \@@_primitive:NN \Umathoperatorsize           \utex_operatorsize:D
+  \@@_primitive:NN \Umathopinnerspacing         \utex_opinnerspacing:D
+  \@@_primitive:NN \Umathopopenspacing          \utex_opopenspacing:D
+  \@@_primitive:NN \Umathopopspacing            \utex_opopspacing:D
+  \@@_primitive:NN \Umathopordspacing           \utex_opordspacing:D
+  \@@_primitive:NN \Umathoppunctspacing         \utex_oppunctspacing:D
+  \@@_primitive:NN \Umathoprelspacing           \utex_oprelspacing:D
+  \@@_primitive:NN \Umathordbinspacing          \utex_ordbinspacing:D
+  \@@_primitive:NN \Umathordclosespacing        \utex_ordclosespacing:D
+  \@@_primitive:NN \Umathordinnerspacing        \utex_ordinnerspacing:D
+  \@@_primitive:NN \Umathordopenspacing         \utex_ordopenspacing:D
+  \@@_primitive:NN \Umathordopspacing           \utex_ordopspacing:D
+  \@@_primitive:NN \Umathordordspacing          \utex_ordordspacing:D
+  \@@_primitive:NN \Umathordpunctspacing        \utex_ordpunctspacing:D
+  \@@_primitive:NN \Umathordrelspacing          \utex_ordrelspacing:D
+  \@@_primitive:NN \Umathoverbarkern            \utex_overbarkern:D
+  \@@_primitive:NN \Umathoverbarrule            \utex_overbarrule:D
+  \@@_primitive:NN \Umathoverbarvgap            \utex_overbarvgap:D
+  \@@_primitive:NN \Umathoverdelimiterbgap      \utex_overdelimiterbgap:D
+  \@@_primitive:NN \Umathoverdelimitervgap      \utex_overdelimitervgap:D
+  \@@_primitive:NN \Umathpunctbinspacing        \utex_punctbinspacing:D
+  \@@_primitive:NN \Umathpunctclosespacing      \utex_punctclosespacing:D
+  \@@_primitive:NN \Umathpunctinnerspacing      \utex_punctinnerspacing:D
+  \@@_primitive:NN \Umathpunctopenspacing       \utex_punctopenspacing:D
+  \@@_primitive:NN \Umathpunctopspacing         \utex_punctopspacing:D
+  \@@_primitive:NN \Umathpunctordspacing        \utex_punctordspacing:D
+  \@@_primitive:NN \Umathpunctpunctspacing      \utex_punctpunctspacing:D
+  \@@_primitive:NN \Umathpunctrelspacing        \utex_punctrelspacing:D
+  \@@_primitive:NN \Umathquad                   \utex_quad:D
+  \@@_primitive:NN \Umathradicaldegreeafter     \utex_radicaldegreeafter:D
+  \@@_primitive:NN \Umathradicaldegreebefore    \utex_radicaldegreebefore:D
+  \@@_primitive:NN \Umathradicaldegreeraise     \utex_radicaldegreeraise:D
+  \@@_primitive:NN \Umathradicalkern            \utex_radicalkern:D
+  \@@_primitive:NN \Umathradicalrule            \utex_radicalrule:D
+  \@@_primitive:NN \Umathradicalvgap            \utex_radicalvgap:D
+  \@@_primitive:NN \Umathrelbinspacing          \utex_relbinspacing:D
+  \@@_primitive:NN \Umathrelclosespacing        \utex_relclosespacing:D
+  \@@_primitive:NN \Umathrelinnerspacing        \utex_relinnerspacing:D
+  \@@_primitive:NN \Umathrelopenspacing         \utex_relopenspacing:D
+  \@@_primitive:NN \Umathrelopspacing           \utex_relopspacing:D
+  \@@_primitive:NN \Umathrelordspacing          \utex_relordspacing:D
+  \@@_primitive:NN \Umathrelpunctspacing        \utex_relpunctspacing:D
+  \@@_primitive:NN \Umathrelrelspacing          \utex_relrelspacing:D
+  \@@_primitive:NN \Umathskewedfractionhgap     \utex_skewedfractionhgap:D
+  \@@_primitive:NN \Umathskewedfractionvgap     \utex_skewedfractionvgap:D
+  \@@_primitive:NN \Umathspaceafterscript       \utex_spaceafterscript:D
+  \@@_primitive:NN \Umathstackdenomdown         \utex_stackdenomdown:D
+  \@@_primitive:NN \Umathstacknumup             \utex_stacknumup:D
+  \@@_primitive:NN \Umathstackvgap              \utex_stackvgap:D
+  \@@_primitive:NN \Umathsubshiftdown           \utex_subshiftdown:D
+  \@@_primitive:NN \Umathsubshiftdrop           \utex_subshiftdrop:D
+  \@@_primitive:NN \Umathsubsupshiftdown        \utex_subsupshiftdown:D
+  \@@_primitive:NN \Umathsubsupvgap             \utex_subsupvgap:D
+  \@@_primitive:NN \Umathsubtopmax              \utex_subtopmax:D
+  \@@_primitive:NN \Umathsupbottommin           \utex_supbottommin:D
+  \@@_primitive:NN \Umathsupshiftdrop           \utex_supshiftdrop:D
+  \@@_primitive:NN \Umathsupshiftup             \utex_supshiftup:D
+  \@@_primitive:NN \Umathsupsubbottommax        \utex_supsubbottommax:D
+  \@@_primitive:NN \Umathunderbarkern           \utex_underbarkern:D
+  \@@_primitive:NN \Umathunderbarrule           \utex_underbarrule:D
+  \@@_primitive:NN \Umathunderbarvgap           \utex_underbarvgap:D
+  \@@_primitive:NN \Umathunderdelimiterbgap     \utex_underdelimiterbgap:D
+  \@@_primitive:NN \Umathunderdelimitervgap     \utex_underdelimitervgap:D
+  \@@_primitive:NN \Uoverdelimiter              \utex_overdelimiter:D
+  \@@_primitive:NN \Uradical                    \utex_radical:D
+  \@@_primitive:NN \Uroot                       \utex_root:D
+  \@@_primitive:NN \Uskewed                     \utex_skewed:D
+  \@@_primitive:NN \Uskewedwithdelims           \utex_skewedwithdelims:D
+  \@@_primitive:NN \Ustack                      \utex_stack:D
+  \@@_primitive:NN \Ustartdisplaymath           \utex_startdisplaymath:D
+  \@@_primitive:NN \Ustartmath                  \utex_startmath:D
+  \@@_primitive:NN \Ustopdisplaymath            \utex_stopdisplaymath:D
+  \@@_primitive:NN \Ustopmath                   \utex_stopmath:D
+  \@@_primitive:NN \Usubscript                  \utex_subscript:D
+  \@@_primitive:NN \Usuperscript                \utex_superscript:D
+  \@@_primitive:NN \Uunderdelimiter             \utex_underdelimiter:D
+  \@@_primitive:NN \Uvextensible                \utex_vextensible:D
 %    \end{macrocode}
 % Primitives from p\TeX{}.
 %    \begin{macrocode}
-  \__kernel_primitive:NN \autospacing                 \ptex_autospacing:D
-  \__kernel_primitive:NN \autoxspacing                \ptex_autoxspacing:D
-  \__kernel_primitive:NN \dtou                        \ptex_dtou:D
-  \__kernel_primitive:NN \euc                         \ptex_euc:D
-  \__kernel_primitive:NN \ifdbox                      \ptex_ifdbox:D
-  \__kernel_primitive:NN \ifddir                      \ptex_ifddir:D
-  \__kernel_primitive:NN \ifmdir                      \ptex_ifmdir:D
-  \__kernel_primitive:NN \iftbox                      \ptex_iftbox:D
-  \__kernel_primitive:NN \iftdir                      \ptex_iftdir:D
-  \__kernel_primitive:NN \ifybox                      \ptex_ifybox:D
-  \__kernel_primitive:NN \ifydir                      \ptex_ifydir:D
-  \__kernel_primitive:NN \inhibitglue                 \ptex_inhibitglue:D
-  \__kernel_primitive:NN \inhibitxspcode              \ptex_inhibitxspcode:D
-  \__kernel_primitive:NN \jcharwidowpenalty           \ptex_jcharwidowpenalty:D
-  \__kernel_primitive:NN \jfam                        \ptex_jfam:D
-  \__kernel_primitive:NN \jfont                       \ptex_jfont:D
-  \__kernel_primitive:NN \jis                         \ptex_jis:D
-  \__kernel_primitive:NN \kanjiskip                   \ptex_kanjiskip:D
-  \__kernel_primitive:NN \kansuji                     \ptex_kansuji:D
-  \__kernel_primitive:NN \kansujichar                 \ptex_kansujichar:D
-  \__kernel_primitive:NN \kcatcode                    \ptex_kcatcode:D
-  \__kernel_primitive:NN \kuten                       \ptex_kuten:D
-  \__kernel_primitive:NN \noautospacing               \ptex_noautospacing:D
-  \__kernel_primitive:NN \noautoxspacing              \ptex_noautoxspacing:D
-  \__kernel_primitive:NN \postbreakpenalty            \ptex_postbreakpenalty:D
-  \__kernel_primitive:NN \prebreakpenalty             \ptex_prebreakpenalty:D
-  \__kernel_primitive:NN \showmode                    \ptex_showmode:D
-  \__kernel_primitive:NN \sjis                        \ptex_sjis:D
-  \__kernel_primitive:NN \tate                        \ptex_tate:D
-  \__kernel_primitive:NN \tbaselineshift              \ptex_tbaselineshift:D
-  \__kernel_primitive:NN \tfont                       \ptex_tfont:D
-  \__kernel_primitive:NN \xkanjiskip                  \ptex_xkanjiskip:D
-  \__kernel_primitive:NN \xspcode                     \ptex_xspcode:D
-  \__kernel_primitive:NN \ybaselineshift              \ptex_ybaselineshift:D
-  \__kernel_primitive:NN \yoko                        \ptex_yoko:D
+  \@@_primitive:NN \autospacing                 \ptex_autospacing:D
+  \@@_primitive:NN \autoxspacing                \ptex_autoxspacing:D
+  \@@_primitive:NN \dtou                        \ptex_dtou:D
+  \@@_primitive:NN \euc                         \ptex_euc:D
+  \@@_primitive:NN \ifdbox                      \ptex_ifdbox:D
+  \@@_primitive:NN \ifddir                      \ptex_ifddir:D
+  \@@_primitive:NN \ifmdir                      \ptex_ifmdir:D
+  \@@_primitive:NN \iftbox                      \ptex_iftbox:D
+  \@@_primitive:NN \iftdir                      \ptex_iftdir:D
+  \@@_primitive:NN \ifybox                      \ptex_ifybox:D
+  \@@_primitive:NN \ifydir                      \ptex_ifydir:D
+  \@@_primitive:NN \inhibitglue                 \ptex_inhibitglue:D
+  \@@_primitive:NN \inhibitxspcode              \ptex_inhibitxspcode:D
+  \@@_primitive:NN \jcharwidowpenalty           \ptex_jcharwidowpenalty:D
+  \@@_primitive:NN \jfam                        \ptex_jfam:D
+  \@@_primitive:NN \jfont                       \ptex_jfont:D
+  \@@_primitive:NN \jis                         \ptex_jis:D
+  \@@_primitive:NN \kanjiskip                   \ptex_kanjiskip:D
+  \@@_primitive:NN \kansuji                     \ptex_kansuji:D
+  \@@_primitive:NN \kansujichar                 \ptex_kansujichar:D
+  \@@_primitive:NN \kcatcode                    \ptex_kcatcode:D
+  \@@_primitive:NN \kuten                       \ptex_kuten:D
+  \@@_primitive:NN \noautospacing               \ptex_noautospacing:D
+  \@@_primitive:NN \noautoxspacing              \ptex_noautoxspacing:D
+  \@@_primitive:NN \postbreakpenalty            \ptex_postbreakpenalty:D
+  \@@_primitive:NN \prebreakpenalty             \ptex_prebreakpenalty:D
+  \@@_primitive:NN \showmode                    \ptex_showmode:D
+  \@@_primitive:NN \sjis                        \ptex_sjis:D
+  \@@_primitive:NN \tate                        \ptex_tate:D
+  \@@_primitive:NN \tbaselineshift              \ptex_tbaselineshift:D
+  \@@_primitive:NN \tfont                       \ptex_tfont:D
+  \@@_primitive:NN \xkanjiskip                  \ptex_xkanjiskip:D
+  \@@_primitive:NN \xspcode                     \ptex_xspcode:D
+  \@@_primitive:NN \ybaselineshift              \ptex_ybaselineshift:D
+  \@@_primitive:NN \yoko                        \ptex_yoko:D
 %    \end{macrocode}
 % Primitives from up\TeX{}.
 %    \begin{macrocode}
-  \__kernel_primitive:NN \disablecjktoken             \uptex_disablecjktoken:D
-  \__kernel_primitive:NN \enablecjktoken              \uptex_enablecjktoken:D
-  \__kernel_primitive:NN \forcecjktoken               \uptex_forcecjktoken:D
-  \__kernel_primitive:NN \kchar                       \uptex_kchar:D
-  \__kernel_primitive:NN \kchardef                    \uptex_kchardef:D
-  \__kernel_primitive:NN \kuten                       \uptex_kuten:D
-  \__kernel_primitive:NN \ucs                         \uptex_ucs:D
+  \@@_primitive:NN \disablecjktoken             \uptex_disablecjktoken:D
+  \@@_primitive:NN \enablecjktoken              \uptex_enablecjktoken:D
+  \@@_primitive:NN \forcecjktoken               \uptex_forcecjktoken:D
+  \@@_primitive:NN \kchar                       \uptex_kchar:D
+  \@@_primitive:NN \kchardef                    \uptex_kchardef:D
+  \@@_primitive:NN \kuten                       \uptex_kuten:D
+  \@@_primitive:NN \ucs                         \uptex_ucs:D
 %    \end{macrocode}
 % End of the \enquote{just the names} part of the source.
 %    \begin{macrocode}
@@ -1117,23 +1118,23 @@
 %    \end{macrocode}
 %
 % \LaTeXe{} moves a few primitives, so these are sorted out.
-% A convenient test for \LaTeXe{} is the \cs{@@end} saved primitive.
+% A convenient test for \LaTeXe{} is the \cs{@@@@end} saved primitive.
 %    \begin{macrocode}
 %<*package>
-\etex_ifdefined:D \@@end
-  \tex_let:D \tex_end:D                  \@@end
+\etex_ifdefined:D \@@@@end
+  \tex_let:D \tex_end:D                  \@@@@end
   \tex_let:D \tex_everydisplay:D         \frozen at everydisplay
   \tex_let:D \tex_everymath:D            \frozen at everymath
-  \tex_let:D \tex_hyphen:D               \@@hyph
-  \tex_let:D \tex_input:D                \@@input
-  \tex_let:D \tex_italiccorrection:D     \@@italiccorr
-  \tex_let:D \tex_underline:D            \@@underline
+  \tex_let:D \tex_hyphen:D               \@@@@hyph
+  \tex_let:D \tex_input:D                \@@@@input
+  \tex_let:D \tex_italiccorrection:D     \@@@@italiccorr
+  \tex_let:D \tex_underline:D            \@@@@underline
 %    \end{macrocode}
 % Some tidying up is needed for \tn[index=tracingfonts]{(pdf)tracingfonts}. Newer \LuaTeX{} has
 % this simply as \tn{tracingfonts}, but that is overwritten by
 % the \LaTeXe{} kernel. So any spurious definition has to be removed, then
 % the real version saved either from the \pdfTeX{} name or from \LuaTeX{}.
-% In the latter case, we leave \tn{@@tracingfonts} available: this might
+% In the latter case, we leave \tn{@@@@tracingfonts} available: this might
 % be useful and almost all \LaTeXe{} users will have \pkg{expl3} loaded by
 % \pkg{fontspec}. (We follow the usual kernel convention that |@@| is used
 % for saved primitives.)
@@ -1143,7 +1144,7 @@
     \tex_let:D \pdftex_tracingfonts:D \pdftracingfonts
   \tex_else:D
     \etex_ifdefined:D \luatex_directlua:D
-      \luatex_directlua:D { tex.enableprimitives("@@", {"tracingfonts"}) }
+      \luatex_directlua:D { tex.enableprimitives("@@@@", {"tracingfonts"}) }
       \tex_let:D \pdftex_tracingfonts:D \luatextracingfonts
     \tex_fi:D
   \tex_fi:D

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -42,7 +42,7 @@
 % }
 %
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -280,7 +280,7 @@
 %   the logical truth of this evaluation.
 % \end{function}
 %
-% \begin{function}[EXP,pTF]{\bool_if:N, \bool_if:c}
+% \begin{function}[EXP,pTF, updated = 2017-07-15]{\bool_if:N, \bool_if:c}
 %   \begin{syntax}
 %     \cs{bool_if_p:N} \meta{boolean}
 %     \cs{bool_if:NTF} \meta{boolean} \Arg{true code} \Arg{false code}
@@ -497,7 +497,7 @@
 %
 % Loops using either boolean expressions or stored boolean values.
 %
-% \begin{function}[rEXP]{\bool_do_until:Nn, \bool_do_until:cn}
+% \begin{function}[rEXP, updated = 2017-07-15]{\bool_do_until:Nn, \bool_do_until:cn}
 %   \begin{syntax}
 %     \cs{bool_do_until:Nn} \meta{boolean} \Arg{code}
 %   \end{syntax}
@@ -508,7 +508,7 @@
 %   \texttt{true}.
 % \end{function}
 %
-% \begin{function}[rEXP]{\bool_do_while:Nn, \bool_do_while:cn}
+% \begin{function}[rEXP, updated = 2017-07-15]{\bool_do_while:Nn, \bool_do_while:cn}
 %   \begin{syntax}
 %     \cs{bool_do_while:Nn} \meta{boolean} \Arg{code}
 %   \end{syntax}
@@ -519,7 +519,7 @@
 %   \texttt{false}.
 % \end{function}
 %
-% \begin{function}[rEXP]{\bool_until_do:Nn, \bool_until_do:cn}
+% \begin{function}[rEXP, updated = 2017-07-15]{\bool_until_do:Nn, \bool_until_do:cn}
 %   \begin{syntax}
 %     \cs{bool_until_do:Nn} \meta{boolean} \Arg{code}
 %   \end{syntax}
@@ -530,7 +530,7 @@
 %   until the \meta{boolean} is \texttt{true}.
 % \end{function}
 %
-% \begin{function}[rEXP]{\bool_while_do:Nn, \bool_while_do:cn}
+% \begin{function}[rEXP, updated = 2017-07-15]{\bool_while_do:Nn, \bool_while_do:cn}
 %   \begin{syntax}
 %     \cs{bool_while_do:Nn} \meta{boolean} \Arg{code}
 %   \end{syntax}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -1110,7 +1110,8 @@
 % \begin{macro}{\dim_gset:Nn, \dim_gset:cn}
 %   Setting dimensions is easy enough.
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \dim_set:Nn } }
 \cs_new_protected:Npn \dim_set:Nn #1#2
   { #1 ~ \@@_eval:w #2 \@@_eval_end: }
 \cs_new_protected:Npn \dim_gset:Nn { \tex_global:D \dim_set:Nn }
@@ -1141,13 +1142,15 @@
 % \begin{macro}{\dim_gsub:Nn, \dim_gsub:cn}
 %   Using |by| here deals with the (incorrect) case |\dimen123|.
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \dim_add:Nn } }
 \cs_new_protected:Npn \dim_add:Nn #1#2
   { \tex_advance:D #1 by \@@_eval:w #2 \@@_eval_end: }
 \cs_new_protected:Npn \dim_gadd:Nn { \tex_global:D \dim_add:Nn }
 \cs_generate_variant:Nn \dim_add:Nn  { c }
 \cs_generate_variant:Nn \dim_gadd:Nn { c }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \dim_sub:Nn } }
 \cs_new_protected:Npn \dim_sub:Nn #1#2
   { \tex_advance:D #1 by - \@@_eval:w #2 \@@_eval_end: }
 \cs_new_protected:Npn \dim_gsub:Nn { \tex_global:D \dim_sub:Nn }
@@ -1172,7 +1175,8 @@
 %   Functions for $\min$, $\max$, and absolute value with only one evaluation.
 %   The absolute value is evaluated by removing a leading~|-| if present.
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  { { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \dim_abs:n } }
 \cs_new:Npn \dim_abs:n #1
   {
     \exp_after:wN \@@_abs:N
@@ -1180,7 +1184,11 @@
   }
 \cs_new:Npn \@@_abs:N #1
   { \if_meaning:w - #1 \else: \exp_after:wN #1 \fi: }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+  {
+    { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \dim_max:nn }
+    { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \dim_max:nn }
+  }
 \cs_new:Npn \dim_max:nn #1#2
   {
     \dim_use:N \@@_eval:w \exp_after:wN \@@_maxmin:wwN
@@ -1189,7 +1197,11 @@
       >
     \@@_eval_end:
   }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+  {
+    { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \dim_min:nn }
+    { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \dim_min:nn }
+  }
 \cs_new:Npn \dim_min:nn #1#2
   {
     \dim_use:N \@@_eval:w \exp_after:wN \@@_maxmin:wwN
@@ -1233,7 +1245,12 @@
 % \begin{macro}[pTF, EXP]{\dim_compare:nNn}
 %   Simple comparison.
 %    \begin{macrocode}
-\__debug_patch_conditional_args:nNNpnn { { (#1) \@@_eval_end: } {#2} { (#3) } }
+\__debug_patch_conditional_args:nNNpnn
+  {
+    { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \dim_compare:nNn }
+    { \@@_eval_end: #2 }
+    { \__debug_chk_expr:nNnN {#3} \@@_eval:w { } \dim_compare:nNn }
+  }
 \prg_new_conditional:Npnn \dim_compare:nNn #1#2#3 { p , T , F , TF }
   {
     \if_dim:w \@@_eval:w #1 #2 \@@_eval:w #3 \@@_eval_end:
@@ -1433,7 +1450,8 @@
 % \begin{macro}{\dim_eval:n}
 %   Evaluating a dimension expression expandably.
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  { { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \dim_eval:n } }
 \cs_new:Npn \dim_eval:n #1
   { \dim_use:N \@@_eval:w #1 \@@_eval_end: }
 %    \end{macrocode}
@@ -1460,7 +1478,8 @@
 %   terminating early and leaving extra tokens lying around.  This is
 %   used a lot by low-level manipulations.
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  { { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \dim_to_decimal:n } }
 \cs_new:Npn \dim_to_decimal:n #1
   {
     \exp_after:wN
@@ -1495,7 +1514,8 @@
 %   Another hard-coded conversion: this one is necessary to avoid things going
 %   off-scale.
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  { { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \dim_to_decimal_in_sp:n } }
 \cs_new:Npn \dim_to_decimal_in_sp:n #1
   { \int_eval:n { \@@_eval:w #1 \@@_eval_end: } }
 %    \end{macrocode}
@@ -1645,7 +1665,8 @@
 % \begin{macro}{\skip_gset:Nn, \skip_gset:cn}
 %   Much the same as for dimensions.
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \etex_glueexpr:D { } \skip_set:Nn } }
 \cs_new_protected:Npn \skip_set:Nn #1#2
   { #1 ~ \etex_glueexpr:D #2 \scan_stop: }
 \cs_new_protected:Npn \skip_gset:Nn { \tex_global:D \skip_set:Nn }
@@ -1677,13 +1698,15 @@
 % \begin{macro}{\skip_gsub:Nn, \skip_gsub:cn}
 %   Using |by| here deals with the (incorrect) case |\skip123|.
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \etex_glueexpr:D { } \skip_add:Nn } }
 \cs_new_protected:Npn \skip_add:Nn #1#2
   { \tex_advance:D #1 by \etex_glueexpr:D #2 \scan_stop: }
 \cs_new_protected:Npn \skip_gadd:Nn { \tex_global:D \skip_add:Nn }
 \cs_generate_variant:Nn \skip_add:Nn  { c }
 \cs_generate_variant:Nn \skip_gadd:Nn { c }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \etex_glueexpr:D { } \skip_sub:Nn } }
 \cs_new_protected:Npn \skip_sub:Nn #1#2
   { \tex_advance:D #1 by - \etex_glueexpr:D #2 \scan_stop: }
 \cs_new_protected:Npn \skip_gsub:Nn { \tex_global:D \skip_sub:Nn }
@@ -1726,7 +1749,13 @@
 %    \begin{macrocode}
 \cs_set_protected:Npn \__cs_tmp:w #1
   {
-    \__debug_patch_conditional_args:nNNpnn { { (##1) } }
+    \__debug_patch_conditional_args:nNNpnn
+      {
+        {
+          \__debug_chk_expr:nNnN
+            {##1} \etex_glueexpr:D { } \skip_if_finite:n
+        }
+      }
     \prg_new_conditional:Npnn \skip_if_finite:n ##1 { p , T , F , TF }
       {
         \exp_after:wN \__skip_if_finite:wwNw
@@ -1745,7 +1774,8 @@
 % \begin{macro}{\skip_eval:n}
 %   Evaluating a skip expression expandably.
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  { { \__debug_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_eval:n } }
 \cs_new:Npn \skip_eval:n #1
   { \skip_use:N \etex_glueexpr:D #1 \scan_stop: }
 %    \end{macrocode}
@@ -1767,11 +1797,13 @@
 %    Inserting skips.
 %    \begin{macrocode}
 \cs_new_eq:NN  \skip_horizontal:N \tex_hskip:D
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  { { \__debug_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_horizontal:n } }
 \cs_new:Npn \skip_horizontal:n #1
   { \skip_horizontal:N \etex_glueexpr:D #1 \scan_stop: }
 \cs_new_eq:NN  \skip_vertical:N \tex_vskip:D
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  { { \__debug_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_vertical:n } }
 \cs_new:Npn \skip_vertical:n #1
   { \skip_vertical:N \etex_glueexpr:D #1 \scan_stop: }
 \cs_generate_variant:Nn \skip_horizontal:N { c }
@@ -1909,7 +1941,14 @@
 % \begin{macro}{\muskip_gset:Nn, \muskip_gset:cn}
 %   This should be pretty familiar.
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  {
+    {#1}
+    {
+      \__debug_chk_expr:nNnN {#2} \etex_muexpr:D
+        { \etex_mutoglue:D } \muskip_set:Nn
+    }
+  }
 \cs_new_protected:Npn \muskip_set:Nn #1#2
   { #1 ~ \etex_muexpr:D #2 \scan_stop: }
 \cs_new_protected:Npn \muskip_gset:Nn { \tex_global:D \muskip_set:Nn }
@@ -1947,13 +1986,27 @@
 % \begin{macro}{\muskip_gsub:Nn, \muskip_gsub:cn}
 %   Using |by| here deals with the (incorrect) case |\muskip123|.
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  {
+    {#1}
+    {
+      \__debug_chk_expr:nNnN {#2} \etex_muexpr:D
+        { \etex_mutoglue:D } \muskip_add:Nn
+    }
+  }
 \cs_new_protected:Npn \muskip_add:Nn #1#2
   { \tex_advance:D #1 by \etex_muexpr:D #2 \scan_stop: }
 \cs_new_protected:Npn \muskip_gadd:Nn { \tex_global:D \muskip_add:Nn }
 \cs_generate_variant:Nn \muskip_add:Nn  { c }
 \cs_generate_variant:Nn \muskip_gadd:Nn { c }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  {
+    {#1}
+    {
+      \__debug_chk_expr:nNnN {#2} \etex_muexpr:D
+        { \etex_mutoglue:D } \muskip_sub:Nn
+    }
+  }
 \cs_new_protected:Npn \muskip_sub:Nn #1#2
   { \tex_advance:D #1 by - \etex_muexpr:D #2 \scan_stop: }
 \cs_new_protected:Npn \muskip_gsub:Nn { \tex_global:D \muskip_sub:Nn }
@@ -1970,7 +2023,13 @@
 % \begin{macro}{\muskip_eval:n}
 %   Evaluating a muskip expression expandably.
 %    \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  {
+    {
+      \__debug_chk_expr:nNnN {#1} \etex_muexpr:D
+        { \etex_mutoglue:D } \muskip_eval:n
+    }
+  }
 \cs_new:Npn \muskip_eval:n #1
   { \muskip_use:N \etex_muexpr:D #1 \scan_stop: }
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -71,7 +71,7 @@
 %
 % As a string is a subset of the more general token list, it is sometimes unclear
 % when one should be used over the other.
-% Use a string variable for data that isn’t primarily intended for typesetting
+% Use a string variable for data that isn't primarily intended for typesetting
 % and for which a level of protection from unwanted expansion is suitable.
 % This data type simplifies comparison of variables since there are no concerns
 % about expansion of their contents.

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-build.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-build.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-build.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -42,7 +42,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -41,7 +41,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -146,6 +146,11 @@
 %   range ($0$ to $255$) is accepted due to engine limitations.
 % \end{function}
 %
+% \begin{variable}[added = 2011-09-05]{\c_catcode_other_space_tl}
+%   Token list containing one character with category code $12$,
+%   (\enquote{other}), and character code $32$ (space).
+% \end{variable}
+%
 % \section{Manipulating and interrogating character tokens}
 %
 % \begin{function}[updated = 2015-11-11]
@@ -1597,6 +1602,13 @@
 % \end{macro}
 % \end{macro}
 %
+% \begin{macro}{\c_catcode_other_space_tl}
+%   Create a space with category code $12$: an \enquote{other} space.
+%    \begin{macrocode}
+\tl_const:Nx \c_catcode_other_space_tl { \char_generate:nn { `\  } { 12 } }
+%    \end{macrocode}
+% \end{macro}
+%
 % \subsection{Generic tokens}
 %
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -23,8 +23,8 @@
 %<*driver|package>
 % The version of expl3 required is tested as early as possible, as
 % some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2017/07/19]
-%<package>\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+%<package>\@ifpackagelater{expl3}{2017/09/18}
 %<package>  {}
 %<package>  {%
 %<package>    \PackageError{l3keys2e}{Support package l3kernel too old}
@@ -60,7 +60,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -131,7 +131,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{l3keys2e}{2017/07/19}{}
+\ProvidesExplPackage{l3keys2e}{2017/09/18}{}
   {LaTeX2e option processing using LaTeX3 keys}
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -23,8 +23,8 @@
 %<*driver|package>
 % The version of expl3 required is tested as early as possible, as
 % some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2017/07/19]
-%<package>\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+%<package>\@ifpackagelater{expl3}{2017/09/18}
 %<package>  {}
 %<package>  {%
 %<package>    \PackageError{xfp}{Support package l3kernel too old}
@@ -62,7 +62,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -69,7 +69,8 @@
 % \begin{documentation}
 %
 % This package provides a \LaTeXe{} document-level interface to the \LaTeX{}3
-% floating point unit (part of \pkg{expl3}).
+% floating point unit (part of \pkg{expl3}). It also provides a parallel
+% integer expression interface for convenience.
 % 
 % \begin{function}[EXP]{\fpeval}
 %   The expandable command \cs{fpeval} takes as it's argument a floating
@@ -129,9 +130,24 @@
 % An example of use could be the following.
 % \begin{verbatim}
 %   \LaTeX{} can now compute: $ \frac{\sin (3.5)}{2} + 2\cdot 10^{-3}
-%   = \fpeval{sin 3.5 /2 + 2e-3} $.
+%   = \fpeval{sin(3.5)/2 + 2e-3} $.
 % \end{verbatim}
 %
+% \begin{function}[EXP]{\inteval}
+%   The expandable command \cs{inteval} takes as its argument an integer
+%   expression and produces a result using the normal rules of
+%   mathematics. The operations recognised are |+|, |-|, |*| and |/| plus
+%   parentheses. Division occurs with \emph{rounding}, and ties are rounded
+%   away from zero. As this command is
+%   expandable it can be used where \TeX{} requires a number and for example
+%   within a low-level \cs{edef} operation to give a purely numerical result.
+% \end{function}
+%
+% An example of use could be the following.
+% \begin{verbatim}
+%   \LaTeX{} can now compute: The sum of the numbers is $\inteval{1 + 2 + 3}$.
+% \end{verbatim}
+%
 % \end{documentation}
 %
 % \begin{implementation}
@@ -143,7 +159,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{xfp}{2017/07/19}{}
+\ProvidesExplPackage{xfp}{2017/09/18}{}
   {L3 Floating point unit}
 %    \end{macrocode}
 %
@@ -154,7 +170,14 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\inteval}
+%   A second one, this time around an \eTeX{} primitive.
 %    \begin{macrocode}
+\NewExpandableDocumentCommand \inteval { m } { \int_eval:n {#1} }
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
 %</package>
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -24,8 +24,8 @@
 %<*driver|package>
 % The version of expl3 required is tested as early as possible, as
 % some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2017/07/19]
-%<package>\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+%<package>\@ifpackagelater{expl3}{2017/09/18}
 %<package>  {}
 %<package>  {%
 %<package>    \PackageError{xfrac}{Support package l3kernel too old}
@@ -63,7 +63,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -533,7 +533,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{xfrac}{2017/07/19}{}
+\ProvidesExplPackage{xfrac}{2017/09/18}{}
   {L3 Experimental split-level fractions}
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -27,8 +27,8 @@
 %<*driver|package>
 % The version of expl3 required is tested as early as possible, as
 % some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2017/07/19]
-%<package>\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+%<package>\@ifpackagelater{expl3}{2017/09/18}
 %<package>  {}
 %<package>  {%
 %<package>    \PackageError{xparse}{Support package l3kernel too old}
@@ -67,7 +67,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -776,7 +776,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{xparse}{2017/07/19}{}
+\ProvidesExplPackage{xparse}{2017/09/18}{}
   {L3 Experimental document command parser}
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx	2017-09-19 22:02:28 UTC (rev 45340)
@@ -27,8 +27,8 @@
 %<*driver|package>
 % The version of expl3 required is tested as early as possible, as
 % some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2017/07/19]
-%<package>\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+%<package>\@ifpackagelater{expl3}{2017/09/18}
 %<package>  {}
 %<package>  {%
 %<package>    \PackageError{xtemplate}{Support package l3kernel too old}
@@ -63,7 +63,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
 %
 % \maketitle
 %
@@ -682,7 +682,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesExplPackage{xtemplate}{2017/07/19}{}
+\ProvidesExplPackage{xtemplate}{2017/09/18}{}
   {L3 Experimental prototype document functions}
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty	2017-09-19 22:02:28 UTC (rev 45340)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3str-convert}{2017/07/19}{}
+\ProvidesExplPackage{l3str-convert}{2017/09/18}{}
   {L3 Experimental string encoding conversions}
 \cs_if_exist:NF \use_ii_i:nn
   { \cs_new:Npn \use_ii_i:nn #1#2 { #2 #1 } }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty	2017-09-19 22:02:28 UTC (rev 45340)
@@ -20,7 +20,7 @@
 %% 
 %% File: l3str-format.dtx Copyright (C) 2012-2013,2015-2017 The LaTeX3 Project
 \RequirePackage{expl3}
-\ProvidesExplPackage{l3str-format}{2017/07/19}{}
+\ProvidesExplPackage{l3str-format}{2017/09/18}{}
   {L3 Experimental string formatting}
 \RequirePackage{l3str}
 \cs_generate_variant:Nn \use:nn { nf }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty	2017-09-19 22:02:28 UTC (rev 45340)
@@ -20,7 +20,7 @@
 %% 
 %% File: xcoffins.dtx Copyright(C) 2010-2012,2014,2016,2017 The LaTeX3 Project
 \RequirePackage{xparse}
-\ProvidesExplPackage{xcoffins}{2017/07/19}{}
+\ProvidesExplPackage{xcoffins}{2017/09/18}{}
   {L3 Experimental design level coffins}
 \keys_define:nn { coffin }
   {

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty	2017-09-19 22:02:28 UTC (rev 45340)
@@ -20,8 +20,8 @@
 %% 
 %% File: l3galley.dtx Copyright (C) 1999-2001, 2004-2009 Frank Mittelbach
 %%                              (C) 2010-2017 The LaTeX3 Project
-\RequirePackage{expl3}[2017/07/19]
-\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+\@ifpackagelater{expl3}{2017/09/18}
   {}
   {%
     \PackageError{l3galley}{Support package l3kernel too old}
@@ -33,7 +33,7 @@
       }%
     \endinput
   }
-\ProvidesExplPackage{l3galley}{2017/07/19}{}
+\ProvidesExplPackage{l3galley}{2017/09/18}{}
   {L3 Experimental galley code}
 \int_new:N \l__galley_tmp_int
 \seq_new:N \g__galley_tmpa_seq

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty	2017-09-19 22:02:28 UTC (rev 45340)
@@ -21,7 +21,7 @@
 %% File: xgalley.dtx Copyright (C) 1999-2001, 2004-2009 Frank Mittelbach
 %%                             (C) 2010-2012,2014,2016-2017 The LaTeX3 Project
 \RequirePackage{xparse}
-\ProvidesExplPackage{xgalley}{2017/07/19}{}
+\ProvidesExplPackage{xgalley}{2017/09/18}{}
   {L3 Experimental galley}
 \RequirePackage{xparse,xtemplate,l3galley}
 \clist_new:N \l__galley_tmpa_clist

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2017-09-19 22:02:28 UTC (rev 45340)
@@ -62,7 +62,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project
-\def\ExplFileDate{2017/07/19}%
+\def\ExplFileDate{2017/09/18}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -1552,6 +1552,36 @@
   { }
 \__debug:TF
   {
+    \exp_args:Nc \cs_set_protected:Npn { __debug_check-expressions_on: }
+      {
+        \cs_set:Npn \__debug_chk_expr:nNnN ##1##2
+          {
+            \exp_after:wN \__debug_chk_expr_aux:nNnN
+            \exp_after:wN { \tex_the:D ##2 ##1 \tex_relax:D }
+            ##2
+          }
+      }
+    \exp_args:Nc \cs_set_protected:Npn { __debug_check-expressions_off: }
+      { \cs_set:Npn \__debug_chk_expr:nNnN ##1##2##3##4 {##1} }
+    \use:c { __debug_check-expressions_off: }
+    \cs_set:Npn \__debug_chk_expr_aux:nNnN #1#2#3#4
+      {
+        \tl_if_empty:oF
+          {
+            \tex_romannumeral:D - 0
+            \exp_after:wN \use_none:n
+            \__int_value:w #3 #2 #1 \tex_relax:D
+          }
+          {
+            \__msg_kernel_expandable_error:nnnn
+              { kernel } { expr } {#4} {#1}
+          }
+        #1
+      }
+  }
+  { }
+\__debug:TF
+  {
     \exp_args:Nc \cs_set_protected:Npn { __debug_log-functions_on: }
       {
         \cs_set_protected:Npn \__debug_log:x { \iow_log:x }
@@ -4763,10 +4793,12 @@
 \cs_new_eq:NN \__int_eval_end:    \tex_relax:D
 \cs_new_eq:NN \if_int_odd:w     \tex_ifodd:D
 \cs_new_eq:NN \if_case:w        \tex_ifcase:D
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  { { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_eval:n } }
 \cs_new:Npn \int_eval:n #1
   { \__int_value:w \__int_eval:w #1 \__int_eval_end: }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  { { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_abs:n } }
 \cs_new:Npn \int_abs:n #1
   {
     \__int_value:w \exp_after:wN \__int_abs:N
@@ -4775,7 +4807,11 @@
   }
 \cs_new:Npn \__int_abs:N #1
   { \if_meaning:w - #1 \else: \exp_after:wN #1 \fi: }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+  {
+    { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_max:nn }
+    { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_max:nn }
+  }
 \cs_set:Npn \int_max:nn #1#2
   {
     \__int_value:w \exp_after:wN \__int_maxmin:wwN
@@ -4784,7 +4820,11 @@
       >
     \exp_stop_f:
   }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+  {
+    { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_min:nn }
+    { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_min:nn }
+  }
 \cs_set:Npn \int_min:nn #1#2
   {
     \__int_value:w \exp_after:wN \__int_maxmin:wwN
@@ -4801,7 +4841,11 @@
       #2
     \fi:
   }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+  {
+    { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_div_truncate:nn }
+    { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_div_truncate:nn }
+  }
 \cs_new:Npn \int_div_truncate:nn #1#2
   {
     \__int_value:w \__int_eval:w
@@ -4825,7 +4869,11 @@
   }
 \cs_new:Npn \int_div_round:nn #1#2
   { \__int_value:w \__int_eval:w ( #1 ) / ( #2 ) \__int_eval_end: }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+  {
+    { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_mod:nn }
+    { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_mod:nn }
+  }
 \cs_new:Npn \int_mod:nn #1#2
   {
     \__int_value:w \__int_eval:w \exp_after:wN \__int_mod:ww
@@ -4841,6 +4889,8 @@
     \cs:w newcount \cs_end: #1
   }
 \cs_generate_variant:Nn \int_new:N { c }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_const:Nn } }
 \cs_new_protected:Npn \int_const:Nn #1#2
   {
     \int_compare:nNnTF {#2} < \c_zero
@@ -4857,7 +4907,7 @@
           {
             \__chk_if_free_cs:N #1
             \tex_global:D \__int_constdef:Nw #1 =
-              \__int_eval:w (#2) \__int_eval_end:
+              \__int_eval:w #2 \__int_eval_end:
           }
       }
   }
@@ -4895,10 +4945,12 @@
   { TF , T , F , p }
 \prg_new_eq_conditional:NNn \int_if_exist:c \cs_if_exist:c
   { TF , T , F , p }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_add:Nn } }
 \cs_new_protected:Npn \int_add:Nn #1#2
   { \tex_advance:D #1 by \__int_eval:w #2 \__int_eval_end: }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_sub:Nn } }
 \cs_new_protected:Npn \int_sub:Nn #1#2
   { \tex_advance:D #1 by - \__int_eval:w #2 \__int_eval_end: }
 \cs_new_protected:Npn \int_gadd:Nn
@@ -4921,7 +4973,8 @@
 \cs_generate_variant:Nn \int_decr:N  { c }
 \cs_generate_variant:Nn \int_gincr:N { c }
 \cs_generate_variant:Nn \int_gdecr:N { c }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_set:Nn } }
 \cs_new_protected:Npn \int_set:Nn #1#2
   { #1 ~ \__int_eval:w #2 \__int_eval_end: }
 \cs_new_protected:Npn \int_gset:Nn { \tex_global:D \int_set:Nn }
@@ -4997,7 +5050,12 @@
   { \__int_compare:nnN { \if_int_compare:w } {#3} > }
 \cs_new:cpn { __int_compare_>=:NNw } #1#2#3 >=
   { \__int_compare:nnN { \if_int_compare:w } {#3} < }
-\__debug_patch_conditional_args:nNNpnn { { (#1) \__int_eval_end: } {#2} { (#3) } }
+\__debug_patch_conditional_args:nNNpnn
+  {
+    { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_compare:nNn }
+    { \__int_eval_end: #2 }
+    { \__debug_chk_expr:nNnN {#3} \__int_eval:w { } \int_compare:nNn }
+  }
 \prg_new_conditional:Npnn \int_compare:nNn #1#2#3 { p , T , F , TF }
   {
     \if_int_compare:w \__int_eval:w #1 #2 \__int_eval:w #3 \__int_eval_end:
@@ -5035,7 +5093,8 @@
       { \__int_case:nw {#1} }
   }
 \cs_new_eq:NN \__int_case_end:nw \__prg_case_end:nw
-\__debug_patch_conditional_args:nNNpnn { { (#1) } }
+\__debug_patch_conditional_args:nNNpnn
+  { { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_if_odd:n } }
 \prg_new_conditional:Npnn \int_if_odd:n #1 { p , T , F , TF}
   {
     \if_int_odd:w \__int_eval:w #1 \__int_eval_end:
@@ -5044,7 +5103,8 @@
       \prg_return_false:
     \fi:
   }
-\__debug_patch_conditional_args:nNNpnn { { (#1) } }
+\__debug_patch_conditional_args:nNNpnn
+  { { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_if_even:n } }
 \prg_new_conditional:Npnn \int_if_even:n #1 { p , T , F , TF}
   {
     \if_int_odd:w \__int_eval:w #1 \__int_eval_end:
@@ -5109,7 +5169,12 @@
     \int_compare:nNnF {#1} #2 {#3}
       { \int_do_until:nNnn {#1} #2 {#3} {#4} }
   }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } { (#3) } }
+\__debug_patch_args:nNNpn
+  {
+    { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_step_function:nnnN }
+    { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_step_function:nnnN }
+    { \__debug_chk_expr:nNnN {#3} \__int_eval:w { } \int_step_function:nnnN }
+  }
 \cs_new:Npn \int_step_function:nnnN #1#2#3
   {
     \exp_after:wN \__int_step:wwwN
@@ -6893,6 +6958,7 @@
         }
   \fi:
 \group_end:
+\tl_const:Nx \c_catcode_other_space_tl { \char_generate:nn { `\  } { 12 } }
 \cs_new_protected:Npn \token_new:Nn #1#2 { \cs_new_eq:NN #1 #2 }
 \group_begin:
   \__chk_if_free_cs:N \c_group_begin_token
@@ -8272,6 +8338,7 @@
         '\iow_char:N\\debug_off:n'~only~accept~the~arguments~
         'check-declarations',~'deprecation',~'log-functions',~not~'#1'.
       }
+    \__msg_kernel_new:nnn { kernel } { expr } { '#2'~in~#1 }
     \__msg_kernel_new:nnnn { kernel } { non-declared-variable }
       { The~variable~#1~has~not~been~declared~\msg_line_context:. }
       {
@@ -8929,7 +8996,6 @@
 \cs_new_protected:Npn \iow_term:n { \iow_now:Nn \c_term_iow }
 \cs_new:Npn \iow_newline: { ^^J }
 \cs_new_eq:NN \iow_char:N \cs_to_str:N
-\tl_const:Nx \c_catcode_other_space_tl { \char_generate:nn { `\  } { 12 } }
 \int_new:N  \l_iow_line_count_int
 \int_set:Nn \l_iow_line_count_int { 78 }
 \tl_new:N \l__iow_newline_tl
@@ -9317,7 +9383,8 @@
   { TF , T , F , p }
 \prg_new_eq_conditional:NNn \dim_if_exist:c \cs_if_exist:c
   { TF , T , F , p }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_set:Nn } }
 \cs_new_protected:Npn \dim_set:Nn #1#2
   { #1 ~ \__dim_eval:w #2 \__dim_eval_end: }
 \cs_new_protected:Npn \dim_gset:Nn { \tex_global:D \dim_set:Nn }
@@ -9329,19 +9396,22 @@
 \cs_new_protected:Npn \dim_gset_eq:NN #1#2 { \tex_global:D #1 = #2 }
 \cs_generate_variant:Nn \dim_gset_eq:NN {       c }
 \cs_generate_variant:Nn \dim_gset_eq:NN { Nc , cc }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_add:Nn } }
 \cs_new_protected:Npn \dim_add:Nn #1#2
   { \tex_advance:D #1 by \__dim_eval:w #2 \__dim_eval_end: }
 \cs_new_protected:Npn \dim_gadd:Nn { \tex_global:D \dim_add:Nn }
 \cs_generate_variant:Nn \dim_add:Nn  { c }
 \cs_generate_variant:Nn \dim_gadd:Nn { c }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_sub:Nn } }
 \cs_new_protected:Npn \dim_sub:Nn #1#2
   { \tex_advance:D #1 by - \__dim_eval:w #2 \__dim_eval_end: }
 \cs_new_protected:Npn \dim_gsub:Nn { \tex_global:D \dim_sub:Nn }
 \cs_generate_variant:Nn \dim_sub:Nn  { c }
 \cs_generate_variant:Nn \dim_gsub:Nn { c }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  { { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_abs:n } }
 \cs_new:Npn \dim_abs:n #1
   {
     \exp_after:wN \__dim_abs:N
@@ -9349,7 +9419,11 @@
   }
 \cs_new:Npn \__dim_abs:N #1
   { \if_meaning:w - #1 \else: \exp_after:wN #1 \fi: }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+  {
+    { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_max:nn }
+    { \__debug_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_max:nn }
+  }
 \cs_new:Npn \dim_max:nn #1#2
   {
     \dim_use:N \__dim_eval:w \exp_after:wN \__dim_maxmin:wwN
@@ -9358,7 +9432,11 @@
       >
     \__dim_eval_end:
   }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+  {
+    { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_min:nn }
+    { \__debug_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_min:nn }
+  }
 \cs_new:Npn \dim_min:nn #1#2
   {
     \dim_use:N \__dim_eval:w \exp_after:wN \__dim_maxmin:wwN
@@ -9379,7 +9457,12 @@
   { \__dim_ratio:n {#1} / \__dim_ratio:n {#2} }
 \cs_new:Npn \__dim_ratio:n #1
   { \__int_value:w \__dim_eval:w (#1) \__dim_eval_end: }
-\__debug_patch_conditional_args:nNNpnn { { (#1) \__dim_eval_end: } {#2} { (#3) } }
+\__debug_patch_conditional_args:nNNpnn
+  {
+    { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_compare:nNn }
+    { \__dim_eval_end: #2 }
+    { \__debug_chk_expr:nNnN {#3} \__dim_eval:w { } \dim_compare:nNn }
+  }
 \prg_new_conditional:Npnn \dim_compare:nNn #1#2#3 { p , T , F , TF }
   {
     \if_dim:w \__dim_eval:w #1 #2 \__dim_eval:w #3 \__dim_eval_end:
@@ -9506,12 +9589,14 @@
     \dim_compare:nNnF {#1} #2 {#3}
       { \dim_do_until:nNnn {#1} #2 {#3} {#4} }
   }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  { { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_eval:n } }
 \cs_new:Npn \dim_eval:n #1
   { \dim_use:N \__dim_eval:w #1 \__dim_eval_end: }
 \cs_new_eq:NN \dim_use:N \tex_the:D
 \cs_new:Npn \dim_use:c #1 { \tex_the:D \cs:w #1 \cs_end: }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  { { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_to_decimal:n } }
 \cs_new:Npn \dim_to_decimal:n #1
   {
     \exp_after:wN
@@ -9529,7 +9614,8 @@
       }
 \cs_new:Npn \dim_to_decimal_in_bp:n #1
   { \dim_to_decimal:n { ( #1 ) * 800 / 803 } }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  { { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_to_decimal_in_sp:n } }
 \cs_new:Npn \dim_to_decimal_in_sp:n #1
   { \int_eval:n { \__dim_eval:w #1 \__dim_eval_end: } }
 \cs_new:Npn \dim_to_decimal_in_unit:nn #1#2
@@ -9580,7 +9666,8 @@
   { TF , T , F , p }
 \prg_new_eq_conditional:NNn \skip_if_exist:c \cs_if_exist:c
   { TF , T , F , p }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \etex_glueexpr:D { } \skip_set:Nn } }
 \cs_new_protected:Npn \skip_set:Nn #1#2
   { #1 ~ \etex_glueexpr:D #2 \scan_stop: }
 \cs_new_protected:Npn \skip_gset:Nn { \tex_global:D \skip_set:Nn }
@@ -9592,13 +9679,15 @@
 \cs_new_protected:Npn \skip_gset_eq:NN #1#2 { \tex_global:D #1 = #2 }
 \cs_generate_variant:Nn \skip_gset_eq:NN {       c }
 \cs_generate_variant:Nn \skip_gset_eq:NN { Nc , cc }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \etex_glueexpr:D { } \skip_add:Nn } }
 \cs_new_protected:Npn \skip_add:Nn #1#2
   { \tex_advance:D #1 by \etex_glueexpr:D #2 \scan_stop: }
 \cs_new_protected:Npn \skip_gadd:Nn { \tex_global:D \skip_add:Nn }
 \cs_generate_variant:Nn \skip_add:Nn  { c }
 \cs_generate_variant:Nn \skip_gadd:Nn { c }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  { {#1} { \__debug_chk_expr:nNnN {#2} \etex_glueexpr:D { } \skip_sub:Nn } }
 \cs_new_protected:Npn \skip_sub:Nn #1#2
   { \tex_advance:D #1 by - \etex_glueexpr:D #2 \scan_stop: }
 \cs_new_protected:Npn \skip_gsub:Nn { \tex_global:D \skip_sub:Nn }
@@ -9616,7 +9705,13 @@
   }
 \cs_set_protected:Npn \__cs_tmp:w #1
   {
-    \__debug_patch_conditional_args:nNNpnn { { (##1) } }
+    \__debug_patch_conditional_args:nNNpnn
+      {
+        {
+          \__debug_chk_expr:nNnN
+            {##1} \etex_glueexpr:D { } \skip_if_finite:n
+        }
+      }
     \prg_new_conditional:Npnn \skip_if_finite:n ##1 { p , T , F , TF }
       {
         \exp_after:wN \__skip_if_finite:wwNw
@@ -9626,17 +9721,20 @@
     \cs_new:Npn \__skip_if_finite:wwNw ##1 #1 ##2 ; ##3 ##4 \q_stop {##3}
   }
 \exp_args:No \__cs_tmp:w { \tl_to_str:n { fil } }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  { { \__debug_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_eval:n } }
 \cs_new:Npn \skip_eval:n #1
   { \skip_use:N \etex_glueexpr:D #1 \scan_stop: }
 \cs_new_eq:NN \skip_use:N \tex_the:D
 \cs_new:Npn \skip_use:c #1 { \tex_the:D \cs:w #1 \cs_end: }
 \cs_new_eq:NN  \skip_horizontal:N \tex_hskip:D
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  { { \__debug_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_horizontal:n } }
 \cs_new:Npn \skip_horizontal:n #1
   { \skip_horizontal:N \etex_glueexpr:D #1 \scan_stop: }
 \cs_new_eq:NN  \skip_vertical:N \tex_vskip:D
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  { { \__debug_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_vertical:n } }
 \cs_new:Npn \skip_vertical:n #1
   { \skip_vertical:N \etex_glueexpr:D #1 \scan_stop: }
 \cs_generate_variant:Nn \skip_horizontal:N { c }
@@ -9682,7 +9780,14 @@
   { TF , T , F , p }
 \prg_new_eq_conditional:NNn \muskip_if_exist:c \cs_if_exist:c
   { TF , T , F , p }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  {
+    {#1}
+    {
+      \__debug_chk_expr:nNnN {#2} \etex_muexpr:D
+        { \etex_mutoglue:D } \muskip_set:Nn
+    }
+  }
 \cs_new_protected:Npn \muskip_set:Nn #1#2
   { #1 ~ \etex_muexpr:D #2 \scan_stop: }
 \cs_new_protected:Npn \muskip_gset:Nn { \tex_global:D \muskip_set:Nn }
@@ -9694,19 +9799,39 @@
 \cs_new_protected:Npn \muskip_gset_eq:NN #1#2 { \tex_global:D #1 = #2 }
 \cs_generate_variant:Nn \muskip_gset_eq:NN {       c }
 \cs_generate_variant:Nn \muskip_gset_eq:NN { Nc , cc }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  {
+    {#1}
+    {
+      \__debug_chk_expr:nNnN {#2} \etex_muexpr:D
+        { \etex_mutoglue:D } \muskip_add:Nn
+    }
+  }
 \cs_new_protected:Npn \muskip_add:Nn #1#2
   { \tex_advance:D #1 by \etex_muexpr:D #2 \scan_stop: }
 \cs_new_protected:Npn \muskip_gadd:Nn { \tex_global:D \muskip_add:Nn }
 \cs_generate_variant:Nn \muskip_add:Nn  { c }
 \cs_generate_variant:Nn \muskip_gadd:Nn { c }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+  {
+    {#1}
+    {
+      \__debug_chk_expr:nNnN {#2} \etex_muexpr:D
+        { \etex_mutoglue:D } \muskip_sub:Nn
+    }
+  }
 \cs_new_protected:Npn \muskip_sub:Nn #1#2
   { \tex_advance:D #1 by - \etex_muexpr:D #2 \scan_stop: }
 \cs_new_protected:Npn \muskip_gsub:Nn { \tex_global:D \muskip_sub:Nn }
 \cs_generate_variant:Nn \muskip_sub:Nn  { c }
 \cs_generate_variant:Nn \muskip_gsub:Nn { c }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+  {
+    {
+      \__debug_chk_expr:nNnN {#1} \etex_muexpr:D
+        { \etex_mutoglue:D } \muskip_eval:n
+    }
+  }
 \cs_new:Npn \muskip_eval:n #1
   { \muskip_use:N \etex_muexpr:D #1 \scan_stop: }
 \cs_new_eq:NN \muskip_use:N \tex_the:D
@@ -14854,25 +14979,25 @@
     \exp_stop_f:
   }
 \cs_new:Npn \__fp_pow_neg_case_aux:nnnnn #1#2#3#4#5
-  { \__fp_pow_neg_case_aux:w #1 ; #2 #3 ; #4 #5 ; }
-\cs_new:Npn \__fp_pow_neg_case_aux:w #1 ; #2 ; #3 ;
   {
     \if_int_compare:w #1 > \c__fp_prec_int
       -1
     \else:
+      \__fp_decimate:nNnnnn { \c__fp_prec_int - #1 }
+        \__fp_pow_neg_case_aux:Nnnw
+        {#2} {#3} {#4} {#5}
+    \fi:
+  }
+\cs_new:Npn \__fp_pow_neg_case_aux:Nnnw #1#2#3#4 ;
+  {
+    \if_meaning:w 0 #1
       \if_int_odd:w #3 \exp_stop_f:
-        \if_int_compare:w #1 = \c__fp_prec_int
-          0
-        \else:
-          1
-        \fi:
+        0
       \else:
-        \exp_after:wN \__fp_pow_neg_case_aux:w
-        \__int_value:w \__int_eval:w #1 + 1 \exp_after:wN ;
-        \__int_value:w \__int_eval:w (#2 + 1) / 2 - 1 \exp_after:wN ;
-        \__int_value:w \__int_eval:w
-          \if_int_odd:w #2 \exp_stop_f: 5000 0000 + \fi: #3 / 2 ;
+        -1
       \fi:
+    \else:
+      1
     \fi:
   }
 %% File: l3fp-trig.dtx Copyright (C) 2011-2014,2016,2017 The LaTeX3 Project
@@ -20177,9 +20302,9 @@
 \cs_generate_variant:Nn \box_set_ht:Nn { c }
 \cs_generate_variant:Nn \box_set_dp:Nn { c }
 \cs_generate_variant:Nn \box_set_wd:Nn { c }
-\cs_new_eq:NN \box_use_clear:N \tex_box:D
+\cs_new_eq:NN \box_use_drop:N \tex_box:D
 \cs_new_eq:NN \box_use:N \tex_copy:D
-\cs_generate_variant:Nn \box_use_clear:N { c }
+\cs_generate_variant:Nn \box_use_drop:N { c }
 \cs_generate_variant:Nn \box_use:N { c }
 \__debug_patch_args:nNNpn { { (#1) } {#2} }
 \cs_new_protected:Npn \box_move_left:nn #1#2
@@ -20452,7 +20577,7 @@
     \box_set_dp:Nn \l__box_internal_box { -\l__box_bottom_new_dim }
     \box_set_wd:Nn \l__box_internal_box
       { \l__box_right_new_dim - \l__box_left_new_dim }
-    \box_use:N \l__box_internal_box
+    \box_use_drop:N \l__box_internal_box
   }
 \cs_new_protected:Npn \__box_rotate_x:nnN #1#2#3
   {
@@ -20683,7 +20808,7 @@
         \hbox_to_wd:nn { \l__box_right_new_dim }
           {
             \tex_kern:D \l__box_right_new_dim
-            \box_use:N \l__box_internal_box
+            \box_use_drop:N \l__box_internal_box
             \tex_hss:D
           }
       }
@@ -20692,7 +20817,7 @@
         \hbox:n
           {
             \tex_kern:D \c_zero_dim
-            \box_use:N \l__box_internal_box
+            \box_use_drop:N \l__box_internal_box
             \tex_hss:D
           }
       }
@@ -20705,6 +20830,12 @@
   { 2018-12-31 } { \box_resize_to_wd_and_ht_plus_dp:cnn }
 \cs_new_protected:Npn \box_resize:cnn
   { \box_resize_to_wd_and_ht_plus_dp:cnn }
+\__debug_deprecation:nnNNpn
+  { 2018-12-31 } { \box_use_clear:N }
+\cs_new_protected:Npn \box_use_clear:N { \box_use_drop:N }
+\__debug_deprecation:nnNNpn
+  { 2018-12-31 } { \box_use_clear:c }
+\cs_new_protected:Npn \box_use_clear:c { \box_use_drop:c }
 %% File: l3coffins.dtx Copyright(C) 2010-2017 The LaTeX3 Project
 \box_new:N \l__coffin_internal_box
 \dim_new:N \l__coffin_internal_dim
@@ -21277,7 +21408,7 @@
     \mode_leave_vertical:
     \__coffin_align:NnnNnnnnN \c_empty_coffin { H } { l }
       #1 {#2} {#3} {#4} {#5} \l__coffin_aligned_coffin
-    \box_use:N \l__coffin_aligned_coffin
+    \box_use_drop:N \l__coffin_aligned_coffin
   }
 \cs_generate_variant:Nn \coffin_typeset:Nnnnn { c }
 \coffin_new:N \l__coffin_display_coffin
@@ -21394,7 +21525,7 @@
         \prop_remove:Nn \l__coffin_display_poles_prop {##1}
         \__coffin_display_handles_aux:nnnnnn {##1} ##2 {#2}
       }
-    \box_use:N \l__coffin_display_coffin
+    \box_use_drop:N \l__coffin_display_coffin
   }
 \cs_new_protected:Npn \__coffin_display_handles_aux:nnnnnn #1#2#3#4#5#6
   {
@@ -22302,6 +22433,8 @@
       { \prg_return_false: }
   }
 \cs_new:Npn \sys_rand_seed: { \tex_the:D \pdftex_randomseed:D }
+\cs_if_exist:NF \pdftex_randomseed:D
+  { \cs_set:Npn \sys_rand_seed: { 0 } }
 \__debug_patch_args:nNNpn { { (#1) } }
 \cs_new_protected:Npn \sys_gset_rand_seed:n #1
   { \pdftex_setrandomseed:D \__int_eval:w #1 \__int_eval_end: }
@@ -23548,6 +23681,11 @@
       }
   }
 \group_begin:
+  \char_set_catcode_active:N *
+  \char_set_lccode:nn { `* } { `\ }
+  \tex_lowercase:D { \tl_const:Nn \c_catcode_active_space_tl { * } }
+\group_end:
+\group_begin:
   \cs_set_protected:Npn \__peek_tmp:w #1 \q_stop
     {
       \cs_new_protected:Npn \__peek_execute_branches_N_type:

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2017-09-19 22:02:28 UTC (rev 45340)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project
-\def\ExplFileDate{2017/07/19}%
+\def\ExplFileDate{2017/09/18}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \def\tempa{LaTeX2e}%

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2017-09-19 22:02:28 UTC (rev 45340)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project
-\def\ExplFileDate{2017/07/19}%
+\def\ExplFileDate{2017/09/18}%
 \let\ExplLoaderFileDate\ExplFileDate
 \ProvidesPackage{expl3}
   [%

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls	2017-09-19 22:02:28 UTC (rev 45340)
@@ -20,11 +20,15 @@
 %% 
 %% File: l3doc.dtx Copyright (C) 1990-2017 The LaTeX3 project
 \RequirePackage{expl3,xparse,calc}
-\ProvidesExplClass{l3doc}{2017/07/19}{}
+\ProvidesExplClass{l3doc}{2017/09/18}{}
   {L3 Experimental documentation class}
 \clist_new:N \g_docinput_clist
 \seq_new:N \g_doc_functions_seq
 \seq_new:N \g_doc_macros_seq
+\bool_new:N \l__codedoc_detect_internals_bool
+\bool_set_true:N \l__codedoc_detect_internals_bool
+\tl_new:N \l__codedoc_detect_internals_tl
+\tl_new:N \l__codedoc_detect_internals_cs_tl
 \coffin_new:N \l__codedoc_output_coffin
 \coffin_new:N \l__codedoc_functions_coffin
 \coffin_new:N \l__codedoc_descr_coffin
@@ -123,8 +127,19 @@
       { \prg_return_true: }
   }
 \cs_generate_variant:Nn \__codedoc_if_almost_str:nT { V }
+\cs_new_protected:Npn \__codedoc_trim_right:Nn #1#2
+  {
+    \cs_set:Npn \__codedoc_tmp:w ##1 #2 ##2 \q_stop { \exp_not:n {##1} }
+    \tl_set:Nx #1 { \exp_after:wN \__codedoc_tmp:w #1 #2 \q_stop }
+  }
+\cs_generate_variant:Nn \__codedoc_trim_right:Nn { No }
 \cs_new_protected:Npn \__codedoc_replace_at_at:N #1
   {
+    \bool_if:NT \l__codedoc_in_implementation_bool
+      {
+        \bool_if:NT \l__codedoc_detect_internals_bool
+          { \__codedoc_detect_internals:N #1 }
+      }
     \tl_if_empty:NF \g__codedoc_module_name_tl
       {
         \exp_args:NNo \__codedoc_replace_at_at_aux:Nn
@@ -141,6 +156,36 @@
     \tl_replace_all:Nnn #1 {     @ @ } { _ _ #2 }
     \tl_replace_all:Nnn #1 { \token_to_str:N a a } { @ @ }
   }
+\group_begin:
+  \char_set_catcode_active:N \^^M
+  \cs_new_protected:Npn \__codedoc_detect_internals:N #1
+    {
+      \tl_set_eq:NN \l__codedoc_detect_internals_tl #1
+      \tl_replace_all:Non \l__codedoc_detect_internals_tl { \token_to_str:N _ } { _ }
+      \seq_set_split:NnV \l__codedoc_tmpa_seq { _ _ } \l__codedoc_detect_internals_tl
+      \seq_pop_left:NN \l__codedoc_tmpa_seq \l__codedoc_detect_internals_tl
+      \seq_map_variable:NNn \l__codedoc_tmpa_seq \l__codedoc_detect_internals_tl
+        {
+          \__codedoc_trim_right:No \l__codedoc_detect_internals_tl
+            \c_catcode_active_space_tl
+          \__codedoc_trim_right:Nn \l__codedoc_detect_internals_tl ^^M
+          \tl_set_eq:NN \l__codedoc_detect_internals_cs_tl \l__codedoc_detect_internals_tl
+          \__codedoc_trim_right:Nn \l__codedoc_detect_internals_tl _
+          \__codedoc_trim_right:Nn \l__codedoc_detect_internals_tl :
+          \__codedoc_trim_right:No \l__codedoc_detect_internals_tl { \token_to_str:N : }
+          \tl_if_empty:NF \l__codedoc_detect_internals_tl
+            {
+              \str_if_eq:NNF \l__codedoc_detect_internals_tl \g__codedoc_module_name_tl
+                {
+                  \msg_warning:nnxxx { l3doc } { foreign-internal }
+                    { \tl_to_str:N \l__codedoc_detect_internals_cs_tl }
+                    { \tl_to_str:N \l__codedoc_detect_internals_tl }
+                    { \tl_to_str:N \g__codedoc_module_name_tl }
+                }
+            }
+        }
+    }
+\group_end:
 \cs_new:Npn \__codedoc_signature_base_form:n #1
   { \__codedoc_signature_base_form_aux:n #1 \q_stop }
 \cs_new:Npn \__codedoc_signature_base_form_aux:n #1
@@ -310,6 +355,12 @@
     The~'syntax'~environment~should~only~be~used~once~in~
     a~'function'~environment.
   }
+\msg_new:nnn { l3doc } { foreign-internal }
+  {
+    A~control~sequence~of~the~form~'...__#1'~was~used.~
+    It~should~only~be~used~in~the~module~'#2'
+    \tl_if_empty:nF {#3} { ,~not~in~'#3' } .
+  }
 \DeclareOption { a5paper } { \@latexerr { Option~not~supported } { } }
 \DeclareOption { full }
   {
@@ -939,7 +990,7 @@
 \cs_new_protected:Npn \__codedoc_function_assemble:
   {
     \hcoffin_set:Nn  \l__codedoc_syntax_coffin
-      { \box_use_clear:N \g__codedoc_syntax_box }
+      { \box_use_drop:N \g__codedoc_syntax_box }
     \bool_if:NTF \l__codedoc_long_name_bool
       {
         \coffin_join:NnnNnnnn
@@ -1106,7 +1157,7 @@
       {
         \begin{quote}
           \mode_leave_vertical:
-          \box_use_clear:N \g__codedoc_syntax_box
+          \box_use_drop:N \g__codedoc_syntax_box
         \end{quote}
       }
   }

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def	2017-09-19 22:02:28 UTC (rev 45340)
@@ -27,7 +27,7 @@
     \@ifpackageloaded { color }
       {
         \cs_new_protected:Npn \__driver_color_pickup:
-          { \tl_set_eq:NN \l__color_current_tl \current at color }
+          { \tl_set:Nx \l__color_current_tl { \current at color } }
       }
       { \cs_new_protected:Npn \__driver_color_pickup: { } }
   }
@@ -155,11 +155,11 @@
         (#1)
         \bool_lazy_or:nnT
           { \l__image_interpolate_bool }
-          { ! \tl_if_empty_p:N \l__imge_decode_tl }
+          { ! \tl_if_empty_p:N \l__image_decode_tl }
           {
             <<
-              \tl_if_empty:NF \l__imge_decode_tl
-                { /Decode~[ \l__imge_decode_tl ] }
+              \tl_if_empty:NF \l__image_decode_tl
+                { /Decode~[ \l__image_decode_tl ] }
               \bool_if:NT \l__image_interpolate_bool
                 { /Interpolate~true> }
             >>

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def	2017-09-19 22:02:28 UTC (rev 45340)
@@ -27,7 +27,7 @@
     \@ifpackageloaded { color }
       {
         \cs_new_protected:Npn \__driver_color_pickup:
-          { \tl_set_eq:NN \l__color_current_tl \current at color }
+          { \tl_set:Nx \l__color_current_tl { \current at color } }
       }
       { \cs_new_protected:Npn \__driver_color_pickup: { } }
   }
@@ -379,12 +379,10 @@
     \tex_special:D { ps::~72~Resolution~div~72~VResolution~div~neg~scale }
     \tex_special:D { ps::~magscale~{1~DVImag~div~dup~scale}~if }
     \tex_special:D { ps::~l3x~neg~l3y~neg~translate }
-    \group_begin:
-      \box_set_wd:Nn #1 { 0pt }
-      \box_set_ht:Nn #1 { 0pt }
-      \box_set_dp:Nn #1 { 0pt }
-      \box_use:N #1
-    \group_end:
+    \box_set_wd:Nn #1 { 0pt }
+    \box_set_ht:Nn #1 { 0pt }
+    \box_set_dp:Nn #1 { 0pt }
+    \box_use:N #1
     \tex_special:D { ps::[begin] }
     \__driver_scope_end:
   }

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def	2017-09-19 22:02:28 UTC (rev 45340)
@@ -27,7 +27,7 @@
     \@ifpackageloaded { color }
       {
         \cs_new_protected:Npn \__driver_color_pickup:
-          { \tl_set_eq:NN \l__color_current_tl \current at color }
+          { \tl_set:Nx \l__color_current_tl { \current at color } }
       }
       { \cs_new_protected:Npn \__driver_color_pickup: { } }
   }
@@ -440,12 +440,10 @@
             transform="scale(-1,1)~translate({?x},{?y})~scale(-1,-1)"
         >
       }
-    \group_begin:
-      \box_set_wd:Nn #1 { 0pt }
-      \box_set_ht:Nn #1 { 0pt }
-      \box_set_dp:Nn #1 { 0pt }
-      \box_use:N #1
-    \group_end:
+    \box_set_wd:Nn #1 { 0pt }
+    \box_set_ht:Nn #1 { 0pt }
+    \box_set_dp:Nn #1 { 0pt }
+    \box_use:N #1
     \__driver_literal:n { </g> }
     \__driver_scope_end:
   }

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def	2017-09-19 22:02:28 UTC (rev 45340)
@@ -28,24 +28,23 @@
       {
         \cs_new_protected:Npn \__driver_color_pickup:
           {
-            \tl_set:Nx \l__color_current_tl
-              {
-                \exp_after:wN \exp_after:wN\exp_after:wN
-                  \__driver_color_pickup_aux:w \exp_after:wN
-                  \current at color \c_space_tl 0 ~ 0 ~ 0 \q_stop
-              }
+            \exp_last_unbraced:Nx \__driver_color_pickup_aux:w
+              { \current at color } ~ 0 ~ 0 ~ 0 \q_stop
           }
         \cs_new:Npn \__driver_color_pickup_aux:w #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \q_stop
           {
-            \str_if_eq:nnTF {#2} { g }
-              { gray ~ #1 }
+            \tl_set:Nx \l__color_current_tl
               {
-                \str_if_eq:nnTF {#4} { rg }
-                  { rgb ~ #1 ~ #2 ~ #3 }
+                \str_if_eq:nnTF {#2} { g }
+                  { gray ~ #1 }
                   {
-                    \str_if_eq:nnTF {#5} { k }
-                      { cmyk ~ #1 ~ #2 ~ #3 ~ #4 }
-                      { gray ~ #1 }
+                    \str_if_eq:nnTF {#4} { rg }
+                      { rgb ~ #1 ~ #2 ~ #3 }
+                      {
+                        \str_if_eq:nnTF {#5} { k }
+                          { cmyk ~ #1 ~ #2 ~ #3 ~ #4 }
+                          { gray ~ #1 }
+                      }
                   }
               }
           }
@@ -127,7 +126,7 @@
 \cs_new_protected:Npn \__driver_box_use_rotate:Nn #1#2
   {
     \__driver_scope_begin:
-    \box_set_wd:Nn #1 \c_zero_dim
+    \box_set_wd:Nn #1 { 0pt }
     \fp_set:Nn \l__driver_cos_fp { round ( cosd ( #2 ) , 5 ) }
     \fp_compare:nNnT \l__driver_cos_fp = \c_zero_fp
       { \fp_zero:N \l__driver_cos_fp }

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def	2017-09-19 22:02:28 UTC (rev 45340)
@@ -27,7 +27,7 @@
     \@ifpackageloaded { color }
       {
         \cs_new_protected:Npn \__driver_color_pickup:
-          { \tl_set_eq:NN \l__color_current_tl \current at color }
+          { \tl_set:Nx \l__color_current_tl { \current at color } }
       }
       { \cs_new_protected:Npn \__driver_color_pickup: { } }
   }
@@ -140,11 +140,11 @@
         (#1)
         \bool_lazy_or:nnT
           { \l__image_interpolate_bool }
-          { ! \tl_if_empty_p:N \l__imge_decode_tl }
+          { ! \tl_if_empty_p:N \l__image_decode_tl }
           {
             <<
-              \tl_if_empty:NF \l__imge_decode_tl
-                { /Decode~[ \l__imge_decode_tl ] }
+              \tl_if_empty:NF \l__image_decode_tl
+                { /Decode~[ \l__image_decode_tl ] }
               \bool_if:NT \l__image_interpolate_bool
                 { /Interpolate~true> }
             >>

Modified: trunk/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty	2017-09-19 22:02:28 UTC (rev 45340)
@@ -19,8 +19,8 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: l3keys2e.dtx (C) Copyright 2009,2011-2017 The LaTeX3 Project
-\RequirePackage{expl3}[2017/07/19]
-\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+\@ifpackagelater{expl3}{2017/09/18}
   {}
   {%
     \PackageError{l3keys2e}{Support package l3kernel too old}
@@ -32,7 +32,7 @@
       }%
     \endinput
   }
-\ProvidesExplPackage{l3keys2e}{2017/07/19}{}
+\ProvidesExplPackage{l3keys2e}{2017/09/18}{}
   {LaTeX2e option processing using LaTeX3 keys}
 \cs_generate_variant:Nn \clist_put_right:Nn { Nv }
 \cs_generate_variant:Nn \keys_if_exist:nnT  { nx }

Modified: trunk/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty	2017-09-19 22:02:28 UTC (rev 45340)
@@ -19,8 +19,8 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: xfp.dtx (C) Copyright 2017 The LaTeX3 Project
-\RequirePackage{expl3}[2017/07/19]
-\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+\@ifpackagelater{expl3}{2017/09/18}
   {}
   {%
     \PackageError{xfp}{Support package l3kernel too old}
@@ -33,9 +33,10 @@
     \endinput
   }
 \RequirePackage{xparse}
-\ProvidesExplPackage{xfp}{2017/07/19}{}
+\ProvidesExplPackage{xfp}{2017/09/18}{}
   {L3 Floating point unit}
 \NewExpandableDocumentCommand \fpeval { m } { \fp_eval:n {#1} }
+\NewExpandableDocumentCommand \inteval { m } { \int_eval:n {#1} }
 %% 
 %%
 %% End of file `xfp.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty	2017-09-19 22:02:28 UTC (rev 45340)
@@ -20,8 +20,8 @@
 %% 
 %% File: xfrac.dtx Copyright (C) 2004, 2008-2010 Morten Hoegholm
 %%                           (C) 2011,2012,2014-2017 The LaTeX3 Project
-\RequirePackage{expl3}[2017/07/19]
-\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+\@ifpackagelater{expl3}{2017/09/18}
   {}
   {%
     \PackageError{xfrac}{Support package l3kernel too old}
@@ -34,7 +34,7 @@
     \endinput
   }
 \RequirePackage{amstext,graphicx,l3keys2e,textcomp,xparse,xtemplate}
-\ProvidesExplPackage{xfrac}{2017/07/19}{}
+\ProvidesExplPackage{xfrac}{2017/09/18}{}
   {L3 Experimental split-level fractions}
 \keys_define:nn { xfrac }
   {

Modified: trunk/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty	2017-09-19 22:02:28 UTC (rev 45340)
@@ -23,8 +23,8 @@
 %%                  (C) Copyright 2004-2008 Frank Mittelbach,
 %%                      The LaTeX3 Project
 %%                  (C) Copyright 2009-2017 The LaTeX3 Project
-\RequirePackage{expl3}[2017/07/19]
-\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+\@ifpackagelater{expl3}{2017/09/18}
   {}
   {%
     \PackageError{xparse}{Support package l3kernel too old}
@@ -36,7 +36,7 @@
       }%
     \endinput
   }
-\ProvidesExplPackage{xparse}{2017/07/19}{}
+\ProvidesExplPackage{xparse}{2017/09/18}{}
   {L3 Experimental document command parser}
 \tl_const:Nx \c__xparse_no_value_tl
   { \char_generate:nn { `\- } { 11 } NoValue- }

Modified: trunk/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty	2017-09-19 22:01:41 UTC (rev 45339)
+++ trunk/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty	2017-09-19 22:02:28 UTC (rev 45340)
@@ -23,8 +23,8 @@
 %%                     (C) Copyright 2004-2010 Frank Mittelbach,
 %%                         The LaTeX3 Project
 %%                     (C) Copyright 2011-2016 The LaTeX3 Project
-\RequirePackage{expl3}[2017/07/19]
-\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+\@ifpackagelater{expl3}{2017/09/18}
   {}
   {%
     \PackageError{xtemplate}{Support package l3kernel too old}
@@ -36,7 +36,7 @@
       }%
     \endinput
   }
-\ProvidesExplPackage{xtemplate}{2017/07/19}{}
+\ProvidesExplPackage{xtemplate}{2017/09/18}{}
   {L3 Experimental prototype document functions}
 \tl_const:Nn \c__xtemplate_code_root_tl      { template~code~>~ }
 \tl_const:Nn \c__xtemplate_defaults_root_tl  { template~defaults~>~ }



More information about the tex-live-commits mailing list