Patch expl3.sty regression on texlive 2020 #1547
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1454 .
Now that I updated my texlive and can reproduce locally, I traced this issue to one of my older patches in
Package::InputDefinitions
which hardcoded a little too closely the LaTeX 2 behavior of a standaloneDigest(T_CS('\@pushfilename'))
while loading e.g. a new .sty package with definitions.In LaTeX 3 that internal macro gets extended to do more token interplay with the rest of the input stream, so my standalone
Digest
call creates the errors reported in the issue - and I could reproduce those clearly.However, the expl3 metadata fishing is a bit of a hack in all honesty: It relies on the exact placement of
\@pushfilename
in the originallatex.ltx
. You move that macro e.g. a line or two down, or worse - change the definition pattern on the line after - and it will completely break its behavior. So my instinct again was that we shouldn't be emulating that directly. Which lead me to the comment we have had inexpl3.sty.ltxml
:Which deactivated the
\@pushfilenameaux
in previous texlives. I think the original point still holds, so I also deactivated the equally hacky\@expl@push@filename@aux@@
, making the surface error disappear.Happily, our expl3 tests had not regressed, and the core interpretation is still solid on texlive 2020 (for the degree we've tested it).