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