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