aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG.md
blob: 8c158f61a58529755dba2caa256ac4728a54ab0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# Version 0.9.7

- Fix Miri error when `-Zmiri-check-number-validity` is enabled. (#779)

# Version 0.9.6

- Add `Atomic::fetch_update`. (#706)

# Version 0.9.5

- Fix UB in `Pointable` impl of `[MaybeUninit<T>]`. (#694)
- Support targets that do not have atomic CAS on stable Rust. (#698)
- Fix breakage with nightly feature due to rust-lang/rust#84510. (#692)

# Version 0.9.4

- Fix UB in `<[MaybeUninit<T>] as Pointable>::init` when global allocator failed allocation. (#690)
- Bump `loom` dependency to version 0.5. (#686)

# Version 0.9.3

- Make `loom` dependency optional. (#666)

# Version 0.9.2

- Add `Atomic::compare_exchange` and `Atomic::compare_exchange_weak`. (#628)
- Deprecate `Atomic::compare_and_set` and `Atomic::compare_and_set_weak`. Use `Atomic::compare_exchange` or `Atomic::compare_exchange_weak` instead. (#628)
- Make `const_fn` dependency optional. (#611)
- Add unstable support for `loom`. (#487)

# Version 0.9.1

- Bump `memoffset` dependency to version 0.6. (#592)

# Version 0.9.0

- Bump the minimum supported Rust version to 1.36.
- Support dynamically sized types.

# Version 0.8.2

- Fix bug in release (yanking 0.8.1)

# Version 0.8.1

- Bump `autocfg` dependency to version 1.0. (#460)
- Reduce stall in list iteration. (#376)
- Stop stealing from the same deque. (#448)
- Fix unsoundness issues by adopting `MaybeUninit`. (#458)
- Fix use-after-free in lock-free queue. (#466)

# Version 0.8.0

- Bump the minimum required version to 1.28.
- Fix breakage with nightly feature due to rust-lang/rust#65214.
- Make `Atomic::null()` const function at 1.31+.
- Bump `crossbeam-utils` to `0.7`.

# Version 0.7.2

- Add `Atomic::into_owned()`.
- Update `memoffset` dependency.

# Version 0.7.1

- Add `Shared::deref_mut()`.
- Add a Treiber stack to examples.

# Version 0.7.0

- Remove `Guard::clone()`.
- Bump dependencies.

# Version 0.6.1

- Update `crossbeam-utils` to `0.6`.

# Version 0.6.0

- `defer` now requires `F: Send + 'static`.
- Bump the minimum Rust version to 1.26.
- Pinning while TLS is tearing down does not fail anymore.
- Rename `Handle` to `LocalHandle`.
- Add `defer_unchecked` and `defer_destroy`.
- Remove `Clone` impl for `LocalHandle`.

# Version 0.5.2

- Update `crossbeam-utils` to `0.5`.

# Version 0.5.1

- Fix compatibility with the latest Rust nightly.

# Version 0.5.0

- Update `crossbeam-utils` to `0.4`.
- Specify the minimum Rust version to `1.25.0`.

# Version 0.4.3

- Downgrade `crossbeam-utils` to `0.3` because it was a breaking change.

# Version 0.4.2

- Expose the `Pointer` trait.
- Warn missing docs and missing debug impls.
- Update `crossbeam-utils` to `0.4`.

# Version 0.4.1

- Add `Debug` impls for `Collector`, `Handle`, and `Guard`.
- Add `load_consume` to `Atomic`.
- Rename `Collector::handle` to `Collector::register`.
- Remove the `Send` implementation for `Handle` (this was a bug). Only
  `Collector`s can be shared among multiple threads, while `Handle`s and
  `Guard`s must stay within the thread in which they were created.

# Version 0.4.0

- Update dependencies.
- Remove support for Rust 1.13.

# Version 0.3.0

- Add support for Rust 1.13.
- Improve documentation for CAS.

# Version 0.2.0

- Add method `Owned::into_box`.
- Fix a use-after-free bug in `Local::finalize`.
- Fix an ordering bug in `Global::push_bag`.
- Fix a bug in calculating distance between epochs.
- Remove `impl<T> Into<Box<T>> for Owned<T>`.

# Version 0.1.0

- First version of the new epoch-based GC.