Skip to content

Add Windows x86-64 support and wheel builds - #111

Merged
gouyt13 merged 6 commits into
mainfrom
windows-x64-fht-masm-20260922
Sep 22, 2026
Merged

gouyt13 merged 6 commits into
mainfrom
windows-x64-fht-masm-20260922

Conversation

@gouyt13

@gouyt13 gouyt13 commented Sep 22, 2026

Copy link
Copy Markdown
Member

Summary

Add native Windows x86-64 C++ and Python builds with MSVC, plus Windows CI and CPython 3.11–3.14 wheel publishing. Windows users can build and use IVF, HNSW, and SymphonyQG, including saving and loading indexes through Unicode paths.

  • Add compiler-specific SIMD flags, portable allocation and bit operations, signed OpenMP counters, and MASM FHT kernels generated from the imported FFHT implementation.
  • Keep Eigen definitions consistent across MSVC translation units, preserve FastScan signed-zero behavior, and require the complete MSVC AVX-512 feature group before dispatching to that backend.
  • Convert Windows UTF-8 paths to native filesystem paths, including IVF's HNSW sidecar; preserve native POSIX path bytes. Public index signatures and saved-index formats remain unchanged.
  • Add regression coverage and update source-build and testing instructions for Visual Studio 2026. Windows wheels are configured for the next release.

Testing

Linux x86-64, Intel Xeon Gold 6418H; explicit AVX2 and AVX-512 backend tests executed:

  • GCC 14.3 Release: 170/170 C++ tests passed with native optimization OFF; 170/170 passed with native optimization ON. C++ sample targets also built.
  • Clang 15 Debug, ASan + UBSan, native optimization OFF: 170/170 tests passed, with leak detection enabled and UBSan configured to halt on error.
  • Rebuilt and installed the package in the existing CPython 3.13.15 environment; verified package/extension paths: 187 Python tests passed across all three indexes, including Unicode persistence.
  • Installed CMake downstream consumer: 1/1 passed.
  • Full clang-tidy 15, include-cleaner 22 (82 library files), C++ formatting, Python/Ruff checks, ShellCheck, 21 release-automation tests, strict MkDocs build, and diff whitespace checks passed.

Sanitizer environment note: LeakSanitizer requires execution outside this host's sandbox. PIE sanitizer executables also crashed intermittently at startup in an empty-program reproduction (3/30 launches); the passing suite used -no-pie for the test executable without changing repository build defaults. Include-cleaner used the installed LLVM 15 OpenMP headers with clang-tidy 22.

Windows testing was confirmed by the branch author; it was not rerun on this Linux host. The additional Python-version and manylinux wheel matrix remains for CI. No performance claims are made; this change is validated for portability and correctness.

@gouyt13
gouyt13 merged commit 4fa88fb into main Sep 22, 2026
23 checks passed
@gouyt13
gouyt13 deleted the windows-x64-fht-masm-20260922 branch September 22, 2026 15:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant