lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


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.