eclipse / omr

Eclipse OMR™ Cross platform components for building reliable, high performance language runtimes
http://www.eclipse.org/omr
Other
934 stars 392 forks source link

Investigate Downgrading Travis CI Build compilers to ensure C++ compatability #873

Open mgaudet opened 7 years ago

mgaudet commented 7 years ago

Currently our strategy for avoiding C++ code that won't compile with downstream build compilers is effectively human diligence: We need those writing the code to test against all downstream project's build compilers, and committers to recognize C++ constructs that won't compile in older compilers during review.

This process is too prone to the human nature of energy conservation and optimism, in particular as we attempt to attract contributors who may not have access to the builds for all downstream projects.

We should downgrade our Travis CI build compilers to the lowest level we expect a downstream project to use (for reference, I'm talking about gcc 4.4, to give an idea of where I'm thinking we go).

Pro:

Con:

mstoodle commented 7 years ago

is there any option to test with both old and new compilers, maybe only on some platforms?

Leonardo2718 commented 7 years ago

@mstoodle I believe this is doable by configuring the build matrix.

mgaudet commented 7 years ago

So, there's certainly many ways we can accomplish this.

One concern would be that we're already running into concerns about build times on Travis... adding more configurations, or double-building is only going to make that ~work~ worse.

charliegracie commented 7 years ago

If we limit the extra builds to Linux it may not slow down our builds that much. We should try a 4th Linux build to see if it delays the builds. If it does not we can do one or two more builds to test different compiler versions for Linux. OSX builds seem really slow to get started so I would prefer to not add more OSX builds at this point.

charliegracie commented 7 years ago

Looking more into this it would be rather straight forward but the compile times will increase by the time taken to install the compiler. I am not sure that is an issue though. The difficulty is overriding the compiler variables passed to configure through run_configure.mk. I have completed something similar before in SOM++ so I will give this a try and see how the travis builds go on my personal fork.

UPDATE we actually use a different travis setup so it may not be as easy as I thought. I will continue to poke around at it.