summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty205
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty35
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex65
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvips.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def2
18 files changed, 186 insertions, 149 deletions
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
index f9ed7d0c25c..87c8790e3d3 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
@@ -20,7 +20,7 @@
%%
%% File: l3benchmark.dtx Copyright (C) 2011,2012,2014-2018 The LaTeX3 Project
\RequirePackage{expl3}
-\ProvidesExplPackage{l3benchmark}{2018-10-31}{}
+\ProvidesExplPackage{l3benchmark}{2018-11-19}{}
{L3 Experimental benchmarking}
\sys_if_engine_luatex:TF
{
@@ -62,57 +62,22 @@
\c_zero_int
}
}
-\fp_new:N \g_benchmark_time_fp
-\fp_new:N \g_benchmark_ops_fp
-\cs_new_protected:Npn \benchmark_display:
- { \iow_term:x { \fp_to_tl:N \g_benchmark_time_fp \c_space_tl seconds } }
-\cs_new_protected:Npn \benchmark_display_in_ops:
- {
- \iow_term:x
- {
- \fp_compare:nTF { \g_benchmark_ops_fp > 1e9 }
- { \fp_to_tl:n { \g_benchmark_ops_fp * 1e-9 } ~ G~ops }
- {
- \fp_compare:nTF { \g_benchmark_ops_fp > 1e6 }
- { \fp_to_tl:n { \g_benchmark_ops_fp * 1e-6 } ~ M~ops }
- {
- \fp_compare:nTF { \g_benchmark_ops_fp > 1e3 }
- { \fp_to_tl:n { \g_benchmark_ops_fp * 1e-3 } ~ K~ops }
- { \fp_to_tl:n { \g_benchmark_ops_fp } ~ ops }
- }
- }
- }
- }
+\fp_new:N \g_benchmark_duration_target_fp
+\fp_gset:Nn \g_benchmark_duration_target_fp { 1 }
\sys_if_timer_exist:F
{
- \msg_new:nnnn { benchmark } { no-time }
- { The~l3benchmark~package~failed~to~access~a~clock. }
- { The~current~engine~provides~no~way~to~access~the~system~time. }
+ \fp_gset:Nn \g_benchmark_duration_target_fp { nan }
\cs_new_protected:Npn \benchmark_once:n #1
{ \msg_error:nn { benchmark } { no-time } }
- \cs_new_protected:Npn \benchmark_once_in_ops:n #1
- { \msg_error:nn { benchmark } { no-time } }
- \cs_new_protected:Npn \benchmark_once_silent:n #1
- { \msg_error:nn { benchmark } { no-time } }
- \cs_new_protected:Npn \benchmark:n #1
- { \msg_error:nn { benchmark } { no-time } }
- \cs_new_protected:Npn \benchmark_in_ops:n #1
+ \cs_new_eq:NN \benchmark:n \benchmark_once:n
+ \cs_new_protected:Npn \benchmark_tic:
{ \msg_error:nn { benchmark } { no-time } }
- \cs_new_protected:Npn \benchmark_silent:n #1
- { \msg_error:nn { benchmark } { no-time } }
- \fp_gset:Nn \g_benchmark_time_fp { nan }
- \fp_gset:Nn \g_benchmark_ops_fp { nan }
+ \cs_new_eq:NN \benchmark_toc: \benchmark_tic:
+ \msg_new:nnnn { benchmark } { no-time }
+ { The~l3benchmark~package~failed~to~access~a~clock. }
+ { The~current~engine~provides~no~way~to~access~the~system~time. }
\msg_critical:nn { benchmark } { no-time }
}
-\fp_new:N \g_benchmark_duration_target_fp
-\fp_gset:Nn \g_benchmark_duration_target_fp { 1 }
-\int_new:N \g__benchmark_duration_int
-\int_new:N \g__benchmark_time_int
-\int_new:N \g__benchmark_time_a_int
-\int_new:N \g__benchmark_time_b_int
-\int_new:N \g__benchmark_time_c_int
-\int_new:N \g__benchmark_time_d_int
-\int_new:N \g__benchmark_repeat_int
\int_new:N \g__benchmark_nesting_int
\cs_new_protected:Npn \__benchmark_raw:nN #1
{
@@ -163,63 +128,52 @@
\int_gset:Nn #3 { #1 - \g__benchmark_time_int }
\cs_set_eq:NN \__benchmark_tmp:w \prg_do_nothing:
}
-\fp_new:N \g__benchmark_one_op_fp
+\fp_new:N \g__benchmark_time_fp
+\fp_new:N \g__benchmark_ops_fp
+\int_new:N \g__benchmark_duration_int
+\int_new:N \g__benchmark_time_int
+\int_new:N \g__benchmark_time_a_int
+\int_new:N \g__benchmark_time_b_int
+\int_new:N \g__benchmark_time_c_int
+\int_new:N \g__benchmark_time_d_int
+\int_new:N \g__benchmark_repeat_int
\tl_new:N \g__benchmark_code_tl
-\cs_new_protected:Npn \benchmark:n #1
- { \benchmark_silent:n {#1} \benchmark_display: }
-\cs_new_protected:Npn \benchmark_in_ops:n #1
- { \benchmark_silent:n {#1} \benchmark_display_in_ops: }
-\cs_new_protected:Npn \__benchmark_measure_op:
+\cs_new_protected:Npn \benchmark_once:n #1
{
- \int_gset:Nn \g__benchmark_duration_int { 256 }
- \tl_gset:Nn \g__benchmark_code_tl
- { \int_gset:Nn \g__benchmark_duration_int { 256 } } % arbitrary single operation
- \__benchmark_aux:
- \fp_gset_eq:NN \g__benchmark_one_op_fp \g_benchmark_time_fp
- \fp_compare:nNnT \g__benchmark_one_op_fp < { 1e-6 }
- { \fp_gset:Nn \g__benchmark_one_op_fp { 1e-6 } }
+ \__benchmark_measure_op:
+ \__benchmark_raw:nN {#1} \g__benchmark_time_int
+ \fp_gset:Nn \g__benchmark_time_fp { \g__benchmark_time_int / 65536 }
+ \__benchmark_display:
}
-\cs_new_protected:Npn \benchmark_silent:n #1
+\cs_new_protected:Npn \benchmark:n #1
{
\__benchmark_measure_op:
- \int_gset:Nn \g__benchmark_duration_int
- { \fp_to_int:n { 65536 * \g_benchmark_duration_target_fp } }
\tl_gset:Nn \g__benchmark_code_tl {#1}
\__benchmark_aux:
- \fp_gset:Nn \g_benchmark_ops_fp
- { \g_benchmark_time_fp / \g__benchmark_one_op_fp }
+ \__benchmark_display:
}
\cs_new_protected:Npn \__benchmark_aux:
{
\int_gset:Nn \g__benchmark_repeat_int { 1 }
\__benchmark_raw:nN { \g__benchmark_code_tl } \g__benchmark_time_int
\int_compare:nNnF \g__benchmark_time_int < { \g__benchmark_duration_int / 2 }
+ { \prg_break: }
+ \bool_until_do:nn
{
- \int_gset_eq:NN \g__benchmark_time_a_int \g__benchmark_time_int
- \int_gset_eq:NN \g__benchmark_time_b_int \g__benchmark_time_int
- \int_gset_eq:NN \g__benchmark_time_c_int \g__benchmark_time_int
- \int_gset_eq:NN \g__benchmark_time_d_int \g__benchmark_time_int
- \prg_break:
+ \int_compare_p:nNn \g__benchmark_time_int > { \g__benchmark_duration_int / 32 }
+ || \int_compare_p:nNn \g__benchmark_repeat_int > { \c_max_int / 4 }
}
- \int_while_do:nNnn \g__benchmark_time_int < { \g__benchmark_duration_int / 100 }
{
- \int_compare:nNnT \g__benchmark_repeat_int > { \c_max_int / 4 }
- {
- \int_gzero:N \g__benchmark_time_a_int
- \int_gzero:N \g__benchmark_time_b_int
- \int_gzero:N \g__benchmark_time_c_int
- \int_gzero:N \g__benchmark_time_d_int
- \prg_break:
- }
\int_gset:Nn \g__benchmark_repeat_int { 4 * \g__benchmark_repeat_int }
\__benchmark_run:N \g__benchmark_time_int
}
\int_gset:Nn \g__benchmark_repeat_int
{
- \int_max:nn { 1 }
+ \fp_to_int:n
{
- \g__benchmark_duration_int * \g__benchmark_repeat_int
- / ( \g__benchmark_time_int * 4 )
+ max ( 1 , min ( \c_max_int ,
+ \g__benchmark_duration_int * \g__benchmark_repeat_int /
+ \int_eval:n { 4 * \g__benchmark_time_int } ) )
}
}
\int_compare:nNnTF \g__benchmark_repeat_int = 1
@@ -228,76 +182,87 @@
\__benchmark_run:N \g__benchmark_time_b_int
\__benchmark_run:N \g__benchmark_time_c_int
\__benchmark_run:N \g__benchmark_time_d_int
- \prg_break_point:
- \fp_gset:Nn \g_benchmark_time_fp
+ \int_gset:Nn \g__benchmark_time_int
{
\int_min:nn
{ \int_min:nn \g__benchmark_time_a_int \g__benchmark_time_b_int }
{ \int_min:nn \g__benchmark_time_c_int \g__benchmark_time_d_int }
- / \g__benchmark_repeat_int / 65536
}
+ \prg_break_point:
+ \int_compare:nNnT \g__benchmark_time_int < 3 { \int_gzero:N \g__benchmark_time_int }
+ \fp_gset:Nn \g__benchmark_time_fp
+ { \g__benchmark_time_int / \g__benchmark_repeat_int / 65536 }
}
\cs_new_protected:Npn \__benchmark_run:N
{ \exp_args:NNo \__benchmark_raw_replicate:nnN \g__benchmark_repeat_int { \g__benchmark_code_tl } }
-\cs_new_protected:Npn \benchmark_once:n #1
- { \benchmark_once_silent:n {#1} \benchmark_display: }
-\cs_new_protected:Npn \benchmark_once_in_ops:n #1
- { \benchmark_once_silent:n {#1} \benchmark_display_in_ops: }
-\cs_new_protected:Npn \benchmark_once_silent:n #1
+\fp_new:N \g__benchmark_one_op_fp
+\cs_new_protected:Npn \__benchmark_measure_op:
{
- \__benchmark_measure_op:
- \__benchmark_raw:nN {#1} \g__benchmark_time_int
- \fp_gset:Nn \g_benchmark_time_fp { \g__benchmark_time_int / 65536 }
- \fp_gset:Nn \g_benchmark_ops_fp
- { \g_benchmark_time_fp / \g__benchmark_one_op_fp }
+ \int_gset:Nn \g__benchmark_duration_int
+ { \fp_to_int:n { 65536 * \g_benchmark_duration_target_fp } / 4 }
+ \tl_gset:Nn \g__benchmark_code_tl
+ { \int_gadd:Nn \g__benchmark_duration_int { 0 } }
+ \__benchmark_aux:
+ \fp_gset:Nn \g__benchmark_one_op_fp { max(\g__benchmark_time_fp, 1e-16) }
+ \int_gset:Nn \g__benchmark_duration_int
+ { \fp_to_int:n { 65536 * \g_benchmark_duration_target_fp } }
}
-\int_new:N \g__benchmark_tictoc_int
-\seq_new:N \g__benchmark_tictoc_seq
-\cs_new_protected:Npn \benchmark_tic:
+\cs_new:Npn \__benchmark_fp_to_tl:N #1
{
- \int_compare:nTF { \g__benchmark_tictoc_int == 0 }
+ \fp_compare:nTF { abs(#1) < 1000 }
+ { \fp_to_tl:n { round(#1, 2 - logb(#1)) } }
{
- \sys_gzero_timer:
- \__benchmark_tic:
+ \exp_args:Nf \__benchmark_fp_to_tl_aux:nN
+ { \fp_to_int:n { logb(#1) } } #1
}
- { \__benchmark_tic: }
}
-\cs_new_protected:Npn \__benchmark_tic:
+\cs_new:Npn \__benchmark_fp_to_tl_aux:nN #1#2
+ { \fp_to_tl:n { round(#2 * 1e-#1, 2) } e#1 }
+\cs_new_protected:Npn \__benchmark_display:
{
- \exp_args:NNf \seq_put_right:Nn \g__benchmark_tictoc_seq { \sys_timer: }
- \int_gincr:N \g__benchmark_tictoc_int
+ \fp_gset:Nn \g__benchmark_ops_fp { \g__benchmark_time_fp / \g__benchmark_one_op_fp }
\iow_term:x
{
- \prg_replicate:nn {\g__benchmark_tictoc_int} {---+} \space
- TIC
+ \__benchmark_fp_to_tl:N \g__benchmark_time_fp \c_space_tl seconds \c_space_tl
+ ( \__benchmark_fp_to_tl:N \g__benchmark_ops_fp \c_space_tl ops)
}
}
+\int_new:N \g__benchmark_tictoc_int
+\seq_new:N \g__benchmark_tictoc_seq
+\tl_new:N \l__benchmark_tictoc_pop_tl
+\cs_new:Npn \__benchmark_tictoc_prefix:
+ {
+ (l3benchmark) \c_space_tl
+ + \prg_replicate:nn { \g__benchmark_tictoc_int } { -+ } \c_space_tl
+ }
+\cs_new_protected:Npn \benchmark_tic:
+ {
+ \iow_term:x { \__benchmark_tictoc_prefix: TIC }
+ \exp_args:NNf \seq_gput_right:Nn \g__benchmark_tictoc_seq { \sys_timer: }
+ \int_gincr:N \g__benchmark_tictoc_int
+ }
\cs_new:Npn \benchmark_toc:
{
- \int_compare:nT { \g__benchmark_tictoc_int == 0 }
- { \msg_error:nn {benchmark} {toc-first} }
- \seq_pop_right:NN \g__benchmark_tictoc_seq \l__benchmark_tictoc_pop_tl
- \__benchmark_toc:
+ \seq_gpop_right:NNTF \g__benchmark_tictoc_seq \l__benchmark_tictoc_pop_tl
+ { \__benchmark_toc: }
+ { \msg_error:nn { benchmark } { toc-first } }
}
\cs_new_protected:Npn \__benchmark_toc:
{
- \tl_set:Nx \l__benchmark_tictoc_tl
- {
- \fp_to_decimal:n
- { round( ( \sys_timer: - \l__benchmark_tictoc_pop_tl) / 65536 , 3 ) }
- }
+ \int_gdecr:N \g__benchmark_tictoc_int
+ \fp_gset:Nn \g__benchmark_time_fp
+ { ( \sys_timer: - \l__benchmark_tictoc_pop_tl ) / 65536 }
\iow_term:x
{
- \prg_replicate:nn {\g__benchmark_tictoc_int} {---+} \c_space_tl
+ \__benchmark_tictoc_prefix:
TOC: \c_space_tl
- \l__benchmark_tictoc_tl \c_space_tl s
+ \__benchmark_fp_to_tl:N \g__benchmark_time_fp \c_space_tl s
}
- \int_gdecr:N \g__benchmark_tictoc_int
}
-\msg_new:nnn {benchmark} {toc-first}
+\msg_new:nnn { benchmark } { toc-first }
{
- \token_to_str:N \benchmark_toc: \space without~
- \token_to_str:N \benchmark_tic: \space !
+ \token_to_str:N \benchmark_toc: \c_space_tl without~
+ \token_to_str:N \benchmark_tic: \c_space_tl !
}
%%
%%
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty b/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty
index a673ae3beeb..b94484a9d1a 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty
@@ -20,8 +20,10 @@
%%
%% File: l3cctab.dtx Copyright (C) 2018 The LaTeX3 Project
\RequirePackage{expl3}
-\ProvidesExplPackage{l3cctab}{2018-10-31}{}
+\ProvidesExplPackage{l3cctab}{2018-11-19}{}
{L3 Experimental category code tables}
+\int_new:N \g__cctab_allocate_int
+\int_gset:Nn \g__cctab_allocate_int { -1 }
\int_new:N \g__cctab_stack_int
\seq_new:N \g__cctab_stack_seq
\tl_new:N \l__cctab_tmp_tl
@@ -31,7 +33,6 @@
{
\__kernel_chk_if_free_cs:N #1
\newcatcodetable #1
- \tex_initcatcodetable:D #1
}
\cs_new_protected:Npn \cctab_begin:N #1
{
@@ -61,18 +62,26 @@
}
{
\cs_new_protected:Npn \__cctab_gstore:Nnn #1#2#3
- { \intarray_gset:Nnn #1 { #2 + 1 } {#3} }
+ {
+ \intarray_gset:cnn
+ { g__cctab_ \int_use:N #1 _cctab } { #2 + 1 } {#3}
+ }
\cs_new_protected:Npn \cctab_new:N #1
{
- \intarray_new:Nn #1 { 256 }
+ \int_gadd:Nn \g__cctab_allocate_int { 1 }
+ \int_const:Nn #1 { \g__cctab_allocate_int }
+ \intarray_new:cn { g__cctab_ \int_use:N #1 _cctab } { 256 }
\int_step_inline:nn { 256 }
- { \intarray_gset:Nnn #1 {##1} { 12 } }
+ {
+ \intarray_gset:cnn
+ { g__cctab_ \int_use:N #1 _cctab } {##1} { 12 }
+ }
\__cctab_gstore:Nnn #1 { 0 } { 9 }
\__cctab_gstore:Nnn #1 { 13 } { 5 }
\__cctab_gstore:Nnn #1 { 32 } { 10 }
\__cctab_gstore:Nnn #1 { 37 } { 14 }
- \int_step_inline:nnn { 65 } { 90 }
- { \intarray_gset:Nnn #1 {##1} { 11 } }
+ \int_step_inline:nnn { 64 } { 89 }
+ { \__cctab_gstore:Nnn #1 {##1} { 11 } }
\__cctab_gstore:Nnn #1 { 92 } { 0 }
\int_step_inline:nnn { 97 } { 122 }
{ \__cctab_gstore:Nnn #1 {##1} { 11 } }
@@ -99,7 +108,10 @@
\int_step_inline:nn { 256 }
{
\char_set_catcode:nn { ##1 - 1 }
- { \intarray_item:Nn #1 {##1} }
+ {
+ \intarray_item:cn
+ { g__cctab_ \int_use:N #1 _cctab } {##1}
+ }
}
}
\cs_generate_variant:Nn \intarray_new:Nn { c }
@@ -124,17 +136,16 @@
#2
\int_step_inline:nn { 256 }
{
- \intarray_gset:Nnn #1 {##1}
+ \intarray_gset:cnn { g__cctab_ \int_use:N #1 _cctab } {##1}
{ \char_value_catcode:n { ##1 - 1 } }
}
\group_end:
}
}
-\cctab_new:N \g__cctab_tmp_cctab
\cs_new_protected:Npn \cctab_const:Nn #1#2
{
- \cctab_gset:Nn \g__cctab_tmp_cctab {#2}
- \cs_new_eq:NN #1 \g__cctab_tmp_cctab
+ \cctab_new:N #1
+ \cctab_gset:Nn #1 {#2}
}
\cctab_const:Nn \c_code_cctab { }
\cctab_const:Nn \c_document_cctab
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty
index 16e910101db..5caa1a16b60 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty
@@ -20,7 +20,7 @@
%%
%% File: l3color.dtx Copyright(C) 2017-2018 The LaTeX3 Project
\RequirePackage{expl3}
-\ProvidesExplPackage{l3color}{2018-10-31}{}
+\ProvidesExplPackage{l3color}{2018-11-19}{}
{L3 Experimental color support}
\tl_new:N \l__color_tmp_tl
\prg_new_conditional:Npnn \__color_if_defined:n #1 { T, F, TF }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
index ff825b3402e..7568542ba7c 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
@@ -27,7 +27,7 @@
%%
%% File: l3draw.dtx Copyright(C) 2018 The LaTeX3 Project
\RequirePackage{expl3}
-\ProvidesExplPackage{l3draw}{2018-10-31}{}
+\ProvidesExplPackage{l3draw}{2018-11-19}{}
{L3 Experimental core drawing support}
\RequirePackage { l3color }
%% File: l3draw-boxes.dtx Copyright(C) 2018 The LaTeX3 Project
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
index aa696ec5941..bba4a7b3ffa 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
@@ -20,7 +20,7 @@
%%
%% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project
\RequirePackage{expl3}
-\ProvidesExplPackage{l3str-convert}{2018-10-31}{}
+\ProvidesExplPackage{l3str-convert}{2018-11-19}{}
{L3 Experimental string encoding conversions}
\cs_if_exist:NF \use_ii_i:nn
{ \cs_new:Npn \use_ii_i:nn #1#2 { #2 #1 } }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
index b224455020d..83aff2b089a 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
@@ -20,7 +20,7 @@
%%
%% File: l3str-format.dtx Copyright (C) 2012-2018 The LaTeX3 Project
\RequirePackage{expl3}
-\ProvidesExplPackage{l3str-format}{2018-10-31}{}
+\ProvidesExplPackage{l3str-format}{2018-11-19}{}
{L3 Experimental string formatting}
\cs_generate_variant:Nn \use:nn { nf }
\cs_generate_variant:Nn \use:nnn { fnf }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
index f572fb006c7..87b1b13a41c 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
@@ -20,7 +20,7 @@
%%
%% File: l3sys-shell.dtx Copyright(C) 2018 The LaTeX3 Project
\RequirePackage{expl3}
-\ProvidesExplPackage{l3sys-shell}{2018-10-31}{}
+\ProvidesExplPackage{l3sys-shell}{2018-11-19}{}
{L3 Experimental system shell functions}
\cs_new:Npn \__sys_path_to_win:n #1
{
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
index 49be85fa7e4..dc2c8b88d66 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
@@ -20,7 +20,7 @@
%%
%% File: xcoffins.dtx Copyright(C) 2010-2012,2014,2016-2018 The LaTeX3 Project
\RequirePackage{xparse}
-\ProvidesExplPackage{xcoffins}{2018-10-31}{}
+\ProvidesExplPackage{xcoffins}{2018-11-19}{}
{L3 Experimental design level coffins}
\keys_define:nn { coffin }
{
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
index abe51eda60e..cc75515bc8f 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
@@ -33,7 +33,7 @@
}%
\endinput
}
-\ProvidesExplPackage{l3galley}{2018-10-31}{}
+\ProvidesExplPackage{l3galley}{2018-11-19}{}
{L3 Experimental galley code}
\int_new:N \l__galley_tmp_int
\seq_new:N \g__galley_tmpa_seq
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
index 43ced539cf6..7fb3391310f 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
@@ -21,7 +21,7 @@
%% File: xgalley.dtx Copyright (C) 1999-2001, 2004-2009 Frank Mittelbach
%% (C) 2010-2012,2014,2016-2018 The LaTeX3 Project
\RequirePackage{xparse}
-\ProvidesExplPackage{xgalley}{2018-10-31}{}
+\ProvidesExplPackage{xgalley}{2018-11-19}{}
{L3 Experimental galley}
\RequirePackage{xparse,xtemplate,l3galley}
\clist_new:N \l__galley_tmpa_clist
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index 6a96cdf65f2..8bf3a432a01 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -63,7 +63,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx Copyright (C) 1990-2018 The LaTeX3 Project
-\def\ExplFileDate{2018-10-31}%
+\def\ExplFileDate{2018-11-19}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -837,6 +837,7 @@
\__kernel_primitive:NN \pdfeachlinedepth \tex_eachlinedepth:D
\__kernel_primitive:NN \pdfeachlineheight \tex_eachlineheight:D
\__kernel_primitive:NN \pdfelapsedtime \tex_elapsedtime:D
+ \__kernel_primitive:NN \pdffiledump \tex_filedump:D
\__kernel_primitive:NN \pdffilemoddate \tex_filemoddate:D
\__kernel_primitive:NN \pdffilesize \tex_filesize:D
\__kernel_primitive:NN \pdffirstlineheight \tex_firstlineheight:D
@@ -949,7 +950,11 @@
\__kernel_primitive:NN \XeTeXvariationmin \tex_XeTeXvariationmin:D
\__kernel_primitive:NN \XeTeXvariationname \tex_XeTeXvariationname:D
\__kernel_primitive:NN \XeTeXversion \tex_XeTeXversion:D
+ \__kernel_primitive:NN \creationdate \tex_creationdate:D
\__kernel_primitive:NN \elapsedtime \tex_elapsedtime:D
+ \__kernel_primitive:NN \filedump \tex_filedump:D
+ \__kernel_primitive:NN \filemoddate \tex_filemoddate:D
+ \__kernel_primitive:NN \filesize \tex_filesize:D
\__kernel_primitive:NN \mdfivesum \tex_mdfivesum:D
\__kernel_primitive:NN \ifprimitive \tex_ifprimitive:D
\__kernel_primitive:NN \primitive \tex_primitive:D
@@ -15557,6 +15562,8 @@
%% File: l3fp-basics.dtx Copyright (C) 2011-2014,2016-2018 The LaTeX3 Project
\cs_new:Npn \__fp_parse_word_abs:N
{ \__fp_parse_unary_function:NNN \__fp_set_sign_o:w 0 }
+\cs_new:Npn \__fp_parse_word_logb:N
+ { \__fp_parse_unary_function:NNN \__fp_logb_o:w ? }
\cs_new:Npn \__fp_parse_word_sign:N
{ \__fp_parse_unary_function:NNN \__fp_sign_o:w ? }
\cs_new:Npn \__fp_parse_word_sqrt:N
@@ -16298,6 +16305,22 @@
\int_value:w \__fp_int_eval:w #6 + 19999 - #1 ;
\exp_after:wN ;
}
+\cs_new:Npn \__fp_logb_o:w ? \s__fp \__fp_chk:w #1#2; @
+ {
+ \if_case:w #1 \exp_stop_f:
+ \__fp_case_use:nw
+ { \__fp_division_by_zero_o:Nnw \c_minus_inf_fp { logb } }
+ \or: \exp_after:wN \__fp_logb_aux_o:w
+ \or: \__fp_case_return_o:Nw \c_inf_fp
+ \else: \__fp_case_return_same_o:w
+ \fi:
+ \s__fp \__fp_chk:w #1 #2;
+ }
+\cs_new:Npn \__fp_logb_aux_o:w \s__fp \__fp_chk:w #1 #2 #3 #4 ;
+ {
+ \exp_after:wN \__fp_parse:n \exp_after:wN
+ { \int_value:w \int_eval:w #3 - 1 \exp_after:wN }
+ }
\cs_new:Npn \__fp_sign_o:w ? \s__fp \__fp_chk:w #1#2; @
{
\if_case:w #1 \exp_stop_f:
@@ -24089,7 +24112,7 @@
{ l__coffin_poles_ \__coffin_to_value:N #1 _prop } {#2} #3
{
\__kernel_msg_error:nnxx { kernel } { unknown-coffin-pole }
- {#2} { \token_to_str:N #1 }
+ { \exp_not:n {#2} } { \token_to_str:N #1 }
\tl_set:Nn #3 { { 0pt } { 0pt } { 0pt } { 0pt } }
}
}
@@ -25261,6 +25284,8 @@
{#5} {#6}
}
}
+\cs_new:Npn \fp_sign:n #1
+ { \fp_to_decimal:n { sign \__fp_parse:n {#1} } }
\cs_new_protected:Npn \file_get_mdfive_hash:nN #1#2
{ \__file_get_details:nnN {#1} { mdfivesum } {#2} }
\cs_new_protected:Npn \file_get_size:nN #1#2
@@ -25340,6 +25365,22 @@
\cs:w flag~#1 \cs_end: 0 ;
\fi:
}
+\__kernel_patch_args:nNNpn
+ { { \__kernel_chk_expr:nNnN {#1} \__int_eval:w { } \int_sign:n } }
+\cs_new:Npn \int_sign:n #1
+ {
+ \int_value:w \exp_after:wN \__int_sign:Nw
+ \int_value:w \__int_eval:w #1 \__int_eval_end: ;
+ \exp_stop_f:
+ }
+\cs_new:Npn \__int_sign:Nw #1#2 ;
+ {
+ \if_meaning:w 0 #1
+ 0
+ \else:
+ \if_meaning:w - #1 - \fi: 1
+ \fi:
+ }
\cs_new:Npn \msg_expandable_error:nnnnnn #1#2#3#4#5#6
{
\exp_args:Nf \__msg_expandable_error_module:nn
@@ -25598,6 +25639,26 @@
\exp_after:wN #1
\int_value:w \int_eval:w 1 + #2 ;
}
+\__kernel_patch_args:nNNpn
+ { { \__kernel_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_sign:n } }
+\cs_new:Npn \dim_sign:n #1
+ {
+ \int_value:w \exp_after:wN \__dim_sign:Nw
+ \dim_use:N \__dim_eval:w #1 \__dim_eval_end: ;
+ \exp_stop_f:
+ }
+\cs_new:Npn \__dim_sign:Nw #1#2 ;
+ {
+ \if_dim:w #1#2 > \c_zero_dim
+ 1
+ \else:
+ \if_meaning:w - #1
+ -1
+ \else:
+ 0
+ \fi:
+ \fi:
+ }
\cs_new:Npn \skip_split_finite_else_action:nnNN #1#2#3#4
{
\skip_if_finite:nTF {#1}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
index 4a637b830c5..8ce266d05a8 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx Copyright (C) 1990-2018 The LaTeX3 Project
-\def\ExplFileDate{2018-10-31}%
+\def\ExplFileDate{2018-11-19}%
\let\ExplLoaderFileDate\ExplFileDate
\begingroup
\def\tempa{LaTeX2e}%
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
index ab9906724e1..a774f4a9048 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx Copyright (C) 1990-2018 The LaTeX3 Project
-\def\ExplFileDate{2018-10-31}%
+\def\ExplFileDate{2018-11-19}%
\let\ExplLoaderFileDate\ExplFileDate
\ProvidesPackage{expl3}
[%
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
index ed50851dbd4..a242b6eea3c 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
@@ -20,7 +20,7 @@
%%
%% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
\ProvidesExplFile
- {l3dvidpfmx.def}{2018-10-31}{}
+ {l3dvidpfmx.def}{2018-11-19}{}
{L3 Experimental driver: dvipdfmx}
\cs_new_eq:NN \__driver_literal:e \tex_special:D
\cs_new_protected:Npn \__driver_literal:n #1
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
index b8f3670e7e1..a2d5fd5ab52 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
@@ -20,7 +20,7 @@
%%
%% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
\ProvidesExplFile
- {l3dvips.def}{2018-10-31}{}
+ {l3dvips.def}{2018-11-19}{}
{L3 Experimental driver: dvips}
\cs_new_eq:NN \__driver_literal:e \tex_special:D
\cs_new_protected:Npn \__driver_literal:n #1
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
index c3d8fe8c5c9..39ee76c2b9f 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
@@ -20,7 +20,7 @@
%%
%% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
\ProvidesExplFile
- {l3dvisvgm.def}{2018-10-31}{}
+ {l3dvisvgm.def}{2018-11-19}{}
{L3 Experimental driver: dvisvgm}
\cs_new_eq:NN \__driver_literal:e \tex_special:D
\cs_new_protected:Npn \__driver_literal:n #1
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
index 07b01ffd13f..afac364e67f 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
@@ -20,7 +20,7 @@
%%
%% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
\ProvidesExplFile
- {l3pdfmode.def}{2018-10-31}{}
+ {l3pdfmode.def}{2018-11-19}{}
{L3 Experimental driver: PDF mode}
\cs_new_eq:NN \__driver_literal:e \tex_special:D
\cs_new_protected:Npn \__driver_literal:n #1
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
index f7796bc13b3..69e0bb4e3da 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
@@ -20,7 +20,7 @@
%%
%% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
\ProvidesExplFile
- {l3xdvidpfmx.def}{2018-10-31}{}
+ {l3xdvidpfmx.def}{2018-11-19}{}
{L3 Experimental driver: xdvipdfmx}
\cs_new_eq:NN \__driver_literal:e \tex_special:D
\cs_new_protected:Npn \__driver_literal:n #1