Current TBB 2021 is not supported by GCC 9 or 10 with `std::execution`

Hi,

Slicer recently moved to TBB 2021 version.
I just figured out that this version is not compatible with neither GCC 9 or 10 (issue link1 and issue link2) when using std::execution to paralelize stl algorithms.

As I know GCC 9.3 fully supports C++17 but if you decide to use std::execution within Slicer then you will likely get an error mentioned in the links above.
As I understood GCC 11 and 12 support TBB 2021.

Maybe we should allow the developper to choose the desired TBB version? Like we had with VTK 8 and VTK 9.

Do you see any explanation in the commit that made the TBB library version hardcoded about why it was made? If no specific reason is given then most likely it was made to just make things simpler. If there is a confirmed need to make it more configurable then that can justify the additional complication.

1 Like

any explanation in the commit that made the TBB library version hardcoded about why it was made

For reference, see COMP: Update TBB from 2019_U9 to 2021.5.0 · Slicer/Slicer@3ea8ba4 · GitHub

1 Like

I see now.
Probably it is worth to leave it as is.