Skip to content

chore: prepare release v0.18.0 - #1930

Merged
danbugs merged 1 commit into
mainfrom
danbugs/prepare-v0.18.0
Oct 14, 2026
Merged

danbugs merged 1 commit into
mainfrom
danbugs/prepare-v0.18.0

Conversation

@danbugs

@danbugs danbugs commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Bump workspace version from 0.17.0 to 0.18.0 and update CHANGELOG with all changes since v0.17.0. Key changes this release:

  • Windows on ARM64 support via the WHP backend
  • Virtqueue-based host-guest communication, replacing legacy stack I/O (breaking; existing snapshots must be regenerated)
  • Retained guest buffers preserved across snapshot capture/restore, and host calls rejected during snapshot checkpoints
  • MultiUseSandbox renamed to Sandbox (old name kept as a deprecated alias)
  • Architecture-independent guest exception hooks, deprecating hyperlight_guest_bin::exception::arch
  • Namespaced application metadata on snapshots

Copilot AI balanced review requested due to automatic review settings October 13, 2026 18:19
@danbugs danbugs added the kind/dependencies For PRs that update dependencies or related components label Oct 13, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

A post-v0.17.0 fix remains attributed to the v0.17.0 changelog instead of this release.

1 open finding
What changed in this PR

Prepares Hyperlight v0.18.0 by updating crate versions and release notes.

Changes:

  • Bumps workspace crates to 0.18.0.
  • Adds v0.18.0 changelog entries and comparison links.
  • Regenerates workspace lockfiles.
File Description
Cargo.toml Updates workspace and dependency versions.
Cargo.lock Records updated workspace crate versions.
src/​tests/​rust_guests/​Cargo.lock Updates nested guest workspace versions.
CHANGELOG.md Adds v0.18.0 release notes and links.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread CHANGELOG.md
ludfjig
ludfjig previously approved these changes Oct 13, 2026
@hyperlight-gh-bot

This comment has been minimized.

jsturtevant
jsturtevant previously approved these changes Oct 13, 2026
@danbugs
danbugs enabled auto-merge (squash) October 14, 2026 01:45
Signed-off-by: danbugs <danilochiarlone@gmail.com>
@danbugs
danbugs dismissed stale reviews from jsturtevant and ludfjig via c3307d0 October 14, 2026 01:49
@danbugs
danbugs force-pushed the danbugs/prepare-v0.18.0 branch from 1ebfa05 to c3307d0 Compare October 14, 2026 01:49
@hyperlight-gh-bot

Copy link
Copy Markdown

Benchmark Results

Measured commit: c3307d0c8f2c
Baseline commit: ad05110e17bf

