Skip to content

Test one compiler per OS #943

Closed
Closed
@seantalts

Description

@seantalts

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:

  1. header tests. make test-headers
  2. unit tests. ./runTests.py test/unit
  3. distribution tests. ./runTests.py test/prob

These tests only need to be run on one platform since they're not compiler dependent:

  1. CppLint. make cpplint
  2. Math dependencies (checks the source to make sure it's not including headers in a bad way). make test-math-dependencies
  3. 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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions