CTAN Comprehensive TeX Archive Network

CTAN update: expltools

Date: March 5, 2026 3:53:35 PM CET
Vít Starý Novotný submitted an update to the expltools package. Version: 2026-03-04 License: lppl1.3c gpl2+ Summary description: Development tools for expl3 programmers Announcement text:
## expltools 2026-03-04 ### explcheck v0.18.0 #### Enhancements This version of explcheck has made the following new enhancements: - In human-readable output, mention that further issues may be reported after fixing the current errors after we have failed fast. (reported by @dbitouze and @muzimuzhi in #170 and #171, fixed in #175) - Add more support for flow analysis. (#176) This adds support for the following issues from Section 5.1 of the document titled [_Warnings and errors for the expl3 analysis tool_][warnings-and-errors]: 1. E505 (Calling an undefined function) Flow analysis is now enabled by default for all package files with at least 95% code understanding. - In issue W419 (Using an undeclared variable or constant), also report undeclared usages through `V`- and `v`-type arguments. (#176) - Support the plain TeX `\newtoks` command and the corresponding deprecated expl3 function `\toks_new:N`. (#176) - Support separate command-line options `--long-option value` in addition to `--long-option=value`. (contributed by @muzimuzhi in #178) - Deprecate the command-line options `--group-files={true|false|auto}` and `--make-at-letter={true|false|auto}`. Add the valueless options `--make-at-letter`, `--make-at-other`, `--group-files`, and `--no-group-files`. (#178) The expected usage is now as follows: - `--make-at-letter` instead of `--make-at-letter=true` - `--make-at-other` instead of `--make-at-letter=false` - `--group-files` instead of `--group-files=true` - `--no-group-files` instead of `--group-files=false` - no option instead of `--make-at-letter=auto` and `--group-files=auto` (default) The deprecated options are scheduled for removal in version 1.0.0. #### Code understanding This version of explcheck introduces the following changes to code understanding and to how it evaluates its own level of confidence: - Add support for `\cs_undefine:N`. (#176) - Treat simple constant and variable definitions, as well as message texts, as well-understood. (#176) - Consider `FUNCTION_CALL` statements high-confidence and well-understood only if there are no potential low-confidence definitions of the called control function. (#176) These changes have had a mixed effect on the [code coverage][]. Overall, it has remained mostly stable, but coverage on the current TeX Live 2025 snapshot (2026-02-19) now rounds to 19%, down from the previous 20%. [code coverage]: https://witiko.github.io/Expl3-Linter-11/#code-coverage #### Fixes This version of explcheck has fixed the following bugs: - Fix an integer overflow in function `format_pathname()`. (reported by @muzimuzhi in #163, fixed in 776eb72) - Fix a failure to load TOML files whose last line is a comment without a trailing newline. (reported by @Chipsterjulien in jonstoler/lua-toml#27 and by @muzimuzhi in #165, fixed in #166) - Record control sequence name usage and definitions in unanalyzed arguments. (reported by @dbitouze in #170 and #173, fixed in #174) - Do not produce warning S204 (Missing stylistic whitespaces) for repeated begin group (`{{`) or end group (`}}`). (discovered in witiko/markdown#623, fixed in #177) #### Documentation This version of explcheck has made the following improvements to the documentation: - Document that `% noqa` at the top of a file silences issues everywhere. (f1528f1) #### Continuous integration This version of explcheck has made the following changes to our continuous integration: - Run LuaLS even if Luacheck failed. (95f71a1) - Run one additional process to reduce the problem of idle CPUs near the end while one worker grinds a difficult task. (#174, 19ceb45) - Increase the time limit for running explcheck over the entire TeX Live from 3 to 5 minutes. (#176) - Migrate from `TeX-Live/setup-texlive-action@v3` to `zauguin/install-texlive@v4`. (drafted by @koppor in koppor#1 and independently suggested by @muzimuzhi and @gucci-on-fleek in #178, added in #181) - Bump `actions/upload-artifact` from 6 to 7. (contributed by @dependabot in #179) - Bump `actions/download-artifact` from 7 to 8. (contributed by @dependabot in #180)
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 Petra Rübe-Pugliese
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.

Packageexpltools
Version 2026-03-04
Copyright2024–2026 Vít Starý Novotný
MaintainerVít Starý Novotný

Announcements

more

Guest Book Sitemap Contact Contact Author