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
_______________________________________________
ctan-ann mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to