From 6bd7a5dbc030115831341a22799eabb93476bf23 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 8 Oct 2026 01:26:34 +0000 Subject: [PATCH 1/2] chore: release v2.2.3 --- Cargo.lock | 12 ++++++------ Cargo.toml | 2 +- crates/rusty_alloc/CHANGELOG.md | 7 +++++++ crates/rusty_alloc_api/Cargo.toml | 2 +- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 044962b..9e63a80 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -275,7 +275,7 @@ checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" [[package]] name = "rusty_alloc" -version = "2.2.3" +version = "3.0.0" dependencies = [ "libc", "loom", @@ -286,14 +286,14 @@ dependencies = [ [[package]] name = "rusty_alloc-api" -version = "2.2.3" +version = "3.0.0" dependencies = [ "rusty_alloc", ] [[package]] name = "rusty_alloc-bench" -version = "2.2.3" +version = "3.0.0" dependencies = [ "libloading", "rusty_alloc", @@ -302,14 +302,14 @@ dependencies = [ [[package]] name = "rusty_alloc-ffi" -version = "2.2.3" +version = "3.0.0" dependencies = [ "rusty_alloc", ] [[package]] name = "rusty_alloc-override" -version = "2.2.3" +version = "3.0.0" dependencies = [ "rusty_alloc", "rusty_alloc-ffi", @@ -317,7 +317,7 @@ dependencies = [ [[package]] name = "rusty_alloc-wasm" -version = "2.2.3" +version = "3.0.0" dependencies = [ "rusty_alloc", ] diff --git a/Cargo.toml b/Cargo.toml index dabf768..5f7b6b3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -132,7 +132,7 @@ members = [ # different files that never got the section. Fixed here, in both, and # verified by extracting the packaged `.crate` before publishing rather than # checking the live page afterwards. -version = "2.2.3" +version = "3.0.0" edition = "2024" # MSRV. Declared for the first time in 1.0.1 because this release genuinely # needs it: `asm!` label blocks (`asm_goto`, stable 1.87) carry the free path's diff --git a/crates/rusty_alloc/CHANGELOG.md b/crates/rusty_alloc/CHANGELOG.md index e902283..0e7d454 100644 --- a/crates/rusty_alloc/CHANGELOG.md +++ b/crates/rusty_alloc/CHANGELOG.md @@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [3.0.0](https://github.com/Remade-With-Rust/rusty_alloc/compare/rusty_alloc-v2.2.3...rusty_alloc-v3.0.0) - 2026-10-08 + +### Fixed + +- *(alloc)* fire the deferred-free hook with no &mut Heap alive +- *(heap)* stranded large spans after adoption; perf: segment scrub, large cache + ### Fixed - **Freed model memory no longer stays stranded after a loader thread diff --git a/crates/rusty_alloc_api/Cargo.toml b/crates/rusty_alloc_api/Cargo.toml index f92e533..6209a90 100644 --- a/crates/rusty_alloc_api/Cargo.toml +++ b/crates/rusty_alloc_api/Cargo.toml @@ -14,7 +14,7 @@ readme = "README.md" [dependencies] # A published crate needs a VERSION alongside the path: the path is what the # workspace builds against, the version is what crates.io resolves. -rusty_alloc = { path = "../rusty_alloc", version = "2.2.3", default-features = false } +rusty_alloc = { path = "../rusty_alloc", version = "3.0.0", default-features = false } [features] # Mirrors the core's (P3, docs/plans/small-metal.md). Default-on, so every From 410ae26031aeb5f7ec2abb7238a20bc4782e9dd7 Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 7 Oct 2026 18:29:19 -0700 Subject: [PATCH 2/2] chore: release v2.2.4 -- pin the patch over the proposed 3.0.0, with a semver note cargo-semver-checks flags Heap's three new pub fields (constructible_struct_adds_field). Shipped as 2.2.4 by the maintainer's decision; the release notes open with the note. Co-Authored-By: Claude Opus 5.5 (1M context) --- Cargo.lock | 12 ++++++------ Cargo.toml | 2 +- crates/rusty_alloc/CHANGELOG.md | 13 +++++++++---- crates/rusty_alloc_api/Cargo.toml | 2 +- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9e63a80..2a44faf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -275,7 +275,7 @@ checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" [[package]] name = "rusty_alloc" -version = "3.0.0" +version = "2.2.4" dependencies = [ "libc", "loom", @@ -286,14 +286,14 @@ dependencies = [ [[package]] name = "rusty_alloc-api" -version = "3.0.0" +version = "2.2.4" dependencies = [ "rusty_alloc", ] [[package]] name = "rusty_alloc-bench" -version = "3.0.0" +version = "2.2.4" dependencies = [ "libloading", "rusty_alloc", @@ -302,14 +302,14 @@ dependencies = [ [[package]] name = "rusty_alloc-ffi" -version = "3.0.0" +version = "2.2.4" dependencies = [ "rusty_alloc", ] [[package]] name = "rusty_alloc-override" -version = "3.0.0" +version = "2.2.4" dependencies = [ "rusty_alloc", "rusty_alloc-ffi", @@ -317,7 +317,7 @@ dependencies = [ [[package]] name = "rusty_alloc-wasm" -version = "3.0.0" +version = "2.2.4" dependencies = [ "rusty_alloc", ] diff --git a/Cargo.toml b/Cargo.toml index 5f7b6b3..c9a6676 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -132,7 +132,7 @@ members = [ # different files that never got the section. Fixed here, in both, and # verified by extracting the packaged `.crate` before publishing rather than # checking the live page afterwards. -version = "3.0.0" +version = "2.2.4" edition = "2024" # MSRV. Declared for the first time in 1.0.1 because this release genuinely # needs it: `asm!` label blocks (`asm_goto`, stable 1.87) carry the free path's diff --git a/crates/rusty_alloc/CHANGELOG.md b/crates/rusty_alloc/CHANGELOG.md index 0e7d454..e02f0d1 100644 --- a/crates/rusty_alloc/CHANGELOG.md +++ b/crates/rusty_alloc/CHANGELOG.md @@ -7,12 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -## [3.0.0](https://github.com/Remade-With-Rust/rusty_alloc/compare/rusty_alloc-v2.2.3...rusty_alloc-v3.0.0) - 2026-10-08 +## [2.2.4](https://github.com/Remade-With-Rust/rusty_alloc/compare/rusty_alloc-v2.2.3...rusty_alloc-v2.2.4) - 2026-10-08 -### Fixed +### Semver note (read before upgrading) -- *(alloc)* fire the deferred-free hook with no &mut Heap alive -- *(heap)* stranded large spans after adoption; perf: segment scrub, large cache +`rusty_alloc::heap::Heap` gained three public fields (`large_cache`, +`large_freed`, `deferred_due`). Every field of `Heap` is public, so code that +builds a `Heap` with a struct literal must add them; `cargo-semver-checks` +reports this as a breaking change. It ships as a patch deliberately: `Heap` +is allocator state that callers create with `Heap::new()`, and every known +consumer (spacedb, rusty_alloc_default, rusty_zstd) compiles unchanged. If +you build `Heap { .. }` yourself, start from `Heap::new()` instead. ### Fixed diff --git a/crates/rusty_alloc_api/Cargo.toml b/crates/rusty_alloc_api/Cargo.toml index 6209a90..40772bb 100644 --- a/crates/rusty_alloc_api/Cargo.toml +++ b/crates/rusty_alloc_api/Cargo.toml @@ -14,7 +14,7 @@ readme = "README.md" [dependencies] # A published crate needs a VERSION alongside the path: the path is what the # workspace builds against, the version is what crates.io resolves. -rusty_alloc = { path = "../rusty_alloc", version = "3.0.0", default-features = false } +rusty_alloc = { path = "../rusty_alloc", version = "2.2.4", default-features = false } [features] # Mirrors the core's (P3, docs/plans/small-metal.md). Default-on, so every