[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: A major problem with the Lua ecosystem
- From: Sean Conner <sean@...>
- Date: Fri, 2 Feb 2018 18:18:05 -0500
It was thus said that the Great Soni They/Them L. once stated:
>
> I like packaging relative modules because they can be installed under
> any project. Wanna use my thing but don't want name conflicts? plop it
> into a new namespace, because my thing is designed for it! Well, as long
> as it's not a C module...
>
> But then, I guess one can technically use package.loadlib. But uh...
>
> http://www.lua.org/manual/5.3/manual.html#pdf-package.loadlib
>
> The docs imply Lua uses RTLD_GLOBAL for everything. This makes me sad. :(
Read the source.
static void *lsys_load (lua_State *L, const char *path, int seeglb) {
void *lib = dlopen(path, RTLD_NOW | (seeglb ? RTLD_GLOBAL : RTLD_LOCAL));
if (lib == NULL) lua_pushstring(L, dlerror());
return lib;
}
reg = lsys_load(L, path, *sym == '*'); /* global symbols if 'sym'=='*' */
-spc