# Version 0.8.5

- Add `AtomicCell::fetch_update` (#704)
- Support targets that do not have atomic CAS on stable Rust (#698)

# Version 0.8.4

- Bump `loom` dependency to version 0.5. (#686)

# Version 0.8.3

- Make `loom` dependency optional. (#666)

# Version 0.8.2

- Deprecate `AtomicCell::compare_and_swap`. Use `AtomicCell::compare_exchange` instead. (#619)
- Add `Parker::park_deadline`. (#563)
- Improve implementation of `CachePadded`. (#636)
- Add unstable support for `loom`. (#487)

# Version 0.8.1

- Make `AtomicCell::is_lock_free` always const fn. (#600)
- Fix a bug in `seq_lock_wide`. (#596)
- Remove `const_fn` dependency. (#600)
- `crossbeam-utils` no longer fails to compile if unable to determine rustc version. Instead, it now displays a warning. (#604)

# Version 0.8.0

- Bump the minimum supported Rust version to 1.36.
- Remove deprecated `AtomicCell::get_mut()` and `Backoff::is_complete()` methods.
- Remove `alloc` feature.
- Make `CachePadded::new()` const function.
- Make `AtomicCell::is_lock_free()` const function at 1.46+.
- Implement `From<T>` for `AtomicCell<T>`.

# Version 0.7.2

- Fix bug in release (yanking 0.7.1)

# Version 0.7.1

- Bump `autocfg` dependency to version 1.0. (#460)
- Make `AtomicCell` lockfree for u8, u16, u32, u64 sized values at 1.34+. (#454)

# Version 0.7.0

- Bump the minimum required version to 1.28.
- Fix breakage with nightly feature due to rust-lang/rust#65214.
- Apply `#[repr(transparent)]` to `AtomicCell`.
- Make `AtomicCell::new()` const function at 1.31+.

# Version 0.6.6

- Add `UnwindSafe` and `RefUnwindSafe` impls for `AtomicCell`.
- Add `AtomicCell::as_ptr()`.
- Add `AtomicCell::take()`.
- Fix a bug in `AtomicCell::compare_exchange()` and `AtomicCell::compare_and_swap()`.
- Various documentation improvements.

# Version 0.6.5

- Rename `Backoff::is_complete()` to `Backoff::is_completed()`.

# Version 0.6.4

- Add `WaitGroup`, `ShardedLock`, and `Backoff`.
- Add `fetch_*` methods for `AtomicCell<i128>` and `AtomicCell<u128>`.
- Expand documentation.

# Version 0.6.3

- Add `AtomicCell`.
- Improve documentation.

# Version 0.6.2

- Add `Parker`.
- Improve documentation.

# Version 0.6.1

- Fix a soundness bug in `Scope::spawn()`.
- Remove the `T: 'scope` bound on `ScopedJoinHandle`.

# Version 0.6.0

- Move `AtomicConsume` to `atomic` module.
- `scope()` returns a `Result` of thread joins.
- Remove `spawn_unchecked`.
- Fix a soundness bug due to incorrect lifetimes.
- Improve documentation.
- Support nested scoped spawns.
- Implement `Copy`, `Hash`, `PartialEq`, and `Eq` for `CachePadded`.
- Add `CachePadded::into_inner()`.

# Version 0.5.0

- Reorganize sub-modules and rename functions.

# Version 0.4.1

- Fix a documentation link.

# Version 0.4.0

- `CachePadded` supports types bigger than 64 bytes.
- Fix a bug in scoped threads where unitialized memory was being dropped.
- Minimum required Rust version is now 1.25.

# Version 0.3.2

- Mark `load_consume` with `#[inline]`.

# Version 0.3.1

- `load_consume` on ARM and AArch64.

# Version 0.3.0

- Add `join` for scoped thread API.
- Add `load_consume` for atomic load-consume memory ordering.
- Remove `AtomicOption`.

# Version 0.2.2

- Support Rust 1.12.1.
- Call `T::clone` when cloning a `CachePadded<T>`.

# Version 0.2.1

- Add `use_std` feature.

# Version 0.2.0

- Add `nightly` feature.
- Use `repr(align(64))` on `CachePadded` with the `nightly` feature.
- Implement `Drop` for `CachePadded<T>`.
- Implement `Clone` for `CachePadded<T>`.
- Implement `From<T>` for `CachePadded<T>`.
- Implement better `Debug` for `CachePadded<T>`.
- Write more tests.
- Add this changelog.
- Change cache line length to 64 bytes.
- Remove `ZerosValid`.

# Version 0.1.0

- Old implementation of `CachePadded` from `crossbeam` version 0.3.0
