Skip to content

chore: release v2.0.1 - #14

Merged
Ttimmahlax merged 2 commits into
mainfrom
release-plz-2026-08-29T00-29-14Z
Sep 8, 2026
Merged

chore: release v2.0.1#14
Ttimmahlax merged 2 commits into
mainfrom
release-plz-2026-08-29T00-29-14Z

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

🤖 New release

  • rusty_alloc: 2.0.0 -> 2.0.1 (✓ API compatible changes)
  • rusty_alloc-api: 2.0.0 -> 2.0.1
Changelog

rusty_alloc

2.0.1 - 2026-09-08

Fixed

  • (prim) refuse a region that cannot hold a segment, and diagnose reentrancy

Other

  • (deps) pull portable-atomic only where it is reachable

Added

  • prim::fixed::MIN_REGION and prim::fixed::usable_bytes(base, len) — a
    firmware can now size its heap region at COMPILE time
    (const _: () = assert!(N >= MIN_REGION)) instead of discovering the answer
    on silicon, and can log how much of a region can actually back segments. The
    k * SEGMENT_SIZE + FIXED_PAGE rule previously existed only in a design
    document; a 220 KiB region strands 24,576 bytes and nothing said so.
  • Distinct prim::fixed error codes: FERR_TOO_SMALL, FERR_GEOMETRY,
    FERR_REGISTERED. One sentinel covered three conditions with three different
    fixes.

Fixed

  • init_region accepted a region that could never yield a segment. Setting
    --cfg ra_single_threaded (which the crate demands loudly) without
    --cfg ra_small_profile (which nothing demanded) left SEGMENT_SIZE at
    32 MiB, so a kilobyte-scale region returned Ok(()), linked clean, and then
    failed every allocation on the board with a backtrace pointing at whatever
    allocated first. It now returns FERR_GEOMETRY, checked against the real base
    address rather than the length alone — an unaligned base needs up to
    SEGMENT_SIZE - 1 more than a length test would demand.

  • An allocating interrupt handler hung the firmware silently.
    prim::fixed's lock is not reentrant, and on a single-context target a lock
    observed held can only mean reentrancy. That is now a panic naming the ISR
    instead of an unbounded spin that surfaces as a watchdog reset. Confirmed with
    a load, because compare_exchange_weak may fail spuriously and a bare CAS
    failure would misfire.

  • The README documents --cfg ra_small_profile, which it never mentioned, and
    attaches it to the 68 KiB figure that is only true under it.

    All four reported by the first outside firmware to adopt 2.0.0
    (docs/plans/embedded-adoption.md).

rusty_alloc-api

2.0.0 - 2026-09-07

Breaking

  • default-features = false now selects no_std. This crate's own source
    has been no_std since M2; only the core dependency's default features stood
    in the way. default = ["std"] is new, and turning it off gives a firmware
    the single-heap profile — which also requires --cfg ra_single_threaded on
    the core. Consumers on default features are unaffected.

Added

  • std feature (default-on) forwarding to rusty_alloc/std, so
    RustyAlloc can be a bare-metal #[global_allocator].


This PR was generated with release-plz.

@github-actions
github-actions Bot force-pushed the release-plz-2026-08-29T00-29-14Z branch 4 times, most recently from fc6c6d4 to 20ce614 Compare September 4, 2026 22:48
@github-actions
github-actions Bot force-pushed the release-plz-2026-08-29T00-29-14Z branch from 20ce614 to 3dcbbda Compare September 6, 2026 23:57
@github-actions github-actions Bot changed the title chore: release v1.1.7 chore: release v2.0.1 Sep 8, 2026
@github-actions
github-actions Bot force-pushed the release-plz-2026-08-29T00-29-14Z branch from 3dcbbda to 25f7753 Compare September 8, 2026 19:52
@github-actions
github-actions Bot force-pushed the release-plz-2026-08-29T00-29-14Z branch from 25f7753 to 02b7cf9 Compare September 8, 2026 22:20
release-plz inserts its generated block above a hand-written [Unreleased]
section, which left 2.0.1 with two `### Fixed` headings and the detailed notes
orphaned beneath the generated one-liners. Merged into a single coherent 2.0.1
with Added / Fixed / Changed, and the portable-atomic change written out rather
than left as a bare commit subject under `### Other`.

The changelog is what a consumer reads when a major has just broken them; it is
worth the two minutes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Ttimmahlax
Ttimmahlax merged commit 0aecf64 into main Sep 8, 2026
9 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants