This release includes 5 breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+9 more
ReleasePort's take
Moderate signalReleasePort Layer 1 v3.0.0 introduces multiple breaking changes that affect core APIs and compatibility layers.
Why it matters: All listed breaking changes (severity 80) eliminate back‑compatibility shims, require explicit topology handles, and split headers; migration is mandatory before upgrade.
Summary
AI summaryBroad release touches Patch, Improve, Fix, and Make.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Breaking | High |
Breaks HMAT and kernel tiering by measuring memory fabric in-process Breaks HMAT and kernel tiering by measuring memory fabric in-process Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Breaking | High |
Breaks DomainAllocator by introducing symmetric containers and SDK benchmark alignment Breaks DomainAllocator by introducing symmetric containers and SDK benchmark alignment Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Breaking | High |
Breaks C ABI by requiring explicit `fu_topology_t` handle, removing singletons Breaks C ABI by requiring explicit `fu_topology_t` handle, removing singletons Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Breaking | High |
Enforces a single vocabulary and canonical order across all surfaces Enforces a single vocabulary and canonical order across all surfaces Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Breaking | High |
Removes all back‑compatibility shims Removes all back‑compatibility shims Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Breaking | High |
Layers capability macros and splits the umbrella header file Layers capability macros and splits the umbrella header file Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Breaking | High |
Makes `RoundRobinVec` bulk operations allocation‑free and sound Makes `RoundRobinVec` bulk operations allocation‑free and sound Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Breaking | High |
Splits topology into separate compute and memory domains Splits topology into separate compute and memory domains Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Breaking | High |
Introduces generation tokens for non‑blocking multi‑pool coordination Introduces generation tokens for non‑blocking multi‑pool coordination Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Feature | Medium |
Adds binding of measured fabric to Rust and Zig languages Adds binding of measured fabric to Rust and Zig languages Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Feature | Low |
Enumerates per‑domain cache sizes from sysfs and CPUID Enumerates per‑domain cache sizes from sysfs and CPUID Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Feature | Low |
Adds FreeBSD support for reschedule, topology, memory placement, and superpages Adds FreeBSD support for reschedule, topology, memory placement, and superpages Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Feature | Low |
Introduces label‑propagation benchmark replacing triangle counting Introduces label‑propagation benchmark replacing triangle counting Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Feature | Low |
Adds cache‑line demote & promote hints for x86, Arm, and RISC‑V Adds cache‑line demote & promote hints for x86, Arm, and RISC‑V Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Feature | Low |
Introduces monitored waits, per‑loop wait bounds, and Zawrs Introduces monitored waits, per‑loop wait bounds, and Zawrs Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Feature | Low |
Adds owning arrays and rebuilds topology on them Adds owning arrays and rebuilds topology on them Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Feature | Low |
Adds Windows support for topology, NUMA pools, and pinning Adds Windows support for topology, NUMA pools, and pinning Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Feature | Low |
Adds Miri coverage of the pure‑Rust unsafe code Adds Miri coverage of the pure‑Rust unsafe code Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Feature | Low |
Introduces Rust `scope()` API replacing the SafePtr smuggle Introduces Rust `scope()` API replacing the SafePtr smuggle Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Feature | Low |
Adds memory tiers, cpuless domains, HMAT metrics, and macOS harvest Adds memory tiers, cpuless domains, HMAT metrics, and macOS harvest Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Feature | Low |
Introduces stoppable & exception‑handling `try_for` utility Introduces stoppable & exception‑handling `try_for` utility Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Feature | Low |
Adds reductions in Rust implementation Adds reductions in Rust implementation Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Feature | Low |
Provides NUMA‑aware allocator for Zig language Provides NUMA‑aware allocator for Zig language Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Feature | Low |
Benchmarks against libXEV and Spice libraries Benchmarks against libXEV and Spice libraries Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Feature | Low |
Adds draft Zig binding to the SDK Adds draft Zig binding to the SDK Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
Full changelog
Release: v3.0.0 [skip ci]
Major
- Break: Measure the memory fabric in-process, replacing HMAT and kernel tiering (49290e7)
- Break: DomainAllocator, symmetric containers, SDK benchmark alignment (06bf8fe)
- Break: Explicit
fu_topology_thandle across the C ABI, no singletons (6903711) - Break: One vocabulary, one canonical order, across every surface (fa78301)
- Break: Remove every back-compatibility shim (818151a)
- Break: Layer capability macros, split the umbrella header (ec013e8)
- Break: Sound, allocation-free
RoundRobinVecbulk operations (384bef5) - Break: Split topology into compute and memory domains (64d4bdf)
- Break: Generation tokens for non-blocking multi-pool coordination (1545311)
- Break: New project name & link (6da19ed)
- Break: Name spacing/capitalization (0911619)
Minor
- Add: Bind the measured fabric to Rust and Zig (35e439b)
- Add: Enumerate per-domain cache sizes from sysfs and CPUID (c322c93)
- Add: FreeBSD reschedule, topology, memory placement, and superpages (6a84509)
- Add: Label-propagation benchmark replacing triangle counting (2604198)
- Add: Cache-line demote & promote hints for x86, Arm, and RISC-V (4145073)
- Add: Monitored waits, per-loop wait bounds, and Zawrs (d7774e5)
- Add: Owning arrays, and rebuild the topology on them (586e138)
- Add: Windows support for topology, NUMA pools, and pinning (2ae8150)
- Add: Miri coverage of the pure-Rust unsafe (6c7f62d)
- Add: Rust scope() API replacing the SafePtr smuggle (b71341f)
- Add: Memory tiers, cpuless domains, HMAT metrics, and macOS harvest (c27faf8)
- Add: Stoppable & Exception-handling
try_for(cb6b257) - Add: Reductions in Rust (e7932c4)
- Add: NUMA-aware allocator for Zig (bbb9e90)
- Add: Bench against libXEV and Spice (bf998f9)
- Add: Draft Zig binding (916e641)
Patch
- Make: Version the duplicated macros in types.hpp (6fc9312)
- Docs: Rewrite the topology guide around the declared-versus-observed split (a6e9843)
- Improve: Hoist the SplitMix64 avalanche into the shared types (3465c2d)
- Docs: Refresh the intro and complete the v3 API coverage (45e4753)
- Fix: Sync build-system references to place-* feature names (4e87654)
- Fix: Build the timed-wait monitors under -march=native (0891489)
- Make: Green the CI matrix - apt sources, tar, shellcheck, cross rows (1be2492)
- Docs: Refresh the README against the v3 APIs and slim the benchmarks (e3396ec)
- Make: Rewrite the pre-commit hook single-pass and Windows-proof (a52dfef)
- Fix: Probe FreeBSD's memory placement at runtime, not just compile time (c2eb3a7)
- Make: Restructure the pre-release CI around matrices and ctest (e3d7ff2)
- Improve: Flatten test bodies into helpers and split bundled concerns (feeaddd)
- Improve: Normalize the N-body kernels across languages (02bb703)
- Improve: Deepen test coverage across schedulers, lifecycles, and the C ABI (6b77064)
- Improve: Time-budgeted benchmarks, symmetric across C++, Rust, and Zig (45eb844)
- Make: Install git in the FreeBSD CI VM for Taskflow fetch (198b04f)
- Make: Align benchmark builds and add Taskflow as a baseline (ef68bca)
- Fix: Hoist dead work and stale docs out of the pool internals (11aa660)
- Improve: Flatten the distributed pool's colocations into one array (50d39e2)
- Improve: Dispatch curated yield-and-hints pool variants at runtime (134b7f6)
- Improve: Private cursors, read-probes, and demotions in dynamic stealing (c525460)
- Improve: Pools carry a cache-hints policy beside the yield (ea5399a)
- Make: Bump Zig to 0.16 for macOS 26 (4ce5b40)
- Make: Refresh retired CI runners, fix FreeBSD linkage (e351fd1)
- Improve: Steer Apple efficiency-core pools via QoS (c7be3fb)
- Fix: Route platform checks through the FU_* vocabulary (f30ce60)
- Fix: Robust NUMA placement under sandboxed and single-node hosts (239e3b0)
- Improve: Locate and value-print test failures, backtrace on crash (c427d6c)
- Make: Static-link the qemu-run cross-compile test binaries (ef3d11c)
- Fix: Cross-platform CI test failures (315da41)
- Make: Build the old-glibc floor on manylinux_2_28 (5f26aba)
- Improve: Model Android and FreeBSD affinity and scheduling (b903e50)
- Improve: Flatten the libc and hwprobe capability detection (7a4fd4e)
- Fix: Assemble the RISC-V pause hint on stock toolchains (1da97c7)
- Improve: Reach the CPU yield intrinsics on MSVC (a960fa3)
- Fix: Harden pool-completion tests against scheduler starvation (e85d35f)
- Make: Expand CI to validate cross-platform compatibility (d171746)
- Fix: Build clean under -Wall -Wextra -Werror (3833a67)
- Fix: Assemble the WFET capability probe on stock toolchains (05ed868)
- Improve: Full backend matrix via one compile-time-policy dispatch per demo (12bab43)
- Improve: Unified capability enumeration,
pool_kind_t, leaner ABI (90546ed) - Improve: Cleaner feature controls, one set across the SDKs (c2e9669)
- Fix: Restore Windows NUMA allocation and page-size probe (6d29828)
- Fix: Size and pin pools from the cores we were given (33497ab)
- Make: Expose each capability as an AUTO/ON/OFF tri-state (0020411)
- Fix: Seed where a stealing thread starts probing, not just its stride (c5f30cd)
- Improve: Private claim cursors for
for_n_dynamic(5ea9298) - Improve: NUMA backends for the Rust N-body, and dual-socket results (8350177)
- Improve: Compute-domain metadata across the bindings (95df7bc)
- Fix: NUMA topology harvesting on multi-socket hosts (3ebeea5)
- Docs: Reword stale topology phrasing to compute/memory domains (0272b39)
- Make: Rename allocator numa_node to memory_domain (d8e170f)
- Docs: Reword prong metadata for two-axis topology (f12d0ef)
- Make: Bump CI runners and add Arm64 + sanitizer coverage (d230ab1)
- Fix: Rust examples for by-reference
for_threads(39b007c) - Make: Bump CI (9a08a62)
- Fix: Over-aligned
AllocationResult(3bf34e9) - Improve: Validate
CacheAlignedpadding (46bb382) - Improve:
RoundRobinVeccode nesting (9982ad9) - Fix: Deprecate
spicecomparison (a707d55) - Make: Backport to Zig 0.15 (0167211)
- Improve: Shared
call_yield_with & w/out thread (541842c) - Improve: Select worker-yield overloads with
if constexpr(53e1b5d) - Fix: Route
standard_worker_yieldthroughmicro_yield()(101a955) - Improve: Add
worker_yield_thook for idle backoff (18b6d63) - Make: Apple's
libSystemcontains Blocks runtime (1e9540f) - Make: Skip C11 tests on MSVC - lacking atomics (a21ac35)
- Improve: Test C stable API (e8c6b48)
- Improve: Static slicing for
std.Thread.Pool(ca3d42b) - Make: Upgrade Zig to v0.16 (6d6283a)
- Improve: Handle
voidcontexts (0b9ed05) - Fix: Use aligned allocs for
opaque_pool_t(fb063a7) - Improve: Thread name formatting (d9455c8)
- Docs: Why no Miri or Loom? (0ec9ae9)
- Fix: Safeguard
tryforstd::thread(ddf8ea0)
Breaking Changes
- Measure the memory fabric in-process replaces HMAT and kernel tiering
- DomainAllocator, symmetric containers, SDK benchmark alignment changed
- Explicit `fu_topology_t` handle across C ABI; no singletons
- Unified vocabulary with canonical order across all surfaces
- Removed every back‑compatibility shim
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About ForkUnion v3
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]