Skip to content

Add failure-allowed clang-4.0/libc++-4.0 build #712

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 10, 2017

Conversation

jagerman
Copy link
Member

@jagerman jagerman commented Mar 8, 2017

Bug #711 found the same issues that I did (which led me to #677), so I decided to convert my clang build code into a proper travis-ci build.

This adds a clang 4.0 with libc++ 4.0 docker-based build, using -std=c++1z for the build.

It's marked failure-allowed (like the gcc 7 one) since this is still an unreleased compiler with an experimental c++ standard.

The one annoyance here is that I couldn't find a pre-built libc++ 4.0 package, so had to build it from llvm-source in the build. This is reasonably quick (it adds around a minute to the build time), but is needed for libc++'s c++17 support.

@wjakob
Copy link
Member

wjakob commented Mar 10, 2017

Starting to test C++1z is a good idea. One somewhat related thought: our build matrix on Travis CI is getting fairly big. I assume we'll eventually run into some kind of quota and our jobs will be slowed down (potentially this is happening already). Shall we remove some of the mostly redundant targets?

@jagerman
Copy link
Member Author

One other thing we could do is combine some of them. For example, by having just one c++17 build that does both a clang 4 and gcc 7 build.

This adds a linux docker clang 4.0 with libc++ and c++1z build.
@jagerman jagerman force-pushed the test-clang4-libcxx branch from 2db6363 to df2def9 Compare March 10, 2017 14:08
@jagerman
Copy link
Member Author

The travis limit for build matrix size is 200, so we're nowhere near that. Throttling is applied long before that, of course, by limiting the number of concurrent jobs (across all branches/PRs), with the specific number depending on the current travis-ci load.

As far as delayed builds, during low load times there isn't much of an issue: everything builds more or less at once; we're using idle travis-ci machines. During high load, it is always the OS X builds that are the bottleneck.

So while I agree we should be good citizens by not wasting builds that aren't helpful, I don't think we're hitting limits in any practical way at the moment.

@wjakob
Copy link
Member

wjakob commented Mar 10, 2017

Ok, sounds good. We can remove configurations from the build matrix once this becomes an actual problem. Feel free to merge this.

@jagerman jagerman merged commit 28a837a into pybind:master Mar 10, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants