CTAN Comprehensive TeX Archive Network

CTAN update: expltools

Date: March 11, 2026 2:23:54 PM CET
Vít Starý Novotný submitted an update to the expltools package. Version: 2026-03-10 License: lppl1.3c gpl2+ Summary description: Development tools for expl3 programmers Announcement text:
## expltools 2026-03-10 ### explcheck v0.18.1 #### Fixes This version of explcheck has fixed the following problems: - Merge consecutive blocks of function (variant) definitions and function undefinitions into macro-statements that form flow-graph vertices instead of individual statements. (suggested by @lostenderman in #156, fixed in #183) This change improves processing time by about 10% for an average package file in TeX Live 2024, and by up to 98% (or 53×) for large files such as `expl3-code.tex` when flow analysis is enabled despite incomplete code understanding. It also reduces the memory footprint of flow analysis by up to 3× for those files. After this change, the default value of the Lua option `max_reaching_definition_inner_loops` has been reduced from 30,000,000 to just 650,000 inner-loop iterations. - Fix the assignment of segment numbers to replacement texts. (#183) This would cause function definition statements to point to segments other than the replacement texts, confusing the flow analysis. This change reduces processing time by about 2% for an average package file in TeX Live 2024, and by up to 11% for large files such as `expl3-code.tex` when flow analysis is enabled despite incomplete code understanding. - Raise an error on ambiguous uses of `--long-option VALUE`, where `VALUE` is a valid command-line option. (contributed by @muzimuzhi in #185 and c48fa116) #### Docker image This version of explcheck has made the following changes to our Docker image `ghcr.io/witiko/expltools/explcheck`: - Replace Lua 5.3 with LuaJIT in `Dockerfile`. (#184) This change improves processing time by about 33% for an average package file in TeX Live 2024, and by up to 61% for large files such as `expl3-code.tex` when flow analysis is enabled despite incomplete code understanding. #### Continuous integration This version of explcheck has made the following changes to our continuous integration: - Run regression tests on different Lua interpreters: Lua 5.2, 5.3, 5.4, LuaTeX, and LuaJIT. (#184) - Bump `docker/login-action` from 3 to 4. (contributed by @dependabot in #186.) Overall, the changes in this release reduce the processing time for large files such as `expl3-code.tex` from months to hours (up to 65×) when flow analysis is enabled despite incomplete code understanding, and reduce the memory footprint of flow analysis by up to 3× for those files. While this is still insufficient for real-time use (e.g., in a language server; see ticket #68), it makes the tool practical for scenarios such as continuous integration. For a discussion of other potential performance improvements of the flow analysis, see ticket #156.
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.

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

Announcements

more

Guest Book Sitemap Contact Contact Author