Build and test on Windows MSYS2
New GitHub workflow to build and test on a Windows MSYS2 build in 32 and 64 bits.
This patch sets the LANGUAGES to CXX in the cmake project to avoid
setting up the C language which is not used by the project.
Due to a bug in cmake ninja generator with MSYS we can't set a prefix on the target because it creates a duplicated ninja rule.
This currently fails in a bunch of HwyMathTestGroup tests (more failures for gcc i686 than for x86_64)
I'm concerned about the 11m runtime of the x64 builder, that might cause timeouts. Anything we can do to speed it up? For example, the other builders do export CMAKE_BUILD_PARALLEL_LEVEL=2 or "uses: actions/cache@v2".
So, the compilation takes quite a while because it compiles for all 4 targets. The other two clang builders compile only scalar (1m) vs these builders that compile all (5m). We could compile less (like scalar+avx2). The other 5m are spent on setting up the msys environment. I looked on the action documentation and they are already doing all the caching necessary (it doesn´t normally re-download the artefacts). I'm trying now with update:false which will remove the last update step but it is not much of a difference.
I think CMAKE_BUILD_PARALLEL_LEVEL=2 is not needed with ninja since it builds in parallel by default.
scalar (1m) vs these builders that compile all (5m). We could compile less (like scalar+avx2).
That sounds useful, it should hopefully bring us under 10min?
I think CMAKE_BUILD_PARALLEL_LEVEL=2 is not needed with ninja since it builds in parallel by default.
Ah, makes sense.
@jan-wassenberg HwyMathTestGroup/HwyMathTest.TestAllAcos segfaults here for x86_64, but I don't see any log output about it. Maybe it would help to use EXPECT_EQ and similar functions instead of HWY_ASSERT for tests.
@deymo hm, if it were an assert failing, we should also be seeing output to stderr (with an extra fflush just in case) from hwy::Abort in targets.cc, right?
@deymo FYI math_test is now disabled in cmake.
@jan-wassenberg I rebased it and SortTestGroup/SortTest.TestAllReverse/AVX2 is now failing, and also clang-5