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