GNU bug report logs -
#75893
texlive: kpathsea doesn't use ls-R database
Previous Next
Reported by: vicvbcun <guix <at> ikherbers.com>
Date: Mon, 27 Jan 2025 10:29:01 UTC
Severity: normal
Done: Andreas Enge <andreas <at> enge.fr>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Tue, 6 May 2025 11:49:54 +0200
with message-id <aBnbQlaFGJQnzZ1X <at> jurong>
and subject line Re: bug#75893: Polyglossia
has caused the debbugs.gnu.org bug report #75893,
regarding texlive: kpathsea doesn't use ls-R database
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
75893: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=75893
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Hello Guix!
Consider the following example latex document:
--8<---------------cut here---------------start------------->8---
\documentclass{article}
\usepackage{mathtools}
\begin{document}
hello world
\end{document}
--8<---------------cut here---------------end--------------->8---
Compiling it with LuaLaTeX under strace in a shell with
texlive-scheme-basic, texlive-collection-luatex and
texlive-collection-latexextra, it seems like most of the time is spent
recursively searching for input files:
--8<---------------cut here---------------start------------->8---
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
27.70 0.080138 2 30174 getdents64
21.99 0.063605 4 15455 259 openat
17.44 0.050460 3 16179 32 newfstatat
14.37 0.041583 3 10440 10296 access
8.42 0.024348 1 15196 close
7.76 0.022456 1 15201 fstat
0.79 0.002278 1 1868 write
--8<---------------cut here---------------end--------------->8---
and similarly for pdflatex.
As an extreme example, consider
--8<---------------cut here---------------start------------->8---
\documentclass{tudapub}
\begin{document}
hello world
\end{document}
--8<---------------cut here---------------end--------------->8---
compiled with
--8<---------------cut here---------------start------------->8---
texlive-scheme-basic
texlive-collection-luatex
texlive-collection-latexextra
texlive-roboto texlive-urcls
texlive-xcharter
texlive-tuda-ci
--8<---------------cut here---------------end--------------->8---
This takes over 14 seconds (compared to about 2.7 seconds for lualatex
from Arch Linux) and from strace:
--8<---------------cut here---------------start------------->8---
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
32.60 5.926537 3 1801518 getdents64
26.46 4.809462 5 900841 284 openat
20.90 3.799744 4 896057 895349 access
10.19 1.851520 2 900557 close
9.49 1.724891 1 900575 fstat
0.28 0.050743 2 17680 229 newfstatat
0.04 0.007077 1 6073 read
--8<---------------cut here---------------end--------------->8---
The cause for this seems to be kpathsea doesn't treat the ls-R database
as authoritative. It is opened but kpathsea falls back to recursive
searching.
In the package definition for texlive-libkpathsea, texmf.cnf is modified
such that the TEXMF variable is set without !! in front of
$TEXMFSYSCONFIG, $TEXMFSYSVAR and $TEXMFDIST.
If I override $TEXMF via --cnf-line like
--8<---------------cut here---------------start------------->8---
lualatex \
--cnf-line='TEXMF =
{$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST}' \
example.ltx
--8<---------------cut here---------------end--------------->8---
compilation time for the extreme example above falls to about 2.5
seconds, without excessive searching.
The comment above the substitution says that the !! construct wouldn't
work for texlive-build-system or when building profiles. I don't know
if it would be possible to work around this but perhaps it could be
possible to work around this if installed in profile (or environment)?
vicvbcun
[Message part 3 (message/rfc822, inline)]
Closing after the merge of the tex-team branch.
Andreas
This bug report was last modified 17 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.