[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