All notable changes to the l3kernel
bundle since the start of 2018
will be documented in this file.
The format is based on Keep a Changelog, this project uses date-based 'snapshot' version identifiers.
- In
\peek_analysis_map_inline:n
, omit unnecessary\exp_not:n
when the token seen is a character that is neither active nor a macro parameter character
\peek_analysis_map_inline:n
support for macro parameter characters (issue #1109) and for many expandable tokens (issue #1110)
- Set media box for test phase documents
- Text case switching in
\text_titlecase_first:n
(issue #1130)
\pdf_object_new:n
and\pdf_object_write:nnn
- support assignment of object type at point-of-writing (issue #1123)\text_map_function:nN
and\text_map_inline:nn
for mapping to graphemes in textual input- Support for medevial Latin case changing
\char_to_nfd:n
to extend NFD support to 8-bit engines
- Shortened range of chars which are left unchanged when converted to
strings with
\str_(g)set_convert:Nnnn
. \color_if_exist:n(TF)
- Support for case changing Vietnamese characters with 8-bit engines
- Parsing of
cmy
,tHsb
and&spot
color models to support data exchange withxcolor
- Replace
LaTeX3
in message text byLaTeX
- Approach to setting current color data from LaTeX2e
- Support for case changing Croatian diagraph with 8-bit engines
- Support accent removal when uppercasing Greek with 8-bit engines
- Function
\sys_ensure_backend:
- Behavior of
\color_math:nn
in alignments - Expansion of text containing unterminated
\romannumeral
primitives
\iow_open:N
in ConTeXt MkII
- Correct argument order in
\text_case_switch:nnnn
- Improved approach to
\text_case_switch:nnnn
expansion
\text_declare_case_equivalent:Nn
,\text_case_switch:nnnn
and related mechanism to allow specialisation of case changing output for selected commands
\cs_parameter_spec:N
\text_expand:n
now acts on active chars to support legacy input encodings
\cs_argument_spec:N
- Correct validity check performed by
\regex_show:N
(issue #1093) - Closing of file handles (issue #1105)
- Made
\peek_analysis_map_inline:n
alignment-safe (issue #1090) - Setting a boolean to itself no longer errors (issue #1055)
- Exclude only first mandatory argument of entries in
\l_text_case_exclude_arg_tl
from case changing
- Add
\lua_load_module:n
- Typo in implementation of titlecase
hy-x-yiwn
- Definition order issue with
\str_case:Nn(TF)
- Language settings
hy
andhy-x-yiwn
for handling of ech-yiwn ligature uppercasing
- Support BCP 47 properly in case changer language argument
- Correct
el-xiota
andde-xeszett
toel-x-iota
andde-x-eszett
- Language setting
el-xiota
for retention of ypogegrammeni when uppercasing Greek
- Rename case-changing variant
de-alt
tode-xeszett
to align withluaotfload
- Allow for
\lccode
/\uccode
changes in\char_...case:n
functions
- Support for ypogegrammeni in case changing Greek (see issue #1088)
- Collect some common code from
l3backend-color
\keys_precompile:nnN
for conversion of keyvals to fast-to-apply token lists- Missing
\str_if_empty:n(TF)
(see issue #1071) - Missing
\str_case:Nn(TF)
(see issue #1071) \tex_...:D
names for primitives added in TeX Live 2022
- Definition of
\legacy_if:n(TF)
to support primitive conditionals \str_<type>case:n
now case changes codepoints above 127 with all engines\char_generate:nn
now also allows to generate category 10 tokens (spaces) except for char code 0
- Handling of 'misplaced'
\protect
by\text_expand:n
- Nesting of
\tl_analysis_map_inline:nn
- Naming of an error message
- Better support for
\cite
, etc., in case changing
- Use of
\@uclclist
for case changing
- Distribute
l3doc.pdf
with a prominent warning about future changes \color_math:nn(n)
as a functional equivalent of the new\mathcolor
command in LaTeX2e
- Documentation for horizontal coffin poles (see issue #1041)
- Update primitive requirements to enable loading with Prote/HINT
- Auto-generate legacy switch if required in
.legacy_set_if:n
key property
- Correct creation of
.if
property - Handling of colors created in a group once they go out-of-scope
- Support for validity scope for keys
\peek_remove_filler:n
\prop_to_keyval:N
\regex_match_case:nn(TF)
,\regex_replace_case_once:nN(TF)
,\regex_replace_case_all:nN(TF)
- Policy change: functions will no longer be removed after deprecation,
thus the Lua functions noted below are the last 'stable' code to be
removed from
l3kernel
after deprecation - Allow indirect conversions between colorspaces through fallback models
- Move some color functions from
l3backend
\peek_..._ignore_spaces:N(TF)
functions\sys_load_deprecation:
- Option
undo-recent-deprecations
- Lua functions in
l3kernel
table
- Support for legacy
if
switches inl3keys
- Documentation improvements
- Implementation of
intarray
data type with LuaTeX - Better support for LuaMetaTeX
- DeviceN colorspace conversions with alternative model RGB
\prop_..._from_keyval:Nn
functions now support active comma or equal sign (pull #1012)
- Support for ICC-based color profiles
\color_profile_apply:nn
- Better DeviceN support
- Global assignments for
\box_gresize_to_ht_plus_dp:Nn
and\coffin_gattach:NnnNnnnn
- Conversion of DeviceN colors to device fallback
- Formatting of expandable errors (issue #931)
- Internal code for kernel messages
- Handling of multiple color models (issue #962)
- Functions marked for removal end-2020
- Local assignment to
\g__sys_backend_tl
- Incorrect internal function name (issue #939)
- Case-changing exceptions for (u)pTeX (issue #939)
- Low-level error if accent commands are not followed by letter when case changing (see #946)
- Loading when
\expanded
is not available
- Correctly detect local formats in
Mismatched LaTeX support files
error.
\msg_note:nnnnnn
(issue #911)\str_compare:nNnTF
(issue #927)\sys_timer:
\prop_concat:NNN
,\prop_put_from_keyval:Nn
(issue #924)- Functions to show and log various datatypes (issue #241):
\coffin_show:Nnn
,\coffin_show:N
,\coffin_log:Nnn
,\coffin_log:N
,\color_log:n
,\group_show_list:
,\group_log_list:
,\ior_show:N
,\ior_log:N
,\iow_show:N
,\iow_log:N
,\tl_log_analysis:N
,\tl_log_analysis:n
\legacy_if_set_true:n
,\legacy_if_set_false:n
,\legacy_if_set:nn
- Matching multiple regex at the same time (issue #433):
\regex_case_match:nn(TF)
,\regex_case_replace_once:nN(TF)
,\regex_case_replace_all:nN(TF)
- Checking brace balance in all regex functions (issue #377)
- Removing duplicates in clists when items contain commas (issue #917)
- Slight speed up in some elementary int/dim/skip/muskip operations and in setting tl or clist variables equal.
- Speed up mapping functions in l3clist, l3prop, l3seq, l3tl
- Loading of backend in generic DVI mode (issue #905)
- Make
\keyval_parse:nnn
alignment-safe (issue #896) - Control sequences and category codes in regex replacements (issue #909)
- Speed up
\group_align_safe_begin:
(pull #906)
- Color export in comma-separated format
\ur{...}
escape inl3regex
to compose regexes\seq_set_split_keep_spaces:Nnn
(see #784)\seq_set_item:Nnn(TF)
and\seq_pop_item:NnN(TF)
\box_ht_plus_dp:N
(issue #899)\clist_map_tokens:nn
,\clist_map_tokens:Nn
,\str_map_tokens:nn
,\str_map_tokens:Nn
- Use prevailing catcodes instead of string in regex replacement (issue #621) (Breaking change)
\__kernel_file_name_sanitize:n
now uses a faster\csname
-based approach to expand the file name- Improved performance for basic conditionals
\pdf_version_gset:n
support fordvips
- Improve handling of
\exp_not:n
in\text_expand:n
(issue #875) \file_full_name:n
now avoids calling\pdffilesize
primitive multiple times on the same file- Show printable characters explicitly in
\regex_show:n
- Regex replacement now errors when using a submatch (
\1
etc) for which the regex has too few groups - Showing complex datatypes now validates their internal structure (issue #884)
- Indexing in l3doc: all page references before codeline references, improve target placement, solve pdfTeX and makeindex warnings
- Evalutate integer constants only once (issue #861)
- Detect
\ior_map_inline:Nn
calls on undefined streams (issue #194)
l3docstrip
converted to a stub which simply loads DocStrip: use the latter directly
l3color
: Moved froml3experimental
l3pdf
: Moved froml3experimental
default
alias to str_convert
- Re-ordered
interface3
documentation - Moved
msg_show:nn(nnnn)
to stable
- Use new (internal) interface for kerns
\c_zero_str
\keyval_parse:nnn
\keyval_parse:NNn
is set equal to\keyval_parse:nnn
- Handling of encoding-specfic commands in
\text_purify:n
\peek_analysis_map_inline:n
with spaces and braces
- Setting of line width in vertical coffins in LaTeX
\peek_analysis_map_inline:n
\peek_regex:nTF
,\peek_regex_remove_once:nTF
, and\peek_regex_replace_once:nnTF
\token_case_catcode:NnTF
,\token_case_charcode:NnTF
, and\token_case_meaning:NnTF
- Extend
\text_expand:n
to cover\@protected@testopt
- Extend
\text_purify:n
to cover\@protected@testopt
\token_if_font_selection:N(TF)
(see #806)
- Avoid relying on braced
\input
primitive syntax - Correct expansion of environments in
\text_purify:n
- Some aspects of
cctab
setup with 8-bit engines(issue #814)
- Improved performance for
tl
functions - Extend case changer to cover all of Greek with pdfTeX
- Correctly detect LaTeX when pre-loading expl3 and setting up case changer
- Lua emulation of \strcmp (issue #813)
- Use Lua pseudo-primitives instead of
\directlua
\token_if_primitive:N(TF)
now reports pseudo-primitives as primitives in LuaTeX
- Loading in generic mode (issue #800)
- Save primitive definition of
\pdfoutput
with CSLaTeX
\hbox_overlap_center:n
- Backend setting for direct PDF output
- Backend setting for XeTeX support
- Backend setting
pdfmode
\file_compare_timestamp:nNn(TF)
in LuaTeX (issue #792)- Text case changing and expansion where an excluded command is equivalent
to
\use:n
- Color selection implementation
- Performance enhancements for
\keys_set:nn
- Loading generically on ConTeXt (issue #783)
l3cctab
module for using category code tables\file_parse_full_name:n
and\file_parse_full_name_apply:nN
- Additional
\prop_put:Nnn
variants \seq_set_map_x:NNn
\msg_term:nn(nnnn)
- File lookup with
\input@path
- 8-bit encodings in
\str_set_convert:Nnnn
- Implementation of
\file_parse_full_name:nNNN
now uses\file_parse_full_name:n
internally \seq_set_map:NNn
no longerx
-expands<inline function>
(\seq_set_map_x:NNn
now does that). Both moved to stable.
- Functions deprecated at end of 2019
\str_declare_eight_bit_encoding:nnn
- Use
scn
operator for separations - Internal color model
- Internal performance enhancements
- Moved
\msg_expandable_error:nn(nnnn)
to stable. - Moved
\seq_indexed_map_inline:Nn
and\seq_indexed_map_function:Nn
to stable as\seq_map_indexed_inline:Nn
and\seq_map_indexed_function:Nn
. - Internal changes to
expl3
to allow loading earlier in LaTeX2e.
\str_convert_pdfname:n
- Make
\text_purify:n
f
-type expandable
- Performance improvements in keyval processing
- Internal changes to quark handling
- Recognize the exponent marker
E
(same ase
) in floating point numbers
- Leave active characters untouched when case-changing (see #715)
- Control for start-of-titlecasing: see
\l_text_titlecase_check_letter_bool
- Nesting of
\seq_shuffle:N
in another sequence mapping (issue #687) \ior_shell_open:Nn
in engines other than LuaTeX - shell commands didn't execute, plus the command call would be left in the input stream.
\text_purify:n
- Issue with case-changing Turkish
\tex...:D
coverage for TeX Live 2020 engine changes
- New implementation for
\keyval_parse:NNn
- around 40% speed improvement, also expandable
- Make
expl3
reload-safe forlatexrelease
(see latex3/latex2e#295)
- Extend case-changing encoding support to Cyrillic and Greek
- Option
suppress-backend-headers
(see matching change inl3backend
)
- Allow
dvisvgm
driver with XeTeX (issue #677)
undo-recent-deprecations
would not reload the deprecation code
- Interaction with some
babel
languages at the start of the document
- Leave implicit tokens unchanged by
\text_expand:n
- Extend the
de-alt
case changing locale to 8-bit engines
- Key property
.cs_set:Np
and variants
- Support
\@uclclist
entries when case-changing
- Allow for full range of encodings when expanding text (issue #671)
- Support
\begin
/\end
in text expansion
\l_keys_key_str
and\l_keys_path_str
\l_keys_key_tl
and\l_keys_path_tl
, replaced by\l_keys_key_str
and\l_keys_path_str
, respectively
- Minor edits to LaTeX3 News
- Table of Contents for combined LaTeX3 News
- Use Lua
utf8
library if available
- Undefined command in box debugging code
- Support for command replacement in text expansion
- Require key values for numerical key types (dim, int, etc.) (see #661)
- Issue with keys where some leading spaces could be left in key names
\bool_case_true:n(TF)
and\bool_case_false:n(TF)
\file_hex_dump:n(nn)
and\file_get_hex_dump:n(nn)N(TF)
\str_<type>case:n
\text_<type>case:n(n)
\text_expand:n
and supporting data structures
- Distribute LaTeX3 News
- Moved
\char_<type>case:N
to stable - Documentation improvements
- Inherit key required/forbidden properties (see #653)
- Set backend at the beginning of
\document
(see #657)
\str_<type>_case:n
replaced by\str_<type>case:n
except\str_mixed_case:n
replaced by\str_titlecase:n
\tl_<type>_case:n(n)
replaced by\text_<type>case:n(n)
, except\tl_mixed_case:n(n)
replaced by\text_titlecase:n(n)
- Handling of repeated loading of a backend (issue #646)
- Handling of repeated loading of deprecated functions
- File searching when
\(pdf)filesize
is not available (fixes #644)
- Internal structure of
\c_sys_jobname_str
altered - Update upTeX test to follow guidance from developers
- File names are now returned without quotes by
\file_full_name:n
\file_if_exist:n(TF)
, etc., when dealing with file names containing spaces (see #642)
- Lua function
l3kernel.shellescape()
- Better coverage of (u)pTeX primitives following publication of pTeX manual in English
- Trim spaces surrounding file names
- HarfTeX primitives
- Correct handling of 'traditional' class options for backend
- Standard backend for (u)pTeX is now
dvips
- Minimum LuaTeX version now v0.95
- Moved
\debug_on:
,\debug_off:
,\debug_suspend:
and\debug_resume:
to stable - Accept 'traditional' class options for backend (
dvipdfmx
,dvips
, etc.) - Performance enhancements when loading
expl3
- Handling of files with no extension
- Behaviour of Lua function
l3kernel.charcat
in some circumstances - Loading under ConTeXt
- Variants using
\exp_args
functions with more than 9 arguments (see #636)
- File searching using
\file_full_name:n
(see #634)
- Speed up variants and reduce their
\tracingall
output - Debug and deprecation code are now loaded independently of expl3 core
\file_compare_timestamp:nNn(TF)
now usable in expansion contexts- Moved to stable:
\bool_const:Nn
\dim_sign:n
\file_compare_timestamp:nNn(TF)
- FP
logb
operator \fp_sign:n
fparray
module\int_sign:n
\intarray_const_from_clist:Nn
\intarray_show:N
\ior_map_variable:NNn
\ior_str_map_variable:NNn
\mode_leave_vertical:
\prop_(g)set_from_clist:Nn
\prop_const_from_clist:Nn
\seq_const_from_clist:Nn
\seq_(g)shuffle:N
\sys_if_platform_unix:(TF)
\sys_if_platform_windows:(TF)
\sys_gset_rand_seed:
\sys_rand_seed:
- Shell access functions
- Key
.initial:n
property when combined with inherited keys (see #631)
- Loading Unicode data when some chars may be active (see #627)
- Missing internal variant (fixes #624)
\file_full_name:n
,\file_mdfive_hash:n
,\file_size:n
,\file_timestamp:n
\seq_map_tokens:Nn
,\tl_map_tokens:nn
,\tl_map_tokens:Nn
- Moved
\prop_map_tokens:Nn
to stable - Generate chars with catcode as-supplied when case changing
\fp_if_nan:nTF
- Make round(.,nan)=nan with no "Invalid operation" error
\tl_rescan:nn
and\tl_(g)set_rescan:Nnn
when single-line input contains a comment character (see #607)- Final value of the variable in
\tl_map_variable:NNn
and\clist_map_variable:NNn
. - Remove duplicate keys in
\prop_set_from_keyval:Nn
(see #572)
\c_term_ior
- Coffin pole intersection in some cases (see #605)
- Loading for
expl3
with plain TeX
- Moved
l3str-convert
module tol3kernel
- Ensure
\msg_fatal:nn
ends the TeX run if used inside an hbox (see #587) - Moved backend code to a separate release schedule
- Handling of control sequences in key names (see #594)
- Experimental
\file_compare_timestamp:nNn(TF)
- Precedence of juxtaposition (implicit multiplication) in
l3fp
now different for keywords/variables and factors in parentheses
- Experimental driver-level interfaces for image inclusion
- Experimental
\ior_shell_open:Nn
- Some issues in
dvisvgm
driver
.muskip_set:N
property
- Experimental
\driver_pdf_compress_objects:n
replaces\driver_pdf_objects_(en|dis)able:
\char_str_<target>_case:N
- Infinite loop in some cases in DVI mode due to link-breaking code (see #570)
- Category code of output from
\char_<target>_case:N
, and same issue in\str_<target>_case:n
- New
l3legacy
module containing\legacy_if:n(TF)
- Moved
\file_get_mdfive_hash:nN(TF)
,\file_get_size:nN(TF)
and\file_get_timestamp:nN(TF)
to stable - Moved
\file_if_exist_input:n
and\file_if_exist_input:nF
to stable - Moved
\file_input_stop:
to stable - Moved
\peek_N_type:TF
to stable
- Experimental support for a range of PDF concepts at the lowest (driver abstraction) level
- Moved
\tl_if_single_token:n(TF)
to stable
- Support for ConTeXt from mid-December 2018
- Loading when pre-TL'18 XeTeX is in use (see #555)
\str_log:n
,\str_log:N
TF
versions for\file_get_...:nN
and\ior_(str_)get:NN
functions\cs_prefix_spec:N
,\cs_argument_spec:N
,\cs_replacement_spec:N
undo-recent-deprecations
optionfactorial
function inl3fp
- Return values from
\file_get:nnN
,\file_get_...:nN
,\ior_get:NN
,\sys_shell_get:nnN
- Moved coffin affine transformations to stable
- Moved
\prop_count:N
to stable - Moved
\tl_count_tokens:n
to stable - Completed emulation of e-type argument when
\expanded
is unavailable - Made expandable messages expand their result, like usual messages
- Made deprecation errors less intrusive by default
- Stopped providing do-nothing
\color
macro when undefined
\token_get_prefix_spec:N
,\token_get_arg_spec:N
,\token_get_replacement_spec:N
replaced by\cs_prefix_spec:N
,\cs_argument_spec:N
,\cs_replacement_spec:N
, respectively
- Treatment of inherited keys when setting only known keys (see #548)
- Experimental
\skip_split_finite_else_action:nnNN
- Experimental
\tl_reverse_tokens:n
- Defensive code for redefinition of
\time
,\day
,\month
and\year
- Resetting of key inheritance (see #535)
- Issue in deprecated command
\tl_set_from_file:Nnn
(see https://tex.stackexchange.com/q/474813/)
- Support for return of whole path by
\keys_set_known:nnN
-like function\keys_set_known:nnnN
(see #508) .prop_(g)put:N
key property (see #444)
- Handling of nested key setting when filtering, etc. (see #526)
- Inheritance of default values (see #504)
- Global versions of box affine functions, e.g.
\box_grotate:Nn
- Global versions of box size adjustment functions
\box_(g)set_eq_drop:NN
,\(h|v)box_unpack_drop:N
\file_get:nnN
and\file_get:nnNTF
- Experimental functions
\sys_shell_get:nnN
and\sys_shell_get:nnNTF
\char_generate:nn
now always takes exactly two expansions- Move
\prg_generate_conditional_variant:Nnn
to stable - Renamed experimental
\box_trim:Nnnnn
and\box_viewport:Nnnnn
as\box_set_trim:Nnnnn
and\box_set_viewport:Nnnnn
, respectively
\box_(g)set_eq_clear:NN
, replaced by\box_(g)set_eq_drop:NN
\(h|v)box_unpack_clear:N
, replaced by\(h|v)box_unpack_drop:N
\tl_(g)set_from_file(_x):Nnn
, replaced by\file_get:nnN
- Scope treatment of
\box_set_dp:N
, etc. - In (u)platex: detection of spaces in
\tl_rescan:nn
and related functions
- Experimental function family
\tl_(g)set_from_shell:(N|c)nn
(replaced by\sys_shell_get:nnN
)
\ior_map_variable:NNn
and\ior_str_map_variable:NNn
- Unclosed conditional with Unicode engines
- Improved
expl3
loading time with LuaTeX and XeTeX - Improved performance of
\ior_map_inline:Nn
and related functions
- Handling of accented characters under mixed case changing in 8-bit engines (see #514)
\iow_allow_break:
- Correct fp randint with zero argument (see #507)
- Handling of
\current@color
with(x)dvipdfmx
(see #510)
- Support for stand-alone
l3regex
,l3sort
,l3srt
,l3tl-analysis
,l3tl-build
\box_resize:Nnn
\box_use_clear:N
\c_minus_one
\file_add_path:nN
\file_list:
\file_path_include:n
and\file_path_remove:n
\io(r|w)_list_streams:
and\io(r|w)_log_streams:
\sort_ordered:
and\sort_reversed:
\token_new:Nn
- Generation of invalid variants from
n
/N
base types
- Move
\tl_range:nnn
to stable
- Loading in ConTeXt MkIV
- Enable
\char_generate:nn
to create active tokens with XeTeX
- Apply
\par
only at the end of vertical boxes - Move
\int_rand:n
to stable - Move
\<var>_rand_item:N
to stable
- Typo in
\lua_shipout_e:n
(see #503)
- Support for cross-compatibility primitives in XeTeX
\int_sign:n
,\dim_sign:n
and\fp_sign:n
- Wrapping of text in messages, etc., for some line lengths (fixes #491)
\g_msg_module_documentation_prop
(see #471)\peek_remove_spaces:n
- Formatting of messages: now follows LaTeX2e closely
\msg_interrupt:nn
,\msg_log:n
and\msg_term:n
- Handling of inheritance for choice keys (fixes #483)
- Some driver-level support for PDF features
\peek_catcode_collect_inline:Nn
,\peek_charcode_collect_inline:Nn
,\peek_meaning_collect_inline:Nn
- Handling of unknown keys when inheritance is active (fixes #481)
\lua_escape:e
,\lua_now:e
and\lua_shipout_e:n
\str_case_e:nn(TF)
and\str_if_eq:ee(TF)
\sys_if_platform_unix:(TF)
and\sys_if_platform_windows:(TF)
\tl_(g)set_from_shell:Nnn
\lua_escape_x:n
,\lua_now_x:n
and\lua_shipout_x:n
\str_case_x:nn(TF)
and\str_if_eq_x:nn(TF)
- Support for
e
-type argument using\expanded
or macro emulation
CHANGELOG.md
(fixes #460)
- Loading
expl3
with LuaTeX/XeTeX and certain letter tokens set to be active (see #462)
- Alter
\char_codepoint_from_bytes:n
to produce four groups in all cases; makef
-type expandable
- Correct date string in
expl3.dtx
- Correct
\c_sys_engine_version_str
when using XeTeX
- Define
\c_zero_int
and\c_one_int
- Implement
\c_sys_engine_version_str
- Implement
\seq_indexed_map_function/inline
- Implement
\intarray_gzero:N
- Implement
\intarray_const_from_clist:Nn
- Implement
\bool_set_inverse:N
- Implement
\bool_xor:nnTF
instead of just\bool_xor_p:nn
- Implement candidate
\int_rand:n
- Implement
\intarray_gset_rand:Nnn
- Implement candidate
l3fparray
module
- Update minimal required versions of XeTeX and LuaTeX
- Deprecate named integer constants
\c_zero
. etc. - Move all primitives to
\tex_...:D namespace
, deprecating older engine-dependent prefixes - Several internal optimisations
- Expand boolean expression before calling
\chardef
(fixes #461)
- Remove undocumented
\fp_function:Nw
and\fp_new_function:Npn
- Implement
\tl_analysis_map_inline:nn
- Implement
\exp_args_generate:n
to define new\exp_args:N...
functions - Low-level
\int_value:w
function - New experimental functions for
- Building token lists piecewise
- Fast manipulation of integer arrays
- Sequence shuffling
\seq_set_from_function:NnN
\char_codepoint_to_bytes:n
- Significant internal revision to use only internal functions 'private' to specific modules
- Better documentation of cross-module kernel-internal functions
- Enable
\char_generate:nn
for active chars - Renamed
\tl_show_analysis:(N|n)n
as\tl_analysis_show:(N|n)n
- Change
\int_rand:nn
(and rand_item functions) to better use the RNG - Make prg break functions public
- Make scan marks mechanism public
- Make
\prg_do_nothing:
long rather than nopar (fixes #455) - Several performance improvements
- Documentation improvements
- Only index TF, T, F functions together if they are
expl3
functions (fixes #453) - Make
\infty
and\pi
into errors in fp expressions (fixes #357)
- Deprecated functions expiring at end of 2017
- Old module
.sty
files
- Adjustments to
l3drivers
to supportl3draw
development inl3experimental
bundle
- Tuple support in fp expressions
- Step functions have been added for dim variables,
e.g.
\dim_step_inline:nnnn