Releases: Alexhuszagh/rust-lexical
Releases · Alexhuszagh/rust-lexical
Version 1.0.5 Release
Fixed
- Only require 19 digits for writing
i64and not 20 (#191).
Version 1.0.4 Release
Changed
- Improved performance of integer and float formatting using the jeaiii algorithm with additional optimizations to minimize branching (#163). This also improves memory safety guarantees, since no unsafe indexing is used when formatting integers.
- Updated our build timings, binary sizes, and benchmarks.
Version 1.0.3 Release
Version 1.0.2 Release
Changed
- Higher performance when parsing floats with digit separators.
Fixed
- Inlining inconsistency between public API methods (credit to @zheland)
- Incorrectly accepting leading zeros when
no_integer_leading_zeroswas enabled. - Have consistent errors when an invalid leading digit is found for floating point numbers to always be
Error::InvalidDigit. - Incorrect parsing of consecutive digit separators.
- Inaccuracies when parsing digit separators at various positions leading to incorect errors being returned.
- Selecting only a subset of parse and/or write features would cause compilation errors.
- Fixed bug with writing integers with custom radices.
Version 1.0.1 Release
Fixed
- A correctness regression.
- Regressions where parsing digit separators without the
compactpanicked.
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
allocinno_stdennvironments without thewritefeature. - 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.0with 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-utiland clearly documented the preconditions to use safely. - Removed almost all unsafety in
lexical-write-integerand 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
_uncheckedAPI methods, since the performance benefits are dubious and it makes safety invariant checking much harder. - The
safeandnightlyfeatures, since ASM is now supported by the MSRV on stable and opt-in for memory-safe indexing is no longer relevant.
Lexical-Core Version 0.8.6 Release
Changed
- Fixed partial integer parser to correct return negative values.
Lexical-Core Version 0.8.5 Release
Changed
- Fixed numeric overflow bug causing panic (should explicitly wrap) in dragonbox algorithm's
umul192_lower128. - Fixed new warnings in nightly
clippyandfmtlints. - Fixed comprehensive test suites due to new
clapversions. - Disabled
powerpc64lechecks due to bugs in workflow.
Lexical-Core Version 0.8.4 Release
Updated the algorithms used in float writing to use the latest improvements to dragonbox. The resulting code is more compact, and should compile faster due to not requiring static table generation during compilation.
Lexical-Core Version 0.8.3 Release
Numerous bug fixes and minor feature additions.
- Added support for
-Zmiri-tag-raw-pointersin miri correctness checks. - Added the documented functions
format_errorandformat_is_validto determine if a format packed struct is valid, since the previous checks relied on undocumented behavior. - Added
from_radixtoParseFloatOptionsandWriteFloatOptions, to simplify creating the default options with a different radix. - Fixed
no_stdinlexical-parse-floatwhen default features are disabled. - Fixed issue in parsing integers and floats with the
power-of-twofeature enabled for radixes 16 and 32.