aboutsummaryrefslogtreecommitdiff
path: root/vendor/bytemuck/changelog.md
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2024-07-19 15:37:58 +0300
committerValentin Popov <valentin@popov.link>2024-07-19 15:37:58 +0300
commita990de90fe41456a23e58bd087d2f107d321f3a1 (patch)
tree15afc392522a9e85dc3332235e311b7d39352ea9 /vendor/bytemuck/changelog.md
parent3d48cd3f81164bbfc1a755dc1d4a9a02f98c8ddd (diff)
downloadfparkan-a990de90fe41456a23e58bd087d2f107d321f3a1.tar.xz
fparkan-a990de90fe41456a23e58bd087d2f107d321f3a1.zip
Deleted vendor folder
Diffstat (limited to 'vendor/bytemuck/changelog.md')
-rw-r--r--vendor/bytemuck/changelog.md266
1 files changed, 0 insertions, 266 deletions
diff --git a/vendor/bytemuck/changelog.md b/vendor/bytemuck/changelog.md
deleted file mode 100644
index acc15d2..0000000
--- a/vendor/bytemuck/changelog.md
+++ /dev/null
@@ -1,266 +0,0 @@
-# `bytemuck` changelog
-
-## 1.14
-
-* `write_zeroes` and `fill_zeroes` functions: Writes (to one) or fills (a slice)
- zero bytes to all bytes covered by the provided reference. If your type has
- padding, this will even zero out the padding bytes.
-* `align_offset` feature: causes pointer alignment checks to use the
- `align_offset` pointer method rather than as-casting the pointer to `usize`.
- This *may* improve codegen, if the compiler would have otherwise thought that
- the pointer address escaped. No formal benchmarks have been done either way.
-* `must_cast` feature: Adds `must_*` family of functions. These functions will
- fail to compile if the cast requested can't be statically known to succeed.
- The error messages can be kinda bad when this happens, but eliminating the
- possibility of a runtime error might be worth it to you.
-
-## 1.13.1
-
-* Remove the requirement for the *source* data type to be `AnyBitPattern` on
- `pod_collect_to_vec`, allowing you to pod collect vecs of `char` into vecs of
- `u32`, or whatever.
-
-## 1.13
-
-* Now depends on `bytemuck_derive-1.4.0`
-* Various small enhancements that would have been patch version updates, but
- which have been rolled into this minor version update.
-
-## 1.12.4
-
-* This has additional impls for existing traits and cleans up some internal code,
- but there's no new functions so I guess it counts as just a patch release.
-
-## 1.12.3
-
-* This bugfix makes the crate do stuff with `Arc` or not based on the
- `target_has_atomic` config. Previously, some targets that have allocation but
- not atomics were getting errors. This raises the MSRV of the
- `extern_crate_alloc` feature to 1.60, but opt-in features are *not* considered
- to be hard locked to 1.34 like the basic build of the crate is.
-
-## 1.12.2
-
-* Fixes `try_pod_read_unaligned` bug that made it always fail unless the target
- type was exactly pointer sized in which case UB *could* happen. The
- `CheckedBitPattern::is_valid_bit_pattern` was being asked to check that a
- *reference* to the `pod` value was a valid bit pattern, rather than the actual
- bit pattern itself, and so the check could in some cases be illegally
- bypassed.
-
-## 1.12.1
-
-* Patch bumped the required `bytemuck_derive` version because of a regression in
- how it handled `align(N)` attributes.
-
-## 1.12
-
-* This minor version bump is caused by a version bump in our `bytemuck_derive`
- dependency, which is in turn caused by a mixup in the minimum version of `syn`
- that `bytemuck_derive` uses. See [Issue
- 122](https://github.com/Lokathor/bytemuck/issues/122). There's not any
- specific "new" API as you might normally expect from a minor version bump.
-* [pali](https://github.com/pali6) fixed a problem with SPIR-V builds being
- broken. The error handling functions were trying to be generic over `Display`,
- which the error types normally support, except on SPIR-V targets (which run on
- the GPU and don't have text formatting).
-
-## 1.11
-
-* [WaffleLapkin](https://github.com/WaffleLapkin) added `wrap_box` and `peel_box`
- to the `TransparentWrapperAlloc` trait. Default impls of these functions are
- provided, and (as usual with the transparent trait stuff) you should not override
- the default versions.
-
-## 1.10
-
-* [TheEdward162](https://github.com/TheEdward162) added the `ZeroableInOption`
- and `PodInOption` traits. These are for types that are `Zeroable` or `Pod`
- *when in an option*, but not on their own. We provide impls for the various
- "NonZeroINTEGER" types in `core`, and if you need to newtype a NonZero value
- then you can impl these traits when you use `repr(transparent)`.
-
-## 1.9.1
-
-* Bumped the minimum `bytemuck_derive` dependency version from `1.0` to `1.1`.
- The fact that `bytemuck` and `bytemuck_derive` are separate crates at all is
- an unfortunate technical limit of current Rust, woe and calamity.
-
-## 1.9.0
-
-* [fu5ha](https://github.com/fu5ha) added the `NoUninit`, `AnyBitPattern`, and
- `CheckedBitPattern` traits. This allows for a more fine-grained level of
- detail in what casting operations are allowed for a type. Types that already
- implement `Zeroable` and `Pod` will have a blanket impl for these new traits.
- This is a "preview" of the direction that the crate will probably go in the
- eventual 2.0 version. We're still waiting on [Project Safe
- Transmute](https://github.com/rust-lang/project-safe-transmute) for an actual
- 2.0 version of the crate, but until then please enjoy this preview.
-* Also Fusha added better support for `union` types in the derive macros. I
- still don't know how any of the proc-macro stuff works at all, so please
- direct questions to her.
-
-## 1.8.0
-
-* `try_pod_read_unaligned` and `pod_read_unaligned` let you go from `&[u8]` to
- `T:Pod` without worrying about alignment.
-
-## 1.7.3
-
-* Experimental support for the `portable_simd` language extension under the
- `nightly_portable_simd` cargo feature. As the name implies, this is an
- experimental crate feature and it's **not** part of the semver contract. All
- it does is add the appropriate `Zeroable` and `Pod` impls.
-
-## 1.7.2
-
-* Why does this repo keep being hit with publishing problems? What did I do to
- deserve this curse, Ferris? This doesn't ever happen with tinyvec or fermium,
- only bytemuck.
-
-## 1.7.1
-
-* **Soundness Fix:** The wrap/peel methods for owned value conversion, added to
- `TransparentWrapper` in 1.6, can cause a double-drop if used with types that
- impl `Drop`. The fix was simply to add a `ManuallyDrop` layer around the value
- before doing the `transmute_copy` that is used to wrap/peel. While this fix
- could technically be backported to the 1.6 series, since 1.7 is semver
- compatible anyway the 1.6 series has simply been yanked.
-
-## 1.7
-
-* In response to [Unsafe Code Guidelines Issue
- #286](https://github.com/rust-lang/unsafe-code-guidelines/issues/286), this
- version of Bytemuck has a ***Soundness-Required Breaking Change***. This is
- "allowed" under Rust's backwards-compatibility guidelines, but it's still
- annoying of course so we're trying to keep the damage minimal.
- * **The Reason:** It turns out that pointer values should not have been `Pod`. More
- specifically, `ptr as usize` is *not* the same operation as calling
- `transmute::<_, usize>(ptr)`.
- * LLVM has yet to fully sort out their story, but until they do, transmuting
- pointers can cause miscompilations. They may fix things up in the future,
- but we're not gonna just wait and have broken code in the mean time.
- * **The Fix:** The breaking change is that the `Pod` impls for `*const T`,
- `*mut T`, and `Option<NonNull<T>` are now gated behind the
- `unsound_ptr_pod_impl` feature, which is off by default.
- * You are *strongly discouraged* from using this feature, but if a dependency
- of yours doesn't work when you upgrade to 1.7 because it relied on pointer
- casting, then you might wish to temporarily enable the feature just to get
- that dependency to build. Enabled features are global across all users of a
- given semver compatible version, so if you enable the feature in your own
- crate, your dependency will also end up getting the feature too, and then
- it'll be able to compile.
- * Please move away from using this feature as soon as you can. Consider it to
- *already* be deprecated.
- * [PR 65](https://github.com/Lokathor/bytemuck/pull/65)
-
-## 1.6.3
-
-* Small goof with an errant `;`, so [PR 69](https://github.com/Lokathor/bytemuck/pull/69)
- *actually* got things working on SPIR-V.
-
-## 1.6.2
-
-cargo upload goof! ignore this one.
-
-## 1.6.1
-
-* [DJMcNab](https://github.com/DJMcNab) did a fix so that the crate can build for SPIR-V
- [PR 67](https://github.com/Lokathor/bytemuck/pull/67)
-
-## 1.6
-
-* The `TransparentWrapper` trait now has more methods. More ways to wrap, and
- now you can "peel" too! Note that we don't call it "unwrap" because that name
- is too strongly associated with the Option/Result methods.
- Thanks to [LU15W1R7H](https://github.com/LU15W1R7H) for doing
- [PR 58](https://github.com/Lokathor/bytemuck/pull/58)
-* Min Const Generics! Now there's Pod and Zeroable for arrays of any size when
- you turn on the `min_const_generics` crate feature.
- [zakarumych](https://github.com/zakarumych) got the work started in
- [PR 59](https://github.com/Lokathor/bytemuck/pull/59),
- and [chorman0773](https://github.com/chorman0773) finished off the task in
- [PR 63](https://github.com/Lokathor/bytemuck/pull/63)
-
-## 1.5.1
-
-* Fix `bytes_of` failing on zero sized types.
- [PR 53](https://github.com/Lokathor/bytemuck/pull/53)
-
-## 1.5
-
-* Added `pod_collect_to_vec`, which will gather a slice into a vec,
-allowing you to change the pod type while also safely ignoring alignment.
-[PR 50](https://github.com/Lokathor/bytemuck/pull/50)
-
-## 1.4.2
-
-* [Kimundi](https://github.com/Kimundi) fixed an issue that could make `try_zeroed_box`
-stack overflow for large values at low optimization levels.
-[PR 43](https://github.com/Lokathor/bytemuck/pull/43)
-
-## 1.4.1
-
-* [thomcc](https://github.com/thomcc) fixed up the CI and patched over a soundness hole in `offset_of!`.
-[PR 38](https://github.com/Lokathor/bytemuck/pull/38)
-
-## 1.4
-
-* [icewind1991](https://github.com/icewind1991) has contributed the proc-macros
- for deriving impls of `Pod`, `TransparentWrapper`, `Zeroable`!! Everyone has
- been waiting for this one folks! It's a big deal. Just enable the `derive`
- cargo feature and then you'll be able to derive the traits on your types. It
- generates all the appropriate tests for you.
-* The `zeroable_maybe_uninit` feature now adds a `Zeroable` impl to the
- `MaybeUninit` type. This is only behind a feature flag because `MaybeUninit`
- didn't exist back in `1.34.0` (the minimum rust version of `bytemuck`).
-
-## 1.3.1
-
-* The entire crate is now available under the `Apache-2.0 OR MIT` license as
- well as the previous `Zlib` license
- [#24](https://github.com/Lokathor/bytemuck/pull/24).
-* [HeroicKatora](https://github.com/HeroicKatora) added the
- `try_zeroed_slice_box` function
- [#10](https://github.com/Lokathor/bytemuck/pull/17). `zeroed_slice_box` is
- also available.
-* The `offset_of!` macro now supports a 2-arg version. For types that impl
- Default, it'll just make an instance using `default` and then call over to the
- 3-arg version.
-* The `PodCastError` type now supports `Hash` and `Display`. Also if you enable
- the `extern_crate_std` feature then it will support `std::error::Error`.
-* We now provide a `TransparentWrapper<T>` impl for `core::num::Wrapper<T>`.
-* The error type of `try_from_bytes` and `try_from_bytes_mut` when the input
- isn't aligned has been corrected from being `AlignmentMismatch` (intended for
- allocation casting only) to `TargetAlignmentGreaterAndInputNotAligned`.
-
-## 1.3.0
-
-* Had a bug because the CI was messed up! It wasn't soundness related, because
- it prevented the crate from building entirely if the `extern_crate_alloc`
- feature was used. Still, this is yanked, sorry.
-
-## 1.2.0
-
-* [thomcc](https://github.com/thomcc) added many things:
- * A fully sound `offset_of!` macro
- [#10](https://github.com/Lokathor/bytemuck/pull/10)
- * A `Contiguous` trait for when you've got enums with declared values
- all in a row [#12](https://github.com/Lokathor/bytemuck/pull/12)
- * A `TransparentWrapper` marker trait for when you want to more clearly
- enable adding and removing a wrapper struct to its inner value
- [#15](https://github.com/Lokathor/bytemuck/pull/15)
- * Now MIRI is run on CI in every single push!
- [#16](https://github.com/Lokathor/bytemuck/pull/16)
-
-## 1.1.0
-
-* [SimonSapin](https://github.com/SimonSapin) added `from_bytes`,
- `from_bytes_mut`, `try_from_bytes`, and `try_from_bytes_mut` ([PR
- Link](https://github.com/Lokathor/bytemuck/pull/8))
-
-## 1.0.1
-
-* Changed to the [zlib](https://opensource.org/licenses/Zlib) license.
-* Added much more proper documentation.
-* Reduced the minimum Rust version to 1.34