KaHIP v3.24
64-bit Edge Support
The C interface now supports 64-bit edges via a compile-time kahip_idx typedef (int64_t or int32_t). Compile with -D64BITMODE=On to enable.
Changes
- All edge-related CSR arrays (
xadj,adjncy,adjcwgt) and edge-valued outputs (edgecut,infinity_edge_weight) usekahip_idxin the public C interface - Internal
EdgeIDandEdgeWeightbecome signedint64_tin 64-bit mode UNSAFE_metis_stylemethods returnkahip_idx*- MPI broadcast uses conditional
MPI_INT64_T/MPI_INTtypes - Node-related parameters (
n,vwgt,nparts,part) remainint - Added
kahip_sizeof_idx()to query index width at runtime (returns 4 or 8)
Windows Support
- KaHIP now builds on Windows with MSVC (no MPI, library + interface only)
- Added Windows CI workflow via GitHub Actions
- Platform guards for POSIX-specific headers (
regex.h,sys/mman.h,execinfo.h) - Windows pip wheels now available on PyPI (Python 3.9-3.14)
pkg-config Support
- KaHIP and ParHIP are now discoverable via
pkg-config(merged PR #134)
Build & CI
- Updated cibuildwheel to v3.4.0, GitHub Actions to v5 with Node.js 24
- Added Python 3.13 and 3.14 wheel builds, dropped EOL Python 3.8
Bug Fixes
- Fixed type mismatch in
tabu_moves_queue.h(declaration vs definition ofminValue) - Fixed
edge_evaluator.cppusingEdgeIDinstead ofPartitionIDfor partition vectors - Fixed CMake
target_compile_definitionssyntax (merged PR #135)