[latex3-commits] [git/LaTeX3-latex3-latex3] master: Make intarray public (28a1889)
Joseph Wright
joseph.wright at morningstar2.co.uk
Thu Mar 29 12:18:24 CEST 2018
Repository : https://github.com/latex3/latex3
On branch : master
Link : https://github.com/latex3/latex3/commit/28a18891050896ddfe8394dd7431faa2831bcb6b
>---------------------------------------------------------------
commit 28a18891050896ddfe8394dd7431faa2831bcb6b
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date: Thu Mar 29 10:27:01 2018 +0100
Make intarray public
>---------------------------------------------------------------
28a18891050896ddfe8394dd7431faa2831bcb6b
l3kernel/l3intarray.dtx | 123 +++++++++++++++++--------------
l3kernel/l3regex.dtx | 92 +++++++++++------------
l3kernel/testfiles/m3expl001.luatex.tlg | 12 +--
l3kernel/testfiles/m3expl001.ptex.tlg | 12 +--
l3kernel/testfiles/m3expl001.tlg | 12 +--
l3kernel/testfiles/m3expl001.uptex.tlg | 12 +--
l3kernel/testfiles/m3expl001.xetex.tlg | 12 +--
l3kernel/testfiles/m3expl003.luatex.tlg | 12 +--
l3kernel/testfiles/m3expl003.ptex.tlg | 12 +--
l3kernel/testfiles/m3expl003.tlg | 12 +--
l3kernel/testfiles/m3expl003.uptex.tlg | 12 +--
l3kernel/testfiles/m3expl003.xetex.tlg | 12 +--
l3kernel/testfiles/m3intarray001.lvt | 70 +++++++++---------
13 files changed, 209 insertions(+), 196 deletions(-)
diff --git a/l3kernel/l3intarray.dtx b/l3kernel/l3intarray.dtx
index 1f5b12f..80fd822 100644
--- a/l3kernel/l3intarray.dtx
+++ b/l3kernel/l3intarray.dtx
@@ -30,7 +30,7 @@
%
%
% \title{^^A
-% The \textsf{l3intarray} package: Low-level arrays of small integers^^A
+% The \textsf{l3intarray} package: fast global integer arrays^^A
% }
%
% \author{^^A
@@ -50,66 +50,79 @@
%
% \section{\pkg{l3intarray} documentation}
%
-% This module provides no user function: at present it is meant for
-% kernel use only.
-%
-% It is a wrapper around the \tn{fontdimen} primitive, used to store
-% arrays of integers (with a restricted range: absolute value at most
-% $2^{30}-1$). In contrast to \pkg{l3seq} sequences the access to
-% individual entries is done in constant time rather than linear time,
-% but only integers can be stored. More precisely, the primitive
-% \tn{fontdimen} stores dimensions but the \pkg{l3intarray} package
-% transparently converts these from/to integers. Assignments are always
-% global.
-%
-% While \LuaTeX{}'s memory is extensible, other engines can
-% \enquote{only} deal with a bit less than $4\times 10^6$ entries in all
-% \tn{fontdimen} arrays combined (with default \TeX{}Live settings).
-%
-% \subsection{Internal functions}
-%
-% \begin{function}{\__intarray_new:Nn}
+% For applications requiring heavy use of integers, this module provides
+% arrays which can be accessed in constant time (contrast \pkg{l3seq},
+% where access time is linear). These arrays have several important
+% features
+% \begin{itemize}
+% \item The size of the array is fixed and must be given at
+% point of initialisation
+% \item The absolute value of each entry has maximum $2^{30}-1$
+% (\emph{i.e.}~one power lower than the usual \cs{c_max_int}
+% ceiling of $2^{31}-1$)
+% \item The total number of entries in all \texttt{intarray} storage
+% must be less than $4\times 10^6$
+% \end{itemize}
+% The use of \texttt{intarray} data is therefore recommended for cases where
+% the need for fast access is of paramount importance.
+%
+% \begin{function}{\intarray_new:Nn}
% \begin{syntax}
-% \cs{__intarray_new:Nn} \meta{intarray~var} \Arg{size}
+% \cs{intarray_new:Nn} \meta{intarray~var} \Arg{size}
% \end{syntax}
% Evaluates the integer expression \meta{size} and allocates an
% \meta{integer array variable} with that number of (zero) entries.
% \end{function}
%
-% \begin{function}[EXP]{\__intarray_count:N}
+% \begin{function}[EXP]{\intarray_count:N}
% \begin{syntax}
-% \cs{__intarray_count:N} \meta{intarray~var}
+% \cs{intarray_count:N} \meta{intarray~var}
% \end{syntax}
% Expands to the number of entries in the \meta{integer array variable}.
% Contrarily to \cs{seq_count:N} this is performed in constant time.
% \end{function}
%
-% \begin{function}{\__intarray_gset:Nnn, \__intarray_gset_fast:Nnn}
+% \begin{function}{\intarray_gset:Nnn, \intarray_gset_fast:Nnn}
% \begin{syntax}
-% \cs{__intarray_gset:Nnn} \meta{intarray~var} \Arg{position} \Arg{value}
-% \cs{__intarray_gset_fast:Nnn} \meta{intarray~var} \Arg{position} \Arg{value}
+% \cs{intarray_gset:Nnn} \meta{intarray~var} \Arg{position} \Arg{value}
+% \cs{intarray_gset_fast:Nnn} \meta{intarray~var} \Arg{position} \Arg{value}
% \end{syntax}
% Stores the result of evaluating the integer expression \meta{value}
% into the \meta{integer array variable} at the (integer expression)
-% \meta{position}. While \cs{__intarray_gset:Nnn} checks that the
-% \meta{position} is between $1$ and the \cs{__intarray_count:N} and that
+% \meta{position}. While \cs{intarray_gset:Nnn} checks that the
+% \meta{position} is between $1$ and the \cs{intarray_count:N} and that
% the \meta{value}'s absolute value is at most $2^{30}-1$, the
% \enquote{fast} function performs no such bound check.
% Assignments are always global.
% \end{function}
%
-% \begin{function}[EXP]{\__intarray_item:Nn, \__intarray_item_fast:Nn}
+% \begin{function}[EXP]{\intarray_item:Nn, \intarray_item_fast:Nn}
% \begin{syntax}
-% \cs{__intarray_item:Nn} \meta{intarray~var} \Arg{position}
-% \cs{__intarray_item_fast:Nn} \meta{intarray~var} \Arg{position}
+% \cs{intarray_item:Nn} \meta{intarray~var} \Arg{position}
+% \cs{intarray_item_fast:Nn} \meta{intarray~var} \Arg{position}
% \end{syntax}
% Expands to the integer entry stored at the (integer expression)
% \meta{position} in the \meta{integer array variable}. While
-% \cs{__intarray_item:Nn} checks that the \meta{position} is between $1$
-% and the \cs{__intarray_count:N}, the \enquote{fast} function performs
+% \cs{intarray_item:Nn} checks that the \meta{position} is between $1$
+% and the \cs{intarray_count:N}, the \enquote{fast} function performs
% no such bound check.
% \end{function}
%
+% \subsection{Implementation notes}
+%
+% It is a wrapper around the \tn{fontdimen} primitive, used to store
+% arrays of integers (with a restricted range: absolute value at most
+% $2^{30}-1$). In contrast to \pkg{l3seq} sequences the access to
+% individual entries is done in constant time rather than linear time,
+% but only integers can be stored. More precisely, the primitive
+% \tn{fontdimen} stores dimensions but the \pkg{l3intarray} package
+% transparently converts these from/to integers. Assignments are always
+% global.
+%
+% While \LuaTeX{}'s memory is extensible, other engines can
+% \enquote{only} deal with a bit less than $4\times 10^6$ entries in all
+% \tn{fontdimen} arrays combined (with default \TeX{}Live settings).
+%
% \end{documentation}
%
% \begin{implementation}
@@ -133,7 +146,7 @@
% \end{macrocode}
% \end{variable}
%
-% \begin{macro}{\@@_new:Nn}
+% \begin{macro}{\intarray_new:Nn}
% Declare |#1| to be a font (arbitrarily |cmr10| at a never-used
% size). Store the array's size as the \tn{hyphenchar} of that font
% and make sure enough \tn{fontdimen} are allocated, by setting the
@@ -142,7 +155,7 @@
% number $8$ compared to other engines (for a math font we would
% replace $8$ by $22$ or some such).
% \begin{macrocode}
-\cs_new_protected:Npn \@@_new:Nn #1#2
+\cs_new_protected:Npn \intarray_new:Nn #1#2
{
\__chk_if_free_cs:N #1
\int_gincr:N \g_@@_font_int
@@ -156,65 +169,65 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[EXP]{\@@_count:N}
+% \begin{macro}[EXP]{\intarray_count:N}
% Size of an array.
% \begin{macrocode}
-\cs_new:Npn \@@_count:N #1 { \tex_the:D \tex_hyphenchar:D #1 }
+\cs_new:Npn \intarray_count:N #1 { \tex_the:D \tex_hyphenchar:D #1 }
% \end{macrocode}
% \end{macro}
%
% \subsection{Array items}
%
-% \begin{macro}{\@@_gset:Nnn, \@@_gset_fast:Nnn}
-% \begin{macro}{\@@_gset_aux:Nnn}
+% \begin{macro}{\intarray_gset:Nnn, \intarray_gset_fast:Nnn}
+% \begin{macro}{\@@_gset:Nnn}
% Set the appropriate \tn{fontdimen}. The slow version checks the
% position and value are within bounds.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_gset_fast:Nnn #1#2#3
+\cs_new_protected:Npn \intarray_gset_fast:Nnn #1#2#3
{ \tex_fontdimen:D \int_eval:n {#2} #1 = \int_eval:n {#3} sp \scan_stop: }
-\cs_new_protected:Npn \@@_gset:Nnn #1#2#3
+\cs_new_protected:Npn \intarray_gset:Nnn #1#2#3
{
- \exp_args:Nff \@@_gset_aux:Nnn #1
+ \exp_args:Nff \@@_gset:Nnn #1
{ \int_eval:n {#2} } { \int_eval:n {#3} }
}
-\cs_new_protected:Npn \@@_gset_aux:Nnn #1#2#3
+\cs_new_protected:Npn \@@_gset:Nnn #1#2#3
{
- \int_compare:nTF { 1 <= #2 <= \@@_count:N #1 }
+ \int_compare:nTF { 1 <= #2 <= \intarray_count:N #1 }
{
\int_compare:nTF { - \c_max_dim <= \int_abs:n {#3} <= \c_max_dim }
- { \@@_gset_fast:Nnn #1 {#2} {#3} }
+ { \intarray_gset_fast:Nnn #1 {#2} {#3} }
{
\__kernel_msg_error:nnxxxx { kernel } { overflow }
{ \token_to_str:N #1 } {#2} {#3}
{ \int_compare:nNnT {#3} < 0 { - } \int_value:w \c_max_dim }
- \@@_gset_fast:Nnn #1 {#2}
+ \intarray_gset_fast:Nnn #1 {#2}
{ \int_compare:nNnT {#3} < 0 { - } \c_max_dim }
}
}
{
\__kernel_msg_error:nnxxx { kernel } { out-of-bounds }
- { \token_to_str:N #1 } {#2} { \@@_count:N #1 }
+ { \token_to_str:N #1 } {#2} { \intarray_count:N #1 }
}
}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
-% \begin{macro}[EXP]{\@@_item:Nn, \@@_item_fast:Nn}
-% \begin{macro}{\@@_item_aux:Nn}
+% \begin{macro}[EXP]{\intarray_item:Nn, \intarray_item_fast:Nn}
+% \begin{macro}{\@@_item:Nn}
% Get the appropriate \tn{fontdimen} and perform bound checks if requested.
% \begin{macrocode}
-\cs_new:Npn \@@_item_fast:Nn #1#2
+\cs_new:Npn \intarray_item_fast:Nn #1#2
{ \int_eval:n { \tex_fontdimen:D \int_eval:n {#2} #1 } }
+\cs_new:Npn \intarray_item:Nn #1#2
+ { \exp_args:Nf \@@_item:Nn #1 { \int_eval:n {#2} } }
\cs_new:Npn \@@_item:Nn #1#2
- { \exp_args:Nf \@@_item_aux:Nn #1 { \int_eval:n {#2} } }
-\cs_new:Npn \@@_item_aux:Nn #1#2
{
- \int_compare:nTF { 1 <= #2 <= \@@_count:N #1 }
- { \@@_item_fast:Nn #1 {#2} }
+ \int_compare:nTF { 1 <= #2 <= \intarray_count:N #1 }
+ { \intarray_item_fast:Nn #1 {#2} }
{
\__kernel_msg_expandable_error:nnnnn { kernel } { out-of-bounds }
- { \token_to_str:N #1 } {#2} { \@@_count:N #1 }
+ { \token_to_str:N #1 } {#2} { \intarray_count:N #1 }
0
}
}
diff --git a/l3kernel/l3regex.dtx b/l3kernel/l3regex.dtx
index d8960de..6faf998 100644
--- a/l3kernel/l3regex.dtx
+++ b/l3kernel/l3regex.dtx
@@ -1059,9 +1059,9 @@
% registers. We also store the balance of begin-group/end-group
% characters into \cs{g_@@_balance_intarray}.
% \begin{macrocode}
-\__intarray_new:Nn \g_@@_charcode_intarray { 65536 }
-\__intarray_new:Nn \g_@@_catcode_intarray { 65536 }
-\__intarray_new:Nn \g_@@_balance_intarray { 65536 }
+\intarray_new:Nn \g_@@_charcode_intarray { 65536 }
+\intarray_new:Nn \g_@@_catcode_intarray { 65536 }
+\intarray_new:Nn \g_@@_balance_intarray { 65536 }
% \end{macrocode}
% \end{variable}
%
@@ -4468,8 +4468,8 @@
% threads to be considered in the next step, more precisely the
% states in which these threads are.
% \begin{macrocode}
-\__intarray_new:Nn \g_@@_state_active_intarray { 65536 }
-\__intarray_new:Nn \g_@@_thread_state_intarray { 65536 }
+\intarray_new:Nn \g_@@_state_active_intarray { 65536 }
+\intarray_new:Nn \g_@@_thread_state_intarray { 65536 }
% \end{macrocode}
% \end{variable}
%
@@ -4569,7 +4569,7 @@
\bool_gset_false:N \g_@@_success_bool
\int_step_inline:nnnn
\l_@@_min_state_int { 1 } { \l_@@_max_state_int - 1 }
- { \__intarray_gset_fast:Nnn \g_@@_state_active_intarray {##1} { 1 } }
+ { \intarray_gset_fast:Nnn \g_@@_state_active_intarray {##1} { 1 } }
\int_set_eq:NN \l_@@_min_active_int \l_@@_max_state_int
\int_zero:N \l_@@_step_int
\int_set_eq:NN \l_@@_success_pos_int \l_@@_min_pos_int
@@ -4684,7 +4684,7 @@
\cs_new:Npn \@@_match_one_active:n #1
{
\@@_use_state_and_submatches:nn
- { \__intarray_item_fast:Nn \g_@@_thread_state_intarray {#1} }
+ { \intarray_item_fast:Nn \g_@@_thread_state_intarray {#1} }
{ \@@_toks_use:w #1 }
}
% \end{macrocode}
@@ -4700,11 +4700,11 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_query_set:nnn #1#2#3
{
- \__intarray_gset_fast:Nnn \g_@@_charcode_intarray
+ \intarray_gset_fast:Nnn \g_@@_charcode_intarray
{ \l_@@_curr_pos_int } {#3}
- \__intarray_gset_fast:Nnn \g_@@_catcode_intarray
+ \intarray_gset_fast:Nnn \g_@@_catcode_intarray
{ \l_@@_curr_pos_int } {#2}
- \__intarray_gset_fast:Nnn \g_@@_balance_intarray
+ \intarray_gset_fast:Nnn \g_@@_balance_intarray
{ \l_@@_curr_pos_int } { \l_@@_balance_int }
\@@_toks_set:Nn \l_@@_curr_pos_int {#1}
\int_incr:N \l_@@_curr_pos_int
@@ -4723,10 +4723,10 @@
\cs_new_protected:Npn \@@_query_get:
{
\l_@@_curr_char_int
- = \__intarray_item_fast:Nn \g_@@_charcode_intarray
+ = \intarray_item_fast:Nn \g_@@_charcode_intarray
{ \l_@@_curr_pos_int } \scan_stop:
\l_@@_curr_catcode_int
- = \__intarray_item_fast:Nn \g_@@_catcode_intarray
+ = \intarray_item_fast:Nn \g_@@_catcode_intarray
{ \l_@@_curr_pos_int } \scan_stop:
}
% \end{macrocode}
@@ -4747,10 +4747,10 @@
{ }
\cs_new_protected:Npn \@@_use_state:
{
- \__intarray_gset_fast:Nnn \g_@@_state_active_intarray
+ \intarray_gset_fast:Nnn \g_@@_state_active_intarray
{ \l_@@_curr_state_int } { \l_@@_step_int }
\@@_toks_use:w \l_@@_curr_state_int
- \__intarray_gset_fast:Nnn \g_@@_state_active_intarray
+ \intarray_gset_fast:Nnn \g_@@_state_active_intarray
{ \l_@@_curr_state_int } { \l_@@_step_int + 1 }
}
% \end{macrocode}
@@ -4766,7 +4766,7 @@
{
\int_set:Nn \l_@@_curr_state_int {#1}
\if_int_compare:w
- \__intarray_item_fast:Nn \g_@@_state_active_intarray
+ \intarray_item_fast:Nn \g_@@_state_active_intarray
{ \l_@@_curr_state_int }
< \l_@@_step_int
\tl_set:Nn \l_@@_curr_submatches_prop {#2}
@@ -4823,7 +4823,7 @@
\exp_not:n
{
\if_int_compare:w
- \__intarray_item_fast:Nn \g_@@_state_active_intarray
+ \intarray_item_fast:Nn \g_@@_state_active_intarray
{ \l_@@_curr_state_int }
#1
\exp_after:wN \@@_use_state:
@@ -4862,7 +4862,7 @@
\cs_new_protected:Npn \@@_store_state:n #1
{
\@@_store_submatches:
- \__intarray_gset_fast:Nnn \g_@@_thread_state_intarray
+ \intarray_gset_fast:Nnn \g_@@_thread_state_intarray
{ \l_@@_max_active_int } {#1}
\int_incr:N \l_@@_max_active_int
}
@@ -4992,8 +4992,8 @@
\cs_new:Npn \@@_replacement_do_one_match:n #1
{
\@@_query_range:nn
- { \__intarray_item_fast:Nn \g_@@_submatch_prev_intarray {#1} }
- { \__intarray_item_fast:Nn \g_@@_submatch_begin_intarray {#1} }
+ { \intarray_item_fast:Nn \g_@@_submatch_prev_intarray {#1} }
+ { \intarray_item_fast:Nn \g_@@_submatch_begin_intarray {#1} }
}
% \end{macrocode}
% \end{macro}
@@ -5053,8 +5053,8 @@
\cs_new:Npn \@@_query_submatch:n #1
{
\@@_query_range:nn
- { \__intarray_item_fast:Nn \g_@@_submatch_begin_intarray {#1} }
- { \__intarray_item_fast:Nn \g_@@_submatch_end_intarray {#1} }
+ { \intarray_item_fast:Nn \g_@@_submatch_begin_intarray {#1} }
+ { \intarray_item_fast:Nn \g_@@_submatch_end_intarray {#1} }
}
% \end{macrocode}
% \end{macro}
@@ -5073,19 +5073,19 @@
\int_eval:n
{
\int_compare:nNnTF
- { \__intarray_item_fast:Nn \g_@@_submatch_end_intarray {#1} } = 0
+ { \intarray_item_fast:Nn \g_@@_submatch_end_intarray {#1} } = 0
{ 0 }
{
- \__intarray_item_fast:Nn \g_@@_balance_intarray
- { \__intarray_item_fast:Nn \g_@@_submatch_end_intarray {#1} }
+ \intarray_item_fast:Nn \g_@@_balance_intarray
+ { \intarray_item_fast:Nn \g_@@_submatch_end_intarray {#1} }
}
-
\int_compare:nNnTF
- { \__intarray_item_fast:Nn \g_@@_submatch_begin_intarray {#1} } = 0
+ { \intarray_item_fast:Nn \g_@@_submatch_begin_intarray {#1} } = 0
{ 0 }
{
- \__intarray_item_fast:Nn \g_@@_balance_intarray
- { \__intarray_item_fast:Nn \g_@@_submatch_begin_intarray {#1} }
+ \intarray_item_fast:Nn \g_@@_balance_intarray
+ { \intarray_item_fast:Nn \g_@@_submatch_begin_intarray {#1} }
}
}
}
@@ -5154,8 +5154,8 @@
\cs_set:Npn \@@_replacement_do_one_match:n ##1
{
\@@_query_range:nn
- { \__intarray_item_fast:Nn \g_@@_submatch_prev_intarray {##1} }
- { \__intarray_item_fast:Nn \g_@@_submatch_begin_intarray {##1} }
+ { \intarray_item_fast:Nn \g_@@_submatch_prev_intarray {##1} }
+ { \intarray_item_fast:Nn \g_@@_submatch_begin_intarray {##1} }
#1
}
}
@@ -5789,9 +5789,9 @@
% \begin{variable}{\g_@@_submatch_prev_intarray, \g_@@_submatch_begin_intarray, \g_@@_submatch_end_intarray}
% Hold the place where the match attempt begun and the end-points of each submatch.
% \begin{macrocode}
-\__intarray_new:Nn \g_@@_submatch_prev_intarray { 65536 }
-\__intarray_new:Nn \g_@@_submatch_begin_intarray { 65536 }
-\__intarray_new:Nn \g_@@_submatch_end_intarray { 65536 }
+\intarray_new:Nn \g_@@_submatch_prev_intarray { 65536 }
+\intarray_new:Nn \g_@@_submatch_begin_intarray { 65536 }
+\intarray_new:Nn \g_@@_submatch_end_intarray { 65536 }
% \end{macrocode}
% \end{variable}
%
@@ -5897,15 +5897,15 @@
{
\if_int_compare:w \l_@@_start_pos_int < \l_@@_success_pos_int
\@@_extract:
- \__intarray_gset_fast:Nnn \g_@@_submatch_prev_intarray
+ \intarray_gset_fast:Nnn \g_@@_submatch_prev_intarray
{ \l_@@_zeroth_submatch_int } { 0 }
- \__intarray_gset_fast:Nnn \g_@@_submatch_end_intarray
+ \intarray_gset_fast:Nnn \g_@@_submatch_end_intarray
{ \l_@@_zeroth_submatch_int }
{
- \__intarray_item_fast:Nn \g_@@_submatch_begin_intarray
+ \intarray_item_fast:Nn \g_@@_submatch_begin_intarray
{ \l_@@_zeroth_submatch_int }
}
- \__intarray_gset_fast:Nnn \g_@@_submatch_begin_intarray
+ \intarray_gset_fast:Nnn \g_@@_submatch_begin_intarray
{ \l_@@_zeroth_submatch_int }
{ \l_@@_start_pos_int }
\fi:
@@ -5913,12 +5913,12 @@
#1
\@@_match:n {#2}
%<assert>\assert_int:n { \l_@@_curr_pos_int = \l_@@_max_pos_int }
- \__intarray_gset_fast:Nnn \g_@@_submatch_prev_intarray
+ \intarray_gset_fast:Nnn \g_@@_submatch_prev_intarray
{ \l_@@_submatch_int } { 0 }
- \__intarray_gset_fast:Nnn \g_@@_submatch_end_intarray
+ \intarray_gset_fast:Nnn \g_@@_submatch_end_intarray
{ \l_@@_submatch_int }
{ \l_@@_max_pos_int }
- \__intarray_gset_fast:Nnn \g_@@_submatch_begin_intarray
+ \intarray_gset_fast:Nnn \g_@@_submatch_begin_intarray
{ \l_@@_submatch_int }
{ \l_@@_start_pos_int }
\int_incr:N \l_@@_submatch_int
@@ -6022,11 +6022,11 @@
\int_set_eq:NN \l_@@_zeroth_submatch_int \l_@@_submatch_int
\prg_replicate:nn \l_@@_capturing_group_int
{
- \__intarray_gset_fast:Nnn \g_@@_submatch_begin_intarray
+ \intarray_gset_fast:Nnn \g_@@_submatch_begin_intarray
{ \l_@@_submatch_int } { 0 }
- \__intarray_gset_fast:Nnn \g_@@_submatch_end_intarray
+ \intarray_gset_fast:Nnn \g_@@_submatch_end_intarray
{ \l_@@_submatch_int } { 0 }
- \__intarray_gset_fast:Nnn \g_@@_submatch_prev_intarray
+ \intarray_gset_fast:Nnn \g_@@_submatch_prev_intarray
{ \l_@@_submatch_int } { 0 }
\int_incr:N \l_@@_submatch_int
}
@@ -6039,14 +6039,14 @@
\fi:
\@@_int_eval:w \l_@@_zeroth_submatch_int + ##1 {##2}
}
- \__intarray_gset_fast:Nnn \g_@@_submatch_prev_intarray
+ \intarray_gset_fast:Nnn \g_@@_submatch_prev_intarray
{ \l_@@_zeroth_submatch_int } { \l_@@_start_pos_int }
\fi:
}
\cs_new_protected:Npn \@@_extract_b:wn #1 < #2
- { \__intarray_gset_fast:Nnn \g_@@_submatch_begin_intarray {#1} {#2} }
+ { \intarray_gset_fast:Nnn \g_@@_submatch_begin_intarray {#1} {#2} }
\cs_new_protected:Npn \@@_extract_e:wn #1 > #2
- { \__intarray_gset_fast:Nnn \g_@@_submatch_end_intarray {#1} {#2} }
+ { \intarray_gset_fast:Nnn \g_@@_submatch_end_intarray {#1} {#2} }
% \end{macrocode}
% \end{macro}
%
@@ -6087,7 +6087,7 @@
\@@_replacement_do_one_match:n { \l_@@_zeroth_submatch_int }
\@@_query_range:nn
{
- \__intarray_item_fast:Nn \g_@@_submatch_end_intarray
+ \intarray_item_fast:Nn \g_@@_submatch_end_intarray
{ \l_@@_zeroth_submatch_int }
}
{ \l_@@_max_pos_int }
diff --git a/l3kernel/testfiles/m3expl001.luatex.tlg b/l3kernel/testfiles/m3expl001.luatex.tlg
index 28f2b26..9019b9b 100644
--- a/l3kernel/testfiles/m3expl001.luatex.tlg
+++ b/l3kernel/testfiles/m3expl001.luatex.tlg
@@ -1858,14 +1858,14 @@ Defining \c_minus_one on line ...
Defining \__int_value:w on line ...
Defining \g__intarray_font_int on line ...
\g__intarray_font_int=\count...
-Defining \__intarray_new:Nn on line ...
-Defining \__intarray_count:N on line ...
-Defining \__intarray_gset_fast:Nnn on line ...
+Defining \intarray_new:Nn on line ...
+Defining \intarray_count:N on line ...
+Defining \intarray_gset_fast:Nnn on line ...
+Defining \intarray_gset:Nnn on line ...
Defining \__intarray_gset:Nnn on line ...
-Defining \__intarray_gset_aux:Nnn on line ...
-Defining \__intarray_item_fast:Nn on line ...
+Defining \intarray_item_fast:Nn on line ...
+Defining \intarray_item:Nn on line ...
Defining \__intarray_item:Nn on line ...
-Defining \__intarray_item_aux:Nn on line ...
Defining \flag_new:n on line ...
Defining \flag_clear:n on line ...
Defining \__flag_clear:wn on line ...
diff --git a/l3kernel/testfiles/m3expl001.ptex.tlg b/l3kernel/testfiles/m3expl001.ptex.tlg
index 415b686..19851f6 100644
--- a/l3kernel/testfiles/m3expl001.ptex.tlg
+++ b/l3kernel/testfiles/m3expl001.ptex.tlg
@@ -1539,14 +1539,14 @@ Defining \c_minus_one on line ...
Defining \__int_value:w on line ...
Defining \g__intarray_font_int on line ...
\g__intarray_font_int=\count...
-Defining \__intarray_new:Nn on line ...
-Defining \__intarray_count:N on line ...
-Defining \__intarray_gset_fast:Nnn on line ...
+Defining \intarray_new:Nn on line ...
+Defining \intarray_count:N on line ...
+Defining \intarray_gset_fast:Nnn on line ...
+Defining \intarray_gset:Nnn on line ...
Defining \__intarray_gset:Nnn on line ...
-Defining \__intarray_gset_aux:Nnn on line ...
-Defining \__intarray_item_fast:Nn on line ...
+Defining \intarray_item_fast:Nn on line ...
+Defining \intarray_item:Nn on line ...
Defining \__intarray_item:Nn on line ...
-Defining \__intarray_item_aux:Nn on line ...
Defining \flag_new:n on line ...
Defining \flag_clear:n on line ...
Defining \__flag_clear:wn on line ...
diff --git a/l3kernel/testfiles/m3expl001.tlg b/l3kernel/testfiles/m3expl001.tlg
index b99bd84..17a7ff6 100644
--- a/l3kernel/testfiles/m3expl001.tlg
+++ b/l3kernel/testfiles/m3expl001.tlg
@@ -1539,14 +1539,14 @@ Defining \c_minus_one on line ...
Defining \__int_value:w on line ...
Defining \g__intarray_font_int on line ...
\g__intarray_font_int=\count...
-Defining \__intarray_new:Nn on line ...
-Defining \__intarray_count:N on line ...
-Defining \__intarray_gset_fast:Nnn on line ...
+Defining \intarray_new:Nn on line ...
+Defining \intarray_count:N on line ...
+Defining \intarray_gset_fast:Nnn on line ...
+Defining \intarray_gset:Nnn on line ...
Defining \__intarray_gset:Nnn on line ...
-Defining \__intarray_gset_aux:Nnn on line ...
-Defining \__intarray_item_fast:Nn on line ...
+Defining \intarray_item_fast:Nn on line ...
+Defining \intarray_item:Nn on line ...
Defining \__intarray_item:Nn on line ...
-Defining \__intarray_item_aux:Nn on line ...
Defining \flag_new:n on line ...
Defining \flag_clear:n on line ...
Defining \__flag_clear:wn on line ...
diff --git a/l3kernel/testfiles/m3expl001.uptex.tlg b/l3kernel/testfiles/m3expl001.uptex.tlg
index 23fb8a9..36cd996 100644
--- a/l3kernel/testfiles/m3expl001.uptex.tlg
+++ b/l3kernel/testfiles/m3expl001.uptex.tlg
@@ -1539,14 +1539,14 @@ Defining \c_minus_one on line ...
Defining \__int_value:w on line ...
Defining \g__intarray_font_int on line ...
\g__intarray_font_int=\count...
-Defining \__intarray_new:Nn on line ...
-Defining \__intarray_count:N on line ...
-Defining \__intarray_gset_fast:Nnn on line ...
+Defining \intarray_new:Nn on line ...
+Defining \intarray_count:N on line ...
+Defining \intarray_gset_fast:Nnn on line ...
+Defining \intarray_gset:Nnn on line ...
Defining \__intarray_gset:Nnn on line ...
-Defining \__intarray_gset_aux:Nnn on line ...
-Defining \__intarray_item_fast:Nn on line ...
+Defining \intarray_item_fast:Nn on line ...
+Defining \intarray_item:Nn on line ...
Defining \__intarray_item:Nn on line ...
-Defining \__intarray_item_aux:Nn on line ...
Defining \flag_new:n on line ...
Defining \flag_clear:n on line ...
Defining \__flag_clear:wn on line ...
diff --git a/l3kernel/testfiles/m3expl001.xetex.tlg b/l3kernel/testfiles/m3expl001.xetex.tlg
index cd1b87f..75eb46c 100644
--- a/l3kernel/testfiles/m3expl001.xetex.tlg
+++ b/l3kernel/testfiles/m3expl001.xetex.tlg
@@ -1856,14 +1856,14 @@ Defining \c_minus_one on line ...
Defining \__int_value:w on line ...
Defining \g__intarray_font_int on line ...
\g__intarray_font_int=\count...
-Defining \__intarray_new:Nn on line ...
-Defining \__intarray_count:N on line ...
-Defining \__intarray_gset_fast:Nnn on line ...
+Defining \intarray_new:Nn on line ...
+Defining \intarray_count:N on line ...
+Defining \intarray_gset_fast:Nnn on line ...
+Defining \intarray_gset:Nnn on line ...
Defining \__intarray_gset:Nnn on line ...
-Defining \__intarray_gset_aux:Nnn on line ...
-Defining \__intarray_item_fast:Nn on line ...
+Defining \intarray_item_fast:Nn on line ...
+Defining \intarray_item:Nn on line ...
Defining \__intarray_item:Nn on line ...
-Defining \__intarray_item_aux:Nn on line ...
Defining \flag_new:n on line ...
Defining \flag_clear:n on line ...
Defining \__flag_clear:wn on line ...
diff --git a/l3kernel/testfiles/m3expl003.luatex.tlg b/l3kernel/testfiles/m3expl003.luatex.tlg
index 28f2b26..9019b9b 100644
--- a/l3kernel/testfiles/m3expl003.luatex.tlg
+++ b/l3kernel/testfiles/m3expl003.luatex.tlg
@@ -1858,14 +1858,14 @@ Defining \c_minus_one on line ...
Defining \__int_value:w on line ...
Defining \g__intarray_font_int on line ...
\g__intarray_font_int=\count...
-Defining \__intarray_new:Nn on line ...
-Defining \__intarray_count:N on line ...
-Defining \__intarray_gset_fast:Nnn on line ...
+Defining \intarray_new:Nn on line ...
+Defining \intarray_count:N on line ...
+Defining \intarray_gset_fast:Nnn on line ...
+Defining \intarray_gset:Nnn on line ...
Defining \__intarray_gset:Nnn on line ...
-Defining \__intarray_gset_aux:Nnn on line ...
-Defining \__intarray_item_fast:Nn on line ...
+Defining \intarray_item_fast:Nn on line ...
+Defining \intarray_item:Nn on line ...
Defining \__intarray_item:Nn on line ...
-Defining \__intarray_item_aux:Nn on line ...
Defining \flag_new:n on line ...
Defining \flag_clear:n on line ...
Defining \__flag_clear:wn on line ...
diff --git a/l3kernel/testfiles/m3expl003.ptex.tlg b/l3kernel/testfiles/m3expl003.ptex.tlg
index 415b686..19851f6 100644
--- a/l3kernel/testfiles/m3expl003.ptex.tlg
+++ b/l3kernel/testfiles/m3expl003.ptex.tlg
@@ -1539,14 +1539,14 @@ Defining \c_minus_one on line ...
Defining \__int_value:w on line ...
Defining \g__intarray_font_int on line ...
\g__intarray_font_int=\count...
-Defining \__intarray_new:Nn on line ...
-Defining \__intarray_count:N on line ...
-Defining \__intarray_gset_fast:Nnn on line ...
+Defining \intarray_new:Nn on line ...
+Defining \intarray_count:N on line ...
+Defining \intarray_gset_fast:Nnn on line ...
+Defining \intarray_gset:Nnn on line ...
Defining \__intarray_gset:Nnn on line ...
-Defining \__intarray_gset_aux:Nnn on line ...
-Defining \__intarray_item_fast:Nn on line ...
+Defining \intarray_item_fast:Nn on line ...
+Defining \intarray_item:Nn on line ...
Defining \__intarray_item:Nn on line ...
-Defining \__intarray_item_aux:Nn on line ...
Defining \flag_new:n on line ...
Defining \flag_clear:n on line ...
Defining \__flag_clear:wn on line ...
diff --git a/l3kernel/testfiles/m3expl003.tlg b/l3kernel/testfiles/m3expl003.tlg
index b99bd84..17a7ff6 100644
--- a/l3kernel/testfiles/m3expl003.tlg
+++ b/l3kernel/testfiles/m3expl003.tlg
@@ -1539,14 +1539,14 @@ Defining \c_minus_one on line ...
Defining \__int_value:w on line ...
Defining \g__intarray_font_int on line ...
\g__intarray_font_int=\count...
-Defining \__intarray_new:Nn on line ...
-Defining \__intarray_count:N on line ...
-Defining \__intarray_gset_fast:Nnn on line ...
+Defining \intarray_new:Nn on line ...
+Defining \intarray_count:N on line ...
+Defining \intarray_gset_fast:Nnn on line ...
+Defining \intarray_gset:Nnn on line ...
Defining \__intarray_gset:Nnn on line ...
-Defining \__intarray_gset_aux:Nnn on line ...
-Defining \__intarray_item_fast:Nn on line ...
+Defining \intarray_item_fast:Nn on line ...
+Defining \intarray_item:Nn on line ...
Defining \__intarray_item:Nn on line ...
-Defining \__intarray_item_aux:Nn on line ...
Defining \flag_new:n on line ...
Defining \flag_clear:n on line ...
Defining \__flag_clear:wn on line ...
diff --git a/l3kernel/testfiles/m3expl003.uptex.tlg b/l3kernel/testfiles/m3expl003.uptex.tlg
index 23fb8a9..36cd996 100644
--- a/l3kernel/testfiles/m3expl003.uptex.tlg
+++ b/l3kernel/testfiles/m3expl003.uptex.tlg
@@ -1539,14 +1539,14 @@ Defining \c_minus_one on line ...
Defining \__int_value:w on line ...
Defining \g__intarray_font_int on line ...
\g__intarray_font_int=\count...
-Defining \__intarray_new:Nn on line ...
-Defining \__intarray_count:N on line ...
-Defining \__intarray_gset_fast:Nnn on line ...
+Defining \intarray_new:Nn on line ...
+Defining \intarray_count:N on line ...
+Defining \intarray_gset_fast:Nnn on line ...
+Defining \intarray_gset:Nnn on line ...
Defining \__intarray_gset:Nnn on line ...
-Defining \__intarray_gset_aux:Nnn on line ...
-Defining \__intarray_item_fast:Nn on line ...
+Defining \intarray_item_fast:Nn on line ...
+Defining \intarray_item:Nn on line ...
Defining \__intarray_item:Nn on line ...
-Defining \__intarray_item_aux:Nn on line ...
Defining \flag_new:n on line ...
Defining \flag_clear:n on line ...
Defining \__flag_clear:wn on line ...
diff --git a/l3kernel/testfiles/m3expl003.xetex.tlg b/l3kernel/testfiles/m3expl003.xetex.tlg
index cd1b87f..75eb46c 100644
--- a/l3kernel/testfiles/m3expl003.xetex.tlg
+++ b/l3kernel/testfiles/m3expl003.xetex.tlg
@@ -1856,14 +1856,14 @@ Defining \c_minus_one on line ...
Defining \__int_value:w on line ...
Defining \g__intarray_font_int on line ...
\g__intarray_font_int=\count...
-Defining \__intarray_new:Nn on line ...
-Defining \__intarray_count:N on line ...
-Defining \__intarray_gset_fast:Nnn on line ...
+Defining \intarray_new:Nn on line ...
+Defining \intarray_count:N on line ...
+Defining \intarray_gset_fast:Nnn on line ...
+Defining \intarray_gset:Nnn on line ...
Defining \__intarray_gset:Nnn on line ...
-Defining \__intarray_gset_aux:Nnn on line ...
-Defining \__intarray_item_fast:Nn on line ...
+Defining \intarray_item_fast:Nn on line ...
+Defining \intarray_item:Nn on line ...
Defining \__intarray_item:Nn on line ...
-Defining \__intarray_item_aux:Nn on line ...
Defining \flag_new:n on line ...
Defining \flag_clear:n on line ...
Defining \__flag_clear:wn on line ...
diff --git a/l3kernel/testfiles/m3intarray001.lvt b/l3kernel/testfiles/m3intarray001.lvt
index 9bff972..9746c4a 100644
--- a/l3kernel/testfiles/m3intarray001.lvt
+++ b/l3kernel/testfiles/m3intarray001.lvt
@@ -15,63 +15,63 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\TEST { Safe~array~operations }
{
- \__intarray_new:Nn \l_tmpa_intarray { 123 }
+ \intarray_new:Nn \l_tmpa_intarray { 123 }
\group_begin:
- \__intarray_gset:Nnn \l_tmpa_intarray { 1 } { 100 }
- \__intarray_gset:Nnn \l_tmpa_intarray { 2 } { -200 }
- \__intarray_gset:Nnn \l_tmpa_intarray { 1 } { -10 }
- \__intarray_gset:Nnn \l_tmpa_intarray { 123 } { 12345 }
+ \intarray_gset:Nnn \l_tmpa_intarray { 1 } { 100 }
+ \intarray_gset:Nnn \l_tmpa_intarray { 2 } { -200 }
+ \intarray_gset:Nnn \l_tmpa_intarray { 1 } { -10 }
+ \intarray_gset:Nnn \l_tmpa_intarray { 123 } { 12345 }
\group_end:
- \TYPE { \__intarray_count:N \l_tmpa_intarray }
- \TYPE { \__intarray_item:Nn \l_tmpa_intarray { 1 } }
- \TYPE { \__intarray_item:Nn \l_tmpa_intarray { 2 } }
- \TYPE { \__intarray_item:Nn \l_tmpa_intarray { 53 } }
- \TYPE { \__intarray_item:Nn \l_tmpa_intarray { 123 } }
+ \TYPE { \intarray_count:N \l_tmpa_intarray }
+ \TYPE { \intarray_item:Nn \l_tmpa_intarray { 1 } }
+ \TYPE { \intarray_item:Nn \l_tmpa_intarray { 2 } }
+ \TYPE { \intarray_item:Nn \l_tmpa_intarray { 53 } }
+ \TYPE { \intarray_item:Nn \l_tmpa_intarray { 123 } }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\TEST { Safe~array~operations~with~errors }
{
- \__intarray_new:Nn \l_tmpa_intarray { 12 }
+ \intarray_new:Nn \l_tmpa_intarray { 12 }
\group_begin:
- \__intarray_gset:Nnn \l_tmpa_intarray { 0 } { 2000000000 }
- \__intarray_gset:Nnn \l_tmpa_intarray { 1 } { -2000000000 }
- \__intarray_gset:Nnn \l_tmpa_intarray { 13 } { -2000000000 }
+ \intarray_gset:Nnn \l_tmpa_intarray { 0 } { 2000000000 }
+ \intarray_gset:Nnn \l_tmpa_intarray { 1 } { -2000000000 }
+ \intarray_gset:Nnn \l_tmpa_intarray { 13 } { -2000000000 }
\group_end:
- \TYPE { \__intarray_item:Nn \l_tmpa_intarray { 0 } }
- \TYPE { \__intarray_item:Nn \l_tmpa_intarray { 1 } }
- \TYPE { \__intarray_item:Nn \l_tmpa_intarray { 12 } }
- \TYPE { \__intarray_item:Nn \l_tmpa_intarray { 13 } }
+ \TYPE { \intarray_item:Nn \l_tmpa_intarray { 0 } }
+ \TYPE { \intarray_item:Nn \l_tmpa_intarray { 1 } }
+ \TYPE { \intarray_item:Nn \l_tmpa_intarray { 12 } }
+ \TYPE { \intarray_item:Nn \l_tmpa_intarray { 13 } }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\TEST { Unsafe~array~operations~with~errors }
{
- \__intarray_new:Nn \l_tmpb_intarray { 15 }
+ \intarray_new:Nn \l_tmpb_intarray { 15 }
\group_begin:
- \__intarray_gset_fast:Nnn \l_tmpb_intarray { 0 } { 2000000000 }
- \__intarray_gset_fast:Nnn \l_tmpb_intarray { 1 } { -2000000000 }
- \__intarray_gset_fast:Nnn \l_tmpb_intarray { 16 } { 123456 }
+ \intarray_gset_fast:Nnn \l_tmpb_intarray { 0 } { 2000000000 }
+ \intarray_gset_fast:Nnn \l_tmpb_intarray { 1 } { -2000000000 }
+ \intarray_gset_fast:Nnn \l_tmpb_intarray { 16 } { 123456 }
\group_end:
- \TYPE { \__intarray_item_fast:Nn \l_tmpb_intarray { 0 } }
- \TYPE { \__intarray_item_fast:Nn \l_tmpb_intarray { 1 } }
- \TYPE { \__intarray_item_fast:Nn \l_tmpb_intarray { 15 } }
- \TYPE { \__intarray_item_fast:Nn \l_tmpb_intarray { 16 } }
- \TYPE { \__intarray_item_fast:Nn \l_tmpb_intarray { 17 } }
- \__intarray_gset_fast:Nnn \l_tmpb_intarray { 17 } { 1234567 }
- \TYPE { \__intarray_item_fast:Nn \l_tmpb_intarray { 17 } }
- \__intarray_new:Nn \l_tmpc_intarray { -1 }
- \__intarray_gset_fast:Nnn \l_tmpb_intarray { 18 } { 12345678 }
- \TYPE { \__intarray_item_fast:Nn \l_tmpb_intarray { 18 } }
+ \TYPE { \intarray_item_fast:Nn \l_tmpb_intarray { 0 } }
+ \TYPE { \intarray_item_fast:Nn \l_tmpb_intarray { 1 } }
+ \TYPE { \intarray_item_fast:Nn \l_tmpb_intarray { 15 } }
+ \TYPE { \intarray_item_fast:Nn \l_tmpb_intarray { 16 } }
+ \TYPE { \intarray_item_fast:Nn \l_tmpb_intarray { 17 } }
+ \intarray_gset_fast:Nnn \l_tmpb_intarray { 17 } { 1234567 }
+ \TYPE { \intarray_item_fast:Nn \l_tmpb_intarray { 17 } }
+ \intarray_new:Nn \l_tmpc_intarray { -1 }
+ \intarray_gset_fast:Nnn \l_tmpb_intarray { 18 } { 12345678 }
+ \TYPE { \intarray_item_fast:Nn \l_tmpb_intarray { 18 } }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\int_gadd:Nn \g__intarray_font_int { 100000 } % to make sure nothing is suppressed accidentally by scaling the font.
\TEST { Any~stray~non-zero? }
{
- \__intarray_new:Nn \l_tmpd_intarray { 25 }
- \int_step_inline:nnnn { 1 } { 1 } { \__intarray_count:N \l_tmpd_intarray }
- { \int_compare:nNnF { \__intarray_item:Nn \l_tmpd_intarray {#1} } = 0 { \TYPE {#1} } }
+ \intarray_new:Nn \l_tmpd_intarray { 25 }
+ \int_step_inline:nnnn { 1 } { 1 } { \intarray_count:N \l_tmpd_intarray }
+ { \int_compare:nNnF { \intarray_item:Nn \l_tmpd_intarray {#1} } = 0 { \TYPE {#1} } }
}
\END
More information about the latex3-commits
mailing list