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.
Uh oh!
There was an error while loading. Please reload this page.
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: