1<a name="v0.1.7"></a>
2### v0.1.7 (2023-10-04)
3
4
5#### Bug Fixes
6
7*   index out of bounds in `get()` and `get_owned()` (#88) ([fdbc930f](https://github.com/hawkw/sharded-slab/commit/fdbc930fb14b0f6f8b77cd6efdad5a1bdf8d3c04))
8* **unique_iter:**  prevent panics if a slab is empty (#88) ([bd599e0b](https://github.com/hawkw/sharded-slab/commit/bd599e0b2a60a953f25f27ba1fa86682150e05c2), closes [#73](https://github.com/hawkw/sharded-slab/issues/73))
9
10
11
12<a name="0.1.6"></a>
13## 0.1.6 (2023-09-27)
14
15
16#### Features
17
18*   publicly export `UniqueIter` (#87) ([e4d6482d](https://github.com/hawkw/sharded-slab/commit/e4d6482db05d5767b47eae1b0217faad30f2ebd5), closes [#77](https://github.com/hawkw/sharded-slab/issues/77))
19
20#### Bug Fixes
21
22*   use a smaller `CustomConfig` for 32-bit tests (#84) ([828ffff9](https://github.com/hawkw/sharded-slab/commit/828ffff9f82cfc41ed66b4743563c4dddc97c1ce), closes [#82](https://github.com/hawkw/sharded-slab/issues/82))
23
24
25
26<a name="0.1.5"></a>
27## 0.1.5 (2023-08-28)
28
29
30#### Bug Fixes
31
32* **Slab:**  invalid generation in case of custom config (#80) ([ca090279](https://github.com/hawkw/sharded-slab/commit/ca09027944812d024676029a3dde62d27ef22015))
33
34
35
36<a name="0.1.4"></a>
37### 0.1.4 (2021-10-12)
38
39
40#### Features
41
42*   emit a nicer panic when thread count overflows `MAX_SHARDS` (#64) ([f1ed058a](https://github.com/hawkw/sharded-slab/commit/f1ed058a3ee296eff033fc0fb88f62a8b2f83f10))
43
44
45
46<a name="0.1.3"></a>
47### 0.1.3 (2021-08-02)
48
49
50#### Bug Fixes
51
52*   set up MSRV in CI (#61) ([dfcc9080](https://github.com/hawkw/sharded-slab/commit/dfcc9080a62d08e359f298a9ffb0f275928b83e4), closes [#60](https://github.com/hawkw/sharded-slab/issues/60))
53* **tests:**  duplicate `hint` mod defs with loom ([0ce3fd91](https://github.com/hawkw/sharded-slab/commit/0ce3fd91feac8b4edb4f1ece6aebfc4ba4e50026))
54
55
56
57<a name="0.1.2"></a>
58### 0.1.2 (2021-08-01)
59
60
61#### Bug Fixes
62
63*   make debug assertions drop safe ([26d35a69](https://github.com/hawkw/sharded-slab/commit/26d35a695c9e5d7c62ab07cc5e66a0c6f8b6eade))
64
65#### Features
66
67*   improve panics on thread ID bit exhaustion ([9ecb8e61](https://github.com/hawkw/sharded-slab/commit/9ecb8e614f107f68b5c6ba770342ae72af1cd07b))
68
69
70
71<a name="0.1.1"></a>
72## 0.1.1 (2021-1-4)
73
74
75#### Bug Fixes
76
77* change `loom` to an optional dependency ([9bd442b5](https://github.com/hawkw/sharded-slab/commit/9bd442b57bc56153a67d7325144ebcf303e0fe98))
78
79<a name="0.1.0"></a>
80## 0.1.0 (2020-10-20)
81
82
83#### Bug Fixes
84
85*   fix `remove` and `clear` returning true when the key is stale ([b52d38b2](https://github.com/hawkw/sharded-slab/commit/b52d38b2d2d3edc3a59d3dba6b75095bbd864266))
86
87#### Breaking Changes
88
89* **Pool:**  change `Pool::create` to return a mutable guard (#48) ([778065ea](https://github.com/hawkw/sharded-slab/commit/778065ead83523e0a9d951fbd19bb37fda3cc280), closes [#41](https://github.com/hawkw/sharded-slab/issues/41), [#16](https://github.com/hawkw/sharded-slab/issues/16))
90* **Slab:**  rename `Guard` to `Entry` for consistency ([425ad398](https://github.com/hawkw/sharded-slab/commit/425ad39805ee818dc6b332286006bc92c8beab38))
91
92#### Features
93
94*   add missing `Debug` impls ([71a8883f](https://github.com/hawkw/sharded-slab/commit/71a8883ff4fd861b95e81840cb5dca167657fe36))
95* **Pool:**
96  *  add `Pool::create_owned` and `OwnedRefMut` ([f7774ae0](https://github.com/hawkw/sharded-slab/commit/f7774ae0c5be99340f1e7941bde62f7044f4b4d8))
97  *  add `Arc<Pool>::get_owned` and `OwnedRef` ([3e566d91](https://github.com/hawkw/sharded-slab/commit/3e566d91e1bc8cc4630a8635ad24b321ec047fe7), closes [#29](https://github.com/hawkw/sharded-slab/issues/29))
98  *  change `Pool::create` to return a mutable guard (#48) ([778065ea](https://github.com/hawkw/sharded-slab/commit/778065ead83523e0a9d951fbd19bb37fda3cc280), closes [#41](https://github.com/hawkw/sharded-slab/issues/41), [#16](https://github.com/hawkw/sharded-slab/issues/16))
99* **Slab:**
100  *  add `Arc<Slab>::get_owned` and `OwnedEntry` ([53a970a2](https://github.com/hawkw/sharded-slab/commit/53a970a2298c30c1afd9578268c79ccd44afba05), closes [#29](https://github.com/hawkw/sharded-slab/issues/29))
101  *  rename `Guard` to `Entry` for consistency ([425ad398](https://github.com/hawkw/sharded-slab/commit/425ad39805ee818dc6b332286006bc92c8beab38))
102  *  add `slab`-style `VacantEntry` API ([6776590a](https://github.com/hawkw/sharded-slab/commit/6776590adeda7bf4a117fb233fc09cfa64d77ced), closes [#16](https://github.com/hawkw/sharded-slab/issues/16))
103
104#### Performance
105
106*   allocate shard metadata lazily (#45) ([e543a06d](https://github.com/hawkw/sharded-slab/commit/e543a06d7474b3ff92df2cdb4a4571032135ff8d))
107
108
109
110<a name="0.0.9"></a>
111### 0.0.9 (2020-04-03)
112
113
114#### Features
115
116* **Config:**  validate concurrent refs ([9b32af58](9b32af58), closes [#21](21))
117* **Pool:**
118  *  add `fmt::Debug` impl for `Pool` ([ffa5c7a0](ffa5c7a0))
119  *  add `Default` impl for `Pool` ([d2399365](d2399365))
120  *  add a sharded object pool for reusing heap allocations (#19) ([89734508](89734508), closes [#2](2), [#15](15))
121* **Slab::take:**  add exponential backoff when spinning ([6b743a27](6b743a27))
122
123#### Bug Fixes
124
125*   incorrect wrapping when overflowing maximum ref count ([aea693f3](aea693f3), closes [#22](22))
126
127
128
129<a name="0.0.8"></a>
130### 0.0.8 (2020-01-31)
131
132
133#### Bug Fixes
134
135*   `remove` not adding slots to free lists ([dfdd7aee](dfdd7aee))
136
137
138
139<a name="0.0.7"></a>
140### 0.0.7 (2019-12-06)
141
142
143#### Bug Fixes
144
145* **Config:**  compensate for 0 being a valid TID ([b601f5d9](b601f5d9))
146* **DefaultConfig:**
147  *  const overflow on 32-bit ([74d42dd1](74d42dd1), closes [#10](10))
148  *  wasted bit patterns on 64-bit ([8cf33f66](8cf33f66))
149
150
151
152<a name="0.0.6"></a>
153## 0.0.6 (2019-11-08)
154
155
156#### Features
157
158* **Guard:**  expose `key` method #8 ([748bf39b](748bf39b))
159
160
161
162<a name="0.0.5"></a>
163## 0.0.5 (2019-10-31)
164
165
166#### Performance
167
168*   consolidate per-slot state into one AtomicUsize (#6) ([f1146d33](f1146d33))
169
170#### Features
171
172*   add Default impl for Slab ([61bb3316](61bb3316))
173
174
175
176<a name="0.0.4"></a>
177## 0.0.4 (2019-21-30)
178
179
180#### Features
181
182*   prevent items from being removed while concurrently accessed ([872c81d1](872c81d1))
183*   added `Slab::remove` method that marks an item to be removed when the last thread
184    accessing it finishes ([872c81d1](872c81d1))
185
186#### Bug Fixes
187
188*   nicer handling of races in remove ([475d9a06](475d9a06))
189
190#### Breaking Changes
191
192*   renamed `Slab::remove` to `Slab::take` ([872c81d1](872c81d1))
193*   `Slab::get` now returns a `Guard` type ([872c81d1](872c81d1))
194
195
196<a name="0.0.3"></a>
197## 0.0.3 (2019-07-30)
198
199
200#### Bug Fixes
201
202*   split local/remote to fix false sharing & potential races ([69f95fb0](69f95fb0))
203*   set next pointer _before_ head ([cc7a0bf1](cc7a0bf1))
204
205#### Breaking Changes
206
207*   removed potentially racy `Slab::len` and `Slab::capacity` methods ([27af7d6c](27af7d6c))
208
209<a name="0.0.2"></a>
210## 0.0.2 (2019-03-30)
211
212
213#### Bug Fixes
214
215*   fix compilation failure in release mode ([617031da](617031da))
216
217
218<a name="0.0.1"></a>
219## 0.0.1 (2019-02-30)
220
221- Initial release
222