summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-05-16 20:22:00 +0000
committerKarl Berry <karl@freefriends.org>2023-05-16 20:22:00 +0000
commit8e9d8b027e86eefeb1788f42ec5fc0a8c76548ba (patch)
tree23fc8c8906eff72625be83d276d39e516ecb1f41 /Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
parente66174d7e5c8c2f71571c928e0d6c5a8b037a904 (diff)
l3kernel (16may23)
git-svn-id: svn://tug.org/texlive/trunk@67134 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx')
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx104
1 files changed, 19 insertions, 85 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
index 7c5e8f5e660..03749f402a1 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-05-11}
+% \date{Released 2023-05-15}
%
% \maketitle
%
@@ -133,35 +133,6 @@
%<@@=kernel>
% \end{macrocode}
%
-% \subsection{\LuaTeX{}-specific code}
-%
-% Depending on the versions available, the \LaTeX{} format may not have
-% the raw |\Umath| primitive names available. We fix that globally:
-% it should cause no issues. Older \LuaTeX{} versions do not have
-% a pre-built table of the primitive names here so sort one out
-% ourselves. These end up globally-defined but at that is true with
-% a newer format anyway and as they all start |\U| this should be
-% reasonably safe.
-% \begin{macrocode}
-\begingroup
- \expandafter\ifx\csname directlua\endcsname\relax
- \else
- \directlua{%
- local i
- local t = { }
- for _,i in pairs(tex.extraprimitives("luatex")) do
- if string.match(i,"^U") then
- if not string.match(i,"^Uchar$") then %$
- table.insert(t,i)
- end
- end
- end
- tex.enableprimitives("", t)
- }%
- \fi
-\endgroup
-% \end{macrocode}
-%
% \subsection{The \tn{pdfstrcmp} primitive in \XeTeX{}}
%
% Only \pdfTeX{} has a primitive called \tn{pdfstrcmp}. The \XeTeX{}
@@ -222,39 +193,40 @@
%
% \subsection{Engine requirements}
%
-% The code currently requires \eTeX{} and functionality equivalent to
-% \tn{pdfstrcmp}, and also driver and Unicode character support. This is
-% available in a reasonably-wide range of engines.
-%
+% The code currently requires \eTeX{}, the set of \enquote{\pdfTeX{}
+% extensions} \emph{including} \tn{expanded}, and for Unicode engines the
+% ability to generate arbitrary character tokens by expansion. That is covered
+% by all supported engines since \TeX{} Live 2019, which we therefore use
+% as a baseline for engine and \LaTeX{} format support.
% For \LuaTeX, we require at least Lua 5.3 and the |token.set_lua| function.
-% This is available at least since \LuaTeX{} 1.10.
+% This is available at least since \LuaTeX{} 1.10, which again is the one
+% in \TeX{} Live 2019. (u)p\TeX{} only gained \tn{ifincsname} for \TeX{}
+% Live 2020, but at present that primitive is unused in \pkg{expl3} so for
+% the present it's not tested. If and when that changes, we will need to
+% revisit the code here.
% \begin{macrocode}
\begingroup
\def\next{\endgroup}%
\def\ShortText{Required primitives not found}%
\def\LongText%
{%
- The L3 programming layer requires the e-TeX primitives and additional
- \LineBreak functionality as described in the README file.
+ The L3 programming layer requires the e-TeX primitives and the
+ \LineBreak 'pdfTeX extensions' as described in the README file.
\LineBreak
These are available in the engines\LineBreak
- - pdfTeX v1.40.0\LineBreak
- - XeTeX v0.99992\LineBreak
+ - pdfTeX v1.40.20\LineBreak
+ - XeTeX v0.999991\LineBreak
- LuaTeX v1.10\LineBreak
- - e-(u)pTeX mid-2012\LineBreak
+ - e-(u)pTeX v3.8.2\LineBreak
- Prote (2021)\LineBreak
or later.\LineBreak
\LineBreak
}%
\ifnum0%
- \expandafter\ifx\csname expanded\endcsname\relax
- \expandafter\ifx\csname pdfstrcmp\endcsname\relax\else 1\fi
+ \expandafter\ifx\csname luatexversion\endcsname\relax
+ \expandafter\ifx\csname expanded\endcsname\relax\else 1\fi
\else
- \expandafter\ifx\csname luatexversion\endcsname\relax
- 1%
- \else
- \ifnum\luatexversion<110 \else 1\fi
- \fi
+ \ifnum\luatexversion<110 \else 1\fi
\fi
=0 %
\newlinechar`\^^J %
@@ -282,44 +254,6 @@ Type H <return> for immediate help}\def~{\errmessage{%
\next
% \end{macrocode}
%
-% \subsection{Extending allocators}
-%
-% The ability to extend \TeX{}'s allocation routine to allow for \eTeX{} has
-% been around since 1997 in the \pkg{etex} package.
-% Loading this support is delayed until here as we are now sure that the
-% \eTeX{} extensions and \tn{pdfstrcmp} or equivalent are available. Thus
-% there is no danger of an \enquote{uncontrolled} error if the engine
-% requirements are not met.
-%
-% For \LaTeXe{} we need to make sure that the extended pool is being used:
-% \pkg{expl3} uses a lot of registers. For formats from 2015 onward there is
-% nothing to do as this is automatic. For older formats, the \pkg{etex}
-% package needs to be loaded to do the job. In that case, some inserts are
-% reserved also as these have to be from the standard pool. Note that
-% \tn{reserveinserts} is \tn{outer} and so is accessed here by csname. In
-% earlier versions, loading \pkg{etex} was done directly and so
-% \tn{reserveinserts} appeared in the code: this then required a \tn{relax}
-% after \tn{RequirePackage} to prevent an error with \enquote{unsafe}
-% definitions as seen for example with \pkg{capoptions}. The optional loading
-% here is done using a group and \tn{ifx} test as we are not quite in the
-% position to have a single name for \tn{pdfstrcmp} just yet.
-% \begin{macrocode}
-\begingroup
- \def\@tempa{LaTeX2e}%
- \def\next{}%
- \ifx\fmtname\@tempa
- \expandafter\ifx\csname extrafloats\endcsname\relax
- \def\next
- {%
- \RequirePackage{etex}%
- \csname reserveinserts\endcsname{32}%
- }%
- \fi
- \fi
-\expandafter\endgroup
-\next
-% \end{macrocode}
-%
% \subsection{The \LaTeX3 code environment}
%
% The code environment is now set up.