le 30/04/2015 12:22 selon jfbu: > Hi, > > although the situation is *much* improved with upcoming > TeXLive 2015, kpsewhich is quite slow for querying paths > on Mac OS X: > > texlive 2014: > > $ time kpsewhich article.cls > /usr/local/texlive/2014/texmf-dist/tex/latex/base/article.cls > > real 0m0.568s > user 0m0.544s > sys 0m0.015s > > texlive 2015: > > $ time kpsewhich article.cls > /---/TL2015/texmf-dist/tex/latex/base/article.cls > > real 0m0.099s > user 0m0.085s > sys 0m0.008s > > The situation is the same when one only attempts > to get the installation repertories locations, > (TL2014:) > > $ time kpsewhich --var-value TEXMFHOME > /Users/---/Library/texmf > > real 0m0.516s > user 0m0.499s > sys 0m0.013s > > (It appears that kpsewhich parses completely > various ls-R files even when used only as above > to query the TEXMFHOME repertory.) > > During initial load, AUCTeX makes calls to kpsewhich. > (nine such calls with my set-up) > > Would it be possible to get TeX-tree-expand > in tex.el to make a single kpsewhich call, and not one for > each passed 'var' of the list > >> (defun TeX-tree-expand (vars program &optional subdirs) >> "Return directories corresponding to the kpathsea variables VARS. >> This is done calling `kpsewhich --expand-path' for each variable. > > My question is whether it is possible to arrange TeX-tree-expand > to do rather a single kpsewhich call. > > This should be possible as seen from that example: > > kpsewhich --progname latex --expand-path > '$SYSTEXMF:$TEXMFLOCAL:$TEXMFMAIN:$TEXMFDIST:$TEXMFHOME' > > returns > > /usr/local/texlive/2014/texmf-var:/usr/local/texlive/texmf-local-2014:/usr/local/texlive/2014/texmf-dist:/usr/local/texlive/texmf-local-2014:/usr/local/texlive/2014/texmf-dist:/usr/local/texlive/2014/texmf-dist:/Users/---/Library/texmf > > (notice that SYSTEXMF by itself by default already expands to the > first three in the ouput as one finds > SYSTEXMF = $TEXMFSYSVAR;$TEXMFLOCAL;$TEXMFDIST in the default > texmf.cnf) > > I am putting quotes as I am testing this from command line > and must avoid shell expansion of $ > > The kpsewhich manual is athttp://tug.org/texinfohtml/kpathsea.html : > >> 5.5.3 Auxiliary tasks >> >> >> [...] >> ‘--expand-path=string’ outputs the complete expansion of string, with >> each element separated by the usual path separator on the current >> system (‘;’ on Windows, ‘:’ otherwise). >> [...] > > I have no idea whether kpsewhich evolved on that point and > assuming the current functionality would break old systems. > > Another issue is that during the loading of AUCTeX it appears that > locations TEXMFLOCAL, TEXMFMAIN, TEXMFDIST, TEXMFHOME are each queried > twice. Could this also be avoided ? > > A single kpsewhich call rather than 9 would almost divide by 9 the loading > time of AUCTeX on Mac OS X systems (because it appears that most of > this loading time is taken up by the calls to kpsewhich) > > Jean-François >
On a Linux box with AUCTeX 11.86 Emacs : GNU Emacs 23.2.1 (i386-redhat-linux-gnu, GTK+ Version 2.20.1) of 2010-06-03 on x86-07.phx2.fedoraproject.org Package: 11.86 AUCTeX-date "2010-02-21" the behavior is different. First, there is a site-start.el which, it seems, loads auctex on Emacs launch. C-h v TeX-macro-global returns a value even before C-xC-f any foo.tex file Furthermore during this loading only 2 calls to kpsewhich are made: jeu. avril 30 15:04:38 CEST 2015 + kpsewhich --progname latex --expand-braces $SYSTEXMF jeu. avril 30 15:04:38 CEST 2015 + kpsewhich --progname latex --expand-braces $TEXMFHOME this is to be compared to the 9 calls with AUCTeX 11.88 which I reported earlier Thu Apr 30 10:00:10 CEST 2015 + kpsewhich --progname latex --expand-path $SYSTEXMF Thu Apr 30 10:00:11 CEST 2015 + kpsewhich --progname latex --expand-path $TEXMFLOCAL Thu Apr 30 10:00:11 CEST 2015 + kpsewhich --progname latex --expand-path $TEXMFMAIN Thu Apr 30 10:00:12 CEST 2015 + kpsewhich --progname latex --expand-path $TEXMFDIST Thu Apr 30 10:00:12 CEST 2015 + kpsewhich --progname latex --expand-path $TEXMFHOME Thu Apr 30 10:00:13 CEST 2015 + kpsewhich --progname latex --expand-path $TEXMFHOME Thu Apr 30 10:00:13 CEST 2015 + kpsewhich --progname latex --expand-path $TEXMFMAIN Thu Apr 30 10:00:14 CEST 2015 + kpsewhich --progname latex --expand-path $TEXMFLOCAL Thu Apr 30 10:00:14 CEST 2015 + kpsewhich --progname latex --expand-path $TEXMFDIST The speed of kpsewhich (from TeXLive 2015) on this Linux box is comparable to the one on my Mac OS X laptop (with TeXLive 2015) Best Jean-François _______________________________________________ auctex mailing list auctex@gnu.org https://lists.gnu.org/mailman/listinfo/auctex