• CTAN update: expltools

    From CTAN Announcements@petra@ctan.org to CTAN Announcements on Wed Nov 26 12:38:12 2025
    From Newsgroup: comp.text.tex

    V|!t Star|+ Novotn|+ submitted an update to the

    expltools

    package.

    Version: 2025-11-24
    License: lppl1.3c gpl2+

    Summary description: Development tools for expl3 programmers

    Announcement text: ----------------------------------------------------------------------

    ## expltools 2025-11-24

    ### explcheck v0.16.0

    #### Development

    This version of explcheck has implemented the following new features:

    - Support specifying cut-off dates for deprecations from the file
    `l3obsolete.txt` and prefixes from the file `l3prefixes.csv`.
    (suggested by @YDX-2147483647 in #147 and #149, added in #150)

    For example, here is how your config file `.explcheckrc` might look if you
    would like to only take into account the deprecations and prefixes from
    TeX Live 2024 and earlier:

    ``` toml
    [defaults]
    l3obsolete_max_deprecated_date = "2024-03-30"
    l3prefixes_max_first_registered_date = "2024-11-18"
    ```

    You may get these dates by running the script `generate-explcheck-latex3.lua`
    with files `l3obsolete.txt` and `l3prefixes.csv` from TeX Live 2024 placed in
    the current working directory or other locations indexed by the KPathSea
    library. Here is the output of the script:

    ```
    LPEG parsers and other information extracted from LaTeX3 data files.
    Generated on 2025-11-06 from the following files:
    - "l3obsolete.txt" with the latest obsolete entry from 2024-03-30
    - "l3prefixes.csv" with the latest registered prefix from 2024-11-18
    ```

    You may also just use the dates of the last update to TeX Live 2024
    (2025-03-09) for both options, see https://tug.org/historic, directory
    `systems/texlive/2024/tlnet-final`.

    #### Fixes

    This version of explcheck has fixed the following bugs:

    - Fix an attempt to index a nil value in function `count_segments()` from the
    file `explcheck-evaluation.lua`. (#150)

    This bug would surface when printing results for files whose processing
    stopped before the syntactic analysis step.

    #### Continuous integration

    This version of explcheck has made the following changes to our continuous
    integration:

    - Use historic files "l3obsolete.txt" and "l3prefixes.csv" in CI. (#150)

    - Include example files from the `doc` subtree in regression tests. (#150)

    This has reduced code coverage from ca 24% to 21% of all expl3 tokens on
    TeX Live 2024 and from ca 22% to 20% on current TeX Live 2025 (2025-11-06).

    - Check if the configuration is minimal even for expl3 files without any
    issues. (#150)

    This is necessary to prevent incorrect recommendations to remove unnecessary
    default settings from the file `.explcheckrc` in the script
    `prune-explcheck-config.lua`.

    - Bump actions/checkout from 5 to 6. (contributed by @dependabot in #151)

    ----------------------------------------------------------------------

    The packagerCOs Catalogue entry can be viewed at
    https://ctan.org/pkg/expltools

    The packagerCOs 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
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From CTAN Announcements@manfred@ctan.org to ctan-ann on Fri Feb 6 15:46:52 2026
    From Newsgroup: comp.text.tex

    V|!t Star|+ Novotn|+ submitted an update to the

    expltools

    package.

    Version: 2026-02-05
    License: lppl1.3c gpl2+

    Summary description: Development tools for expl3 programmers

    Announcement text: --------------------------------------------------------------------------------

    ## expltools 2026-02-05

    ### explcheck v0.17.1

    #### Fixes

    This version of explcheck has fixed the following bugs:

    - Speed up processing steps before flow analysis. (#158..#161, aadd378)

    These changes improve processing time by about 15% for an average package
    file in the current TeX Live, and by up to 300% for large files like
    `expl3-code.tex`.

    #### Documentation

    This version of explcheck has made the following improvements to the documentation:

    - Specify syntax highlighting for configuration files. (contributed by
    @muzimuzhi in #157)

    #### Continuous integration

    This version of explcheck has made the following changes to our continuous integration:

    - Check Lua code using [the Lua Language Server (LuaLS)][LuaLS] in addition to
    [Luacheck][]. (#161)

    [LuaLS]: https://github.com/LuaLS/lua-language-server
    [Luacheck]: https://github.com/mpeterv/luacheck

    - Add a 3-minute time limit when running explcheck over the entire TeX Live
    to prevent excessively long analyses on infinite loops. (#161) --------------------------------------------------------------------------------

    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 .
    --- Synchronet 3.21b-Linux NewsLink 1.2
  • From CTAN Announcements@vincent@ctan.org to CTAN Announcements on Wed Jan 28 08:49:40 2026
    From Newsgroup: comp.text.tex


    --Apple-Mail=_6A90322E-94DF-441C-B1B8-328F8F988D19
    Content-Transfer-Encoding: quoted-printable
    Content-Type: text/plain;
    charset=utf-8

    V=C3=ADt Star=C3=BD Novotn=C3=BD submitted an update to the
    =20
    expltools
    =20
    package.
    =20
    Version: 2026-01-27
    License: lppl1.3c gpl2+
    =20
    Summary description: Development tools for expl3 programmers
    =20
    Announcement text: ----------------------------------------------------------------------
    =20
    ## expltools 2026-01-27
    =20
    ### explcheck v0.17.0
    =20
    #### Development
    =20
    This version of explcheck has implemented the following new features:
    =20
    - Implement reaching definitions algorithm for function (variant) =
    definitions
    to the flow analysis. (#152)
    =20
    This algorithm has been described in some detail in [a recent blog
    post][Expl3-Linter-11.5].
    =20
    [Expl3-Linter-11.5]: https://witiko.github.io/Expl3-Linter-11.5/ =
    "Static analysis of expl3 programs (11=C2=BD): Chunks, edges, flow =
    graphs, confidence, and reaching definitions"
    =20
    Flow analysis remains disabled by default, since no issues are =
    reported from
    it yet. To enable it, set the Lua option `stop_after =3D "flow =
    analysis"`
    either in your Lua code or your configuration file.
    =20
    After this change, you may already see preliminary flow analysis =
    results in
    explcheck's verbose output. However, unless explcheck understands =
    your file
    sufficiently well, it will typically stop before reaching the flow =
    analysis
    step and will report this in the verbose output.
    =20
    If explcheck reaches semantic analysis, you can encourage it to =
    proceed to
    flow analysis by decreasing the Lua option `min_code_coverage` =
    towards zero.
    If explcheck bails out earlier, try disabling =
    `stop_early_when_confused` or,
    ideally, improve your code quality and contribute to expltools so =
    that it can
    understand your code better. =F0=9F=98=89
    =20
    - In the syntactic analysis, fix the assignment of segment numbers to =
    `T`- and
    `F`-type arguments. (#152)
    =20
    - Add Lua options `max_reaching_definition_inner_loops` and
    `max_reaching_definition_outer_loops`. (#152)
    =20
    These options help guard against the reaching definitions algorithm =
    failing
    to converge fast.
    =20
    #### Continuous integration
    =20
    This version of explcheck has made the following changes to our =
    continuous
    integration:
    =20
    - Bump actions/download-artifact from 6 to 7. (contributed by =
    @dependabot in #153)
    =20
    - Bump actions/upload-artifact from 5 to 6. (contributed by =
    @dependabot in #154)
    =20
    - Display processing progress in the CI. (#152)
    =20
    - Analyze package files using multiple CPUs in the CI. (#152)
    =20
    This speeds up the CI by ca 40% from ca 25 minutes to ca 15 minutes.
    =20
    ----------------------------------------------------------------------
    =20
    The package=E2=80=99s Catalogue entry can be viewed at
    https://ctan.org/pkg/expltools
    =20
    The package=E2=80=99s files themselves can be inspected at
    https://mirrors.ctan.org/support/expltools/
    =20
    ----------------------------------------------------------------------
    =20
    Thanks for the upload.
    =20
    For the CTAN Team
    Vincent Goulet
    =20
    ----------------------------------------------------------------------
    =20
    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

    --Apple-Mail=_6A90322E-94DF-441C-B1B8-328F8F988D19
    Content-Transfer-Encoding: quoted-printable
    Content-Type: text/html;
    charset=utf-8

    <html aria-label=3D"message body"><head><meta http-equiv=3D"content-type" = content=3D"text/html; charset=3Dutf-8"></head><body =
    style=3D"overflow-wrap: break-word; -webkit-nbsp-mode: space; =
    line-break: after-white-space;"><div = class=3D"Apple-Mail-URLShareUserContentTopClass">V=C3=ADt Star=C3=BD = Novotn=C3=BD submitted an update to the</div><div = class=3D"Apple-Mail-URLShareWrapperClass" style=3D"position: relative = !important;"><blockquote type=3D"cite" style=3D"border-left-style: none; = color: inherit; padding: inherit; margin: inherit;"><br><span = class=3D"Apple-converted-space">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> = expltools<br><br>package.<br><br>Version: 2026-01-27<br>License: =
    lppl1.3c gpl2+<br><br>Summary description: Development tools for expl3 = programmers<br><br>Announcement = text:<br>-----------------------------------------------------------------= -----<br><br>## expltools 2026-01-27<br><br>### explcheck =
    v0.17.0<br><br>#### Development<br><br>This version of explcheck has = implemented the following new features:<br><br>- Implement reaching = definitions algorithm for function (variant) definitions<br><span = class=3D"Apple-converted-space">&nbsp;</span> to the flow analysis. = (#152)<br><br><span class=3D"Apple-converted-space">&nbsp;</span> This = algorithm has been described in some detail in [a recent blog<br><span = class=3D"Apple-converted-space">&nbsp;</span> = post][Expl3-Linter-11.5].<br><br><span = class=3D"Apple-converted-space">&nbsp;&nbsp;</span> [Expl3-Linter-11.5]: = https://witiko.github.io/Expl3-Linter-11.5/ "Static analysis of expl3 = programs (11=C2=BD): Chunks, edges, flow graphs, confidence, and =
    reaching definitions"<br><br><span = class=3D"Apple-converted-space">&nbsp;</span> Flow analysis remains =
    disabled by default, since no issues are reported from<br><span = class=3D"Apple-converted-space">&nbsp;</span> it yet. To enable it, set =
    the Lua option `stop_after =3D "flow analysis"`<br><span = class=3D"Apple-converted-space">&nbsp;</span> either in your Lua code or =
    your configuration file.<br><br><span = class=3D"Apple-converted-space">&nbsp;</span> After this change, you may = already see preliminary flow analysis results in<br><span = class=3D"Apple-converted-space">&nbsp;</span> explcheck's verbose =
    output. However, unless explcheck understands your file<br><span = class=3D"Apple-converted-space">&nbsp;</span> sufficiently well, it will = typically stop before reaching the flow analysis<br><span = class=3D"Apple-converted-space">&nbsp;</span> step and will report this =
    in the verbose output.<br><br><span = class=3D"Apple-converted-space">&nbsp;</span> If explcheck reaches =
    semantic analysis, you can encourage it to proceed to<br><span = class=3D"Apple-converted-space">&nbsp;</span> flow analysis by =
    decreasing the Lua option `min_code_coverage` towards zero.<br><span = class=3D"Apple-converted-space">&nbsp;</span> If explcheck bails out =
    earlier, try disabling `stop_early_when_confused` or,<br><span = class=3D"Apple-converted-space">&nbsp;</span> ideally, improve your code = quality and contribute to expltools so that it can<br><span = class=3D"Apple-converted-space">&nbsp;</span> understand your code =
    better. =F0=9F=98=89<br><br>- In the syntactic analysis, fix the =
    assignment of segment numbers to `T`- and<br><span = class=3D"Apple-converted-space">&nbsp;</span> `F`-type arguments. = (#152)<br><br>- Add Lua options `max_reaching_definition_inner_loops` = and<br><span class=3D"Apple-converted-space">&nbsp;</span> = `max_reaching_definition_outer_loops`. (#152)<br><br><span = class=3D"Apple-converted-space">&nbsp;</span> These options help guard = against the reaching definitions algorithm failing<br><span = class=3D"Apple-converted-space">&nbsp;</span> to converge =
    fast.<br><br>#### Continuous integration<br><br>This version of =
    explcheck has made the following changes to our = continuous<br>integration:<br><br>- Bump actions/download-artifact from =
    6 to 7. (contributed by @dependabot in #153)<br><br>- Bump = actions/upload-artifact from 5 to 6. (contributed by @dependabot in = #154)<br><br>- Display processing progress in the CI. (#152)<br><br>- =
    Analyze package files using multiple CPUs in the CI. (#152)<br><br><span = class=3D"Apple-converted-space">&nbsp;</span> This speeds up the CI by =
    ca 40% from ca 25 minutes to ca 15 = minutes.<br><br>----------------------------------------------------------= ------------<br><br>The package=E2=80=99s Catalogue entry can be viewed = at<br><span class=3D"Apple-converted-space">&nbsp;&nbsp;&nbsp;</span> = https://ctan.org/pkg/expltools<br><br>The package=E2=80=99s files =
    themselves can be inspected at<br><span = class=3D"Apple-converted-space">&nbsp;&nbsp;&nbsp;</span> = https://mirrors.ctan.org/support/expltools/<br><br>-----------------------= -----------------------------------------------<br><br>Thanks for the = upload.<br><br>For the CTAN Team<br>Vincent = Goulet<br><br>------------------------------------------------------------= ----------<br><br>CTAN is run entirely by volunteers and supported by =
    TeX user groups.<br>Please join a user group or donate to one, see = https://ctan.org/lugs<br>

    </blockquote></div></body></html>=

    --Apple-Mail=_6A90322E-94DF-441C-B1B8-328F8F988D19--
    --- Synchronet 3.21b-Linux NewsLink 1.2