CTAN update: expltools

CTAN Announcements via ctan-ann via ctan-ann <[email protected]> Sun, 31 May 2026 14:47:40 +0200 (CEST)
Newsgroups gmane.comp.tex.ctan.announce
Organization CTAN
Message-ID <[email protected]>
Vít Starý Novotný submitted an update to the

                 expltools

package.

Version number: 2026-05-29
License type: lppl1.3c gpl2+

Summary description: Development tools for expl3 programmers

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


## expltools 2026-05-29

### explcheck v0.22.0

#### New features

This version of explcheck has implemented the following new features:

- Add more support for flow analysis. (#218)

   This adds support for the following issues from the document titled
   [_Warnings and errors for the expl3 analysis tool_][warnings-and-errors]:

   1. W517 (Unused variable or constant)

- In the semantic analysis, add a call type for standalone variable or constant
   control sequences. (#213, #215)

   Previously, standalone variable or constant control sequences were considered
   other unrecognized tokens. This has improved [code coverage][] by 33,294
   expl3 tokens (~0.4% of all expl3 tokens) on TeX Live 2025.

- Perform semantic analysis on boolean expression segments. (#213, #215)

- Detect boolean expression segments in calls to control sequences like
   `\bool_if:nTF`. (#215, #217)

- Emit both `VARIABLE_DECLARATION` and `VARIABLE_DEFINITION` statements for
   constant definitions like `\tl_const:Nn`. (#218)

   Previously, only a `VARIABLE_DEFINITION` statement would have been produced,
   requiring special-casing for issues like W415 (Unused variable or constant),
   W416 (Setting an undeclared variable), and W419 (Using an undeclared variable
   or constant).

- In flow analysis, draw `VARIABLE_USE` and `VARIABLE_USE_RETURN` edges. (#218)

- Include the number of reaching definition loops in verbose command-line
   output. (#218)

#### Fixes

This version of explcheck has fixed the following problems:

- Do not report issue W415 (Unused variable or constant) for defined box
   variables. (reported by @dcpurton in #214, fixed in #216)

   Defining box variables can have useful side effects even if the variable
   isn't used elsewhere.

- In the semantic analysis, consider `\⟨type⟩_log:*` a variable use. (#217)

- Reduce false positive detections of issues E408 (Calling an undefined
   function), E411 (Indirect function definition from an undefined function),
   and W416 (Setting an undeclared variable). (#218)

   This was achieved by using pattern-based matching for only partially
   understood variable declarations and function definitions.

#### Warnings and errors

This version of explcheck has made the following changes to the document titled 
[_Warnings and errors for the expl3 analysis tool_][warnings-and-errors]:

- Remove planned issue W511 (Defined an expandable function as protected), since
   it doesn't actually constitute an issue: there are good reasons to protect a
   function from expansion, even if it is otherwise expandable. (#213)

#### Housekeeping

This version of explcheck has completed the following housekeeping tasks:

- Reduce repetition in the function `analyze_group_wide_statements()` from
   `explcheck-semantic-analysis.lua` by introducing two new mechanisms:
   maybe-trackers and statement category lists and indices. (#217)

#### Continuous integration

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

- In the CI, force flow analysis for TeX Live 2025 rather than the latest TeX
   Live, so that we can compare the diff against our 2025 baselines. (ea03ec0)
- In the CI, check that the `lua-toml` submodule is up-to-date even if checking
   the `latex3` submodule failed. (340f6bc)

#### Dependencies

This version of explcheck has made the following changes to third-party Git 
submodules and other dependencies:

- Update the `latex3` submodule from 2026-04-28-dev to 2026-05-15-dev. (85b126a)

  [code coverage]: https://witiko.github.io/Expl3-Linter-11/#code-coverage
  [warnings-and-errors]: https://github.com/witiko/expltools/releases/download/latest/warnings-and-errors.pdf


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

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

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

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

    Thanks for the upload.

      For the CTAN Team
     Erik Braun

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

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]