1# Version 0.8.3
2
3- Make `loom` dependency optional. (#666)
4
5# Version 0.8.2
6
7- Deprecate `AtomicCell::compare_and_swap`. Use `AtomicCell::compare_exchange` instead. (#619)
8- Add `Parker::park_deadline`. (#563)
9- Improve implementation of `CachePadded`. (#636)
10- Add unstable support for `loom`. (#487)
11
12# Version 0.8.1
13
14- Make `AtomicCell::is_lock_free` always const fn. (#600)
15- Fix a bug in `seq_lock_wide`. (#596)
16- Remove `const_fn` dependency. (#600)
17- `crossbeam-utils` no longer fails to compile if unable to determine rustc version. Instead, it now displays a warning. (#604)
18
19# Version 0.8.0
20
21- Bump the minimum supported Rust version to 1.36.
22- Remove deprecated `AtomicCell::get_mut()` and `Backoff::is_complete()` methods.
23- Remove `alloc` feature.
24- Make `CachePadded::new()` const function.
25- Make `AtomicCell::is_lock_free()` const function at 1.46+.
26- Implement `From<T>` for `AtomicCell<T>`.
27
28# Version 0.7.2
29
30- Fix bug in release (yanking 0.7.1)
31
32# Version 0.7.1
33
34- Bump `autocfg` dependency to version 1.0. (#460)
35- Make `AtomicCell` lockfree for u8, u16, u32, u64 sized values at 1.34+. (#454)
36
37# Version 0.7.0
38
39- Bump the minimum required version to 1.28.
40- Fix breakage with nightly feature due to rust-lang/rust#65214.
41- Apply `#[repr(transparent)]` to `AtomicCell`.
42- Make `AtomicCell::new()` const function at 1.31+.
43
44# Version 0.6.6
45
46- Add `UnwindSafe` and `RefUnwindSafe` impls for `AtomicCell`.
47- Add `AtomicCell::as_ptr()`.
48- Add `AtomicCell::take()`.
49- Fix a bug in `AtomicCell::compare_exchange()` and `AtomicCell::compare_and_swap()`.
50- Various documentation improvements.
51
52# Version 0.6.5
53
54- Rename `Backoff::is_complete()` to `Backoff::is_completed()`.
55
56# Version 0.6.4
57
58- Add `WaitGroup`, `ShardedLock`, and `Backoff`.
59- Add `fetch_*` methods for `AtomicCell<i128>` and `AtomicCell<u128>`.
60- Expand documentation.
61
62# Version 0.6.3
63
64- Add `AtomicCell`.
65- Improve documentation.
66
67# Version 0.6.2
68
69- Add `Parker`.
70- Improve documentation.
71
72# Version 0.6.1
73
74- Fix a soundness bug in `Scope::spawn()`.
75- Remove the `T: 'scope` bound on `ScopedJoinHandle`.
76
77# Version 0.6.0
78
79- Move `AtomicConsume` to `atomic` module.
80- `scope()` returns a `Result` of thread joins.
81- Remove `spawn_unchecked`.
82- Fix a soundness bug due to incorrect lifetimes.
83- Improve documentation.
84- Support nested scoped spawns.
85- Implement `Copy`, `Hash`, `PartialEq`, and `Eq` for `CachePadded`.
86- Add `CachePadded::into_inner()`.
87
88# Version 0.5.0
89
90- Reorganize sub-modules and rename functions.
91
92# Version 0.4.1
93
94- Fix a documentation link.
95
96# Version 0.4.0
97
98- `CachePadded` supports types bigger than 64 bytes.
99- Fix a bug in scoped threads where unitialized memory was being dropped.
100- Minimum required Rust version is now 1.25.
101
102# Version 0.3.2
103
104- Mark `load_consume` with `#[inline]`.
105
106# Version 0.3.1
107
108- `load_consume` on ARM and AArch64.
109
110# Version 0.3.0
111
112- Add `join` for scoped thread API.
113- Add `load_consume` for atomic load-consume memory ordering.
114- Remove `AtomicOption`.
115
116# Version 0.2.2
117
118- Support Rust 1.12.1.
119- Call `T::clone` when cloning a `CachePadded<T>`.
120
121# Version 0.2.1
122
123- Add `use_std` feature.
124
125# Version 0.2.0
126
127- Add `nightly` feature.
128- Use `repr(align(64))` on `CachePadded` with the `nightly` feature.
129- Implement `Drop` for `CachePadded<T>`.
130- Implement `Clone` for `CachePadded<T>`.
131- Implement `From<T>` for `CachePadded<T>`.
132- Implement better `Debug` for `CachePadded<T>`.
133- Write more tests.
134- Add this changelog.
135- Change cache line length to 64 bytes.
136- Remove `ZerosValid`.
137
138# Version 0.1.0
139
140- Old implementation of `CachePadded` from `crossbeam` version 0.3.0
141