ryzomcore icon indicating copy to clipboard operation
ryzomcore copied to clipboard

Move away from Luabind as Lua-C++ binding

Open ryzom-pipeline opened this issue 9 years ago • 3 comments

Original report by Erwan GEORGET (Bitbucket: Dremor56, ).


IMHO, we should start the process to move away from Luabind as Lua-C++ binding.

  • Luabind didn't get any new release since 2010, and seems to be more or less abandoned upstream.
  • More and more linux distribution are dropping the package from their main repositories (Archlinux, openSUSE/SLE, CentOS)
  • There is a ton of other Lua-C++ binding with better support (listed here)

My personal favorite : Sol2

  • Well documented (tutorial, etc...)
  • Header only (do not require to compile an extra package)
  • Multiple feature Luabind don't have (better multithreading, etc.)
  • Maintained (last release 10 days ago)
  • Support C++11 and C++14 ABI

ryzom-pipeline avatar Apr 10 '16 13:04 ryzom-pipeline

Original comment by Erwan GEORGET (Bitbucket: Dremor56, ).


formating

ryzom-pipeline avatar Apr 10 '16 13:04 ryzom-pipeline

Original comment by Cédric Ochs (Bitbucket: [Cédric OCHS](https://bitbucket.org/Cédric OCHS), ).


I don't know what to think about :)

Are we sure in 1 or 2 years, they'll still be maintained ?

Are we sure Luabind won't be maintained ?

Imagine we switch to Sol2 and 2 years after that, they decide to stop development. What will we do ?

Sol2 is a very young project (created in 2014). We know what happens, people are really active at first and then (when they are not student anymore or working on other projects) project become less and less active and nobody maintains it :(

I'll prefer to give priority to an alternative project that :

  • is used by big companies (Blizzard, Google, Apple, Microsoft, etc...)
  • is some years old (at least 5 to check if it evolved after each major Lua release)
  • is well maintained
  • implements at least all features as Luabind (some of them are really light and can't do the same stuff)

For example, libraries that were well chosen by Nevrax : libcurl, libxml2, libpng, libjpeg, lua, freetype, etc... We added Qt, libogg, libvorbis, assimp to this list.

Those that could be replaced : luabind, cpptest, libsquish (doesn't support DXTC1a), libwww (it has been already replaced :p)

ryzom-pipeline avatar Apr 10 '16 15:04 ryzom-pipeline

Original comment by Erwan GEORGET (Bitbucket: Dremor56, ).


In my opinion, Luabind have to many big downside.

  • Not maintained anymore (no activity on the git repository, despite all the bugs reported)
  • Needs a lot of patches in order to make it build against Lua 5.2+ and boost 1.47+ (10 patch in the current Fedora package. The only package I know in the Fedora repository with more patches is the Linux Kernel).

In another hand, Sol2 is:

  • Maintained by multiple developers
  • "Feature complete", meaning no feature will be suddenly removed
  • Officially compatible with Lua5.2+
  • Have very little dependencies to install.

Of course, there is other possibilities, that may be as good as Sol2, like Selene or OOLua. Sol2 is an example, I mentioned it mainly for it's good documentation, the code example it provides, and their header-only model.

ryzom-pipeline avatar Apr 10 '16 20:04 ryzom-pipeline