1# Version 0.4.4 2 3- Fix bug in release (yanking 0.4.3) 4- Fix UB and breaking change introduced in 0.4.3 5 6# Version 0.4.3 7 8- Change license to "MIT OR Apache-2.0". 9 10# Version 0.4.2 11 12- Fix bug in release (yanking 0.4.1) 13 14# Version 0.4.1 15 16- Avoid time drift in `channel::tick`. (#456) 17- Fix unsoundness issues by adopting `MaybeUninit`. (#458) 18 19# Version 0.4.0 20 21- Bump the minimum required version to 1.28. 22- Bump `crossbeam-utils` to `0.7`. 23 24# Version 0.3.9 25 26- Fix a bug in reference counting. 27- Optimize `recv_timeout()`. 28- Add `Select::remove()`. 29- Various small improvements, code cleanup, more tests. 30 31# Version 0.3.8 32 33- Bump the minimum required version of `crossbeam-utils`. 34 35# Version 0.3.7 36 37- Remove `parking_lot` and `rand` dependencies. 38- Expand documentation. 39- Implement `Default` for `Select`. 40- Make `size_of::<Receiver<T>>()` smaller. 41- Several minor optimizations. 42- Add more tests. 43 44# Version 0.3.6 45 46- Fix a bug in initialization of unbounded channels. 47 48# Version 0.3.5 49 50- New implementation for unbounded channels. 51- A number of small performance improvements. 52- Remove `crossbeam-epoch` dependency. 53 54# Version 0.3.4 55 56- Bump `crossbeam-epoch` to `0.7`. 57- Improve documentation. 58 59# Version 0.3.3 60 61- Relax the lifetime in `SelectedOperation<'_>`. 62- Add `Select::try_ready()`, `Select::ready()`, and `Select::ready_timeout()`. 63- Update licensing notices. 64- Improve documentation. 65- Add methods `is_disconnected()`, `is_timeout()`, `is_empty()`, and `is_full()` on error types. 66 67# Version 0.3.2 68 69- More elaborate licensing notices. 70 71# Version 0.3.1 72 73- Update `crossbeam-utils` to `0.6`. 74 75# Version 0.3.0 76 77- Add a special `never` channel type. 78- Dropping all receivers now closes the channel. 79- The interface of sending and receiving methods is now very similar to those in v0.1. 80- The syntax for `send` in `select!` is now `send(sender, msg) -> res => body`. 81- The syntax for `recv` in `select!` is now `recv(receiver) -> res => body`. 82- New, more efficient interface for `Select` without callbacks. 83- Timeouts can be specified in `select!`. 84 85# Version 0.2.6 86 87- `Select` struct that can add cases dynamically. 88- More documentation (in particular, the FAQ section). 89- Optimize contended sends/receives in unbounded channels. 90 91# Version 0.2.5 92 93- Use `LocalKey::try_with` instead of `LocalKey::with`. 94- Remove helper macros `__crossbeam_channel*`. 95 96# Version 0.2.4 97 98- Make `select!` linearizable with other channel operations. 99- Update `crossbeam-utils` to `0.5.0`. 100- Update `parking_lot` to `0.6.3`. 101- Remove Mac OS X tests. 102 103# Version 0.2.3 104 105- Add Mac OS X tests. 106- Lower some memory orderings. 107- Eliminate calls to `mem::unitialized`, which caused bugs with ZST. 108 109# Version 0.2.2 110 111- Add more tests. 112- Update `crossbeam-epoch` to 0.5.0 113- Initialize the RNG seed to a random value. 114- Replace `libc::abort` with `std::process::abort`. 115- Ignore clippy warnings in `select!`. 116- Better interaction of `select!` with the NLL borrow checker. 117 118# Version 0.2.1 119 120- Fix compilation errors when using `select!` with `#[deny(unsafe_code)]`. 121 122# Version 0.2.0 123 124- Implement `IntoIterator<Item = T>` for `Receiver<T>`. 125- Add a new `select!` macro. 126- Add special channels `after` and `tick`. 127- Dropping receivers doesn't close the channel anymore. 128- Change the signature of `recv`, `send`, and `try_recv`. 129- Remove `Sender::is_closed` and `Receiver::is_closed`. 130- Remove `Sender::close` and `Receiver::close`. 131- Remove `Sender::send_timeout` and `Receiver::recv_timeout`. 132- Remove `Sender::try_send`. 133- Remove `Select` and `select_loop!`. 134- Remove all error types. 135- Remove `Iter`, `TryIter`, and `IntoIter`. 136- Remove the `nightly` feature. 137- Remove ordering operators for `Sender` and `Receiver`. 138 139# Version 0.1.3 140 141- Add `Sender::disconnect` and `Receiver::disconnect`. 142- Implement comparison operators for `Sender` and `Receiver`. 143- Allow arbitrary patterns in place of `msg` in `recv(r, msg)`. 144- Add a few conversion impls between error types. 145- Add benchmarks for `atomicring` and `mpmc`. 146- Add benchmarks for different message sizes. 147- Documentation improvements. 148- Update `crossbeam-epoch` to 0.4.0 149- Update `crossbeam-utils` to 0.3.0 150- Update `parking_lot` to 0.5 151- Update `rand` to 0.4 152 153# Version 0.1.2 154 155- Allow conditional cases in `select_loop!` macro. 156- Fix typos in documentation. 157- Fix deadlock in selection when all channels are disconnected and a timeout is specified. 158 159# Version 0.1.1 160 161- Implement `Debug` for `Sender`, `Receiver`, `Iter`, `TryIter`, `IntoIter`, and `Select`. 162- Implement `Default` for `Select`. 163 164# Version 0.1.0 165 166- First implementation of the channels. 167- Add `select_loop!` macro by @TimNN. 168