CTAN update: expltools

CTAN Announcements via ctan-ann <[email protected]> Wed, 13 May 2026 16:06:35 +0200 (CEST)
Newsgroups gmane.comp.tex.ctan.announce
Organization CTAN
Message-ID <866e3d1ac20d6412@hogwart>
Vít Starý Novotný submitted an update to the

                expltools

package.

Version: 2026-05-12
License: lppl1.3c gpl2+

Summary description: Development tools for expl3 programmers

Announcement text:
--------------------------------------------------------------------------------

## expltools 2026-05-12

### explcheck v0.21.0

#### New features

This version of explcheck has implemented the following new features:

- Add command-line option `--inline-config`. (suggested by @muzimuzhi in #203,
  added in #211)

  This option accepts a TOML string that is treated as a config file,
  overriding any options specified in config files. The option may be specified
  repeatedly; when the same Lua option appears in multiple TOML strings, later
  occurrences take precedence.

  With this option, you can set ad-hoc Lua options without creating a config
  file. For example, to disable the Lua option `stop_early_when_confused`, you
  can write `--inline-config defaults.stop_early_when_confused=false`.

- Support specifying Lua options at the top level of the config file.
  (suggested by @muzimuzhi in #203, added in #211)

  This allows you to omit the `[defaults]` section from your config file. For
  example, the following is now a complete valid config file:

  ``` toml
  max_line_length = 120
  ignored_issues = ["w100", "S"]
  ```

  This also simplifies the use of the `--inline-config` command-line option:
  you can now write `--inline-config stop_early_when_confused=false` without
  the previously required `defaults.` prefix.

- Change the semantics of the Lua options
  `max_reaching_definition_inner_loops` and
  `max_reaching_definition_outer_loops` to perform a partial reaching
  definition analysis when the limits are exceeded. (#212, 975f91d)

  Previously, exceeding either limit would cause explcheck to abort the
  analysis. Now, processing only aborts when the number of reaching definition
  loops exceeds the theoretical upper bounds, which indicates a bug. By
  contrast, when the limits specified by these options are exceeded, explcheck
  now continues with a partial analysis. This may lead to false positive issues
  reported by the flow analysis, but can also greatly improve performance.

#### Fixes

This version of explcheck has fixed the following problems:

- Do not report issue W429 (Defined an unexpandable function as unprotected)
  for restricted-expandable functions. (e507747)

- Fix potentially untrue assertion predicates in the flow analysis. (reported
  by @muzimuzhi in #208, fixed in #209)

- Do not expect the `statements` key in all segments. (#212)

  Some segment types such as `BOOLEAN_EXPRESSION` only contain `calls`, not
  `statements`.

#### Deprecations

This version of explcheck has deprecated the following features and scheduled
them for removal in v1.0.0:

- Rename the Lua option `config_file` to `config_files` and deprecate
  `config_file`. (#211)

- Deprecate the command-line option `--expl3-detection-strategy`. (#211)

  If you rely on this option, you may set it using `--inline-config`. For
  example, you would replace `--expl3-detection-strategy always` with
  `--inline-config 'expl3_detection_strategy = "always"'.

#### Continuous integration

This version of explcheck has made the following changes to our continuous
integration (CI):

- Run the flow analysis on the whole TeX Live in the CI. (#208, #210, #212,
  975f91d, 59be8c3)
- Cancel previous CI run from the same branch or pull request. (cae310d)
- Do not run the CI when tags are pushed. (d88b2f1, 8c7a960)

--------------------------------------------------------------------------------

This package is located at
   https://mirrors.ctan.org/support/expltools

More information is at
   https://ctan.org/pkg/expltools


--------------------------------------------------------------------------------

   Thanks for the upload.

     For the CTAN Team
    Manfred Lotz


CTAN is run entirely by volunteers and supported by TeX user groups.
Please join a user group or donate to one, see https://ctan.org/lugs .
_______________________________________________
ctan-ann mailing list -- [email protected]
To unsubscribe send an email to [email protected]