Closed Psirus closed 6 years ago
I think we should agree on c++ standard here. In my opinion the system should be c++ 14 compatible, which is the case for the Ubuntu 16.04 compiler versions if I remember correctly. Otherwise a lot of the improvements to constexpr, auto and some other STL functionality won't be useable. I don't know if there are some major changes to the external libs that we use and if we really need them. If not I would be fine with "downgrading".
We're already requiring C++14. However, things that change are also Eigen and CMake etc., which in this case causes the incompatibility.
@Psirus Can you be a bit more specific about the issues? Are they easily solvable? Or plain features missing? Does the solution involve installing dependencies manually? Or ugly workarounds? Can we run multiple docker images on travis?
Well I had the same issue two or three weeks ago. That's why I upgraded my system. If I remember correctly the problem was in the external MUMPSsupport.h which calls the coeffs() function of a template matrix, which is not implemented for every matrix type in the Ubuntu 16.04 Eigen version. So I could not compile. Don't know if it is the same problem that Isabella had, but I think so.
Compatibility with Ubuntu (or other popular distros) sounds nice. But in any case, I do not want to live without the "recent" cmake targets...
The MUMPS issue:
.valuePtr()
.@TTitscher Well, it started with the Eigen3Config.cmake
not being compatible with our find_package
call. Then we installed the Eigen version from Debian Stable, and cmake ran, but compiling failed with Internal compiler error
or something. Maybe that's related to what @vhirtham mentioned, but at that point we gave up and said: let's just use Debian. So I don't know what else might come up.
As for the multiple docker images: just move this line into the script part, and make the image name depend on the environment variables. Should be possible.
I also think we should be as compatible as possible with other linux versions, even if this might mean not to use some recent advanced features. However, we should decide (maybe next meeting) what platforms we want to support and then include corresponding travis tests.
So the decision was to test Ubuntu 18.04 on Travis, as one GCC Release build, and additional distros are added upon request/when the need arises.
Recently, we tried building NuTo PDE on an Ubuntu 16.04 based system, and sadly, that did not work at all.
Do we want to be compatible to Ubuntu LTS? If so, we would have to test that on Travis. To make it easier, we could also decide to only start supporting that with the next LTS, 18.04, to be released on 2018-04-26.
In general, I would like it to be compatible to more systems, but it means that some newer C++ features etc. will not be available.