[latex3-commits] [git/LaTeX3-latex3-latex3] master: Provide a pre-load version of xparse (d8738ca65)

Joseph Wright joseph.wright at morningstar2.co.uk
Thu Mar 5 23:12:59 CET 2020


Repository : https://github.com/latex3/latex3
On branch  : master
Link       : https://github.com/latex3/latex3/commit/d8738ca65c795141b2487cbbb4365ab359ff2a79

>---------------------------------------------------------------

commit d8738ca65c795141b2487cbbb4365ab359ff2a79
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Thu Mar 5 22:09:23 2020 +0000

    Provide a pre-load version of xparse


>---------------------------------------------------------------

d8738ca65c795141b2487cbbb4365ab359ff2a79
 l3packages/CHANGELOG.md      |   3 ++
 l3packages/xparse/build.lua  |   2 +
 l3packages/xparse/xparse.dtx | 109 ++++++++++++++++++++++++++++++-------------
 l3packages/xparse/xparse.ins |   3 +-
 4 files changed, 83 insertions(+), 34 deletions(-)

diff --git a/l3packages/CHANGELOG.md b/l3packages/CHANGELOG.md
index 9b92b8401..082a88bf5 100644
--- a/l3packages/CHANGELOG.md
+++ b/l3packages/CHANGELOG.md
@@ -7,6 +7,9 @@ this project uses date-based 'snapshot' version identifiers.
 
 ## [Unreleased]
 
+### Added
+- Pre-loader file `xparse.ltx`
+
 ## [2020-03-03]
 
 ### Changed
diff --git a/l3packages/xparse/build.lua b/l3packages/xparse/build.lua
index e7b0ee9c5..46de200ce 100644
--- a/l3packages/xparse/build.lua
+++ b/l3packages/xparse/build.lua
@@ -7,6 +7,8 @@
 bundle = "l3packages"
 module = "xparse"
 
+installfiles = {"xparse.ltx", "xparse.sty"}
+
 -- Location of main directory: use Unix-style path separators
 maindir = "../.."
 
diff --git a/l3packages/xparse/xparse.dtx b/l3packages/xparse/xparse.dtx
index 279b2e58c..1c2f7238b 100644
--- a/l3packages/xparse/xparse.dtx
+++ b/l3packages/xparse/xparse.dtx
@@ -970,11 +970,26 @@
 % \section{\pkg{xparse} implementation}
 %
 %    \begin{macrocode}
-%<*package>
+%<@@=xparse>
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-%<@@=xparse>
+%<*2ekernel>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\everyjob\expandafter{\the\everyjob
+  \message{xparse <2020-03-03>}%
+}
+\ExplSyntaxOn
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</2ekernel>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*package>
 %    \end{macrocode}
 %
 %    \begin{macrocode}
@@ -982,8 +997,46 @@
   {L3 Experimental document command parser}
 %    \end{macrocode}
 %
+% \subsection{Package options}
+%
+% \begin{variable}{\l_@@_options_clist}
+% \begin{variable}{\l_@@_log_bool}
+%   Key--value option to log information: done by hand to keep dependencies
+%   down.
+%    \begin{macrocode}
+\clist_new:N \l_@@_options_clist
+\DeclareOption* { \clist_put_right:NV \l_@@_options_clist \CurrentOption }
+\ProcessOptions \relax
+\keys_define:nn { xparse }
+  {
+    log-declarations .bool_set:N = \l_@@_log_bool ,
+    log-declarations .initial:n  = false
+  }
+\keys_set:nV { xparse } \l_@@_options_clist
+\bool_if:NF \l_@@_log_bool
+  { \msg_redirect_module:nnn { LaTeX / xparse } { info } { none } }
+%    \end{macrocode}
+% \end{variable}
+% \end{variable}
+%
+% \subsection{Reload check}
+%
+% A simple reload check.
+%    \begin{macrocode}
+\cs_if_exist:NT \NewDocumentCommand
+  { \file_input_stop: }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</package>
+%    \end{macrocode}
+%
 % \subsection{Variables and constants}
 %
+%    \begin{macrocode}
+%<*package|2ekernel>
+%    \end{macrocode}
+%
 % \begin{variable}{\c_@@_special_chars_seq}
 %   In \IniTeX{} mode, we store special characters in a sequence.
 %   Maybe |$| or |&| will have to be added later.
@@ -1424,9 +1477,9 @@
 %<*initex>
     \cs_if_exist:cTF { environment~ \l_@@_environment_str }
 %</initex>
-%<*package>
+%<*package|2ekernel>
     \cs_if_exist:cTF { \l_@@_environment_str }
