diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx | 104 |
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. |