Am Wed, Jul 26, 2023 at 06:33:51PM +0200 schrieb Andreas Enge: > > You seem to have some clues about the slowness; you reported there are > > too many symlinks in monolithic TeX Live. This is not intended and > > should be fixed. > Clues, yes, but not a full understanding yet.
To clear things up, I have removed biber from my profile. So now there is only texlive@2021, which contains this in .guix-profile/share/ related to tex: $ ll .guix-profile/share/ | grep texlive lrwxrwxrwx 1 root root 77 1. Jan 1970 texmf-dist -> /gnu/store/31rs3m4fzdbal1v81qg1mvl29p39cyrp-texlive-20210325/share/texmf-dist lrwxrwxrwx 1 root root 76 1. Jan 1970 texmf-var -> /gnu/store/31rs3m4fzdbal1v81qg1mvl29p39cyrp-texlive-20210325/share/texmf-var lrwxrwxrwx 1 root root 72 1. Jan 1970 tlpkg -> /gnu/store/31rs3m4fzdbal1v81qg1mvl29p39cyrp-texlive-20210325/share/tlpkg If I update to texlive@2023: dr-xr-xr-x 3 root root 4096 1. Jan 1970 texmf-dist/ lrwxrwxrwx 1 root root 72 1. Jan 1970 tlpkg -> /gnu/store/88apcyl30irw6v03gmyav638wq31k9xq-texlive-20230313/share/tlpkg And as mentioned before, texmf-dist contains symlinks of the kind tex -> /gnu/store/88apcyl30irw6v03gmyav638wq31k9xq-texlive-20230313/share/texmf-dist/tex as well as a "physical" subdirectory web2c with symlinks such as xetex -> /gnu/store/88apcyl30irw6v03gmyav638wq31k9xq-texlive-20230313/share/texmf-dist/web2c/xetex Whereas strangely, the texlive package itself has only this: texmf-dist -> /gnu/store/s6w8r5q3aql1bhasv0nmwr5xgjv6qnhh-texlive-texmf-20230313/share/texmf-dist Weird, where does the split come from? Note that we also lost texmf-var compared to the previous release. Actually things that used to be in texmf-var - the format file texmf-var/web2c/xetex/xetex-fmt, for instance, can now be found in texmf-dist. This is another clue, since the split of the links happens along web2c (but I still do not understand why). >From https://www.tug.org/texlive/doc/texlive-en/texlive-en.html section 2.3 I surmise that we need the texmf-var directory back; this is where the formats are supposed to reside. It probably disappeared in commit 19fd1004138b60c4479d7516aa0cee261c0b6b57: ... (texlive-texmf)[build-system]: Use COPY-BUILD-SYSTEM. [arguments]: Set #:INSTALL-PLAN accordingly. Replace TEXLIVE-BIN with TEXLIVE-BIN-FULL. ... + #:install-plan #~'(("texmf-dist/" "share/texmf-dist")) ... + (web2c (string-append texmf-dist "/web2c")) ... - (invoke "fmtutil-sys" "--all"))))))) + (invoke (string-append texlive-bin "/bin/fmtutil-sys") + "--cnffile" fmtutil.cnf + "--all" + "--fmtdir" web2c))))))) I suspect these to be the main difference between the old and the new texlive-texmf. There is also a somewhat suspicious + (setenv "GUIX_TEXMF" texmf-dist) and - (setenv "TEXMFCNF" texmfroot) of which I do not know what the results are. And a lacking - (invoke "mktexlsr") which is probably not very important. Oh wait... Before: $ ll $HOME/.guix-profile/share/texmf-dist/ls-R -r--r--r-- 5 root root 4812162 1. Jan 1970 /home/andreas/.guix-profile/share/texmf-dist/ls-R After: lrwxrwxrwx 1 root root 82 1. Jan 1970 /home/andreas/.guix-profile/share/texmf-dist/ls-R -> /gnu/store/88apcyl30irw6v03gmyav638wq31k9xq-texlive-20230313/share/texmf-dist/ls-R Notice the difference in size. The latter gives only the names of the subdirectories, the former all files. I think the slowness comes from the fact that now with the monolithic texlive every file needs to be searched for, instead of being just picked up from the list in ls-R. So I would suggest to revert dropping texmf-var by adding it to the #:install-plan and not putting '"--fmtdir" web2c', and to re-add running mktexlsr. Now the question is, will this mktexlsr run disturb the modular texlive? I suppose not. In the worst case, we would need separate texlive-texmf for the two texlive versions. Andreas