circular dependency when building LaTeX?

Phelype Oleinik phe.h.o1 at
Fri Jun 25 05:16:08 CEST 2021

Hi Thiago,

A bit of history (before I go to bed :)  Until the 2020-10-01 release of
the LaTeX kernel, |xparse.sty| was a package of its own and you had to
load that if you wanted |\NewDocumentCommand| and the like.  In the
2020-10-01 we (LaTeX team) started using xparse for a lot of kernel
commands (mostly for the hook management system, initially), so xparse
was preloaded in the kernel by inputting a |xparse.ltx| file that in the
end inputted a |xparse-generic.tex| that contained the bulk of the
xparse code.

This preloading proved to be quite a pain, so for the next release
(2021-06-01, released just a few days ago), we moved (almost) all the
xparse code completely to the kernel as |ltcmd|, so now it is _built-in_
to LaTeX, rather than preloaded.

So if you have a recent LaTeX, xparse (actually ltcmd nowadays) should
be built-in, thus no dependency.  If you have LaTeX 2020-10-01 (and this
version only), then you need |l3packages| as a dependency because LaTeX
loads xparse from there.  Then you said:

> It’s strange that I get this error then, because the log file does mention 
> that I’m using “LaTeX2e <2020-10-01> patch level 4”

which is exactly the version that requires |l3packages| as a dependency.

> Thanks! This helped me a lot. I was able to move past that error when I
> included texlive-latex-l3packages as a build dependency. Unfortunately now
> I get an error about not finding file ‘xparse-generic.tex’. Looking at
> 2021.1’s xparse.ins, there’s indeed no \generate statement for that file.

Due to the "great big xparse move"(TM) I mentioned above, the source
code of xparse is no longer in |l3packages|, but in |latex-base|, so
indeed, nothing is generated there.  There is, however, a frozen
|xparse-generic.tex| in that package that should do what you need, no?


More information about the tex-live mailing list.