CTAN update: expltools
Date: January 28, 2026 1:49:40 PM CET
Vít Starý Novotný submitted an update to the
>
> expltools
>
> package.
>
> Version: 2026-01-27
> License: lppl1.3c gpl2+
>
> Summary description: Development tools for expl3 programmers
>
> Announcement text:
> ----------------------------------------------------------------------
>
> ## expltools 2026-01-27
>
> ### explcheck v0.17.0
>
> #### Development
>
> This version of explcheck has implemented the following new features:
>
> - Implement reaching definitions algorithm for function (variant) definitions
> to the flow analysis. (#152)
>
> This algorithm has been described in some detail in [a recent blog
> post][Expl3-Linter-11.5].
>
> [Expl3-Linter-11.5]: https://witiko.github.io/Expl3-Linter-11.5/ "Static analysis of expl3 programs (11½): Chunks, edges, flow graphs, confidence, and reaching definitions"
>
> Flow analysis remains disabled by default, since no issues are reported from
> it yet. To enable it, set the Lua option `stop_after = "flow analysis"`
> either in your Lua code or your configuration file.
>
> After this change, you may already see preliminary flow analysis results in
> explcheck's verbose output. However, unless explcheck understands your file
> sufficiently well, it will typically stop before reaching the flow analysis
> step and will report this in the verbose output.
>
> If explcheck reaches semantic analysis, you can encourage it to proceed to
> flow analysis by decreasing the Lua option `min_code_coverage` towards zero.
> If explcheck bails out earlier, try disabling `stop_early_when_confused` or,
> ideally, improve your code quality and contribute to expltools so that it can
> understand your code better. ?
>
> - In the syntactic analysis, fix the assignment of segment numbers to `T`- and
> `F`-type arguments. (#152)
>
> - Add Lua options `max_reaching_definition_inner_loops` and
> `max_reaching_definition_outer_loops`. (#152)
>
> These options help guard against the reaching definitions algorithm failing
> to converge fast.
>
> #### Continuous integration
>
> This version of explcheck has made the following changes to our continuous
> integration:
>
> - Bump actions/download-artifact from 6 to 7. (contributed by @dependabot in #153)
>
> - Bump actions/upload-artifact from 5 to 6. (contributed by @dependabot in #154)
>
> - Display processing progress in the CI. (#152)
>
> - Analyze package files using multiple CPUs in the CI. (#152)
>
> This speeds up the CI by ca 40% from ca 25 minutes to ca 15 minutes.
>
> ----------------------------------------------------------------------
>
> The package’s Catalogue entry can be viewed at
> https://ctan.org/pkg/expltools
>
> The package’s files themselves can be inspected at
> https://mirrors.ctan.org/support/expltools/
>
> ----------------------------------------------------------------------
>
> Thanks for the upload.
>
> For the CTAN Team
> Vincent Goulet
>
> ----------------------------------------------------------------------
>
> 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
expltools – Development tools for expl3 programmers
This bundle introduces explcheck, a static analysis tool for developers working with expl3 code. Currently in its initial release, explcheck aims to help developers identify potential issues and improve code quality. In the future, this bundle may expand to include additional development tools for expl3.
| Package | expltools |
| Version | 2026-02-05 |
| Copyright | 2024–2026 Vít Starý Novotný |
| Maintainer | Vít Starý Novotný |