Subject: bug#25425: cannot express search path

From: Ricardo Wurmus <[email-masked]>
Date: Thu, 12 Jan 2017 15:46:15 +0100

Ludovic Courtès <[email-masked]> writes:

> I think this should work:
>
>        (search-path-specification
>          (variable "LUA_PATH")
>          (separator ";")
>          (files '("share/lua/5.3"))
>          (file-pattern "\\.lua$")
>          (file-type 'regular))

I tried this very same thing but it doesn’t work because Lua expects
placeholders (“?”) in the search paths.  The placeholders are replaced
with the actual package names.  If the actual file name does not exist
it will try the next pattern.  If the file *does* exist – which *will* be
the case for any of the files on LUA_PATH that have been generated by
the search-path-specification — Lua will try to load the package from
that path.

This will fail because a search for the “lpeg” module would be satisfied
by the file “re.lua”, because that’s the first valid file on the
LUA_PATH.  “re.lua” requires “lpeg” itself, so another lookup is
performed, which will again result in “re.lua” to be loaded…

AIUI we must generate a value for LUA_PATH that keeps the placeholders
intact.

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
http://elephly.net