Up to now, MLDB has been developed for GCC's standard library (libstdc++) (even when compiling with clang on Linux, it will by default use GCC's standard library to ensure ABI compatibility). This has led to us over-specializing or using GCC-specific features, which stop us from building on systems (eg OSX) where clang's libc++ is the system STL.
This patch series fixes these issues, making MLDB more portable to libc++.
The most complex part by far is runtime type information hooks: exception tracing, backtracing, and typeid-driven conversions.
Up to now, MLDB has been developed for GCC's standard library (libstdc++) (even when compiling with clang on Linux, it will by default use GCC's standard library to ensure ABI compatibility). This has led to us over-specializing or using GCC-specific features, which stop us from building on systems (eg OSX) where clang's libc++ is the system STL.
This patch series fixes these issues, making MLDB more portable to libc++.
The most complex part by far is runtime type information hooks: exception tracing, backtracing, and typeid-driven conversions.