hyperlight-dev / hyperlight-dev/cargo-hyperlight
cargo hyperlight new generates an unusable project on Windows ARM64
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 3
- Forks
- 6
- PR merge metrics
- No merged PRs in 30d
Description
Problem
cargo hyperlight new generates projects that cannot build on a native Windows ARM64 host.
The current template has two x64-era assumptions in src/new/mod.rs:
HYPERLIGHT_VERSIONis0.15. Itshyperlight-libcrejects the automatically selectedaarch64target withUnsupported target architecture: aarch64.GUEST_ARCHis alwaysx86_64, so the generated host loadstarget/x86_64-hyperlight-none/...even whencargo hyperlight buildselectsaarch64-hyperlight-nonefrom the native host architecture.
This is still present on main at cargo-hyperlight 0.1.13.
Reproduction
On native Windows ARM64:
cargo hyperlight new chw
cd chw/guest
cargo hyperlight build
The build selects AArch64 automatically, then fails in Hyperlight 0.15:
Unsupported target architecture: aarch64
Hardware validation
I changed the generated guest and host dependencies to the Hyperlight 0.16 ARM64 WHP PR and changed the guest path to aarch64-hyperlight-none.
The generated sample then passed end to end on a Surface Laptop 7 with WHP:
- Debug guest build and execution.
- Release guest build and execution.
- Host callback and typed guest calls.
- Persistent guest state.
- Snapshot and restore.
- 10 release runs with surrogate mappings.
- 10 release runs with
HYPERLIGHT_MAX_SURROGATES=0.
Expected output was produced on every run.
Suggested direction
Generate the dependency version and guest architecture from supported/current values instead of fixed 0.15 and x86_64. The build command already defaults its target from std::env::consts::ARCH, so the scaffold should use the same architecture decision.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in src/new/mod.rs and compare the generated dependency version and guest path with the architecture selection already used by cargo hyperlight build. Reproduce the issue with cargo hyperlight new on native Windows ARM64, then verify that the generated project builds and runs for the selected architecture.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- build-system, cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 68/100