CTAN update: expltools
Date: April 9, 2026 8:35:58 AM CEST
Vít Starý Novotný submitted an update to the
expltools
package.
Version: 2026-04-07
License: lppl1.3c gpl2+
Summary description: Development tools for expl3 programmers
Announcement text:
## expltools 2026-04-07 ### explcheck v0.19.1 #### Fixes This version of explcheck has fixed the following problems: - Fix malformed context for issue E505 (Calling an undefined function). (reported by @muzimuzhi in #191, fixed in #193) - Do not capture a newline after expl3-like material. (#193) This excludes the newline from the context messages and byte ranges for issues like E102 (Expl3 material in non-expl3 parts). - Only put argument specifiers in the context of issue E201 (Unknown argument specifiers), not the whole control sequence name. (#193) This makes the context of issue E201 consistent with issue E427 (Comparison conditional without signature `:nnTF`). - Fix the context of issue W200 ("Do not use" argument specifiers) missing characters when the name of the control sequence ends with double-superscript characters, like `\tex_let:^^44`. (#193) - Report resolved control sequence names (like `\tex_let:D`) instead of the raw input text (like `\tex_let:^^44`) for issues W200 and W202 (Deprecated control sequences). (#193) - Fix an incorrect assertion in code that reports issues E500 (Multiply defined function) and W501 (Multiply defined function variant). (reported by @muzimuzhi in #192, fixed in #194) - Do not consider a definition being reached by itself a redefinition. (reported by @muzimuzhi in #192, fixed in #194) This prevents false positive detections of the issues E500 and W501. - Do not report issue E505 (Calling an undefined function) when calling empty functions. (reported by @muzimuzhi in #192, fixed in #194) - Weaken the confidence of incoming reaching definitions when the in-degree is greater than one. (reported by @muzimuzhi in #192, fixed in #194) - Do not report issues for uninteresting macro-statements that are skipped during flow analysis and therefore have incomplete or unreliable information recorded. (#194) - Only require definite reaching definitions for issues E500 and W501, not issues E504 (Function variant for an undefined function), E506 (Indirect function definition from an undefined function), and W507 (Setting a function before definition). (#194) #### Continuous integration This version of explcheck has made the following changes to our continuous integration: - Check issue context in tests. (reported by @muzimuzhi in #191, added in #193)
This package is located at https://mirrors.ctan.org/support/expltools More information is at https://ctan.org/pkg/expltools
Thanks for the upload. For the CTAN Team Manfred Lotz 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 2026-04-07 ### explcheck v0.19.1 #### Fixes This version of explcheck has fixed the following problems: - Fix malformed context for issue E505 (Calling an undefined function). (reported by @muzimuzhi in #191, fixed in #193) - Do not capture a newline after expl3-like material. (#193) This excludes the newline from the context messages and byte ranges for issues like E102 (Expl3 material in non-expl3 parts). - Only put argument specifiers in the context of issue E201 (Unknown argument specifiers), not the whole control sequence name. (#193) This makes the context of issue E201 consistent with issue E427 (Comparison conditional without signature `:nnTF`). - Fix the context of issue W200 ("Do not use" argument specifiers) missing characters when the name of the control sequence ends with double-superscript characters, like `\tex_let:^^44`. (#193) - Report resolved control sequence names (like `\tex_let:D`) instead of the raw input text (like `\tex_let:^^44`) for issues W200 and W202 (Deprecated control sequences). (#193) - Fix an incorrect assertion in code that reports issues E500 (Multiply defined function) and W501 (Multiply defined function variant). (reported by @muzimuzhi in #192, fixed in #194) - Do not consider a definition being reached by itself a redefinition. (reported by @muzimuzhi in #192, fixed in #194) This prevents false positive detections of the issues E500 and W501. - Do not report issue E505 (Calling an undefined function) when calling empty functions. (reported by @muzimuzhi in #192, fixed in #194) - Weaken the confidence of incoming reaching definitions when the in-degree is greater than one. (reported by @muzimuzhi in #192, fixed in #194) - Do not report issues for uninteresting macro-statements that are skipped during flow analysis and therefore have incomplete or unreliable information recorded. (#194) - Only require definite reaching definitions for issues E500 and W501, not issues E504 (Function variant for an undefined function), E506 (Indirect function definition from an undefined function), and W507 (Setting a function before definition). (#194) #### Continuous integration This version of explcheck has made the following changes to our continuous integration: - Check issue context in tests. (reported by @muzimuzhi in #191, added in #193)
This package is located at https://mirrors.ctan.org/support/expltools More information is at https://ctan.org/pkg/expltools
Thanks for the upload. For the CTAN Team Manfred Lotz 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-04-07 |
| Copyright | 2024–2026 Vít Starý Novotný |
| Maintainer | Vít Starý Novotný |