[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Shared libraries
- From: Luiz Henrique de Figueiredo <lhf@...>
- Date: Thu, 15 May 2014 08:52:56 -0300
Here are some reasons why we do not build shared libraries:
- The incantations for building shared libraries vary widely among platforms;
we already have different incantations for building Lua statically,
but with support for dynamic loading of C libraries. For instance,
some platforms need -Wl,-E, some don't. The exception is that in Windows
apparently Lua has to be provided as a DLL to support dynamic loading
of C libraries.
- We don't want to have to rely on libtool. Last time I checked, libtool was
a large shell script, much larger than all the rest of the Lua code.
- Apps that embed Lua do not usually have to upgrade to a different version
of Lua. There is no ABI compatibility between different versions of Lua.
Lua is small enough that apps can just link their own copy of Lua.
- There have been no mission-critical bugs in Lua that have made it imperative
to link apps with a different release of the same version of Lua.
- The Makefiles we provide are for convenience only. Experts can do what
they like with them, most probably ignore them. If there is need to build
Lua as a shared library downstream, packagers will know what to do and
users won't need to bother.
Bottom line: Lua is not a fundamental software component in an OS. We don't
think it needs to be updated dynamically OS-wide. On the contrary, this may
break apps that use different versions of Lua.