v1.0.0 Release
The full changelog is as follows:
Added
- Added fuzzing and miri code safety analysis to our CI pipelines.
- Removed requirement of
alloc
inno_std
ennvironments without thewrite
feature. - Make multi-digit optimizations in integer parsing optional.
- Much higher miri coverage including for proptests and our corner cases from the golang test suite.
Changed
- Updated the MSRV to 1.63.0 (1.65.0 for development).
- Improved performance due to compiler regressions in rustc 1.81.0 and above.
Fixed
- Removed use of undefined behavior in
MaybeUninit
. - Provide better safety documentation.
- Parsing of Ruby float literals.
- Performance regressions in Rust 1.81.0+.
- Removed incorrect bounds checking in reading from iterators.
- Overflow checking with integer parsing.
- Writing
-0.0
with a leading-
. - Reduced binary siezes when the compact feature was enabled.
- Improved performance of integer and float parsing, particularly with small integers.
- Removed almost all unsafety in
lexical-util
and clearly documented the preconditions to use safely. - Removed almost all unsafety in
lexical-write-integer
and clearly documented the preconditions to use safely. - Writing special numbers even with invalid float formats is now always memory safe.
Removed
- Support for mips (MIPS), mipsel (MIPS LE), mips64 (MIPS64 BE), and mips64el (MIPS64 LE) on Linux.
- All
_unchecked
API methods, since the performance benefits are dubious and it makes safety invariant checking much harder. - The
safe
andnightly
features, since ASM is now supported by the MSRV on stable and opt-in for memory-safe indexing is no longer relevant.