Releases: taiki-e/portable-atomic
1.13.1
portable-atomic-util 0.2.5
-
Add
Arc::{new_zeroed,new_zeroed_slice}at Rust 1.36+. (align to the stdArcchange in Rust 1.92) (f8affb6, ae5aba7) -
Implement
DefaultforPin<Arc<T>: Default>. (align to the stdArcchange in Rust 1.91) (2d8d33c) -
Implement
From<&mut {[T],str}>forArc<{[T],str}>at Rust 1.36+. (align to the stdArcchange in Rust 1.84) (99640d6, ae5aba7) -
Implement
{AsFd, AsRawFd}forArc<T>on Trusty. (1b09ffb) -
Support slice-related methods that previously required Rust 1.44+ at Rust 1.36+. (ae5aba7)
-
Support
AsRawFd for Arc<T>implementation on Unix in all Rust versions. Previously, it was only for Rust 1.63+. (1b09ffb) -
Fix build error when building for HermitOS with
stdfeature in Rust 1.63-1.68. (1b09ffb) -
Documentation improvements.
-
Enable release immutability.
1.13.0
-
Add
unsafe-assume-privilegedfeature /portable_atomic_unsafe_assume_privilegedcfg for safer lock-based fallback on multi-core privileged environments. (b084ee1) -
Support
unsafe-assume-single-core/unsafe-assume-privilegedon all 32-bit Arm targets. Previously it was only M-profile and pre-v6 targets. (7e07f5e) -
Make
AtomicPtr::fetch_*strict-provenance compatible on all environments. Previously it was only strict-provenance compatible oncfg(miri)and otherwise permissive-provenance compatible. (4306943) -
Ensure sequential consistency in lock-based fallback when SeqCst is used. (7e80742)
-
Support compile-time detection for x86_64 VMOVDQA. (f7bb1aa)
-
Improve compile-time detection of s390x miscellaneous-extensions-3. (11045fe)
-
Optimize AVR 8-bit swap when RMW instructions available. (8cedb34)
-
Optimize interrupt restore on RISC-V. (9b97a2a)
1.12.0
-
Fix build error on no-std pre-v6 Arm targets due to the recent upstream change. (83f6f3e)
-
Support
unsafe-assume-single-corefeature /portable_atomic_unsafe_assume_single_corecfg for targets with CAS. (38e9572) -
Improve compile-time detection of s390x target feature. (5ae0ef5)
-
Documentation improvements. (c84f720)
1.11.1
-
Fix build error when building aarch64/arm64ec/powerpc64/s390x targets for Miri or ThreadSanitizer since nightly-2025-05-31.
-
aarch64: Optimize atomic floats when FEAT_LSFE is enabled. (#201)
-
Improve compile-time detection of RISC-V Zacas extension. (b7634e2)
-
Improve run-time detection on linux-musl. (7fdad7f)
1.11.0
-
Work around nightly-2025-02-24 rustc regression causing "cannot use value of type
*mut Tfor inline assembly" error on RISC-V without A extension, MSP430, and pre-v6 no-std Arm targets. (eeb0235) -
Support
AtomicF16andAtomicF128for unstablef16andf128under unstable cfgs. (#200) -
RISC-V Zacas extension support is no longer experimental. (#206)
-
Improve support of run-time detection and outline-atomics:
- riscv: Enable run-time detection of Zacas extension by default on Linux/Android. (#207)
- aarch64: Support run-time detection of FEAT_LRCPC3/FEAT_LSE128 on FreeBSD. (6a5075d)
- powerpc64: Support run-time detection of quadword-atomics on AIX (currently disabled by default because detection support for AIX is experimental). (#102)
1.10.0
-
Update to stabilized s390x and Arm64EC inline assembly. (97645c1, e1d1a97)
-
Make
get_mutconst fnon Rust 1.83+. (0dea68c) -
Make
from_ptrconst fnon Rust 1.83+. (align to the std atomic change in Rust 1.84) (50532d8) -
Various optimizations:
-
Improve support of run-time detection and outline-atomics:
-
Support RISC-V Zacas extension on pre-1.82 rustc. (#194)
-
Improve compile-time detection of RISC-V Zaamo/Zabha extensions. (673137a)
-
Respect
RUSTC_BOOTSTRAP=-1recently added in nightly in rustc version detection. (5b2847a)
portable-atomic-util 0.2.4
-
Add unstable
portable_atomic_unstable_coerce_unsizedcfg (requires Rust nightly). (#195, thanks @brodycj) -
Respect
RUSTC_BOOTSTRAP=-1recently added in nightly in rustc version detection. (5b2847a)
portable-atomic-util 0.2.3
-
Add
new_uninit/new_uninit_slice/assume_inittoArcat Rust 1.36+. (align to the stdArcchange in Rust 1.82) (362dc9a) -
Support
make_mutonArc<[T]>andArc<str>at Rust 1.36+. (align to the stdArcchange in Rust 1.81) (362dc9a)
1.9.0
-
RISC-V without A-extension: Support RMW when Zaamo extension enabled (even when
unsafe-assume-single-coredisabled). (#185, 9983a8b)
See "operations don't require disabling interrupts" list ininterruptmodule's readme for the operations provided. -
Support run-time detection of RISC-V Zacas extension (currently disabled by default). (#183)
-
Support 128-bit atomics on Arm64EC (currently nightly-only) (#184)
-
Improve compile-time detection of powerpc64 quadword-atomics. (3eb8507)