blob: 11b7f4e5aa1bc796010b5e875b4d65e0d407fd24 (
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
|
# Change Log
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
## [Unreleased]
## [0.9.3] - 2023-12-19
### Fixed
- Build on Android.
## [0.9.2] - 2023-12-17
### Fixed
- Build on FreeBSD.
## [0.9.1] - 2023-12-16
### Changed
- Added `MmapOptions::huge` method to support mapping hugetlb. Linux only.
[@ollie-etl](https://github.com/ollie-etl)
[@oliverbunting](https://github.com/oliverbunting)
## [0.9.0] - 2023-10-03
### Changed
- The `Advice` struct was split into two enums: `Advice` and `UncheckedAdvice`.<br>
`Advice` can be passed to safe `advise` and `advise_range` methods.
And `UncheckedAdvice` can be passed to unsafe `unchecked_advise`
and `unchecked_advise_range` methods.<br>
[@adamreichold](https://github.com/adamreichold)
## [0.8.0] - 2023-09-25
### Changed
- The `Advice` type is a struct and not an enum now.
[@adamreichold](https://github.com/adamreichold)
### Fixed
- Some of the `Advise` variants were unsound and now require `unsafe` to be constructed.
[@adamreichold](https://github.com/adamreichold)
## [0.7.1] - 2023-06-24
### Fixed
- Mapping beyond 4GB offset on 32 bit glibc. Linux-only.
[@lvella](https://github.com/lvella)
## [0.7.0] - 2023-06-08
### Added
- `Mmap::remap`, `MmapMut::remap` and `MmapRaw::remap`. Linux-only.
[@Phantomical](https://github.com/Phantomical)
- `Advice::PopulateRead` and `Advice::PopulateWrite`. Linux-only.
[@Jesse-Bakker](https://github.com/Jesse-Bakker)
### Changed
- libc crate >= 0.2.143 is required now.
## [0.6.2] - 2023-05-24
### Fixed
- Alignment for empty files on Windows.
[@timvisee](https://github.com/timvisee)
## [0.6.1] - 2023-05-10
### Added
- Add `MmapOptions::map_raw_read_only` to avoid intermediate invalid `Mmap` instances.
[@adamreichold](https://github.com/adamreichold)
## [0.6.0] - 2023-05-09
### Changed
- `lock()` and `unlock` methods require `&self` and not `&mut self` now.
[@timvisee](https://github.com/timvisee)
## [0.5.10] - 2023-02-22
### Added
- `MmapOptions::map_anon` accounts for `populate` on Linux now.
[@jsgf](https://github.com/jsgf)
## [0.5.9] - 2023-02-17
### Added
- `From<Mmap> for MmapRaw` and `From<MmapMut> for MmapRaw`.
[@swlynch99](https://github.com/swlynch99)
- `Mmap::advise_range`, `MmapMut::advise_range`, `MmapRaw::advise_range`.
[@ho-229](https://github.com/ho-229)
## [0.5.8] - 2022-11-09
### Added
- `MmapRaw::advise`, `MmapRaw::lock` and `MmapRaw::unlock`.
[@diwic](https://github.com/diwic)
- Improve `MmapMut::make_exec` documentation.
## [0.5.7] - 2022-08-15
### Changed
- Simplify file size retrieving code.
[@saethlin](https://github.com/saethlin)
## [0.5.6] - 2022-08-11
### Added
- Memory locking and unlocking. See `Mmap::lock`, `Mmap::unlock`,
`MmapMut::lock` and `MmapMut::unlock`.
[@vmx](https://github.com/vmx)
## [0.5.5] - 2022-07-09
### Fixed
- Limit mapping length to `isize::MAX` to prevent undefined behavior
on calling `std::slice::from_raw_parts`. Technically affects only 32-bit systems.
[@adamreichold](https://github.com/adamreichold)
## [0.5.4] - 2022-06-04
### Added
- Add madvice operations specific to Darwin. [@turbocool3r](https://github.com/turbocool3r)
- Implement common traits for the `Advice` enum. [@nyurik](https://github.com/nyurik)
### Changed
- Make stub implementation Infallible. [@coolreader18](https://github.com/coolreader18)
- Use `tempfile` crate instead of `tempdir` in tests.
[@alexanderkjall](https://github.com/alexanderkjall)
## [0.5.3] - 2022-02-10
### Added
- `Mmap::advise` and `MmapMut::advise`. [@nyurik](https://github.com/nyurik)
## [0.5.2] - 2022-01-10
### Added
- `flush`, `flush_async`, `flush_range` and `flush_async_range` to `MmapRaw` matching
the corresponding methods on `MmapMut`.
[@cberner](https://github.com/cberner)
## [0.5.1] - 2022-01-09
### Fixed
- Explicitly call `fstat64` on Linux, emscripten and l4re targets.
[@adamreichold](https://github.com/adamreichold)
## [0.5.0] - 2021-09-19
### Added
- `MmapOptions` accepts any type that supports `RawHandle`/`RawFd` returning now.
This allows using `memmap2` not only with Rust std types, but also with
[async-std](https://github.com/async-rs/async-std) one.
[@adamreichold](https://github.com/adamreichold)
- (unix) Memoize page size to avoid repeatedly calling into sysconf machinery.
[@adamreichold](https://github.com/adamreichold)
### Changed
- (win) Use `std::os::windows::io::AsRawHandle` directly, without relying on `std::fs::File`.
[@adamreichold](https://github.com/adamreichold)
- Do not panic when failing to release resources in Drop impls.
[@adamreichold](https://github.com/adamreichold)
## [0.4.0] - 2021-09-16
### Added
- Optional [`StableDeref`](https://github.com/storyyeller/stable_deref_trait) support.
[@SimonSapin](https://github.com/SimonSapin)
### Changed
- Mapping of zero-sized files is no longer an error.
[@SimonSapin](https://github.com/SimonSapin)
- MSRV changed from 1.31 to 1.36
## [0.3.1] - 2021-08-15
### Fixed
- Integer overflow during file length calculation on 32bit targets.
- Stub implementation. [@Mrmaxmeier](https://github.com/Mrmaxmeier)
## [0.3.0] - 2021-06-10
### Changed
- `MmapOptions` allows mapping using Unix descriptors and not only `std::fs::File` now.
[@mripard](https://github.com/mripard)
## [0.2.3] - 2021-05-24
### Added
- Allow compilation on unsupported platforms.
The code will panic on access just like in `std`.
[@jcaesar](https://github.com/jcaesar)
## [0.2.2] - 2021-04-03
### Added
- `MmapOptions::populate`. [@adamreichold](https://github.com/adamreichold)
### Fixed
- Fix alignment computation for `flush_async` to match `flush`.
[@adamreichold](https://github.com/adamreichold)
## [0.2.1] - 2021-02-08
### Added
- `MmapOptions::map_raw` and `MmapRaw`. [@diwic](https://github.com/diwic)
## [0.2.0] - 2020-12-19
### Changed
- MSRV is 1.31 now (edition 2018).
- Make anonymous memory maps private by default on unix. [@CensoredUsername](https://github.com/CensoredUsername)
- Add `map_copy_read_only`. [@zseri](https://github.com/zseri)
## 0.1.0 - 2020-01-18
### Added
- Fork [memmap-rs](https://github.com/danburkert/memmap-rs).
### Changed
- Use `LICENSE-APACHE` instead of `README.md` for some tests since it's immutable.
### Removed
- `winapi` dependency. [memmap-rs/pull/89](https://github.com/danburkert/memmap-rs/pull/89)
[Unreleased]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.9.3...HEAD
[0.9.3]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.9.2...v0.9.3
[0.9.2]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.9.1...v0.9.2
[0.9.1]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.9.0...v0.9.1
[0.9.0]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.8.0...v0.9.0
[0.8.0]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.7.1...v0.8.0
[0.7.1]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.7.0...v0.7.1
[0.7.0]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.6.2...v0.7.0
[0.6.2]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.6.1...v0.6.2
[0.6.1]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.6.0...v0.6.1
[0.6.0]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.5.10...v0.6.0
[0.5.10]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.5.9...v0.5.10
[0.5.9]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.5.8...v0.5.9
[0.5.8]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.5.7...v0.5.8
[0.5.7]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.5.6...v0.5.7
[0.5.6]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.5.5...v0.5.6
[0.5.5]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.5.4...v0.5.5
[0.5.4]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.5.3...v0.5.4
[0.5.3]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.5.2...v0.5.3
[0.5.2]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.5.1...v0.5.2
[0.5.1]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.5.0...v0.5.1
[0.5.0]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.4.0...v0.5.0
[0.4.0]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.3.1...v0.4.0
[0.3.1]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.3.0...v0.3.1
[0.3.0]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.2.3...v0.3.0
[0.2.3]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.2.2...v0.2.3
[0.2.2]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.2.1...v0.2.2
[0.2.1]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.2.0...v0.2.1
[0.2.0]: https://github.com/RazrFalcon/memmap2-rs/compare/v0.1.0...v0.2.0
|