オシャレなtcolorboxを誰でも作る方法(LaTeX確認シリーズ#5)
https://qiita.com/KKTeX/items/664551e99931d0c4211c?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
オシャレなtcolorboxを誰でも作る方法(LaTeX確認シリーズ#5)
https://qiita.com/KKTeX/items/664551e99931d0c4211c?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
Five new flow-analysis issue types have been added in https://github.com/Witiko/expltools/pull/188 over the past two days:
1. E500 (Multiply defined function)
2. W501 (Multiply defined function variant)
3. E504 (Function variant for an undefined function)
4. E506 (Indirect function definition from an undefined function)
5. W507 (Setting a function before definition)
These will be included in explcheck v0.19.0, planned for release by the end of the month.
The v0.18.2 release of explcheck https://github.com/Witiko/expltools/releases/tag/2026-03-13 speeds up the flow analysis by another order of magnitude, reducing runtimes on corner-case examples from months in v0.18.0 to a little over an hour.
There are still plenty of optimization opportunities for a motivated master's student https://github.com/Witiko/expltools/issues/156 but nothing that can't wait until after v1.0.0. 🚀
After the v0.18.0 release of explcheck, the first issues discovered by the flow analysis are now being reported by the linter, such as E505 (Calling an undefined function). https://github.com/Witiko/expltools/releases/tag/2026-03-04
Performance of the flow analysis has been a constant challenge: some artificial code examples would take months to analyze. https://github.com/Witiko/expltools/issues/156 Version 0.18.1 brought a hard-won speedup of up to two orders of magnitude, reducing those months to mere hours, though there is still significant room for further optimization. https://github.com/Witiko/expltools/releases/tag/2026-03-10 This might make a good topic for a master's thesis.
The plan is still to have a v1.0.0 release ready for TUG 2026, but the flow analysis is far from finished and the project is now almost half a year behind the original schedule. Development is active and healthy, just the initial time expectations were wildly optimistic, making the TUG 2026 deadline increasingly uncertain.
Over the past two months, I released three new updates of expltools, the bundle that provides the explcheck static analyzer for the expl3 programming language. These updates include major improvements but did not yet advance the final stage of the pipeline, flow analysis, which I teased in the previous post. That’s because our work on flow analysis so far has been groundwork: figuring out how to adapt static-analysis techniques to expl3 before moving on to implementation. In this post, I outline the flow graph structure currently used to represent expl3 code and describe our adaptation of the reaching definitions algorithm for dynamically scoped languages like expl3.
Am Freitag sind die ganzen Umbauarbeiten am #KOMAScript Paket tocbasic etwas ins Stocken geraten, als sich mir aufgedrängt hat, in dessen Zuge eine echte #expl3 Ebene einzuziehen und dabei natürlich intern auf #l3keys umzustellen. Problem waren die key:=value-Optionen (z.B. "indent:=section"), weil l3keys ja neuerdings key:expansion=value beherrscht. Heute kam ich auf die Idee im expl3-Interface key!=value zu verwenden und das LaTeX2e-Interface per tl_replace kompatibel zu halten.