FEniCS / basix

FEniCSx finite element basis evaluation library
https://fenicsproject.org
MIT License
90 stars 34 forks source link

Require GCC11 for full C++20 support #607

Open jhale opened 2 years ago

jhale commented 2 years ago

There are quite a few C++20 features that are only supported in GCC11 and above, e.g. using enum would be a big one for code readability in basix.

Currently we are using ubuntu-20.04 and GCC10 GitHub runners (i.e. no Docker) for pythonapp.yml: https://github.com/FEniCS/basix/blob/main/.github/workflows/pythonapp.yml

I would propose:

jhale commented 2 years ago

I started making some C++20 changes here: https://github.com/FEniCS/basix/tree/jhale/cell-fixes

jhale commented 2 years ago

Other tests are also running directly on GitHub action images. While I guess it reduces test runtime, I think it's better practice to start from a very minimal image and install what's needed (not a lot for Basix, presumably?).

IgorBaratta commented 2 years ago

I like the idea of enabling full C++ 20 support. But I also think it can make it difficult to build basix on non x86_64 computers.

I think it may conflict with the idea of basix being pip installable, because it would require a compiler not available in most OS.