Branch: refs/heads/main
Revision: 3fd18a6
Author: DanilaFe
Link: Unavailable
Log Message:
Merge pull request #20452 from DanilaFe/update-dependencies
Update prereqs to require GCC 7.1 or Clang 5.0
These versions are required by LLVM, and have full C++17
support. At some point in the future, we would like to
be able to use C++17 as well. See also the following
issue for a more in-depth discussion.
opened 01:59PM - 18 Jul 22 UTC
The Chapel compiler currently uses C++14 but only GCC 5 is required in [prereqs.… rst](https://chapel-lang.org/docs/usingchapel/prereqs.html).
This creates a recurring problem with `dyno` when using enum types (see PRs #20231 #18161 #18133 #19586 #18723 #18722). The problem is that `std::hash` is not defined for enum types in GCC 5.4. This issue [was fixed in C++14](https://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2148) but the [GCC documentation](https://gcc.gnu.org/projects/cxx-status.html#cxx14) indicates that only GCC 6.1 or newer has non-experimental C++14 support. We see this problem arise in nightly testing in testing GCC 5.4 or for testing a recent clang when using the GCC 5.4 version of the c++ standard library.
Note that the LLVM project also requires C++14. However [LLVM requires a newer compiler](https://llvm.org/docs/GettingStarted.html#host-c-toolchain-both-compiler-and-standard-library) — in particular, it requires one of these compiler versions:
> * Clang 5.0
> * Apple Clang 9.3
> * GCC 7.1
> * Visual Studio 2019 16.7
So, should the `prereqs.rst` list a version newer than GCC 5 as the minimum required? If so, should it list GCC 6.1 or GCC 7.1?
Reviewed by @mppf - thanks!
Signed-off-by: Danila Fedorin daniel.fedorin@hpe.com
Modified Files:
M doc/rst/usingchapel/prereqs.rst
Compare: https://github.com/chapel-lang/chapel/compare/70409ed0359f...3fd18a6a39a0