Description
Note
Pull request #944 only addresses part of this issue / proposal:
- mac / clang 6 / libc++ Threading unit tests
- linux / gcc 5 / stdlibc++ OpenMPI unit tests
- mac clang 6 libc++ OR linux clang 6 libc++[2] 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++[1] GPU unit tests
mac clang 6 libc++ OR linux clang 6 stdlibc++[2] distribution tests (with row vectors)
- It does not address testing the header tests on mac + linux + windows.
- It does not address testing on Windows.
Summary:
As we discussed in the meeting on July 12th and in this discourse thread, we'd like to change our CI configuration to test just one per OS.
Description:
Here are the proposed supported compilers for each OS:
Mac: clang 5
Linux: clang 5 (maybe a gcc - TBD)
Windows: gcc 4.9.3
For tests, these are the tests that should be tested on each of those configurations:
- header tests.
make test-headers
- unit tests.
./runTests.py test/unit
- distribution tests.
./runTests.py test/prob
These tests only need to be run on one platform since they're not compiler dependent:
- CppLint.
make cpplint
- Math dependencies (checks the source to make sure it's not including headers in a bad way).
make test-math-dependencies
- Building doxygen.
make doxygen
From what I understand, inter-clang compatibility is pretty high, while GCC is needed for Windows RTools (until they switch to a modern GCC in April 2019). GCC had major changes across the 5.0 boundaries, but I think testing both modern ish non-Apple clang and old-ish GCC will still keep our code supported by the compilers basically all of our existing users have access to.
This ticket will involve changing the travis and Jenkins config (and for Jenkins agents, the installed software) to test the above compilers.
Once this is in, we should update the wiki page here: https://github.com/stan-dev/stan/wiki/Supported-C---Compilers-and-Language-Features
cc @bgoodri @syclik @bob-carpenter
Current Version:
v2.18.0