Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Supported C Compilers and Language Features
Tested Toolchains and OSes
- mac / clang 6 / libc++ Threading
- linux / gcc 5 / stdlibc++ OpenMPI
- mac clang 6 libc++ OR linux clang 6 libc++ distribution tests (without row vectors)
Additional tests on merge to develop
- linux / gcc 5 / stdlibc++ Threading unit tests
- mac / clang 6 libc++ OR linux / gcc 5 stdlibc++ GPU unit tests
- mac clang 6 libc++ OR linux clang 6 stdlibc++ distribution tests (with row vectors)
So there will be a little bit of non-determinism for the sake of running tests more quickly on available hardware.
 the GPU libraries are currently broken on Linux, so currently they run on Mac and Linux is an aspirational target.
 clang 6 is also aspirational on that Linux box - clang 3.8 is the only one that works without libc++ right now.
C++ Standard library version
If you're on Mac, this is probably libc++, and on Windows or Linux this is probably GNU's stdlibc++. We should support both for the versions of compilers we support.
C++ Language Features
We are not yet testing the Math repo on GCC 4.9.3, but we will soon and we need that compiler to work to support the way RStan on Windows links with the R binary at runtime. This is our limiting compiler and means we can use:
- everything except for Expression SFINAE
- auto and decltype(auto) return types
- generic lambdas
See this page for extreme detail.
There is some discussion here: http://discourse.mc-stan.org/t/moving-to-c-11-again/75/21 See also https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Using-C_002b_002b14-code for how to emulate features that the compiler is missing. And here and here for more discussion on how we got to this testing arrangement.