diff --git a/CHANGELOG.md b/CHANGELOG.md index e576323f1..d53456638 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## [Prerelease] - Unreleased +## [v0.14.0] - 2026-04-01 + +### Changed +* Snapshot restore now uses copy-on-write, reducing restore latency by up to 99% (see [paging notes](https://github.com/hyperlight-dev/hyperlight/blob/v0.14.0/docs/paging-development-notes.md)) by @syntactically in https://github.com/hyperlight-dev/hyperlight/pull/1315 +* `map_region` on `MultiUseSandbox` now works on Windows by @jsturtevant in https://github.com/hyperlight-dev/hyperlight/pull/1330 +* Maximum sandbox memory size increased from ~1 GiB to ~16 GiB by @simongdavies in https://github.com/hyperlight-dev/hyperlight/pull/1340 + +### Fixed +* Windows surrogate process manager now uses SHA-stamped filenames to avoid conflicts when multiple Hyperlight versions coexist, and surrogate pool size is configurable via `HYPERLIGHT_INITIAL_SURROGATES` and `HYPERLIGHT_MAX_SURROGATES` environment variables by @simongdavies in https://github.com/hyperlight-dev/hyperlight/pull/1339 +* Fix a race where guest cancellation could cause a pending TLB flush to be lost by @ludfjig in https://github.com/hyperlight-dev/hyperlight/pull/1333 +* Fix spurious `GuestAborted` errors after repeated cancel+restore cycles by @ludfjig in https://github.com/hyperlight-dev/hyperlight/pull/1335 + ## [v0.13.1] - 2026-03-19 ### Fixed @@ -266,7 +278,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). The Initial Hyperlight Release 🎉 -[Prerelease]: +[Prerelease]: +[v0.14.0]: [v0.13.1]: [v0.13.0]: [v0.12.0]: diff --git a/Cargo.lock b/Cargo.lock index 3c3ea51d3..37158477d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1420,7 +1420,7 @@ dependencies = [ [[package]] name = "hyperlight-common" -version = "0.13.1" +version = "0.14.0" dependencies = [ "anyhow", "arbitrary", @@ -1434,7 +1434,7 @@ dependencies = [ [[package]] name = "hyperlight-component-macro" -version = "0.13.1" +version = "0.14.0" dependencies = [ "env_logger", "hyperlight-component-util", @@ -1448,7 +1448,7 @@ dependencies = [ [[package]] name = "hyperlight-component-util" -version = "0.13.1" +version = "0.14.0" dependencies = [ "itertools 0.14.0", "prettyplease", @@ -1471,7 +1471,7 @@ dependencies = [ [[package]] name = "hyperlight-guest" -version = "0.13.1" +version = "0.14.0" dependencies = [ "anyhow", "flatbuffers", @@ -1483,7 +1483,7 @@ dependencies = [ [[package]] name = "hyperlight-guest-bin" -version = "0.13.1" +version = "0.14.0" dependencies = [ "buddy_system_allocator", "cc", @@ -1502,7 +1502,7 @@ dependencies = [ [[package]] name = "hyperlight-guest-macro" -version = "0.13.1" +version = "0.14.0" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1512,7 +1512,7 @@ dependencies = [ [[package]] name = "hyperlight-guest-tracing" -version = "0.13.1" +version = "0.14.0" dependencies = [ "hyperlight-common", "spin", @@ -1522,7 +1522,7 @@ dependencies = [ [[package]] name = "hyperlight-host" -version = "0.13.1" +version = "0.14.0" dependencies = [ "anyhow", "bitflags 2.11.0", @@ -1607,7 +1607,7 @@ dependencies = [ [[package]] name = "hyperlight_guest_capi" -version = "0.13.1" +version = "0.14.0" dependencies = [ "cbindgen", "flatbuffers", diff --git a/Cargo.toml b/Cargo.toml index 7ad766b79..6c3ce9624 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,7 +27,7 @@ exclude = [ ] [workspace.package] -version = "0.13.1" +version = "0.14.0" edition = "2024" rust-version = "1.89" license = "Apache-2.0" @@ -36,15 +36,15 @@ repository = "https://github.com/hyperlight-dev/hyperlight" readme = "README.md" [workspace.dependencies] -hyperlight-common = { path = "src/hyperlight_common", version = "0.13.1", default-features = false } -hyperlight-host = { path = "src/hyperlight_host", version = "0.13.1", default-features = false } -hyperlight-guest = { path = "src/hyperlight_guest", version = "0.13.1", default-features = false } -hyperlight-guest-bin = { path = "src/hyperlight_guest_bin", version = "0.13.1", default-features = false } -hyperlight-guest-macro = { path = "src/hyperlight_guest_macro", version = "0.13.1", default-features = false } +hyperlight-common = { path = "src/hyperlight_common", version = "0.14.0", default-features = false } +hyperlight-host = { path = "src/hyperlight_host", version = "0.14.0", default-features = false } +hyperlight-guest = { path = "src/hyperlight_guest", version = "0.14.0", default-features = false } +hyperlight-guest-bin = { path = "src/hyperlight_guest_bin", version = "0.14.0", default-features = false } +hyperlight-guest-macro = { path = "src/hyperlight_guest_macro", version = "0.14.0", default-features = false } hyperlight-testing = { path = "src/hyperlight_testing", default-features = false } -hyperlight-guest-tracing = { path = "src/hyperlight_guest_tracing", version = "0.13.1", default-features = false } -hyperlight-component-util = { path = "src/hyperlight_component_util", version = "0.13.1", default-features = false } -hyperlight-component-macro = { path = "src/hyperlight_component_macro", version = "0.13.1", default-features = false } +hyperlight-guest-tracing = { path = "src/hyperlight_guest_tracing", version = "0.14.0", default-features = false } +hyperlight-component-util = { path = "src/hyperlight_component_util", version = "0.14.0", default-features = false } +hyperlight-component-macro = { path = "src/hyperlight_component_macro", version = "0.14.0", default-features = false } [workspace.lints.rust] unsafe_op_in_unsafe_fn = "deny" diff --git a/docs/how-to-make-releases.md b/docs/how-to-make-releases.md index f0471323b..38cdb093f 100644 --- a/docs/how-to-make-releases.md +++ b/docs/how-to-make-releases.md @@ -12,7 +12,7 @@ Create a PR with this change and merge it into the main branch. ## Update `CHANGELOG.md` -The `CHANGELOG.md` file is a critical document used to track changes made to Hyperlight. It serves as the foundation for generating release notes, so it's essential to keep it up to date with each release. While not every change needs to be added to this file (since a complete changelog of all PRs will be automatically generated), it's crucial to include all significant updates. +The `CHANGELOG.md` file is a critical document used to track changes made to Hyperlight. It serves as the foundation for generating release notes, so it's essential to keep it up to date with each release. While not every change needs to be added to this file (since a complete changelog of all PRs will be automatically generated), it's crucial to include all significant and user-facing updates. The changelog entries must follow [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) format. ### Steps to Update `CHANGELOG.md`: diff --git a/src/tests/rust_guests/dummyguest/Cargo.lock b/src/tests/rust_guests/dummyguest/Cargo.lock index 2cd2a9a3b..60bf72124 100644 --- a/src/tests/rust_guests/dummyguest/Cargo.lock +++ b/src/tests/rust_guests/dummyguest/Cargo.lock @@ -83,7 +83,7 @@ checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" [[package]] name = "hyperlight-common" -version = "0.13.1" +version = "0.14.0" dependencies = [ "anyhow", "flatbuffers", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "hyperlight-guest" -version = "0.13.1" +version = "0.14.0" dependencies = [ "anyhow", "flatbuffers", @@ -107,7 +107,7 @@ dependencies = [ [[package]] name = "hyperlight-guest-bin" -version = "0.13.1" +version = "0.14.0" dependencies = [ "buddy_system_allocator", "cc", @@ -126,7 +126,7 @@ dependencies = [ [[package]] name = "hyperlight-guest-macro" -version = "0.13.1" +version = "0.14.0" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -136,7 +136,7 @@ dependencies = [ [[package]] name = "hyperlight-guest-tracing" -version = "0.13.1" +version = "0.14.0" dependencies = [ "hyperlight-common", "spin", diff --git a/src/tests/rust_guests/simpleguest/Cargo.lock b/src/tests/rust_guests/simpleguest/Cargo.lock index 1f0e8282a..b0f41f579 100644 --- a/src/tests/rust_guests/simpleguest/Cargo.lock +++ b/src/tests/rust_guests/simpleguest/Cargo.lock @@ -75,7 +75,7 @@ checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" [[package]] name = "hyperlight-common" -version = "0.13.1" +version = "0.14.0" dependencies = [ "anyhow", "flatbuffers", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "hyperlight-guest" -version = "0.13.1" +version = "0.14.0" dependencies = [ "anyhow", "flatbuffers", @@ -99,7 +99,7 @@ dependencies = [ [[package]] name = "hyperlight-guest-bin" -version = "0.13.1" +version = "0.14.0" dependencies = [ "buddy_system_allocator", "cc", @@ -118,7 +118,7 @@ dependencies = [ [[package]] name = "hyperlight-guest-macro" -version = "0.13.1" +version = "0.14.0" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -128,7 +128,7 @@ dependencies = [ [[package]] name = "hyperlight-guest-tracing" -version = "0.13.1" +version = "0.14.0" dependencies = [ "hyperlight-common", "spin", diff --git a/src/tests/rust_guests/witguest/Cargo.lock b/src/tests/rust_guests/witguest/Cargo.lock index 3be96ff2e..e08dff3b0 100644 --- a/src/tests/rust_guests/witguest/Cargo.lock +++ b/src/tests/rust_guests/witguest/Cargo.lock @@ -180,7 +180,7 @@ dependencies = [ [[package]] name = "hyperlight-common" -version = "0.13.1" +version = "0.14.0" dependencies = [ "anyhow", "flatbuffers", @@ -192,7 +192,7 @@ dependencies = [ [[package]] name = "hyperlight-component-macro" -version = "0.13.1" +version = "0.14.0" dependencies = [ "env_logger", "hyperlight-component-util", @@ -206,7 +206,7 @@ dependencies = [ [[package]] name = "hyperlight-component-util" -version = "0.13.1" +version = "0.14.0" dependencies = [ "itertools", "prettyplease", @@ -219,7 +219,7 @@ dependencies = [ [[package]] name = "hyperlight-guest" -version = "0.13.1" +version = "0.14.0" dependencies = [ "anyhow", "flatbuffers", @@ -231,7 +231,7 @@ dependencies = [ [[package]] name = "hyperlight-guest-bin" -version = "0.13.1" +version = "0.14.0" dependencies = [ "buddy_system_allocator", "cc", @@ -250,7 +250,7 @@ dependencies = [ [[package]] name = "hyperlight-guest-macro" -version = "0.13.1" +version = "0.14.0" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -260,7 +260,7 @@ dependencies = [ [[package]] name = "hyperlight-guest-tracing" -version = "0.13.1" +version = "0.14.0" dependencies = [ "hyperlight-common", "spin", @@ -700,4 +700,4 @@ dependencies = [ name = "zmij" version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" \ No newline at end of file +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"