[latex3-commits] [git/LaTeX3-latex3-latex3] LaTeX2020: Store 'everyjob' set up in a tl (1874756c0)
Joseph Wright
joseph.wright at morningstar2.co.uk
Wed Oct 9 20:54:29 CEST 2019
Repository : https://github.com/latex3/latex3
On branch : LaTeX2020
Link : https://github.com/latex3/latex3/commit/1874756c0804b8da9291cd431a9ff897c88aa63f
>---------------------------------------------------------------
commit 1874756c0804b8da9291cd431a9ff897c88aa63f
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date: Wed Oct 9 19:52:48 2019 +0100
Store 'everyjob' set up in a tl
This avoids any issues with file locations, etc.
>---------------------------------------------------------------
1874756c0804b8da9291cd431a9ff897c88aa63f
l3kernel/expl3.dtx | 4 +-
l3kernel/l3.ins | 9 --
l3kernel/l3file.dtx | 11 +--
l3kernel/l3format.ins | 9 --
l3kernel/l3sys.dtx | 166 +++++++++++++++++---------------
l3kernel/testfiles/m3file001.luatex.tlg | 2 +-
l3kernel/testfiles/m3file001.ptex.tlg | 2 +-
l3kernel/testfiles/m3file001.tlg | 2 +-
l3kernel/testfiles/m3file001.uptex.tlg | 2 +-
l3kernel/testfiles/m3file001.xetex.tlg | 2 +-
10 files changed, 95 insertions(+), 114 deletions(-)
diff --git a/l3kernel/expl3.dtx b/l3kernel/expl3.dtx
index 19bdd949f..fcc4eb8d4 100644
--- a/l3kernel/expl3.dtx
+++ b/l3kernel/expl3.dtx
@@ -1358,10 +1358,10 @@
\tex_everyjob:D \exp_after:wN
{
\tex_the:D \tex_everyjob:D
- \__kernel_sys_configuration_load:n { l3sys }
+ \sys_everyjob:
}
}
- { \__kernel_sys_configuration_load:n { l3sys } }
+ { \sys_everyjob: }
% \end{macrocode}
%
% \begin{macro}{\@pushfilename, \@popfilename}
diff --git a/l3kernel/l3.ins b/l3kernel/l3.ins
index cf9f848e9..d9c7f2e6c 100644
--- a/l3kernel/l3.ins
+++ b/l3kernel/l3.ins
@@ -114,15 +114,6 @@ and all files in that bundle must be distributed together.
\generate{\file{expl3.ltx} {\from{expl3.dtx} {2ekernel,loader}}}
\generate{\file{expl3-generic.tex}{\from{expl3.dtx} {generic,loader}}}
-\generate
- {
- \file{l3sys.def}
- {
- \from{l3sys.dtx} {everyjob}
- \from{l3file.dtx}{everyjob}
- }
- }
-
\generate{\file{l3doc.cls} {\from{l3doc.dtx} {class}}}
% not distributed:
%\generate{\file{l3doc.ist} {\from{l3doc.dtx} {docist}}}
diff --git a/l3kernel/l3file.dtx b/l3kernel/l3file.dtx
index 7e75db3fd..9232265c2 100644
--- a/l3kernel/l3file.dtx
+++ b/l3kernel/l3file.dtx
@@ -2251,20 +2251,13 @@
% \g_file_curr_ext_str ,
% \g_file_curr_name_str
% }
-% The name of the current file should be available at all times.
+% The name of the current file should be available at all times:
+% the name itself is set dynamically.
% \begin{macrocode}
\str_new:N \g_file_curr_dir_str
\str_new:N \g_file_curr_ext_str
\str_new:N \g_file_curr_name_str
% \end{macrocode}
-% The actual data has to be picked up during the run.
-% \begin{macrocode}
-%</initex|package>
-%<*everyjob>
-\str_gset:Nx \g_file_curr_name_str { \tex_jobname:D }
-%</everyjob>
-%<*initex|package>
-% \end{macrocode}
% \end{variable}
%
% \begin{variable}{\g_@@_stack_seq}
diff --git a/l3kernel/l3format.ins b/l3kernel/l3format.ins
index ad8c9bce4..bdc551670 100644
--- a/l3kernel/l3format.ins
+++ b/l3kernel/l3format.ins
@@ -112,15 +112,6 @@ and all files in that bundle must be distributed together.
}
}
-\generate
- {
- \file{l3sys.def}
- {
- \from{l3sys.dtx} {everyjob}
- \from{l3file.dtx}{everyjob}
- }
- }
-
% ISO-8859 encodings.
\generate{%
\file{l3str-enc-iso88591.def} {\from{l3str-convert.dtx}{iso88591}}%
diff --git a/l3kernel/l3sys.dtx b/l3kernel/l3sys.dtx
index 5795c1ad6..70a0c1a14 100644
--- a/l3kernel/l3sys.dtx
+++ b/l3kernel/l3sys.dtx
@@ -586,42 +586,34 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macrocode}
-%</initex|package>
-% \end{macrocode}
-%
% \subsection{Dynamic (every job) code}
%
+% \begin{macro}{\sys_everyjob:}
+% \begin{macro}{\@@_everyjob:n}
+% \begin{variable}{\g_@@_everyjob_tl}
% \begin{macrocode}
-%<*everyjob>
-% \end{macrocode}
-%
-% \begin{macrocode}
-\ProvidesExplFile
- {l3sys.def}{2019-04-06}{}
- {L3 system-dependent functions}
-% \end{macrocode}
-%
-% The reload check is done manually.
-% \begin{macrocode}
-\cs_if_exist:NT \c_sys_jobname_str
- { \file_input_stop: }
+\cs_new_protected:Npn \sys_everyjob:
+ {
+ \tl_use:N \g_@@_everyjob_tl
+ \tl_gclear:N \g_@@_everyjob_tl
+ }
+\cs_new_protected:Npn \@@_everyjob:n #1
+ { \tl_gput_right:Nn \g_@@_everyjob_tl {#1} }
+\tl_new:N \g_@@_everyjob_tl
% \end{macrocode}
+% \end{variable}
+% \end{macro}
+% \end{macro}
%
% \subsubsection{The name of the job}
%
% \begin{variable}{\c_sys_jobname_str}
% Inherited from the \LaTeX3 name for the primitive: this needs to
% actually contain the text of the job name rather than the name of
-% the primitive, of course. In pre-loaded mode, the stack will need
-% a little correction.
+% the primitive, of course.
% \begin{macrocode}
-\str_const:Nx \c_sys_jobname_str { \tex_jobname:D }
-\cs_if_exist:cF { ver at expl3.sty }
- {
- \exp_args:Nx \__kernel_file_input_push:n { \c_sys_jobname_str }
- \__kernel_file_input_push:n { ??? }
- }
+\@@_everyjob:n
+ { \str_const:Nx \c_sys_jobname_str { \tex_jobname:D } }
% \end{macrocode}
% \end{variable}
%
@@ -640,35 +632,38 @@
% only be recovered if we have \tn{primitive} and it is working correctly.
% For Ini\TeX{} of course that is all redundant but does no harm.
% \begin{macrocode}
-\group_begin:
- \cs_set:Npn \@@_tmp:w #1
- {
- \str_if_eq:eeTF { \cs_meaning:N #1 } { \token_to_str:N #1 }
- { #1 }
+\@@_everyjob:n
+ {
+ \group_begin:
+ \cs_set:Npn \@@_tmp:w #1
{
- \cs_if_exist:NTF \tex_primitive:D
+ \str_if_eq:eeTF { \cs_meaning:N #1 } { \token_to_str:N #1 }
+ { #1 }
{
- \bool_lazy_and:nnTF
- { \sys_if_engine_xetex_p: }
+ \cs_if_exist:NTF \tex_primitive:D
{
- \int_compare_p:nNn
- { \exp_after:wN \use_none:n \tex_XeTeXrevision:D }
- < { 99999 }
+ \bool_lazy_and:nnTF
+ { \sys_if_engine_xetex_p: }
+ {
+ \int_compare_p:nNn
+ { \exp_after:wN \use_none:n \tex_XeTeXrevision:D }
+ < { 99999 }
+ }
+ { 0 }
+ { \tex_primitive:D #1 }
}
{ 0 }
- { \tex_primitive:D #1 }
}
- { 0 }
}
- }
- \int_const:Nn \c_sys_minute_int
- { \int_mod:nn { \@@_tmp:w \time } { 60 } }
- \int_const:Nn \c_sys_hour_int
- { \int_div_truncate:nn { \@@_tmp:w \time } { 60 } }
- \int_const:Nn \c_sys_day_int { \@@_tmp:w \day }
- \int_const:Nn \c_sys_month_int { \@@_tmp:w \month }
- \int_const:Nn \c_sys_year_int { \@@_tmp:w \year }
-\group_end:
+ \int_const:Nn \c_sys_minute_int
+ { \int_mod:nn { \@@_tmp:w \time } { 60 } }
+ \int_const:Nn \c_sys_hour_int
+ { \int_div_truncate:nn { \@@_tmp:w \time } { 60 } }
+ \int_const:Nn \c_sys_day_int { \@@_tmp:w \day }
+ \int_const:Nn \c_sys_month_int { \@@_tmp:w \month }
+ \int_const:Nn \c_sys_year_int { \@@_tmp:w \year }
+ \group_end:
+ }
% \end{macrocode}
% \end{variable}
%
@@ -679,15 +674,18 @@
% return zero after an error (and incidentally make sure the number of
% expansions needed is the same as with random numbers available).
% \begin{macrocode}
-\sys_if_rand_exist:TF
- { \cs_new:Npn \sys_rand_seed: { \tex_the:D \tex_randomseed:D } }
+\@@_everyjob:n
{
- \cs_new:Npn \sys_rand_seed:
+ \sys_if_rand_exist:TF
+ { \cs_new:Npn \sys_rand_seed: { \tex_the:D \tex_randomseed:D } }
{
- \int_value:w
- \__kernel_msg_expandable_error:nnn { kernel } { fp-no-random }
- { \sys_rand_seed: }
- \c_zero_int
+ \cs_new:Npn \sys_rand_seed:
+ {
+ \int_value:w
+ \__kernel_msg_expandable_error:nnn { kernel } { fp-no-random }
+ { \sys_rand_seed: }
+ \c_zero_int
+ }
}
}
% \end{macrocode}
@@ -696,16 +694,19 @@
% \begin{macro}{\sys_gset_rand_seed:n}
% The primitive always assigns the seed globally.
% \begin{macrocode}
-\sys_if_rand_exist:TF
+\@@_everyjob:n
{
- \cs_new_protected:Npn \sys_gset_rand_seed:n #1
- { \tex_setrandomseed:D \int_eval:n {#1} \exp_stop_f: }
- }
- {
- \cs_new_protected:Npn \sys_gset_rand_seed:n #1
+ \sys_if_rand_exist:TF
+ {
+ \cs_new_protected:Npn \sys_gset_rand_seed:n #1
+ { \tex_setrandomseed:D \int_eval:n {#1} \exp_stop_f: }
+ }
{
- \__kernel_msg_error:nnn { kernel } { fp-no-random }
- { \sys_gset_rand_seed:n {#1} }
+ \cs_new_protected:Npn \sys_gset_rand_seed:n #1
+ {
+ \__kernel_msg_error:nnn { kernel } { fp-no-random }
+ { \sys_gset_rand_seed:n {#1} }
+ }
}
}
% \end{macrocode}
@@ -716,15 +717,16 @@
% \begin{variable}{\c_sys_shell_escape_int}
% Expose the engine's shell escape status to the user.
% \begin{macrocode}
-\int_const:Nn \c_sys_shell_escape_int
+\@@_everyjob:n
{
- \sys_if_engine_luatex:TF
- {
- \tex_directlua:D
- { tex.sprint(status.shell_escape~or~os.execute()) }
- }
+ \int_const:Nn \c_sys_shell_escape_int
{
- \tex_shellescape:D
+ \sys_if_engine_luatex:TF
+ {
+ \tex_directlua:D
+ { tex.sprint(status.shell_escape~or~os.execute()) }
+ }
+ { \tex_shellescape:D }
}
}
% \end{macrocode}
@@ -736,25 +738,29 @@
% shell escape is enabled, while the other two sets of functions
% return true in only one of these two cases.
% \begin{macrocode}
-\@@_const:nn { sys_if_shell }
- { \int_compare_p:nNn \c_sys_shell_escape_int > 0 }
-\@@_const:nn { sys_if_shell_unrestricted }
- { \int_compare_p:nNn \c_sys_shell_escape_int = 1 }
-\@@_const:nn { sys_if_shell_restricted }
- { \int_compare_p:nNn \c_sys_shell_escape_int = 2 }
+\@@_everyjob:n
+ {
+ \@@_const:nn { sys_if_shell }
+ { \int_compare_p:nNn \c_sys_shell_escape_int > 0 }
+ \@@_const:nn { sys_if_shell_unrestricted }
+ { \int_compare_p:nNn \c_sys_shell_escape_int = 1 }
+ \@@_const:nn { sys_if_shell_restricted }
+ { \int_compare_p:nNn \c_sys_shell_escape_int = 2 }
+ }
% \end{macrocode}
% \end{macro}
%
+% \subsubsection{Held over from \pkg{l3file}}
+%
+% \begin{variable}{\g_file_curr_name_str}
% \begin{macrocode}
-%</everyjob>
+\@@_everyjob:n
+ { \str_gset:Nx \g_file_curr_name_str { \tex_jobname:D } }
% \end{macrocode}
+% \end{variable}
%
% \subsection{Last-minute code}
%
-% \begin{macrocode}
-%<*initex|package>
-% \end{macrocode}
-%
% \begin{macro}{\sys_finalise:}
% \begin{macro}{\@@_finalise:n}
% \begin{variable}{\g_@@_finalise_tl}
diff --git a/l3kernel/testfiles/m3file001.luatex.tlg b/l3kernel/testfiles/m3file001.luatex.tlg
index 41c30d158..a39a3af51 100644
--- a/l3kernel/testfiles/m3file001.luatex.tlg
+++ b/l3kernel/testfiles/m3file001.luatex.tlg
@@ -159,7 +159,6 @@ Path: "/", Name: " ", Ext: ""
TEST 8: File listing
============================================================
> File List <
-l3sys.def
minimal.cls
regression-test
regression-test.cfg
@@ -167,6 +166,7 @@ fontenc.sty
ot1enc.def
expl3.sty
l3debug.def
+l3sys.def
l3backend-pdfmode.def
filetest.txt
filetest-endinput.txt
diff --git a/l3kernel/testfiles/m3file001.ptex.tlg b/l3kernel/testfiles/m3file001.ptex.tlg
index bd41adef7..f7eb2c2f0 100644
--- a/l3kernel/testfiles/m3file001.ptex.tlg
+++ b/l3kernel/testfiles/m3file001.ptex.tlg
@@ -154,7 +154,6 @@ Path: "/", Name: " ", Ext: ""
TEST 8: File listing
============================================================
> File List <
-l3sys.def
minimal.cls
regression-test
regression-test.cfg
@@ -162,6 +161,7 @@ fontenc.sty
ot1enc.def
expl3.sty
l3debug.def
+l3sys.def
l3backend-dvipdfmx.def
filetest.txt
filetest-endinput.txt
diff --git a/l3kernel/testfiles/m3file001.tlg b/l3kernel/testfiles/m3file001.tlg
index 756daeffe..6141ac3d8 100644
--- a/l3kernel/testfiles/m3file001.tlg
+++ b/l3kernel/testfiles/m3file001.tlg
@@ -154,7 +154,6 @@ Path: "/", Name: " ", Ext: ""
TEST 8: File listing
============================================================
> File List <
-l3sys.def
minimal.cls
regression-test
regression-test.cfg
@@ -162,6 +161,7 @@ fontenc.sty
ot1enc.def
expl3.sty
l3debug.def
+l3sys.def
l3backend-pdfmode.def
filetest.txt
filetest-endinput.txt
diff --git a/l3kernel/testfiles/m3file001.uptex.tlg b/l3kernel/testfiles/m3file001.uptex.tlg
index bd41adef7..f7eb2c2f0 100644
--- a/l3kernel/testfiles/m3file001.uptex.tlg
+++ b/l3kernel/testfiles/m3file001.uptex.tlg
@@ -154,7 +154,6 @@ Path: "/", Name: " ", Ext: ""
TEST 8: File listing
============================================================
> File List <
-l3sys.def
minimal.cls
regression-test
regression-test.cfg
@@ -162,6 +161,7 @@ fontenc.sty
ot1enc.def
expl3.sty
l3debug.def
+l3sys.def
l3backend-dvipdfmx.def
filetest.txt
filetest-endinput.txt
diff --git a/l3kernel/testfiles/m3file001.xetex.tlg b/l3kernel/testfiles/m3file001.xetex.tlg
index c60509652..fbcf8ccfe 100644
--- a/l3kernel/testfiles/m3file001.xetex.tlg
+++ b/l3kernel/testfiles/m3file001.xetex.tlg
@@ -154,7 +154,6 @@ Path: "/", Name: " ", Ext: ""
TEST 8: File listing
============================================================
> File List <
-l3sys.def
minimal.cls
regression-test
regression-test.cfg
@@ -162,6 +161,7 @@ fontenc.sty
ot1enc.def
expl3.sty
l3debug.def
+l3sys.def
l3backend-xdvipdfmx.def
filetest.txt
filetest-endinput.txt
More information about the latex3-commits
mailing list