circular dependency when building LaTeX?

Thiago Jung Bauermann bauermann at kolabnow.com
Fri Jun 25 06:50:03 CEST 2021


Hello Phelype,

Em sexta-feira, 25 de junho de 2021, às 00:16:08 -03, Phelype Oleinik 
escreveu:
> Hi Thiago,
> 
> A bit of history (before I go to bed :) 

Thanks! I really appreciate it.

> 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.

This is interesting. It’s good to understand the context of what I’m 
seeing. Thanks for explaining it.

> 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.

Indeed. :-)
 
> > 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.

Ok.  I’m just a bit puzzled because I’m using checkouts from the svn tag 
“texlive-2021.1” to build everything. If latex-base from that tag needs 
xparse-generic.tex, shouldn’t it be generated by l3packages/xparse/
xparse.ins from that same tag?

> There is, however, a frozen
> 
> |xparse-generic.tex| in that package that should do what you need, no?

True. Is there a way for me to generate it, or do I have to copy it 
verbatim?

I also see a couple of xparse-<date>.sty. Their headers say that they were 
“generated from xparse.dtx […] then adapted”. Does that mean that they were 
modified by hand after being generated by docstrip?

-- 
Thanks,
Thiago





More information about the tex-live mailing list.