Support for Mac OS X, *BSD, and other libc++ environment #28
Labels
c++
C++ code related
enhancement
New feature or request
future
Task that has lower priority because there is still much to do.
libc++ has started supporting the
<ranges>
library of c++20, which TinyORM uses, in libc++-13, which is part of llvm-13.Although libc++-13 has
<ranges>
, the implementation is incomplete and therefore disabled by default. The incomplete implementation can be enabled by passing the -fexperimental-library option toclang
.While
<ranges>
support is still incomplete in libc++-15, it is sufficient to build TinyORM's querybuilder and run the querybuilder's test cases w/o detecting flaws.llvm-16's libc++ has full ranges support, and the
-fexperimental-library
option is no longer required. All of TinyORM can be built and tests run w/o detecting flaws on libc++-16 (TinyORM d98ee5c on FreeBSD edd0014)On libc++ systems, the
_LIBCPP_VERSION
macro can be used to investigate the libc++ version being used, which is not required to be the same as the compiler's and will default to the Operating System's one if a compiler was manually installed. As TinyORM's dependencies link against libc++, care needs to be taken the dependencies use the same libc++ or a compatible version to the one used by TinyORM, making it unfeasible to attempt using a custom libc++ with operating system provided dependencies.At this point, GitHub offers no hosted runners that are capable of building TinyORM using libc++.
This issue will likely resolve on its' own as Operating Systems update their libc++ in their future releases.
The text was updated successfully, but these errors were encountered: