1# Version 0.5.13 2 3- Add `select_biased!` macro. (#1040) 4 5# Version 0.5.12 6 7- Fix memory leak in unbounded channel. (#1084) 8 9# Version 0.5.11 10 11- Remove dependency on `cfg-if`. (#1072) 12 13# Version 0.5.10 14 15- Relax the minimum supported Rust version to 1.60. (#1056) 16- Optimize `Drop` implementation of bounded channel. (#1057) 17 18# Version 0.5.9 19 20- Bump the minimum supported Rust version to 1.61. (#1037) 21 22# Version 0.5.8 23 24- Fix race condition in unbounded channel. (#972) 25 26# Version 0.5.7 27 28**Note:** This release has been yanked due to bug fixed in 0.5.8. 29 30- Improve handling of very large timeout. (#953) 31 32# Version 0.5.6 33 34**Note:** This release has been yanked due to bug fixed in 0.5.8. 35 36- Bump the minimum supported Rust version to 1.38. (#877) 37 38# Version 0.5.5 39 40**Note:** This release has been yanked due to bug fixed in 0.5.8. 41 42- Replace Spinlock with Mutex. (#835) 43 44# Version 0.5.4 45 46**Note:** This release has been yanked due to bug fixed in 0.5.8. 47 48- Workaround a bug in upstream related to TLS access on AArch64 Linux. (#802) 49 50# Version 0.5.3 51 52**Note:** This release has been yanked. See [#802](https://github.com/crossbeam-rs/crossbeam/issues/802) for details. 53 54- Fix panic on very large timeout. (#798) 55 56# Version 0.5.2 57 58**Note:** This release has been yanked. See [#802](https://github.com/crossbeam-rs/crossbeam/issues/802) for details. 59 60- Fix stacked borrows violations when `-Zmiri-tag-raw-pointers` is enabled. (#763, #764) 61 62# Version 0.5.1 63 64**Note:** This release has been yanked due to bug fixed in 0.5.8. 65 66- Fix memory leak in unbounded channel. (#669) 67 68# Version 0.5.0 69 70- Bump the minimum supported Rust version to 1.36. 71- Add `at()` function. 72- Add `Sender::send_deadline()` and `Receiver::recv_deadline()` methods. 73- Add `Select::select_deadline()` and `Select::ready_deadline()` methods. 74- Add `std` (enabled by default) feature for forward compatibility. 75- Allow `select!` macro compile with `forbid(unsafe_code)`. 76 77# Version 0.4.4 78 79- Fix bug in release (yanking 0.4.3) 80- Fix UB and breaking change introduced in 0.4.3 81 82# Version 0.4.3 83 84**Note:** This release has been yanked. See [GHSA-v5m7-53cv-f3hx](https://github.com/crossbeam-rs/crossbeam/security/advisories/GHSA-v5m7-53cv-f3hx) for details. 85 86- Change license to "MIT OR Apache-2.0". 87 88# Version 0.4.2 89 90- Fix bug in release (yanking 0.4.1) 91 92# Version 0.4.1 93 94- Avoid time drift in `channel::tick`. (#456) 95- Fix unsoundness issues by adopting `MaybeUninit`. (#458) 96 97# Version 0.4.0 98 99- Bump the minimum required version to 1.28. 100- Bump `crossbeam-utils` to `0.7`. 101 102# Version 0.3.9 103 104- Fix a bug in reference counting. 105- Optimize `recv_timeout()`. 106- Add `Select::remove()`. 107- Various small improvements, code cleanup, more tests. 108 109# Version 0.3.8 110 111- Bump the minimum required version of `crossbeam-utils`. 112 113# Version 0.3.7 114 115- Remove `parking_lot` and `rand` dependencies. 116- Expand documentation. 117- Implement `Default` for `Select`. 118- Make `size_of::<Receiver<T>>()` smaller. 119- Several minor optimizations. 120- Add more tests. 121 122# Version 0.3.6 123 124- Fix a bug in initialization of unbounded channels. 125 126# Version 0.3.5 127 128- New implementation for unbounded channels. 129- A number of small performance improvements. 130- Remove `crossbeam-epoch` dependency. 131 132# Version 0.3.4 133 134- Bump `crossbeam-epoch` to `0.7`. 135- Improve documentation. 136 137# Version 0.3.3 138 139- Relax the lifetime in `SelectedOperation<'_>`. 140- Add `Select::try_ready()`, `Select::ready()`, and `Select::ready_timeout()`. 141- Update licensing notices. 142- Improve documentation. 143- Add methods `is_disconnected()`, `is_timeout()`, `is_empty()`, and `is_full()` on error types. 144 145# Version 0.3.2 146 147- More elaborate licensing notices. 148 149# Version 0.3.1 150 151- Update `crossbeam-utils` to `0.6`. 152 153# Version 0.3.0 154 155- Add a special `never` channel type. 156- Dropping all receivers now closes the channel. 157- The interface of sending and receiving methods is now very similar to those in v0.1. 158- The syntax for `send` in `select!` is now `send(sender, msg) -> res => body`. 159- The syntax for `recv` in `select!` is now `recv(receiver) -> res => body`. 160- New, more efficient interface for `Select` without callbacks. 161- Timeouts can be specified in `select!`. 162 163# Version 0.2.6 164 165- `Select` struct that can add cases dynamically. 166- More documentation (in particular, the FAQ section). 167- Optimize contended sends/receives in unbounded channels. 168 169# Version 0.2.5 170 171- Use `LocalKey::try_with` instead of `LocalKey::with`. 172- Remove helper macros `__crossbeam_channel*`. 173 174# Version 0.2.4 175 176- Make `select!` linearizable with other channel operations. 177- Update `crossbeam-utils` to `0.5.0`. 178- Update `parking_lot` to `0.6.3`. 179- Remove Mac OS X tests. 180 181# Version 0.2.3 182 183- Add Mac OS X tests. 184- Lower some memory orderings. 185- Eliminate calls to `mem::unitialized`, which caused bugs with ZST. 186 187# Version 0.2.2 188 189- Add more tests. 190- Update `crossbeam-epoch` to 0.5.0 191- Initialize the RNG seed to a random value. 192- Replace `libc::abort` with `std::process::abort`. 193- Ignore clippy warnings in `select!`. 194- Better interaction of `select!` with the NLL borrow checker. 195 196# Version 0.2.1 197 198- Fix compilation errors when using `select!` with `#[deny(unsafe_code)]`. 199 200# Version 0.2.0 201 202- Implement `IntoIterator<Item = T>` for `Receiver<T>`. 203- Add a new `select!` macro. 204- Add special channels `after` and `tick`. 205- Dropping receivers doesn't close the channel anymore. 206- Change the signature of `recv`, `send`, and `try_recv`. 207- Remove `Sender::is_closed` and `Receiver::is_closed`. 208- Remove `Sender::close` and `Receiver::close`. 209- Remove `Sender::send_timeout` and `Receiver::recv_timeout`. 210- Remove `Sender::try_send`. 211- Remove `Select` and `select_loop!`. 212- Remove all error types. 213- Remove `Iter`, `TryIter`, and `IntoIter`. 214- Remove the `nightly` feature. 215- Remove ordering operators for `Sender` and `Receiver`. 216 217# Version 0.1.3 218 219- Add `Sender::disconnect` and `Receiver::disconnect`. 220- Implement comparison operators for `Sender` and `Receiver`. 221- Allow arbitrary patterns in place of `msg` in `recv(r, msg)`. 222- Add a few conversion impls between error types. 223- Add benchmarks for `atomicring` and `mpmc`. 224- Add benchmarks for different message sizes. 225- Documentation improvements. 226- Update `crossbeam-epoch` to 0.4.0 227- Update `crossbeam-utils` to 0.3.0 228- Update `parking_lot` to 0.5 229- Update `rand` to 0.4 230 231# Version 0.1.2 232 233- Allow conditional cases in `select_loop!` macro. 234- Fix typos in documentation. 235- Fix deadlock in selection when all channels are disconnected and a timeout is specified. 236 237# Version 0.1.1 238 239- Implement `Debug` for `Sender`, `Receiver`, `Iter`, `TryIter`, `IntoIter`, and `Select`. 240- Implement `Default` for `Select`. 241 242# Version 0.1.0 243 244- First implementation of the channels. 245- Add `select_loop!` macro by @TimNN. 246