[latex3-commits] [l3svn] r7084 - Rename l3array to l3intarray
noreply at latex-project.org
noreply at latex-project.org
Thu Apr 13 15:37:50 CEST 2017
Author: bruno
Date: 2017-04-13 15:37:50 +0200 (Thu, 13 Apr 2017)
New Revision: 7084
Added:
trunk/l3experimental/l3str/l3intarray.dtx
trunk/l3experimental/l3str/testfiles/m3intarray001.luatex.tlg
trunk/l3experimental/l3str/testfiles/m3intarray001.lvt
trunk/l3experimental/l3str/testfiles/m3intarray001.tlg
Removed:
trunk/l3experimental/l3str/l3array.dtx
trunk/l3experimental/l3str/testfiles/m3array001.luatex.tlg
trunk/l3experimental/l3str/testfiles/m3array001.lvt
trunk/l3experimental/l3str/testfiles/m3array001.tlg
Modified:
trunk/l3experimental/l3str/l3regex.dtx
trunk/l3experimental/l3str/l3str.ins
Log:
Rename l3array to l3intarray
Deleted: trunk/l3experimental/l3str/l3array.dtx
===================================================================
--- trunk/l3experimental/l3str/l3array.dtx 2017-04-13 13:15:13 UTC (rev 7083)
+++ trunk/l3experimental/l3str/l3array.dtx 2017-04-13 13:37:50 UTC (rev 7084)
@@ -1,271 +0,0 @@
-% \iffalse meta-comment
-%
-%% File: l3array.dtx Copyright (C) 2017 The LaTeX3 Project
-%
-% It may be distributed and/or modified under the conditions of the
-% LaTeX Project Public License (LPPL), either version 1.3c of this
-% license or (at your option) any later version. The latest version
-% of this license is in the file
-%
-% http://www.latex-project.org/lppl.txt
-%
-% This file is part of the "l3experimental bundle" (The Work in LPPL)
-% and all files in that bundle must be distributed together.
-%
-% -----------------------------------------------------------------------
-%
-% The development version of the bundle can be found at
-%
-% https://github.com/latex3/latex3
-%
-% for those people who are interested.
-%
-%<*driver|package>
-% The version of expl3 required is tested as early as possible, as
-% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2017/04/01]
-%<package>\@ifpackagelater{expl3}{2017/04/01}
-%<package> {}
-%<package> {%
-%<package> \PackageError{l3array}{Support package l3kernel too old}
-%<package> {%
-%<package> Please install an up to date version of l3kernel\MessageBreak
-%<package> using your TeX package manager or from CTAN.\MessageBreak
-%<package> \MessageBreak
-%<package> Loading l3array will abort!%
-%<package> }%
-%<package> \endinput
-%<package> }
-%</driver|package>
-%<*driver>
-\documentclass[full]{l3doc}
-\usepackage{amsmath}
-\begin{document}
- \DocInput{\jobname.dtx}
-\end{document}
-%</driver>
-% \fi
-%
-%
-% \title{^^A
-% The \textsf{l3array} package: low-level arrays of small integers^^A
-% }
-%
-% \author{^^A
-% The \LaTeX3 Project\thanks
-% {^^A
-% E-mail:
-% \href{mailto:latex-team at latex-project.org}
-% {latex-team at latex-project.org}^^A
-% }^^A
-% }
-%
-% \date{Released 2017/04/01}
-%
-% \maketitle
-%
-% \begin{documentation}
-%
-% \section{\pkg{l3array} 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{l3array} 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}{\__array_new:Nn}
-% \begin{syntax}
-% \cs{__array_new:Nn} \meta{array~var} \Arg{size}
-% \end{syntax}
-% Evaluates the integer expression \meta{size} and allocates an
-% \meta{array variable} with that number of (zero) entries.
-% \end{function}
-%
-% \begin{function}[EXP]{\__array_count:N}
-% \begin{syntax}
-% \cs{__array_count:N} \meta{array~var}
-% \end{syntax}
-% Expands to the number of entries in the \meta{array variable}.
-% Contrarily to \cs{seq_count:N} this is performed in constant time.
-% \end{function}
-%
-% \begin{function}{\__array_gset:Nnn, \__array_gset_fast:Nnn}
-% \begin{syntax}
-% \cs{__array_gset:Nnn} \meta{array~var} \Arg{position} \Arg{value}
-% \cs{__array_gset_fast:Nnn} \meta{array~var} \Arg{position} \Arg{value}
-% \end{syntax}
-% Stores the result of evaluating the integer expression \meta{value}
-% into the \meta{array variable} at the (integer expression)
-% \meta{position}. While \cs{__array_gset:Nnn} checks that the
-% \meta{position} is between $1$ and the \cs{__array_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]{\__array_item:Nn, \__array_item_fast:Nn}
-% \begin{syntax}
-% \cs{__array_item:Nn} \meta{array~var} \Arg{position}
-% \cs{__array_item_fast:Nn} \meta{array~var} \Arg{position}
-% \end{syntax}
-% Expands to the integer entry stored at the (integer expression)
-% \meta{position} in the \meta{array variable}. While
-% \cs{__array_item:Nn} checks that the \meta{position} is between $1$
-% and the \cs{__array_count:N}, the \enquote{fast} function performs
-% no such bound check.
-% \end{function}
-%
-% \end{documentation}
-%
-% \begin{implementation}
-%
-% \section{\pkg{l3array} implementation}
-%
-% \begin{macrocode}
-%<*initex|package>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<@@=array>
-% \end{macrocode}
-%
-% \begin{macrocode}
-\ProvidesExplPackage{l3array}{2017/04/01}{}
- {L3 Experimental low-level arrays of small integers}
-% \end{macrocode}
-%
-% \subsection{Allocating arrays}
-%
-% \begin{variable}{\g_@@_font_int}
-% Used to assign one font per array.
-% \begin{macrocode}
-\int_new:N \g_@@_font_int
-% \end{macrocode}
-% \end{variable}
-%
-% \begin{macro}[int]{\@@_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
-% last one. Then clear any \tn{fontdimen} that |cmr10| starts with.
-% It seems \LuaTeX{}'s |cmr10| has an extra \tn{fontdimen} parameter
-% 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
- {
- \__chk_if_free_cs:N #1
- \int_gincr:N \g_@@_font_int
- \tex_global:D \tex_font:D #1 = cmr10~at~ \g_@@_font_int sp \scan_stop:
- \tex_hyphenchar:D #1 = \int_eval:n {#2} \scan_stop:
- \int_compare:nNnT { \tex_hyphenchar:D #1 } > 0
- { \tex_fontdimen:D \tex_hyphenchar:D #1 #1 = 0 sp \scan_stop: }
- \int_step_inline:nnnn { 1 } { 1 } { 8 }
- { \tex_fontdimen:D ##1 #1 = 0 sp \scan_stop: }
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}[int, EXP]{\@@_count:N}
-% Size of an array.
-% \begin{macrocode}
-\cs_new:Npn \@@_count:N #1 { \tex_the:D \tex_hyphenchar:D #1 }
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Array items}
-%
-% \begin{macro}[int]{\@@_gset:Nnn, \@@_gset_fast:Nnn}
-% \begin{macro}[aux]{\@@_gset_aux: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
- { \tex_fontdimen:D \int_eval:n {#2} #1 = \int_eval:n {#3} sp \scan_stop: }
-\cs_new_protected:Npn \@@_gset:Nnn #1#2#3
- {
- \exp_args:Nff \@@_gset_aux:Nnn #1
- { \int_eval:n {#2} } { \int_eval:n {#3} }
- }
-\cs_new_protected:Npn \@@_gset_aux:Nnn #1#2#3
- {
- \int_compare:nTF { 1 <= #2 <= \@@_count:N #1 }
- {
- \int_compare:nTF { - \c_max_dim <= \int_abs:n {#3} <= \c_max_dim }
- { \@@_gset_fast:Nnn #1 {#2} {#3} }
- {
- \__msg_kernel_error:nnxxxx { array } { overflow }
- { \token_to_str:N #1 } {#2} {#3}
- { \int_compare:nNnT {#3} < 0 { - } \__int_value:w \c_max_dim }
- \@@_gset_fast:Nnn #1 {#2}
- { \int_compare:nNnT {#3} < 0 { - } \c_max_dim }
- }
- }
- {
- \__msg_kernel_error:nnxxx { array } { out-of-bounds }
- { \token_to_str:N #1 } {#2} { \@@_count:N #1 }
- }
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}[EXP]{\@@_item:Nn, \@@_item_fast:Nn}
-% \begin{macro}[aux]{\@@_item_aux:Nn}
-% Get the appropriate \tn{fontdimen} and perform bound checks if requested.
-% \begin{macrocode}
-\cs_new:Npn \@@_item_fast:Nn #1#2
- { \__int_value:w \tex_fontdimen:D \int_eval:n {#2} #1 }
-\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} }
- {
- \__msg_kernel_expandable_error:nnnnn { array } { out-of-bounds }
- { \token_to_str:N #1 } {#2} { \@@_count:N #1 }
- 0
- }
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Messages}
-%
-% \begin{macrocode}
-\__msg_kernel_new:nnnn { array } { overflow }
- { Integers~larger~than~2^{30}-1~cannot~be~stored~in~arrays. }
- {
- An~attempt~was~made~to~store~#3~at~position~#2~in~the~array~'#1'.~
- The~largest~allowed~value~#4~will~be~used~instead.
- }
-\__msg_kernel_new:nnnn { array } { out-of-bounds }
- { Access~to~an~entry~beyond~an~array's~bounds. }
- {
- An~attempt~was~made~to~access~or~store~data~at~position~#2~of~the~
- array~'#1',~but~this~array~has~entries~at~positions~from~1~to~#3.
- }
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</initex|package>
-% \end{macrocode}
-%
-% \end{implementation}
-%
-% \PrintIndex
Copied: trunk/l3experimental/l3str/l3intarray.dtx (from rev 7082, trunk/l3experimental/l3str/l3array.dtx)
===================================================================
--- trunk/l3experimental/l3str/l3intarray.dtx (rev 0)
+++ trunk/l3experimental/l3str/l3intarray.dtx 2017-04-13 13:37:50 UTC (rev 7084)
@@ -0,0 +1,271 @@
+% \iffalse meta-comment
+%
+%% File: l3intarray.dtx Copyright (C) 2017 The LaTeX3 Project
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in the file
+%
+% http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3experimental bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+% https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
+%<*driver|package>
+% The version of expl3 required is tested as early as possible, as
+% some really old versions do not define \ProvidesExplPackage.
+\RequirePackage{expl3}[2017/04/01]
+%<package>\@ifpackagelater{expl3}{2017/04/01}
+%<package> {}
+%<package> {%
+%<package> \PackageError{l3intarray}{Support package l3kernel too old}
+%<package> {%
+%<package> Please install an up to date version of l3kernel\MessageBreak
+%<package> using your TeX package manager or from CTAN.\MessageBreak
+%<package> \MessageBreak
+%<package> Loading l3intarray will abort!%
+%<package> }%
+%<package> \endinput
+%<package> }
+%</driver|package>
+%<*driver>
+\documentclass[full]{l3doc}
+\usepackage{amsmath}
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+%
+% \title{^^A
+% The \textsf{l3intarray} package: low-level arrays of small integers^^A
+% }
+%
+% \author{^^A
+% The \LaTeX3 Project\thanks
+% {^^A
+% E-mail:
+% \href{mailto:latex-team at latex-project.org}
+% {latex-team at latex-project.org}^^A
+% }^^A
+% }
+%
+% \date{Released 2017/04/01}
+%
+% \maketitle
+%
+% \begin{documentation}
+%
+% \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}
+% \begin{syntax}
+% \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{syntax}
+% \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{syntax}
+% \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
+% 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{syntax}
+% \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
+% no such bound check.
+% \end{function}
+%
+% \end{documentation}
+%
+% \begin{implementation}
+%
+% \section{\pkg{l3intarray} implementation}
+%
+% \begin{macrocode}
+%<*initex|package>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<@@=intarray>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProvidesExplPackage{l3intarray}{2017/04/01}{}
+ {L3 Experimental low-level arrays of small integers}
+% \end{macrocode}
+%
+% \subsection{Allocating arrays}
+%
+% \begin{variable}{\g_@@_font_int}
+% Used to assign one font per array.
+% \begin{macrocode}
+\int_new:N \g_@@_font_int
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{macro}[int]{\@@_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
+% last one. Then clear any \tn{fontdimen} that |cmr10| starts with.
+% It seems \LuaTeX{}'s |cmr10| has an extra \tn{fontdimen} parameter
+% 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
+ {
+ \__chk_if_free_cs:N #1
+ \int_gincr:N \g_@@_font_int
+ \tex_global:D \tex_font:D #1 = cmr10~at~ \g_@@_font_int sp \scan_stop:
+ \tex_hyphenchar:D #1 = \int_eval:n {#2} \scan_stop:
+ \int_compare:nNnT { \tex_hyphenchar:D #1 } > 0
+ { \tex_fontdimen:D \tex_hyphenchar:D #1 #1 = 0 sp \scan_stop: }
+ \int_step_inline:nnnn { 1 } { 1 } { 8 }
+ { \tex_fontdimen:D ##1 #1 = 0 sp \scan_stop: }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[int, EXP]{\@@_count:N}
+% Size of an array.
+% \begin{macrocode}
+\cs_new:Npn \@@_count:N #1 { \tex_the:D \tex_hyphenchar:D #1 }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Array items}
+%
+% \begin{macro}[int]{\@@_gset:Nnn, \@@_gset_fast:Nnn}
+% \begin{macro}[aux]{\@@_gset_aux: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
+ { \tex_fontdimen:D \int_eval:n {#2} #1 = \int_eval:n {#3} sp \scan_stop: }
+\cs_new_protected:Npn \@@_gset:Nnn #1#2#3
+ {
+ \exp_args:Nff \@@_gset_aux:Nnn #1
+ { \int_eval:n {#2} } { \int_eval:n {#3} }
+ }
+\cs_new_protected:Npn \@@_gset_aux:Nnn #1#2#3
+ {
+ \int_compare:nTF { 1 <= #2 <= \@@_count:N #1 }
+ {
+ \int_compare:nTF { - \c_max_dim <= \int_abs:n {#3} <= \c_max_dim }
+ { \@@_gset_fast:Nnn #1 {#2} {#3} }
+ {
+ \__msg_kernel_error:nnxxxx { intarray } { overflow }
+ { \token_to_str:N #1 } {#2} {#3}
+ { \int_compare:nNnT {#3} < 0 { - } \__int_value:w \c_max_dim }
+ \@@_gset_fast:Nnn #1 {#2}
+ { \int_compare:nNnT {#3} < 0 { - } \c_max_dim }
+ }
+ }
+ {
+ \__msg_kernel_error:nnxxx { intarray } { out-of-bounds }
+ { \token_to_str:N #1 } {#2} { \@@_count:N #1 }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_item:Nn, \@@_item_fast:Nn}
+% \begin{macro}[aux]{\@@_item_aux:Nn}
+% Get the appropriate \tn{fontdimen} and perform bound checks if requested.
+% \begin{macrocode}
+\cs_new:Npn \@@_item_fast:Nn #1#2
+ { \__int_value:w \tex_fontdimen:D \int_eval:n {#2} #1 }
+\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} }
+ {
+ \__msg_kernel_expandable_error:nnnnn { intarray } { out-of-bounds }
+ { \token_to_str:N #1 } {#2} { \@@_count:N #1 }
+ 0
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Messages}
+%
+% \begin{macrocode}
+\__msg_kernel_new:nnnn { intarray } { overflow }
+ { Integers~larger~than~2^{30}-1~cannot~be~stored~in~arrays. }
+ {
+ An~attempt~was~made~to~store~#3~at~position~#2~in~the~array~'#1'.~
+ The~largest~allowed~value~#4~will~be~used~instead.
+ }
+\__msg_kernel_new:nnnn { intarray } { out-of-bounds }
+ { Access~to~an~entry~beyond~an~array's~bounds. }
+ {
+ An~attempt~was~made~to~access~or~store~data~at~position~#2~of~the~
+ array~'#1',~but~this~array~has~entries~at~positions~from~1~to~#3.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</initex|package>
+% \end{macrocode}
+%
+% \end{implementation}
+%
+% \PrintIndex
Modified: trunk/l3experimental/l3str/l3regex.dtx
===================================================================
--- trunk/l3experimental/l3str/l3regex.dtx 2017-04-13 13:15:13 UTC (rev 7083)
+++ trunk/l3experimental/l3str/l3regex.dtx 2017-04-13 13:37:50 UTC (rev 7084)
@@ -731,7 +731,7 @@
%<*package>
\ProvidesExplPackage{l3regex}{2017/04/01}{}
{L3 Experimental regular expressions}
-\RequirePackage{l3tl-build, l3tl-analysis, l3array}
+\RequirePackage{l3tl-build, l3tl-analysis, l3intarray}
%</package>
% \end{macrocode}
%
@@ -782,7 +782,7 @@
% unique id for all the steps of the matching algorithm.
% \end{itemize}
%
-% We use \pkg{l3array} to manipulate arrays of integers (stored into
+% We use \pkg{l3intarray} to manipulate arrays of integers (stored into
% some dimension registers in scaled points). We also abuse \TeX{}'s
% \tn{toks} registers, by accessing them directly by number rather than
% tying them to control sequence using the \tn{newtoks} allocation
@@ -792,25 +792,25 @@
% \tn{toks}\meta{state} holds the tests and actions to perform in the
% \meta{state} of the \textsc{nfa}. When matching,
% \begin{itemize}
-% \item \cs{g_@@_state_active_array} holds the last \meta{step} in
+% \item \cs{g_@@_state_active_intarray} holds the last \meta{step} in
% which each \meta{state} was active.
-% \item \cs{g_@@_thread_state_array} maps each \meta{thread} (with
+% \item \cs{g_@@_thread_state_intarray} maps each \meta{thread} (with
% $\texttt{min_active} \leq \meta{thread} < \texttt{max_active}$) to
% the \meta{state} in which the \meta{thread} currently is. The
% \meta{threads} or ordered starting from the best to the least
% preferred.
% \item \tn{toks}\meta{thread} holds the submatch information for the
% \meta{thread}, as the contents of a property list.
-% \item \cs{g_@@_charcode_array} and \cs{g_@@_catcode_array} hold the
+% \item \cs{g_@@_charcode_intarray} and \cs{g_@@_catcode_intarray} hold the
% character codes and category codes of tokens at each
% \meta{position} in the query.
-% \item \cs{g_@@_balance_array} holds the balance of begin-group and
+% \item \cs{g_@@_balance_intarray} holds the balance of begin-group and
% end-group character tokens which appear before that point in the
% token list.
% \item \tn{toks}\meta{position} holds \meta{tokens} which \texttt{o}-
% and \texttt{x}-expand to the \meta{position}-th token in the query.
-% \item \cs{g_@@_submatch_prev_array}, \cs{g_@@_submatch_begin_array}
-% and \cs{g_@@_submatch_end_array} hold, for each submatch (as would
+% \item \cs{g_@@_submatch_prev_intarray}, \cs{g_@@_submatch_begin_intarray}
+% and \cs{g_@@_submatch_end_intarray} hold, for each submatch (as would
% be extracted by \cs{regex_extract_all:nnN}), the place where the
% submatch started to be looked for and its two end-points. For
% historical reasons, the minimum index is twice \texttt{max_state},
@@ -885,16 +885,16 @@
% \end{macrocode}
% \end{variable}
%
-% \begin{variable}{\g_@@_charcode_array, \g_@@_catcode_array, \g_@@_balance_array}
+% \begin{variable}{\g_@@_charcode_intarray, \g_@@_catcode_intarray, \g_@@_balance_intarray}
% The first thing we do when matching is to go once through the query
% token list and store the information for each token into
-% \cs{g_@@_charcode_array}, \cs{g_@@_catcode_array} and \tn{toks}
+% \cs{g_@@_charcode_intarray}, \cs{g_@@_catcode_intarray} and \tn{toks}
% registers. We also store the balance of begin-group/end-group
-% characters into \cs{g_@@_balance_array}.
+% characters into \cs{g_@@_balance_intarray}.
% \begin{macrocode}
-\__array_new:Nn \g_@@_charcode_array { 65536 }
-\__array_new:Nn \g_@@_catcode_array { 65536 }
-\__array_new:Nn \g_@@_balance_array { 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}
%
@@ -4159,7 +4159,7 @@
% transitions, the instruction at the new state of the \textsc{nfa} is
% performed immediately. When a transition consumes a character, the
% new state is appended to a list of \enquote{active states}, stored in
-% \cs{g_@@_thread_state_array}: this thread will be active again when the next
+% \cs{g_@@_thread_state_intarray}: this thread will be active again when the next
% token is read from the query. At every step (for each token in the
% query), we unpack that list of active states and the corresponding
% submatch props, and empty those.
@@ -4271,13 +4271,13 @@
% \begin{variable}{\l_@@_step_int}
% This integer, always even, is increased every time a character in
% the query is read, and not reset when doing multiple matches. We
-% store in \cs{g_@@_state_active_array} the last step in which each
+% store in \cs{g_@@_state_active_intarray} the last step in which each
% \meta{state} in the \textsc{nfa} was encountered. This lets us break
% infinite loops by not visiting the same state twice in the same
% step. In fact, the step we store is equal to \texttt{step} when we
% have started performing the operations of \tn{toks}\meta{state}, but
% not finished yet. However, once we finish, we store
-% $\text{\texttt{step}}+1$ in \cs{g_@@_state_active_array}. This is
+% $\text{\texttt{step}}+1$ in \cs{g_@@_state_active_intarray}. This is
% needed to track submatches
% properly (see building phase). The \texttt{step} is also used to
% attach each set of submatch information to a given iteration (and
@@ -4289,7 +4289,7 @@
%
% \begin{variable}{\l_@@_min_active_int, \l_@@_max_active_int}
% All the currently active threads are kept in order of precedence in
-% \cs{g_@@_thread_state_array}, and the corresponding submatches in the
+% \cs{g_@@_thread_state_intarray}, and the corresponding submatches in the
% \tn{toks}. For our purposes, those serve as an array, indexed from
% \texttt{min_active} (inclusive) to \texttt{max_active} (excluded).
% At the start of every step, the whole array is unpacked, so that the
@@ -4301,14 +4301,14 @@
% \end{macrocode}
% \end{variable}
%
-% \begin{variable}{\g_@@_state_active_array, \g_@@_thread_state_array}
-% \cs{g_@@_state_active_array} stores the last \meta{step} in which
-% each \meta{state} was active. \cs{g_@@_thread_state_array} stores
+% \begin{variable}{\g_@@_state_active_intarray, \g_@@_thread_state_intarray}
+% \cs{g_@@_state_active_intarray} stores the last \meta{step} in which
+% each \meta{state} was active. \cs{g_@@_thread_state_intarray} stores
% threads that will be considered in the next step, more precisely the
% states in which these threads are.
% \begin{macrocode}
-\__array_new:Nn \g_@@_state_active_array { 65536 }
-\__array_new:Nn \g_@@_thread_state_array { 65536 }
+\__intarray_new:Nn \g_@@_state_active_intarray { 65536 }
+\__intarray_new:Nn \g_@@_thread_state_intarray { 65536 }
% \end{macrocode}
% \end{variable}
%
@@ -4374,7 +4374,7 @@
% \cs{@@_query_set:nnn}). Then initialize the variables that should
% be set once for each user function (even for multiple
% matches). Namely, the overall matching is not yet successful; none of
-% the states should be marked as visited (\cs{g_@@_state_active_array}), and
+% the states should be marked as visited (\cs{g_@@_state_active_intarray}), and
% we start at step $0$; we pretend that there was a previous match
% ending at the start of the query, which was not empty (to avoid
% smothering an empty match at the start). Once all this is set up, we
@@ -4396,7 +4396,7 @@
\bool_gset_false:N \g_@@_success_bool
\int_step_inline:nnnn
\l_@@_min_state_int { 1 } { \l_@@_max_state_int - 1 }
- { \__array_gset_fast:Nnn \g_@@_state_active_array {##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
@@ -4512,7 +4512,7 @@
\cs_new:Npn \@@_match_one_active:n #1
{
\@@_use_state_and_submatches:nn
- { \__array_item_fast:Nn \g_@@_thread_state_array {#1} }
+ { \__intarray_item_fast:Nn \g_@@_thread_state_intarray {#1} }
{ \tex_the:D \tex_toks:D #1 }
}
% \end{macrocode}
@@ -4528,11 +4528,11 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_query_set:nnn #1#2#3
{
- \__array_gset_fast:Nnn \g_@@_charcode_array
+ \__intarray_gset_fast:Nnn \g_@@_charcode_intarray
{ \l_@@_current_pos_int } {#3}
- \__array_gset_fast:Nnn \g_@@_catcode_array
+ \__intarray_gset_fast:Nnn \g_@@_catcode_intarray
{ \l_@@_current_pos_int } {#2}
- \__array_gset_fast:Nnn \g_@@_balance_array
+ \__intarray_gset_fast:Nnn \g_@@_balance_intarray
{ \l_@@_current_pos_int } { \l_@@_balance_int }
\tex_toks:D \l_@@_current_pos_int {#1}
\int_incr:N \l_@@_current_pos_int
@@ -4551,10 +4551,10 @@
\cs_new_protected:Npn \@@_query_get:
{
\l_@@_current_char_int
- = \__array_item_fast:Nn \g_@@_charcode_array
+ = \__intarray_item_fast:Nn \g_@@_charcode_intarray
{ \l_@@_current_pos_int } \scan_stop:
\l_@@_current_catcode_int
- = \__array_item_fast:Nn \g_@@_catcode_array
+ = \__intarray_item_fast:Nn \g_@@_catcode_intarray
{ \l_@@_current_pos_int } \scan_stop:
}
% \end{macrocode}
@@ -4575,10 +4575,10 @@
%<*trace>
\trace:nnx { regex } { 2 } { state~\int_use:N \l_@@_current_state_int }
%</trace>
- \__array_gset_fast:Nnn \g_@@_state_active_array
+ \__intarray_gset_fast:Nnn \g_@@_state_active_intarray
{ \l_@@_current_state_int } { \l_@@_step_int }
\tex_the:D \tex_toks:D \l_@@_current_state_int
- \__array_gset_fast:Nnn \g_@@_state_active_array
+ \__intarray_gset_fast:Nnn \g_@@_state_active_intarray
{ \l_@@_current_state_int } { \l_@@_step_int + 1 }
}
% \end{macrocode}
@@ -4594,7 +4594,7 @@
{
\int_set:Nn \l_@@_current_state_int {#1}
\if_int_compare:w
- \__array_item_fast:Nn \g_@@_state_active_array
+ \__intarray_item_fast:Nn \g_@@_state_active_intarray
{ \l_@@_current_state_int }
< \l_@@_step_int
\tl_set:Nn \l_@@_current_submatches_prop {#2}
@@ -4651,7 +4651,7 @@
\exp_not:n
{
\if_int_compare:w
- \__array_item_fast:Nn \g_@@_state_active_array
+ \__intarray_item_fast:Nn \g_@@_state_active_intarray
{ \l_@@_current_state_int }
#1
\exp_after:wN \@@_use_state:
@@ -4683,14 +4683,14 @@
%
% \begin{macro}[int]{\@@_store_state:n}
% \begin{macro}[aux]{\@@_store_submatches:}
-% Put the given state in \cs{g_@@_thread_state_array}, and increment
+% Put the given state in \cs{g_@@_thread_state_intarray}, and increment
% the length of the array. Also store the current submatch in the
% appropriate \tn{toks}.
% \begin{macrocode}
\cs_new_protected:Npn \@@_store_state:n #1
{
\@@_store_submatches:
- \__array_gset_fast:Nnn \g_@@_thread_state_array
+ \__intarray_gset_fast:Nnn \g_@@_thread_state_intarray
{ \l_@@_max_active_int } {#1}
\int_incr:N \l_@@_max_active_int
}
@@ -4781,7 +4781,7 @@
%
% \begin{macro}[aux, rEXP]{\@@_replacement_balance_one_match:n}
% This expects as an argument the first index of a set of entries in
-% \cs{g_@@_submatch_begin_array} (and related arrays) which hold the
+% \cs{g_@@_submatch_begin_intarray} (and related arrays) which hold the
% submatch information for a given match. It
% can be used within an integer expression to obtain the brace balance
% incurred by performing the replacement on that match. This combines
@@ -4811,8 +4811,8 @@
\cs_new:Npn \@@_replacement_do_one_match:n #1
{
\@@_query_range:nn
- { \__array_item_fast:Nn \g_@@_submatch_prev_array {#1} }
- { \__array_item_fast:Nn \g_@@_submatch_begin_array {#1} }
+ { \__intarray_item_fast:Nn \g_@@_submatch_prev_intarray {#1} }
+ { \__intarray_item_fast:Nn \g_@@_submatch_begin_intarray {#1} }
}
% \end{macrocode}
% \end{macro}
@@ -4872,8 +4872,8 @@
\cs_new:Npn \@@_query_submatch:n #1
{
\@@_query_range:nn
- { \__array_item_fast:Nn \g_@@_submatch_begin_array {#1} }
- { \__array_item_fast:Nn \g_@@_submatch_end_array {#1} }
+ { \__intarray_item_fast:Nn \g_@@_submatch_begin_intarray {#1} }
+ { \__intarray_item_fast:Nn \g_@@_submatch_end_intarray {#1} }
}
% \end{macrocode}
% \end{macro}
@@ -4891,19 +4891,19 @@
{
\__int_eval:w
\int_compare:nNnTF
- { \__array_item_fast:Nn \g_@@_submatch_end_array {#1} } = 0
+ { \__intarray_item_fast:Nn \g_@@_submatch_end_intarray {#1} } = 0
{ 0 }
{
- \__array_item_fast:Nn \g_@@_balance_array
- { \__array_item_fast:Nn \g_@@_submatch_end_array {#1} }
+ \__intarray_item_fast:Nn \g_@@_balance_intarray
+ { \__intarray_item_fast:Nn \g_@@_submatch_end_intarray {#1} }
}
-
\int_compare:nNnTF
- { \__array_item_fast:Nn \g_@@_submatch_begin_array {#1} } = 0
+ { \__intarray_item_fast:Nn \g_@@_submatch_begin_intarray {#1} } = 0
{ 0 }
{
- \__array_item_fast:Nn \g_@@_balance_array
- { \__array_item_fast:Nn \g_@@_submatch_begin_array {#1} }
+ \__intarray_item_fast:Nn \g_@@_balance_intarray
+ { \__intarray_item_fast:Nn \g_@@_submatch_begin_intarray {#1} }
}
\__int_eval_end:
}
@@ -4961,8 +4961,8 @@
\cs_set:Npn \@@_replacement_do_one_match:n ##1
{
\@@_query_range:nn
- { \__array_item_fast:Nn \g_@@_submatch_prev_array {##1} }
- { \__array_item_fast:Nn \g_@@_submatch_begin_array {##1} }
+ { \__intarray_item_fast:Nn \g_@@_submatch_prev_intarray {##1} }
+ { \__intarray_item_fast:Nn \g_@@_submatch_begin_intarray {##1} }
#1
}
}
@@ -5489,7 +5489,7 @@
% with a $0$-th submatch (the full match), and one match for each
% capturing group: submatches corresponding to the last successful
% match are labelled starting at \texttt{zeroth_submatch}. The entry
-% \cs{l_@@_zeroth_submatch_int} in \cs{g_@@_submatch_prev_array} holds
+% \cs{l_@@_zeroth_submatch_int} in \cs{g_@@_submatch_prev_intarray} holds
% the position at which that match attempt started: this is used for
% splitting and replacements.
% \begin{macrocode}
@@ -5499,12 +5499,12 @@
% \end{macrocode}
% \end{variable}
%
-% \begin{variable}{\g_@@_submatch_prev_array, \g_@@_submatch_begin_array, \g_@@_submatch_end_array}
+% \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}
-\__array_new:Nn \g_@@_submatch_prev_array { 65536 }
-\__array_new:Nn \g_@@_submatch_begin_array { 65536 }
-\__array_new:Nn \g_@@_submatch_end_array { 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}
%
@@ -5610,15 +5610,15 @@
{
\if_int_compare:w \l_@@_start_pos_int < \l_@@_success_pos_int
\@@_extract:
- \__array_gset_fast:Nnn \g_@@_submatch_prev_array
+ \__intarray_gset_fast:Nnn \g_@@_submatch_prev_intarray
{ \l_@@_zeroth_submatch_int } { 0 }
- \__array_gset_fast:Nnn \g_@@_submatch_end_array
+ \__intarray_gset_fast:Nnn \g_@@_submatch_end_intarray
{ \l_@@_zeroth_submatch_int }
{
- \__array_item_fast:Nn \g_@@_submatch_begin_array
+ \__intarray_item_fast:Nn \g_@@_submatch_begin_intarray
{ \l_@@_zeroth_submatch_int }
}
- \__array_gset_fast:Nnn \g_@@_submatch_begin_array
+ \__intarray_gset_fast:Nnn \g_@@_submatch_begin_intarray
{ \l_@@_zeroth_submatch_int }
{ \l_@@_start_pos_int }
\fi:
@@ -5626,12 +5626,12 @@
#1
\@@_match:n {#2}
%<assert>\assert_int:n { \l_@@_current_pos_int = \l_@@_max_pos_int }
- \__array_gset_fast:Nnn \g_@@_submatch_prev_array
+ \__intarray_gset_fast:Nnn \g_@@_submatch_prev_intarray
{ \l_@@_submatch_int } { 0 }
- \__array_gset_fast:Nnn \g_@@_submatch_end_array
+ \__intarray_gset_fast:Nnn \g_@@_submatch_end_intarray
{ \l_@@_submatch_int }
{ \l_@@_max_pos_int }
- \__array_gset_fast:Nnn \g_@@_submatch_begin_array
+ \__intarray_gset_fast:Nnn \g_@@_submatch_begin_intarray
{ \l_@@_submatch_int }
{ \l_@@_start_pos_int }
\int_incr:N \l_@@_submatch_int
@@ -5727,7 +5727,7 @@
% is somewhat a hack: the \meta{key} is a non-negative integer
% followed by |<| or |>|, which we use in a comparison to $-1$. At the
% end, store the information about the position at which the match
-% attempt started, in \cs{g_@@_submatch_prev_array}.
+% attempt started, in \cs{g_@@_submatch_prev_intarray}.
% \begin{macrocode}
\cs_new_protected:Npn \@@_extract:
{
@@ -5735,11 +5735,11 @@
\int_set_eq:NN \l_@@_zeroth_submatch_int \l_@@_submatch_int
\prg_replicate:nn \l_@@_capturing_group_int
{
- \__array_gset_fast:Nnn \g_@@_submatch_begin_array
+ \__intarray_gset_fast:Nnn \g_@@_submatch_begin_intarray
{ \l_@@_submatch_int } { 0 }
- \__array_gset_fast:Nnn \g_@@_submatch_end_array
+ \__intarray_gset_fast:Nnn \g_@@_submatch_end_intarray
{ \l_@@_submatch_int } { 0 }
- \__array_gset_fast:Nnn \g_@@_submatch_prev_array
+ \__intarray_gset_fast:Nnn \g_@@_submatch_prev_intarray
{ \l_@@_submatch_int } { 0 }
\int_incr:N \l_@@_submatch_int
}
@@ -5752,14 +5752,14 @@
\fi:
\__int_eval:w \l_@@_zeroth_submatch_int + ##1 {##2}
}
- \__array_gset_fast:Nnn \g_@@_submatch_prev_array
+ \__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
- { \__array_gset_fast:Nnn \g_@@_submatch_begin_array {#1} {#2} }
+ { \__intarray_gset_fast:Nnn \g_@@_submatch_begin_intarray {#1} {#2} }
\cs_new_protected:Npn \@@_extract_e:wn #1 > #2
- { \__array_gset_fast:Nnn \g_@@_submatch_end_array {#1} {#2} }
+ { \__intarray_gset_fast:Nnn \g_@@_submatch_end_intarray {#1} {#2} }
% \end{macrocode}
% \end{macro}
%
@@ -5800,7 +5800,7 @@
\@@_replacement_do_one_match:n { \l_@@_zeroth_submatch_int }
\@@_query_range:nn
{
- \__array_item_fast:Nn \g_@@_submatch_end_array
+ \__intarray_item_fast:Nn \g_@@_submatch_end_intarray
{ \l_@@_zeroth_submatch_int }
}
{ \l_@@_max_pos_int }
Modified: trunk/l3experimental/l3str/l3str.ins
===================================================================
--- trunk/l3experimental/l3str/l3str.ins 2017-04-13 13:15:13 UTC (rev 7083)
+++ trunk/l3experimental/l3str/l3str.ins 2017-04-13 13:37:50 UTC (rev 7084)
@@ -57,7 +57,7 @@
\generate{\file{l3tl-analysis.sty} {\from{l3tl-analysis.dtx} {package}}}
\generate{\file{l3tl-build.sty} {\from{l3tl-build.dtx} {package}}}
\generate{\file{l3regex-trace.sty} {\from{l3regex.dtx} {package,trace}}}
-\generate{\file{l3array.sty} {\from{l3array.dtx} {package}}}
+\generate{\file{l3intarray.sty} {\from{l3intarray.dtx} {package}}}
% Escapings.
\generate{%
Deleted: trunk/l3experimental/l3str/testfiles/m3array001.luatex.tlg
===================================================================
--- trunk/l3experimental/l3str/testfiles/m3array001.luatex.tlg 2017-04-13 13:15:13 UTC (rev 7083)
+++ trunk/l3experimental/l3str/testfiles/m3array001.luatex.tlg 2017-04-13 13:37:50 UTC (rev 7084)
@@ -1,145 +0,0 @@
-This is a generated file for the LaTeX (2e + expl3) validation system.
-Don't change this file in any respect.
-Author: Bruno Le Floch
-============================================================
-TEST 1: Safe array operations
-============================================================
-Defining \l_tmpa_array on line ...
-123
--10
--200
-0
-12345
-============================================================
-============================================================
-TEST 2: Safe array operations with errors
-============================================================
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!
-! LaTeX error: "kernel/command-already-defined"
-!
-! Control sequence \l_tmpa_array already defined.
-!
-! See the LaTeX3 documentation for further information.
-!
-! For immediate help type H <return>.
-!...............................................
-l. ... }
-|'''''''''''''''''''''''''''''''''''''''''''''''
-| This is a coding error.
-|
-| LaTeX has been asked to create a new control sequence '\l_tmpa_array' but
-| this name has already been used elsewhere.
-|
-| The current meaning is:
-| select font cmr10 at 0.00002pt
-|...............................................
-Defining \l_tmpa_array on line ...
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!
-! LaTeX error: "array/out-of-bounds"
-!
-! Access to an entry beyond an array's bounds.
-!
-! See the LaTeX3 documentation for further information.
-!
-! For immediate help type H <return>.
-!...............................................
-l. ... }
-|'''''''''''''''''''''''''''''''''''''''''''''''
-| An attempt was made to access or store data at position 0 of the array
-| '\l_tmpa_array', but this array has entries at positions from 1 to 12.
-|...............................................
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!
-! LaTeX error: "array/overflow"
-!
-! Integers larger than 2^{30}-1 cannot be stored in arrays.
-!
-! See the LaTeX3 documentation for further information.
-!
-! For immediate help type H <return>.
-!...............................................
-l. ... }
-|'''''''''''''''''''''''''''''''''''''''''''''''
-| An attempt was made to store -2000000000 at position 1 in the array
-| '\l_tmpa_array'. The largest allowed value -1073741823 will be used instead.
-|...............................................
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!
-! LaTeX error: "array/out-of-bounds"
-!
-! Access to an entry beyond an array's bounds.
-!
-! See the LaTeX3 documentation for further information.
-!
-! For immediate help type H <return>.
-!...............................................
-l. ... }
-|'''''''''''''''''''''''''''''''''''''''''''''''
-| An attempt was made to access or store data at position 13 of the array
-| '\l_tmpa_array', but this array has entries at positions from 1 to 12.
-|...............................................
-! Undefined control sequence.
-<argument> \LaTeX3 error:
- Access to an entry beyond an array's bounds.
-l. ... }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-0
--1073741823
-0
-! Undefined control sequence.
-<argument> \LaTeX3 error:
- Access to an entry beyond an array's bounds.
-l. ... }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-0
-============================================================
-============================================================
-TEST 3: Unsafe array operations with errors
-============================================================
-Defining \l_tmpb_array on line ...
-! Font \l_tmpb_array has only 15 fontdimen parameters.
-<recently read> \l_tmpb_array
-l. ... }
-To increase the number of font parameters, you must
-use \fontdimen immediately after the \font is loaded.
-! Dimension too large.
-<to be read again>
-\scan_stop:
-l. ... }
-I can't work with sizes bigger than about 19 feet.
-Continue and I'll use the largest value I can.
-! Dimension too large.
-<to be read again>
-\scan_stop:
-l. ... }
-I can't work with sizes bigger than about 19 feet.
-Continue and I'll use the largest value I can.
-! Font \l_tmpb_array has only 16 fontdimen parameters.
-<recently read> \l_tmpb_array
-l. ... }
-To increase the number of font parameters, you must
-use \fontdimen immediately after the \font is loaded.
-0
--1073741823
-0
-123456
-0
-1234567
-Defining \l_tmpc_array on line ...
-12345678
-============================================================
-============================================================
-TEST 4: Any stray non-zero?
-============================================================
-Defining \l_tmpd_array on line ...
-============================================================
Deleted: trunk/l3experimental/l3str/testfiles/m3array001.lvt
===================================================================
--- trunk/l3experimental/l3str/testfiles/m3array001.lvt 2017-04-13 13:15:13 UTC (rev 7083)
+++ trunk/l3experimental/l3str/testfiles/m3array001.lvt 2017-04-13 13:37:50 UTC (rev 7084)
@@ -1,78 +0,0 @@
-%
-% Copyright (C) 2017 LaTeX3 Project
-%
-
-\documentclass{minimal}
-\input{regression-test}
-\RequirePackage[log-functions, check-declarations]{expl3}
-\RequirePackage{l3array}
-
-\begin{document}
-
-\START
-\AUTHOR{Bruno Le Floch}
-\ExplSyntaxOn
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\TEST { Safe~array~operations }
- {
- \__array_new:Nn \l_tmpa_array { 123 }
- \group_begin:
- \__array_gset:Nnn \l_tmpa_array { 1 } { 100 }
- \__array_gset:Nnn \l_tmpa_array { 2 } { -200 }
- \__array_gset:Nnn \l_tmpa_array { 1 } { -10 }
- \__array_gset:Nnn \l_tmpa_array { 123 } { 12345 }
- \group_end:
- \TYPE { \__array_count:N \l_tmpa_array }
- \TYPE { \__array_item:Nn \l_tmpa_array { 1 } }
- \TYPE { \__array_item:Nn \l_tmpa_array { 2 } }
- \TYPE { \__array_item:Nn \l_tmpa_array { 53 } }
- \TYPE { \__array_item:Nn \l_tmpa_array { 123 } }
- }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\TEST { Safe~array~operations~with~errors }
- {
- \__array_new:Nn \l_tmpa_array { 12 }
- \group_begin:
- \__array_gset:Nnn \l_tmpa_array { 0 } { 2000000000 }
- \__array_gset:Nnn \l_tmpa_array { 1 } { -2000000000 }
- \__array_gset:Nnn \l_tmpa_array { 13 } { -2000000000 }
- \group_end:
- \TYPE { \__array_item:Nn \l_tmpa_array { 0 } }
- \TYPE { \__array_item:Nn \l_tmpa_array { 1 } }
- \TYPE { \__array_item:Nn \l_tmpa_array { 12 } }
- \TYPE { \__array_item:Nn \l_tmpa_array { 13 } }
- }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\TEST { Unsafe~array~operations~with~errors }
- {
- \__array_new:Nn \l_tmpb_array { 15 }
- \group_begin:
- \__array_gset_fast:Nnn \l_tmpb_array { 0 } { 2000000000 }
- \__array_gset_fast:Nnn \l_tmpb_array { 1 } { -2000000000 }
- \__array_gset_fast:Nnn \l_tmpb_array { 16 } { 123456 }
- \group_end:
- \TYPE { \__array_item_fast:Nn \l_tmpb_array { 0 } }
- \TYPE { \__array_item_fast:Nn \l_tmpb_array { 1 } }
- \TYPE { \__array_item_fast:Nn \l_tmpb_array { 15 } }
- \TYPE { \__array_item_fast:Nn \l_tmpb_array { 16 } }
- \TYPE { \__array_item_fast:Nn \l_tmpb_array { 17 } }
- \__array_gset_fast:Nnn \l_tmpb_array { 17 } { 1234567 }
- \TYPE { \__array_item_fast:Nn \l_tmpb_array { 17 } }
- \__array_new:Nn \l_tmpc_array { -1 }
- \__array_gset_fast:Nnn \l_tmpb_array { 18 } { 12345678 }
- \TYPE { \__array_item_fast:Nn \l_tmpb_array { 18 } }
- }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\int_gadd:Nn \g__array_font_int { 100000 } % to make sure nothing is suppressed accidentally by scaling the font.
-\TEST { Any~stray~non-zero? }
- {
- \__array_new:Nn \l_tmpd_array { 25 }
- \int_step_inline:nnnn { 1 } { 1 } { \__array_count:N \l_tmpd_array }
- { \int_compare:nNnF { \__array_item:Nn \l_tmpd_array {#1} } = 0 { \TYPE {#1} } }
- }
-
-\END
Deleted: trunk/l3experimental/l3str/testfiles/m3array001.tlg
===================================================================
--- trunk/l3experimental/l3str/testfiles/m3array001.tlg 2017-04-13 13:15:13 UTC (rev 7083)
+++ trunk/l3experimental/l3str/testfiles/m3array001.tlg 2017-04-13 13:37:50 UTC (rev 7084)
@@ -1,155 +0,0 @@
-This is a generated file for the LaTeX (2e + expl3) validation system.
-Don't change this file in any respect.
-Author: Bruno Le Floch
-============================================================
-TEST 1: Safe array operations
-============================================================
-Defining \l_tmpa_array on line ...
-123
--10
--200
-0
-12345
-============================================================
-============================================================
-TEST 2: Safe array operations with errors
-============================================================
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!
-! LaTeX error: "kernel/command-already-defined"
-!
-! Control sequence \l_tmpa_array already defined.
-!
-! See the LaTeX3 documentation for further information.
-!
-! For immediate help type H <return>.
-!...............................................
-l. ... }
-|'''''''''''''''''''''''''''''''''''''''''''''''
-| This is a coding error.
-|
-| LaTeX has been asked to create a new control sequence '\l_tmpa_array' but
-| this name has already been used elsewhere.
-|
-| The current meaning is:
-| select font cmr10 at 0.00002pt
-|...............................................
-Defining \l_tmpa_array on line ...
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!
-! LaTeX error: "array/out-of-bounds"
-!
-! Access to an entry beyond an array's bounds.
-!
-! See the LaTeX3 documentation for further information.
-!
-! For immediate help type H <return>.
-!...............................................
-l. ... }
-|'''''''''''''''''''''''''''''''''''''''''''''''
-| An attempt was made to access or store data at position 0 of the array
-| '\l_tmpa_array', but this array has entries at positions from 1 to 12.
-|...............................................
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!
-! LaTeX error: "array/overflow"
-!
-! Integers larger than 2^{30}-1 cannot be stored in arrays.
-!
-! See the LaTeX3 documentation for further information.
-!
-! For immediate help type H <return>.
-!...............................................
-l. ... }
-|'''''''''''''''''''''''''''''''''''''''''''''''
-| An attempt was made to store -2000000000 at position 1 in the array
-| '\l_tmpa_array'. The largest allowed value -1073741823 will be used instead.
-|...............................................
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!
-! LaTeX error: "array/out-of-bounds"
-!
-! Access to an entry beyond an array's bounds.
-!
-! See the LaTeX3 documentation for further information.
-!
-! For immediate help type H <return>.
-!...............................................
-l. ... }
-|'''''''''''''''''''''''''''''''''''''''''''''''
-| An attempt was made to access or store data at position 13 of the array
-| '\l_tmpa_array', but this array has entries at positions from 1 to 12.
-|...............................................
-! Undefined control sequence.
-<argument> \LaTeX3 error:
- Access to an entry beyond an array's bounds.
-l. ... }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-0
--1073741823
-0
-! Undefined control sequence.
-<argument> \LaTeX3 error:
- Access to an entry beyond an array's bounds.
-l. ... }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-0
-============================================================
-============================================================
-TEST 3: Unsafe array operations with errors
-============================================================
-Defining \l_tmpb_array on line ...
-! Font \l_tmpb_array has only 15 fontdimen parameters.
-<recently read> \l_tmpb_array
-l. ... }
-To increase the number of font parameters, you must
-use \fontdimen immediately after the \font is loaded.
-! Dimension too large.
-<to be read again>
- \scan_stop:
-l. ... }
-I can't work with sizes bigger than about 19 feet.
-Continue and I'll use the largest value I can.
-! Dimension too large.
-<to be read again>
- \scan_stop:
-l. ... }
-I can't work with sizes bigger than about 19 feet.
-Continue and I'll use the largest value I can.
-! Font \l_tmpb_array has only 16 fontdimen parameters.
-<recently read> \l_tmpb_array
-l. ... }
-To increase the number of font parameters, you must
-use \fontdimen immediately after the \font is loaded.
-0
--1073741823
-0
-123456
-0
-1234567
-Defining \l_tmpc_array on line ...
-! Font \l_tmpb_array has only 17 fontdimen parameters.
-<recently read> \l_tmpb_array
-l. ... }
-To increase the number of font parameters, you must
-use \fontdimen immediately after the \font is loaded.
-! Font \l_tmpb_array has only 17 fontdimen parameters.
-<recently read> \l_tmpb_array
-l. ... }
-To increase the number of font parameters, you must
-use \fontdimen immediately after the \font is loaded.
-0
-============================================================
-============================================================
-TEST 4: Any stray non-zero?
-============================================================
-Defining \l_tmpd_array on line ...
-============================================================
Copied: trunk/l3experimental/l3str/testfiles/m3intarray001.luatex.tlg (from rev 7082, trunk/l3experimental/l3str/testfiles/m3array001.luatex.tlg)
===================================================================
--- trunk/l3experimental/l3str/testfiles/m3intarray001.luatex.tlg (rev 0)
+++ trunk/l3experimental/l3str/testfiles/m3intarray001.luatex.tlg 2017-04-13 13:37:50 UTC (rev 7084)
@@ -0,0 +1,146 @@
+This is a generated file for the LaTeX (2e + expl3) validation system.
+Don't change this file in any respect.
+Author: Bruno Le Floch
+============================================================
+TEST 1: Safe array operations
+============================================================
+Defining \l_tmpa_intarray on line ...
+123
+-10
+-200
+0
+12345
+============================================================
+============================================================
+TEST 2: Safe array operations with errors
+============================================================
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!
+! LaTeX error: "kernel/command-already-defined"
+!
+! Control sequence \l_tmpa_intarray already defined.
+!
+! See the LaTeX3 documentation for further information.
+!
+! For immediate help type H <return>.
+!...............................................
+l. ... }
+|'''''''''''''''''''''''''''''''''''''''''''''''
+| This is a coding error.
+|
+| LaTeX has been asked to create a new control sequence '\l_tmpa_intarray' but
+| this name has already been used elsewhere.
+|
+| The current meaning is:
+| select font cmr10 at 0.00002pt
+|...............................................
+Defining \l_tmpa_intarray on line ...
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!
+! LaTeX error: "intarray/out-of-bounds"
+!
+! Access to an entry beyond an array's bounds.
+!
+! See the LaTeX3 documentation for further information.
+!
+! For immediate help type H <return>.
+!...............................................
+l. ... }
+|'''''''''''''''''''''''''''''''''''''''''''''''
+| An attempt was made to access or store data at position 0 of the array
+| '\l_tmpa_intarray', but this array has entries at positions from 1 to 12.
+|...............................................
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!
+! LaTeX error: "intarray/overflow"
+!
+! Integers larger than 2^{30}-1 cannot be stored in arrays.
+!
+! See the LaTeX3 documentation for further information.
+!
+! For immediate help type H <return>.
+!...............................................
+l. ... }
+|'''''''''''''''''''''''''''''''''''''''''''''''
+| An attempt was made to store -2000000000 at position 1 in the array
+| '\l_tmpa_intarray'. The largest allowed value -1073741823 will be used
+| instead.
+|...............................................
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!
+! LaTeX error: "intarray/out-of-bounds"
+!
+! Access to an entry beyond an array's bounds.
+!
+! See the LaTeX3 documentation for further information.
+!
+! For immediate help type H <return>.
+!...............................................
+l. ... }
+|'''''''''''''''''''''''''''''''''''''''''''''''
+| An attempt was made to access or store data at position 13 of the array
+| '\l_tmpa_intarray', but this array has entries at positions from 1 to 12.
+|...............................................
+! Undefined control sequence.
+<argument> \LaTeX3 error:
+ Access to an entry beyond an array's bounds.
+l. ... }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+0
+-1073741823
+0
+! Undefined control sequence.
+<argument> \LaTeX3 error:
+ Access to an entry beyond an array's bounds.
+l. ... }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+0
+============================================================
+============================================================
+TEST 3: Unsafe array operations with errors
+============================================================
+Defining \l_tmpb_intarray on line ...
+! Font \l_tmpb_intarray has only 15 fontdimen parameters.
+<recently read> \l_tmpb_intarray
+l. ... }
+To increase the number of font parameters, you must
+use \fontdimen immediately after the \font is loaded.
+! Dimension too large.
+<to be read again>
+\scan_stop:
+l. ... }
+I can't work with sizes bigger than about 19 feet.
+Continue and I'll use the largest value I can.
+! Dimension too large.
+<to be read again>
+\scan_stop:
+l. ... }
+I can't work with sizes bigger than about 19 feet.
+Continue and I'll use the largest value I can.
+! Font \l_tmpb_intarray has only 16 fontdimen parameters.
+<recently read> \l_tmpb_intarray
+l. ... }
+To increase the number of font parameters, you must
+use \fontdimen immediately after the \font is loaded.
+0
+-1073741823
+0
+123456
+0
+1234567
+Defining \l_tmpc_intarray on line ...
+12345678
+============================================================
+============================================================
+TEST 4: Any stray non-zero?
+============================================================
+Defining \l_tmpd_intarray on line ...
+============================================================
Copied: trunk/l3experimental/l3str/testfiles/m3intarray001.lvt (from rev 7082, trunk/l3experimental/l3str/testfiles/m3array001.lvt)
===================================================================
--- trunk/l3experimental/l3str/testfiles/m3intarray001.lvt (rev 0)
+++ trunk/l3experimental/l3str/testfiles/m3intarray001.lvt 2017-04-13 13:37:50 UTC (rev 7084)
@@ -0,0 +1,78 @@
+%
+% Copyright (C) 2017 LaTeX3 Project
+%
+
+\documentclass{minimal}
+\input{regression-test}
+\RequirePackage[log-functions, check-declarations]{expl3}
+\RequirePackage{l3intarray}
+
+\begin{document}
+
+\START
+\AUTHOR{Bruno Le Floch}
+\ExplSyntaxOn
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\TEST { Safe~array~operations }
+ {
+ \__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 }
+ \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 } }
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\TEST { Safe~array~operations~with~errors }
+ {
+ \__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 }
+ \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 } }
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\TEST { Unsafe~array~operations~with~errors }
+ {
+ \__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 }
+ \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 } }
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\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} } }
+ }
+
+\END
Copied: trunk/l3experimental/l3str/testfiles/m3intarray001.tlg (from rev 7082, trunk/l3experimental/l3str/testfiles/m3array001.tlg)
===================================================================
--- trunk/l3experimental/l3str/testfiles/m3intarray001.tlg (rev 0)
+++ trunk/l3experimental/l3str/testfiles/m3intarray001.tlg 2017-04-13 13:37:50 UTC (rev 7084)
@@ -0,0 +1,156 @@
+This is a generated file for the LaTeX (2e + expl3) validation system.
+Don't change this file in any respect.
+Author: Bruno Le Floch
+============================================================
+TEST 1: Safe array operations
+============================================================
+Defining \l_tmpa_intarray on line ...
+123
+-10
+-200
+0
+12345
+============================================================
+============================================================
+TEST 2: Safe array operations with errors
+============================================================
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!
+! LaTeX error: "kernel/command-already-defined"
+!
+! Control sequence \l_tmpa_intarray already defined.
+!
+! See the LaTeX3 documentation for further information.
+!
+! For immediate help type H <return>.
+!...............................................
+l. ... }
+|'''''''''''''''''''''''''''''''''''''''''''''''
+| This is a coding error.
+|
+| LaTeX has been asked to create a new control sequence '\l_tmpa_intarray' but
+| this name has already been used elsewhere.
+|
+| The current meaning is:
+| select font cmr10 at 0.00002pt
+|...............................................
+Defining \l_tmpa_intarray on line ...
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!
+! LaTeX error: "intarray/out-of-bounds"
+!
+! Access to an entry beyond an array's bounds.
+!
+! See the LaTeX3 documentation for further information.
+!
+! For immediate help type H <return>.
+!...............................................
+l. ... }
+|'''''''''''''''''''''''''''''''''''''''''''''''
+| An attempt was made to access or store data at position 0 of the array
+| '\l_tmpa_intarray', but this array has entries at positions from 1 to 12.
+|...............................................
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!
+! LaTeX error: "intarray/overflow"
+!
+! Integers larger than 2^{30}-1 cannot be stored in arrays.
+!
+! See the LaTeX3 documentation for further information.
+!
+! For immediate help type H <return>.
+!...............................................
+l. ... }
+|'''''''''''''''''''''''''''''''''''''''''''''''
+| An attempt was made to store -2000000000 at position 1 in the array
+| '\l_tmpa_intarray'. The largest allowed value -1073741823 will be used
+| instead.
+|...............................................
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!
+! LaTeX error: "intarray/out-of-bounds"
+!
+! Access to an entry beyond an array's bounds.
+!
+! See the LaTeX3 documentation for further information.
+!
+! For immediate help type H <return>.
+!...............................................
+l. ... }
+|'''''''''''''''''''''''''''''''''''''''''''''''
+| An attempt was made to access or store data at position 13 of the array
+| '\l_tmpa_intarray', but this array has entries at positions from 1 to 12.
+|...............................................
+! Undefined control sequence.
+<argument> \LaTeX3 error:
+ Access to an entry beyond an array's bounds.
+l. ... }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+0
+-1073741823
+0
+! Undefined control sequence.
+<argument> \LaTeX3 error:
+ Access to an entry beyond an array's bounds.
+l. ... }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+0
+============================================================
+============================================================
+TEST 3: Unsafe array operations with errors
+============================================================
+Defining \l_tmpb_intarray on line ...
+! Font \l_tmpb_intarray has only 15 fontdimen parameters.
+<recently read> \l_tmpb_intarray
+l. ... }
+To increase the number of font parameters, you must
+use \fontdimen immediately after the \font is loaded.
+! Dimension too large.
+<to be read again>
+ \scan_stop:
+l. ... }
+I can't work with sizes bigger than about 19 feet.
+Continue and I'll use the largest value I can.
+! Dimension too large.
+<to be read again>
+ \scan_stop:
+l. ... }
+I can't work with sizes bigger than about 19 feet.
+Continue and I'll use the largest value I can.
+! Font \l_tmpb_intarray has only 16 fontdimen parameters.
+<recently read> \l_tmpb_intarray
+l. ... }
+To increase the number of font parameters, you must
+use \fontdimen immediately after the \font is loaded.
+0
+-1073741823
+0
+123456
+0
+1234567
+Defining \l_tmpc_intarray on line ...
+! Font \l_tmpb_intarray has only 17 fontdimen parameters.
+<recently read> \l_tmpb_intarray
+l. ... }
+To increase the number of font parameters, you must
+use \fontdimen immediately after the \font is loaded.
+! Font \l_tmpb_intarray has only 17 fontdimen parameters.
+<recently read> \l_tmpb_intarray
+l. ... }
+To increase the number of font parameters, you must
+use \fontdimen immediately after the \font is loaded.
+0
+============================================================
+============================================================
+TEST 4: Any stray non-zero?
+============================================================
+Defining \l_tmpd_intarray on line ...
+============================================================
More information about the latex3-commits
mailing list