-
Notifications
You must be signed in to change notification settings - Fork 79
Integrate ARM64 NUDUPL VDF path and harden Windows CI/builds #300
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
2a3e3ec to
003ecf3
Compare
0206ae9 to
e89c805
Compare
|
@cursor review |
|
@cursor review |
6474d16 to
3a5dae4
Compare
|
@cursor review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
| exit $exitCode | ||
| } | ||
| return $exitCode | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PowerShell $args shadows automatic variable in CI
Low Severity
The Invoke-TestExe function declares a parameter named $args, which shadows PowerShell's built-in automatic variable $args. While the splatting via @args works correctly with pwsh (PowerShell 7) in the current usage, this is a well-known anti-pattern that can cause subtle argument-binding issues if the function signature or call pattern changes. Using a different name like $testArgs avoids the ambiguity entirely.


Summary
CMake,Makefile.vdf-client, Python packaging metadata, and Rust workflow pieces.test.yaml,rust.yml) and project docs to match the current Windows runner/toolchain setup and remove stale perf-only assumptions.Test plan
test.yamlpasses on Ubuntu, macOS, and Windows.rust.ymlpasses.vdf_client,vdf_bench, and VDF tests build and run in CI for the enabled configurations.Note
High Risk
Touches low-level asm generation, CPU feature gating, and threading/prover paths, plus broad build-system/CI changes across platforms, so regressions are plausible without extensive cross-OS testing.
Overview
This PR expands cross-platform build and CI support by adding Windows to the main
test.yamlmatrix, introducing a CMake/Ninja-based Windows build + smoke tests/benchmarks, and hardening macOS tool/bootstrap steps (Boost/CMake install + include path detection). It also updatescibuildwheelmacOS setup to be more reliable and documents new CMake build toggles and AVX runtime flags inREADME.md.On the native side, it significantly refactors
src/CMakeLists.txtto add explicit build options/targets forvdf_client,vdf_bench, test binaries, and HW tools; generates asm sources viacompile_asm; and adds Windows-specific handling for MPIR/Boost discovery, linker flags, and clang-cl optimizations.Core/runtime changes improve portability and robustness: AVX feature detection is made thread-safe and configurable via env flags (plus optional logging), asm codegen is adjusted for Windows sections/ABI + register/stack/XMM save/restore, string parsing utilities become
thread_local, and several concurrency/ correctness fixes are added (mutex-protected access to 2-weso cached forms, safer thread shutdown in2weso_test, bounds checks in prover logic, and safer integer printing). A newvdf_base_integer.cppadds additional GMP-backed integer/form helpers used by the base VDF implementation.Written by Cursor Bugbot for commit 651ee88. This will update automatically on new commits. Configure here.