Releases: VoidStarKat/half-rs
Releases · VoidStarKat/half-rs
2.6.0
Changed
- Fixed some incorrect minimum supported versions of dependencies that weren't caught due to
improperCargo.lock
:num-traits
0.2.14 -> 0.2.16zerocopy
0.8.0 -> 0.8.23arbitrary
1.3.2 -> 1.4.1
Added
f16
andbf16
now implementImmutable
andKnownLayout
forzerocopy
crate. By [@usamoi].
2.5.0
Changed
- Updated optional dependencies to latest major versions:
zercopy
0.6 -> 0.8rand
0.8 -> 0.9rand_distr
0.4 -> 0.5rkyv
0.7 -> 0.8- (dev)
criterion
0.4 -> 0.5
- Minimum supported Rust version has been changed to 1.81 due to above dependency updates.
- Minor restructuring of included license file locations to be more consistent with crates ecosystem.
Added
- Added support for
arbitrary
crate. Fixes #110. By @FL33TW00D. - New
num-traits
implementations:FromBytes
andToBytes
forf16
andbf16
. By @kpreid.
Fixed
- Suppressed unexpected_cfg lint warnings on newer versions of stable Rust.
- Resolved ambiguous rustdoc warnings due to new unstable
f16
primitive in compiler.
2.4.1
2.4.0
Added
- Optional
rkyv
support. Fixes #100, by @comath. - New
num-traits
implementations:AsPrimitive<f16>
forbf16
andAsPrimitive<bf16>
for
f16
, allowing lossy conversions between the two types. By @charles-r-earp. Cargo.lock
added to vcs as is now recommended for library crates.
Fixed
- Remove some unit NaN conversion sign tests due to non-deterministic hardware. Fixes #103.
- Redundant import warnings on nightly Rust.
v1.8.3
Fixed
- Potential soundness issues resolved.
2.3.1
2.3.0
Added
- Support for Kani Rust Verifier. By @cameron1024.
- Support for
rand_distr::Distribution
implementations behindrand_distr
optional cargo feature. By @coreylowman. - Floating point formatting options in
Display
andDebug
implementations. By @eiz.
Changed
- Breaking Change Minimum supported Rust version is now 1.70.
- Breaking Change Minimum supported Rust version policy reverted to original policy of allowing minimum supported Rust version updates for minor releases instead of only major to avoid segmentation and allow optimizing hardware implementations without unnecessary major releases.
- Hardware intrinsics/assembly is finally available on stable Rust, including using hardware feature detection (
std
only), including:- AArch64 now uses FP16 hardware instructions for conversions and math operations when available.
- x86/x86-64 now uses F16C hardware instructions for conversions (but no math operations) when available. Fixes #54.
Deprecated
use-intrinsics
cargo feature no longer used. Hardware support will now always be used whenever possible. A future version may output deprecation warnings if this feature is enabled.
Fixed
- Improve code generation of
leading_zeros
functions by inlining. By @encounter. Sum
implementation ofbf16
incorrectly performed product instead of sum. By @wx-csy.- Compile failed when
serde
cargo feature enabled butstd
not enabled. - Incorrect black boxing of benchmark tests.
- Rustdoc cfg display on docs.rs not getting enabled.
2.2.1
2.2.0
Added
- Add
serialize_as_f32
andserialize_as_string
functions whenserde
cargo feature is enabled. They allowing customizing the serialization by using#[serde(serialize_with="f16::serialize_as_f32")]
attribute in serde derive macros. Closes #60. - Deserialize now supports deserializing from
f32
,f64
, and string values in addition to its previous default deserialization. Closes #60.
Changed
- Add
#[inline]
on fallback functions, which improved conversion execution on non-nightly rust by up to 50%. By @Shnatsel.
2.1.0
Added
- Add support for target_arch
spirv
. Some traits and functions are unavailble on this architecture. By @charles-r-earp. - Add
total_cmp
method to both float types. Closes #55, by @joseluis.