Skip to content
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

Require GCC11 for full C++20 support #607

Open
jhale opened this issue Oct 5, 2022 · 3 comments
Open

Require GCC11 for full C++20 support #607

jhale opened this issue Oct 5, 2022 · 3 comments
Labels

Comments

@jhale
Copy link
Member

jhale commented Oct 5, 2022

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:

  • Moving to running the tests in pythonapp.yml inside a plain Ubuntu Docker container so that the dependancy surface is minimal and well-controlled.
  • Switching to GCC11 so that we can use a full C++20 feature set.
@jhale jhale added enhancement New feature or request testing packaging labels Oct 5, 2022
@jhale
Copy link
Member Author

jhale commented Oct 5, 2022

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

@jhale
Copy link
Member Author

jhale commented Oct 5, 2022

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
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants