·
2 commits
to master
since this release
3.4.1 and 3.4.2 were SuperFAISS For Unreal Engine plugin releases; the core library goes
from 3.4.0 to 3.4.3 so the two share one version line.
Fixed
- Builds with clang-cl. CMake reports clang-cl as MSVC, so it was given only cl.exe's
switches:kernels.cpplacked the SSE4.1 target feature and clang-cl rejected its
intrinsics, and CPU detection called__builtin_cpu_supports, whose__cpu_modellives
in a compiler-rt that clang-cl does not link. clang-cl now also gets
/clang:-ffp-contract=off(its/fp:precisecontractsa*b+cinto FMA, which the
determinism contract forbids) and/clang:-msse4.2onkernels.cppfor x64/X86, and CPU
detection takes the CPUID path cl.exe takes. cl.exe x64/X86, GCC and Clang command lines
are unchanged. - CPUID detection checks the maximum basic leaf. The CPUID path (cl.exe, clang-cl) now
confirms leaf 7 exists before reading its AVX2 bit. /arch:AVX2is applied only for x64/X86 targets, not for ARM64 MSVC builds.
Changed
- The minimum MSVC version is 19.30 (Visual Studio 2022): from that version on, cl.exe's
/fp:precisedoes not contract. CMake now stops with an error on an older cl.exe. The
build-flag tables in docs/INTEGRATION.md and
docs/DETERMINISM.md gain the clang-cl flags.