highway icon indicating copy to clipboard operation
highway copied to clipboard

Build and test on Windows MSYS2

Open deymo opened this issue 4 years ago • 8 comments

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.

deymo avatar Oct 20 '21 16:10 deymo

This currently fails in a bunch of HwyMathTestGroup tests (more failures for gcc i686 than for x86_64)

deymo avatar Oct 20 '21 16:10 deymo

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".

jan-wassenberg avatar Oct 20 '21 17:10 jan-wassenberg

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.

deymo avatar Oct 20 '21 17:10 deymo

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 avatar Oct 20 '21 17:10 jan-wassenberg

@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 avatar Oct 28 '21 14:10 deymo

@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?

jan-wassenberg avatar Oct 29 '21 14:10 jan-wassenberg

@deymo FYI math_test is now disabled in cmake.

jan-wassenberg avatar Nov 12 '21 10:11 jan-wassenberg

@jan-wassenberg I rebased it and SortTestGroup/SortTest.TestAllReverse/AVX2 is now failing, and also clang-5

deymo avatar Nov 12 '21 11:11 deymo