Skip to content

Commit

Permalink
Add newer LLVM test, with libc++
Browse files Browse the repository at this point in the history
  • Loading branch information
alugowski committed Nov 28, 2023
1 parent af4c45f commit af237b0
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 10 deletions.
6 changes: 6 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@ jobs:
description: "LLVM 5"
llvm-version: "5"

- os: ubuntu-22.04
# select libc++ as libstdc++ appears to be the default
description: "LLVM 16 libc++"
llvm-version: "16"
cmake-flags: '-DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_EXE_LINKER_FLAGS="-lc++abi"'

- os: ubuntu-20.04
description: "GCC 7"
gcc-version: "7"
Expand Down
21 changes: 11 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,18 @@ std::sort(std::execution::par, vec.begin(), vec.end());
// ^^^^^^^^^^^^^^^^^^^ native C++17 parallel Execution Policy
```
Unfortunately compiler support [varies](https://en.cppreference.com/w/cpp/compiler_support/17):
| | Linux | macOS | Windows |
|:-------------|:------------:|:------------:|:------------:|
| GCC 8- | ❌ | ❌ | ❌ |
| GCC 9+ | TBB Required | TBB Required | TBB Required |
| Clang | TBB Required | TBB Required | TBB Required |
| Apple Clang | | ❌ | |
| MSVC | | | ✅ |
Unfortunately compiler support [varies](https://en.cppreference.com/w/cpp/compiler_support/17). Quick summary of compilers' default standard libraries:
| | Linux | macOS | Windows |
|:------------------|:------------:|:------------:|:------------:|
| GCC 8- | ❌ | ❌ | ❌ |
| GCC 9+ | TBB Required | TBB Required | TBB Required |
| Clang (libstdc++) | TBB Required | TBB Required | TBB Required |
| Clang (libc++) | ❌ | ❌ | ❌ |
| Apple Clang | | ❌ | |
| MSVC 15.7+ (2017) | | | ✅ |
| [Parallel STL](https://www.intel.com/content/www/us/en/developer/articles/guide/get-started-with-parallel-stl.html) | TBB Required | TBB Required | TBB Required |
| **poolSTL** | ✅ | ✅ | ✅ |
| **poolSTL** | ✅ | ✅ | ✅ |
PoolSTL is a *supplement* to fill in the support gaps. It is small, easy to integrate, and has no external dependencies.
Note that poolSTL is not a full implementation; only the basics are covered.
Expand Down

0 comments on commit af237b0

Please sign in to comment.