Skip to content

chore: release v2.0.1 - #20

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
release-plz-2026-09-08T22-26-43Z
Open

chore: release v2.0.1#20
github-actions[bot] wants to merge 1 commit into
mainfrom
release-plz-2026-09-08T22-26-43Z

Conversation

@github-actions

@github-actions github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

🤖 New release

  • rusty_alloc: 2.0.0 -> 2.0.1
  • rusty_alloc-api: 2.0.0 -> 2.0.1
Changelog

rusty_alloc

2.0.1 - 2026-09-08

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).

Changed

  • portable-atomic is optional and enabled by std, so it is pulled only
    where it is reachable — a target without 64-bit atomics that also has std.
    A no_std firmware was fetching and compiling a crate it then discarded at
    link time. Costs nothing on the device either way; it buys an accurate
    dependency graph in an SBOM or a cargo audit.

rusty_alloc-api

2.0.1 - 2026-09-08

Other

  • release v2.0.1


This PR was generated with release-plz.

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.

0 participants