Skip to content

ForkUnion v3

v3.0.0 Breaking

This release includes 5 breaking changes for platform teams planning a safe upgrade.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

arm atomics compare-and-swap concurrency memory-model mpi
+9 more
multithreading numa openmp parallel-computing parallel-stl parallelism rayon thread-pool threadpool

ReleasePort's take

Moderate signal
editorial:auto 11d

ReleasePort 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 summary

Broad release touches Patch, Improve, Fix, and Make.

Changes in this release

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_t handle 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 RoundRobinVec bulk 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 CacheAligned padding (46bb382)
  • Improve: RoundRobinVec code nesting (9982ad9)
  • Fix: Deprecate spice comparison (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_yield through micro_yield() (101a955)
  • Improve: Add worker_yield_t hook for idle backoff (18b6d63)
  • Make: Apple's libSystem contains 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 void contexts (0b9ed05)
  • Fix: Use aligned allocs for opaque_pool_t (fb063a7)
  • Improve: Thread name formatting (d9455c8)
  • Docs: Why no Miri or Loom? (0ec9ae9)
  • Fix: Safeguard try for std::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

Track ForkUnion v3

Get notified when new releases ship.

Sign up free

About ForkUnion v3

All releases →

Related context

Beta — feedback welcome: [email protected]