On Tue, Dec 11, 2007 at 10:25:57AM +0100, Hans Hagen wrote:
Heiko Oberdiek wrote:
Reimplementing kpse library in Lua with analyzing texmf.cnf files, path expansion, ls-R lookup, ...?
in this case i was more thinking of looking in the paths reported by kpse (given that the path variable can be expanded), so, no lookup, but looling at the file system; another option is that you just put the file alongside the tex file, lookup the tex file, replace the suffix and load the file; personally i see no need to put lua files that belong to tex in the scripts path;
That is not the ide behind TDS. File searching in large trees is expensive. Thus the directory structure of TDS differentiates between file types to reduce the search space.
The other file types are covered: TeX files, tfm files, type 1 files, ... Missing is a proper support for lua scripts.
lua scripts as such are like perl, ruby, whatever scripts; the texmfscript path is not for tex related (runtime embedded or whatever) scripts ... makes packaging a mess when we get a duplicate tree there, apart from clashes
A TeX distribution could precompile lua scripts and put them in a definite place, e.g. TDS:scripts/lua-compiled// (eventually adding a os component, afaik precompiled scripts aren't portable). Then texmf.cnf could contain: TEXMFSCRIPTS.lua = $TEXMF/scripts/lua-compiled//:$TEXMF/scripts// Then as first component only contains compiled lua files, few files, compared to all files below TDS:/scripts// or even TDS:tex//. Also not all Lua scripts must depend on LuaTeX. There could be standalone variants, libraries for stuff not directly related to TeX.
a solution indeed, but as said ... i wonder if texmfscripts is meant for that [...]
Using TDS:tex// you will have the same problem, if a module wants
to have path components. At least TDS has stricter unique constraints
below TDS:tex//. Two packages of the same format must not share
same file names.
Yours sincerely
Heiko