atomic-maybe-uninit

Atomic operations on potentially uninitialized integers.

APACHE-2.0 License

Downloads
17.8K
Stars
14
Committers
1

Bot releases are visible (Hide)

atomic-maybe-uninit - 0.3.2 Latest Release

Published by github-actions[bot] 3 months ago

  • 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

    • Optimize x86_32 64-bit load/store when SSE is not available. (75ca334)
    • Optimize PowerPC32 Acquire/SeqCst load. (f5ce83b)
    • Optimize x86 inline assembly. (adaf3a9, 3ba37e9, fcc0bf8)
    • Optimize s390x inline assembly. (9ee7f57)
atomic-maybe-uninit - 0.3.1

Published by github-actions[bot] about 1 year ago

  • Add as_ptr and from_ptr.

  • Optimize weak CAS on PowerPC.

  • Optimize {8,16}-bit CAS on AArch64.

atomic-maybe-uninit - 0.3.0

Published by github-actions[bot] about 1 year ago

  • 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)
atomic-maybe-uninit - 0.2.22

Published by github-actions[bot] about 1 year ago

  • Add cfg_{has,no}_atomic_{8,16,32,64,128,ptr} macros to enable code when the corresponding atomic implementation is available/unavailable. (#9)

  • Add cfg_{has,no}_atomic_cas macros to enable code when atomic swap/CAS implementation is available/unavailable. (#9)

  • Documentation improvements. (#17, #18, thanks @RalfJung)

atomic-maybe-uninit - 0.2.21

Published by github-actions[bot] about 1 year ago

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

atomic-maybe-uninit - 0.2.20

Published by github-actions[bot] about 1 year ago

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

atomic-maybe-uninit - 0.2.19

Published by github-actions[bot] about 1 year ago

  • Support LoongArch64.

  • Fix build error on MIPS32r6 and MIPS64r6 (both tier 3) since nightly-2023-07-19's target_arch change.

  • Fix build error on big endian ARMv8 AArch32 (tier 3).

  • Acknowledge all x86_64 Apple targets support 128-bit atomics.

    Our code already recognizes this via cfg(target_feature), so this only affects users using pre-1.69 stable rustc.

    See also rust-lang/rust#112150.

  • Optimize inline assemblies.

atomic-maybe-uninit - 0.2.18

Published by github-actions[bot] over 1 year ago

  • Fix build error on aarch64 ILP32 ABI targets (tier 3).

  • Optimize inline assemblies on PowerPC and s390x.

atomic-maybe-uninit - 0.2.17

Published by github-actions[bot] over 1 year ago

  • Fix bug in s390x atomic RMWs on old nightly.

  • Optimize inline assemblies on RISC-V, PowerPC, s390x, and MSP430.

atomic-maybe-uninit - 0.2.16

Published by github-actions[bot] over 1 year ago

  • Support 64-bit atomics on ARMv7-R and ARMv8-R.

  • Fix bug in AArch64 16-bit compare_exchange_weak.

  • Fix bug in AArch64 128-bit SeqCst load when FEAT_LSE2 is enabled at compile-time.

  • Optimize AArch64 atomic load when the rcpc target feature is enabled at compile-time.

  • Optimize PowerPC/PowerPC64 atomic RMWs.

atomic-maybe-uninit - 0.2.15

Published by github-actions[bot] almost 2 years ago

  • Improve support for ARMv8 AArch32.

  • Optimize inline assemblies on x86.

  • Documentation improvements.

atomic-maybe-uninit - 0.2.14

Published by github-actions[bot] about 2 years ago

  • Support pre-power8 powerpc64le. powerpc64le's default cpu version is power8, but you can technically compile it for the old cpu using the unsafe -C target-cpu rustc flag.
atomic-maybe-uninit - 0.2.13

Published by github-actions[bot] about 2 years ago

  • Support MSP430 atomic load/store.

  • Use track_caller when debug assertions are enabled.

atomic-maybe-uninit - 0.2.12

Published by github-actions[bot] about 2 years ago

  • Optimize aarch64 128-bit atomic load when the lse target feature is enabled at compile-time.
atomic-maybe-uninit - 0.2.11

Published by github-actions[bot] about 2 years ago

  • Optimize inline assemblies on x86, x86_64, ARM, AArch64, and RISC-V.
atomic-maybe-uninit - 0.2.10

Published by github-actions[bot] over 2 years ago

  • Support ARMv6.
atomic-maybe-uninit - 0.2.9

Published by github-actions[bot] over 2 years ago

  • Add compare_exchange, compare_exchange_weak, and fetch_update. (#7)

  • Support x86_64 128-bit atomics when the cmpxchg16b target feature is enabled at compile-time.

  • Support x86 64-bit atomics.

atomic-maybe-uninit - 0.2.8

Published by github-actions[bot] over 2 years ago

  • Fix bug in powerpc64 128-bit atomics.

  • Documentation improvements.

atomic-maybe-uninit - 0.2.7

Published by github-actions[bot] over 2 years ago

  • Fix bug in powerpc64 SeqCst atomic load.
atomic-maybe-uninit - 0.2.6

Published by github-actions[bot] over 2 years ago

  • Support PowerPC.

  • Support s390x.

  • Implement RISC-V 8-bit and 16-bit swap.

  • Implement MIPS32r2 8-bit and 16-bit swap.

  • Implement MIPS64r2 8-bit and 16-bit swap.

Package Rankings
Top 33.19% on Crates.io
Badges
Extracted from project README
crates.io docs.rs license msrv github actions cirrus ci