-%</package>
+%</package|2ekernel>
       {
         \__kernel_msg_info:nnxx { xparse } { redefine-environment }
           { \l_@@_environment_str } { \tl_to_str:n {#2} }
@@ -1472,10 +1525,10 @@
         \cs_generate_from_arg_count:cNnn
           { environment~ #1 ~end~aux~ } \cs_set:Npn
           \l_@@_current_arg_int {#4}
-%<*package>
+%<*package|2ekernel>
         \cs_set_eq:cc {#1}       { environment~ #1 }
         \cs_set_eq:cc { end #1 } { environment~ #1 ~end }
-%</package>
+%</package|2ekernel>
       }
   }
 %    \end{macrocode}
@@ -1495,9 +1548,9 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_start_env:nnnnn #1#2
   {
-%<*package>
+%<*package|2ekernel>
     \cs_if_exist_use:N \conditionally at traceoff
-%</package>
+%</package|2ekernel>
     \str_set:Nn \l_@@_environment_str {#2}
     \bool_set_true:N \l_@@_environment_bool
     \@@_start_aux:ccnnnn
@@ -1507,9 +1560,9 @@
   }
 \cs_new_protected:Npx \@@_start:nNNnnn #1#2#3
   {
-%<*package>
+%<*package|2ekernel>
     \exp_not:n { \cs_if_exist_use:N \conditionally at traceoff }
-%</package>
+%</package|2ekernel>
     \exp_not:c { xparse~function~is~not~expandable }
     \exp_not:n { \bool_set_false:N \l_@@_environment_bool }
     \exp_not:N \@@_start_aux:NNnnnn
@@ -1546,9 +1599,9 @@
   {
     \tl_if_empty:NF \l_@@_defaults_tl { \@@_defaults: }
     \tl_if_empty:NF \l_@@_process_all_tl { \@@_args_process: }
-%<*package>
+%<*package|2ekernel>
     \cs_if_exist_use:N \conditionally at traceon
-%</package>
+%</package|2ekernel>
     \exp_after:wN \l_@@_fn_code_tl \l_@@_args_tl
   }
 %    \end{macrocode}
@@ -3641,10 +3694,10 @@
       \c_@@_special_chars_seq
       \char_set_catcode_other:N
 %</initex>
-%<*package>
+%<*package|2ekernel>
     \cs_set_eq:NN \do \char_set_catcode_other:N
     \dospecials
-%</package>
+%</package|2ekernel>
     \tex_endlinechar:D = `\^^M \scan_stop:
     \bool_if:NTF \l_@@_long_bool
       { \char_set_catcode_other:n { \tex_endlinechar:D } }
@@ -5057,30 +5110,20 @@
 % \end{macro}
 % \end{macro}
 %
-% \subsection{Package options}
+%    \begin{macrocode}
+%<*2ekernel>
+%    \end{macrocode}
 %
-% \begin{variable}{\l_@@_options_clist}
-% \begin{variable}{\l_@@_log_bool}
-%   Key--value option to log information: done by hand to keep dependencies
-%   down.
 %    \begin{macrocode}
-\clist_new:N \l_@@_options_clist
-\DeclareOption* { \clist_put_right:NV \l_@@_options_clist \CurrentOption }
-\ProcessOptions \relax
-\keys_define:nn { xparse }
-  {
-    log-declarations .bool_set:N = \l_@@_log_bool ,
-    log-declarations .initial:n  = false
-  }
-\keys_set:nV { xparse } \l_@@_options_clist
-\bool_if:NF \l_@@_log_bool
-  { \msg_redirect_module:nnn { LaTeX / xparse } { info } { none } }
+\ExplSyntaxOff
 %    \end{macrocode}
-% \end{variable}
-% \end{variable}
 %
 %    \begin{macrocode}
-%</package>
+%</2ekernel>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</package|2ekernel>
 %    \end{macrocode}
 %
 % \end{implementation}
diff --git a/l3packages/xparse/xparse.ins b/l3packages/xparse/xparse.ins
index e65d25470..d40f7cd6f 100644
--- a/l3packages/xparse/xparse.ins
+++ b/l3packages/xparse/xparse.ins
@@ -42,6 +42,7 @@ and all files in that bundle must be distributed together.
 
 \keepsilent
 
-\generate{\file{xparse.sty} {\from{xparse.dtx} {package}}}
+\generate{\file{xparse.sty} {\from{xparse.dtx} {package}}
+          \file{xparse.ltx} {\from{xparse.dtx} {2ekernel}}}
 
 \endbatchfile





More information about the latex3-commits mailing list.