nutofem / nuto

NuTo - yet another finite element library
https://nuto.readthedocs.io
Boost Software License 1.0
17 stars 5 forks source link

Compatibility with Ubuntu LTS? #225

Closed Psirus closed 6 years ago

Psirus commented 6 years ago

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.

vhirtham commented 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".

Psirus commented 6 years ago

We're already requiring C++14. However, things that change are also Eigen and CMake etc., which in this case causes the incompatibility.

TTitscher commented 6 years ago

@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?

vhirtham commented 6 years ago

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.

TTitscher commented 6 years ago

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:

Psirus commented 6 years ago

@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.

joergfunger commented 6 years ago

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.

Psirus commented 6 years ago

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.