Releases: taiki-e/atomic-maybe-uninit
0.3.6
0.3.5
- Documentation improvements.
0.3.4
This release includes improvements to platform support, various optimizations, significant improvements to code comments, etc.
-
Improvements to platform support:
-
Update to stabilized s390x and Arm64EC inline assembly. (c9d7286, 3a85789)
-
Make
from_ptr
const fn
on Rust 1.83+. (align to the std atomic change in Rust 1.84) (c8ef5c4) -
Various optimizations:
- AArch64: Optimize 128-bit SeqCst load when FEAT_LRCPC3 enabled and 128-bit SeqCst store when FEAT_LRCPC3 enabled and FEAT_LSE128 is disabled. (#30)
- pre-v6 Arm Linux/Android: Optimize {8,16,32}-bit swap/CAS and all 64-bit atomics. (#30)
- PowerPC: Optimize {8,16}-bit swap/CAS (#30), all Acquire/AcqRel/SeqCst swap/CAS, all CAS with Relaxed failure ordering, and {8,16}-bit weak CAS (18aadd2).
- s390x: Optimize {8,16,128}-bit swap. (#30)
- RISC-V, MIPS, LoongArch64, Hexagon: Optimize {8,16}-bit swap/CAS. (#30)
- AVR: Optimize 8-bit load/store. (18aadd2)
-
Respect
RUSTC_BOOTSTRAP=-1
recently added in nightly in rustc version detection. (07f64d5)
0.3.3
-
Make
get_mut
const fn
on Rust 1.83+. (484a32f) -
Work around LLVM pre-20 bug. (#25)
-
Support atomic swap on RISC-V without A-extension when Zaamo extension enabled. (34d37b9)
-
Optimize RISC-V {8,16}-bit atomic swap when Zabha is enabled. (34d37b9)
-
Strengthen RISC-V SeqCst store to improve compatibility with code that uses atomic instruction mapping that differs from LLVM and GCC. (836d3fe)
-
Optimize x86_32 64-bit load/store when SSE is not available. (c6f914b)
-
Improve compile-time detection of AArch64 FEAT_LSE2/FEAT_LRCPC3/FEAT_LSE128. (959477b)
-
Improve compile-time detection of powerpc64 partword-atomics/quadword-atomics. (e1a1596)
0.3.2
-
Support Arm64EC (experimental). (4d94b3c)
-
Support swap/CAS on AVR (experimental). (71b9a5f)
-
Make
into_inner
const fn
on Rust 1.61+. (align to the std atomic change in Rust 1.79) (9c253dc) -
Improve loongarch64 support. (358360c)
-
Make rustc version detection robust for custom toolchains. (c034611)
-
Respect
RUSTC_WRAPPER
in rustc version detection. -
Our build script is now less likely to be re-run unnecessarily in versions where the cargo bug fix is available (cargo 1.79+). (91ec716)
-
Various optimizations
0.3.1
-
Add
as_ptr
andfrom_ptr
. -
Optimize weak CAS on PowerPC.
-
Optimize {8,16}-bit CAS on AArch64.
0.3.0
- Optimize inline assemblies using
MaybeUninit
input/output of inline assembly implemented by rust-lang/rust#114790, where it is available. This greatly improves performance and is almost equivalent to std atomic types. (#19)
0.2.22
0.2.21
-
Fix AVR 16-bit atomic load/store.
-
Optimize AArch64 128-bit atomic store/swap when the
lse128
target feature is enabled at compile-time. -
Optimize AArch64 128-bit atomic load/store when the
rcpc3
target feature is enabled at compile-time.
0.2.20
-
Support pre-v6 ARM Linux/Android (e.g., armv5te-unknown-linux-gnueabi, arm-linux-androideabi, etc.).
-
Support Hexagon (experimental).
-
Support AVR atomic load/store (experimental).
-
Improve {8,16}-bit atomic implementations on RISC-V, PowerPC, MIPS, s390x, LoongArch64.