kvm / amd (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

encode_control decode_vec_bytes_copy
byte_chunks 750.24 ns (➖ 1.00x slower)
vec_bytes 603.53 ns (➖ 1.01x slower)
372.91 µs (➖ 1.00x slower)

payload_allocation

slot_pool_segmented
262144 521.90 ns (➖ 1.00x faster)
65536 141.85 ns (➖ 1.01x faster)

sandboxes

create_initialized_and_drop
medium 81.25 ms (➖ 1.02x faster)

slot_pool

alloc_dealloc_1500 alloc_dealloc_4096 alloc_dealloc_128
7.72 ns (➖ 1.00x faster) 7.72 ns (➖ 1.00x faster) 7.72 ns (➖ 1.00x slower)

snapshot_files

load_snapshot_unverified
small 93.30 µs (➖ 1.00x faster)

virtq_readonly

slot_pool_segmented_fragmented slot_pool_segmented
262144 7.07 µs (➖ 1.00x faster) 7.28 µs (➖ 1.02x slower)
65536 2.12 µs (➖ 1.09x slower) 1.97 µs (➖ 1.07x faster)

virtq_readwrite

slot_pool_segmented_fragmented slot_pool_segmented
65536 6.23 µs (➖ 1.06x faster) 6.21 µs (➖ 1.03x faster)
8192 1.15 µs (➖ 1.02x slower) 1.07 µs (➖ 1.03x faster)
262144 27.39 µs (➖ 1.02x faster)
kvm / intel (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

encode_control decode_vec_bytes_copy
byte_chunks 669.23 ns (➖ 1.01x slower)
vec_bytes 499.72 ns (➖ 1.03x faster)
657.06 µs (➖ 1.00x faster)

payload_allocation

slot_pool_segmented
262144 493.23 ns (➖ 1.08x faster)
65536 133.91 ns (➖ 1.01x faster)

sandboxes

create_initialized_and_drop
medium 73.39 ms (➖ 1.00x faster)

slot_pool

alloc_dealloc_1500 alloc_dealloc_4096 alloc_dealloc_128
6.86 ns (➖ 1.00x faster) 6.88 ns (➖ 1.00x faster) 6.95 ns (➖ 1.01x slower)

snapshot_files

load_snapshot_unverified
small 44.52 µs (➖ 1.02x faster)

virtq_readonly

slot_pool_segmented_fragmented slot_pool_segmented
262144 7.52 µs (➖ 1.00x slower) 7.50 µs (➖ 1.00x slower)
65536 2.14 µs (➖ 1.00x faster) 2.14 µs (➖ 1.00x slower)

virtq_readwrite

slot_pool_segmented_fragmented slot_pool_segmented
65536 7.31 µs (➖ 1.02x slower) 7.16 µs (➖ 1.00x faster)
8192 754.11 ns (➖ 1.02x faster) 788.14 ns (➖ 1.04x slower)
262144 29.97 µs (➖ 1.02x slower)
mshv3 / amd (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

encode_control decode_vec_bytes_copy
byte_chunks 938.53 ns (➖ 1.00x slower)
vec_bytes 718.11 ns (➖ 1.02x slower)
358.87 µs (➖ 1.34x slower)

payload_allocation

slot_pool_segmented
262144 718.27 ns (➖ 1.03x faster)
65536 197.57 ns (➖ 1.04x slower)

sandboxes

create_initialized_and_drop
medium 57.44 ms (➖ 1.00x slower)

slot_pool

alloc_dealloc_1500 alloc_dealloc_4096 alloc_dealloc_128
9.59 ns (➖ 1.02x slower) 9.39 ns (➖ 1.02x faster) 9.43 ns (➖ 1.01x faster)

snapshot_files

load_snapshot_unverified
small 84.49 µs (➖ 1.01x slower)

virtq_readonly

slot_pool_segmented_fragmented slot_pool_segmented
262144 10.00 µs (➖ 1.01x faster) 9.86 µs (➖ 1.01x faster)
65536 2.42 µs (➖ 1.02x faster) 2.23 µs (➖ 1.01x faster)

virtq_readwrite

slot_pool_segmented_fragmented slot_pool_segmented
65536 8.34 µs (➖ 1.14x faster) 8.36 µs (➖ 1.18x faster)
8192 1.28 µs (➖ 1.06x faster) 1.35 µs (➖ 1.09x slower)
262144 36.38 µs (➖ 1.06x faster)
mshv3 / intel (Linux) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

encode_control decode_vec_bytes_copy
byte_chunks 913.74 ns (➖ 1.00x slower)
vec_bytes 665.85 ns (➖ 1.02x slower)
729.03 µs (➖ 1.12x slower)

payload_allocation

slot_pool_segmented
262144 647.30 ns (➖ 1.02x slower)
65536 173.25 ns (➖ 1.05x slower)

sandboxes

create_initialized_and_drop
medium 65.16 ms (➖ 1.00x faster)

slot_pool

alloc_dealloc_1500 alloc_dealloc_4096 alloc_dealloc_128
9.41 ns (➖ 1.01x faster) 9.71 ns (➖ 1.03x slower) 9.29 ns (➖ 1.01x slower)

snapshot_files

load_snapshot_unverified
small 45.20 µs (➖ 1.01x slower)

virtq_readonly

slot_pool_segmented_fragmented slot_pool_segmented
262144 7.89 µs (➖ 1.01x faster) 7.93 µs (➖ 1.01x slower)
65536 2.25 µs (➖ 1.00x faster) 2.26 µs (➖ 1.01x slower)

virtq_readwrite

slot_pool_segmented_fragmented slot_pool_segmented
65536 7.72 µs (➖ 1.03x slower) 7.47 µs (➖ 1.02x faster)
8192 915.97 ns (➖ 1.06x faster) 926.88 ns (➖ 1.01x slower)
262144 37.58 µs (➖ 1.07x faster)
hyperv-ws2025 / amd (Windows) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

encode_control decode_vec_bytes_copy
byte_chunks 1.26 µs (➖ 1.05x slower)
vec_bytes 792.58 ns (➖ 1.04x faster)
2.13 ms (➖ 1.07x faster)

payload_allocation

slot_pool_segmented
262144 782.90 ns (➖ 1.04x faster)
65536 255.45 ns (➖ 1.11x slower)

sandboxes

create_initialized_and_drop
medium 94.99 ms (➖ 1.02x faster)

slot_pool

alloc_dealloc_1500 alloc_dealloc_4096 alloc_dealloc_128
10.10 ns (➖ 1.04x faster) 11.41 ns (➖ 1.10x slower) 10.36 ns (➖ 1.01x faster)

snapshot_files

load_snapshot_unverified
small 859.35 µs (➖ 1.01x slower)

virtq_readonly

slot_pool_segmented_fragmented slot_pool_segmented
262144 9.03 µs (➖ 1.02x faster) 9.15 µs (➖ 1.01x faster)
65536 2.33 µs (➖ 1.02x faster) 2.36 µs (➖ 1.02x slower)

virtq_readwrite

slot_pool_segmented_fragmented slot_pool_segmented
65536 8.73 µs (➖ 1.05x faster) 8.76 µs (➖ 1.00x faster)
8192 1.35 µs (➖ 1.01x faster) 1.29 µs (➖ 1.01x slower)
262144 39.36 µs (➖ 1.03x slower)
hyperv-ws2025 / intel (Windows) (➖ stable)

No benchmark improved or regressed.

Benchmark Results

function_call_codec

encode_control decode_vec_bytes_copy
byte_chunks 1.19 µs (➖ 1.04x faster)
vec_bytes 769.40 ns (➖ 1.02x faster)
3.05 ms (➖ 1.04x faster)

payload_allocation

slot_pool_segmented
262144 747.01 ns (➖ 1.01x slower)
65536 209.52 ns (➖ 1.00x slower)

sandboxes

create_initialized_and_drop
medium 115.00 ms (➖ 1.03x slower)

slot_pool

alloc_dealloc_1500 alloc_dealloc_4096 alloc_dealloc_128
10.40 ns (➖ 1.03x faster) 10.05 ns (➖ 1.01x slower) 10.29 ns (➖ 1.04x faster)

snapshot_files

load_snapshot_unverified
small 810.00 µs (➖ 1.18x slower)

virtq_readonly

slot_pool_segmented_fragmented slot_pool_segmented
262144 7.77 µs (➖ 1.01x slower) 8.07 µs (➖ 1.04x slower)
65536 2.38 µs (➖ 1.03x slower) 2.39 µs (➖ 1.02x slower)

virtq_readwrite

slot_pool_segmented_fragmented slot_pool_segmented
65536 8.87 µs (➖ 1.02x slower) 8.69 µs (➖ 1.01x slower)
8192 1.15 µs (➖ 1.10x faster) 1.09 µs (➖ 1.00x slower)
262144 42.44 µs (➖ 1.10x faster)

Reported by cargo ci bench-report --candidate run:38497763393 --config-file bench_report.toml.

@danbugs
danbugs merged commit e3fe1cc into main Oct 14, 2026
69 checks passed
@danbugs
danbugs deleted the danbugs/prepare-v0.18.0 branch October 14, 2026 16:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/dependencies For PRs that update dependencies or related components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants