Fast numeric to- and from-string conversion routines.
umul192_lower128
.clippy
and fmt
lints.clap
versions.powerpc64le
checks due to bugs in workflow.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.
Numerous bug fixes and minor feature additions.
-Zmiri-tag-raw-pointers
in miri correctness checks.format_error
and format_is_valid
to determine if a format packed struct is valid, since the previous checks relied on undocumented behavior.from_radix
to ParseFloatOptions
and WriteFloatOptions
, to simplify creating the default options with a different radix.no_std
in lexical-parse-float
when default features are disabled.power-of-two
feature enabled for radixes 16 and 32.Reproduced all dependent licenses in lexical, and document extensively what features are dependent on what licensing terms.
Existing code using digit separators such as "4_2.0" in the integral component would fail, due the counting of non-digit separators in number parsing not incrementing when calling step_by_unchecked
. This led to erroneous Error::EmptyInteger
results.
This was a large release that Involved a near complete re-write of lexical for faster algorithms, a simpler internal design, and faster digit parsing implementations.
NumberFormat
to be a packed u128
struct to allow more extensive configuration and use const generics.NumberFormat
to be an internal implementation detail, and NumberFormatBuilder
to be the public API for creating custom formats at compile time.Added parse_with_options
, parse_partial_with_options
.
Added write_with_options
, write_unchecked
, and write_with_options_unchecked
.
Remove the write_format
, write_radix
, and similar functions.
Remove the parse_format
, parse_radix
, and similar functions.
Added a faster float writer and parser for power of 2 radixes.
Added the required_exponent_notation
flag to NumberFormat
.
Added the power-of-two
feature, for conversion to and from strings with power-of-two bases.
Added the compact
feature, optimized for binary size rather than performance.
Added extensive documentation on benchmarks, algorithms used, and internal implementation details.
dtoa
feature. This allows only 1 compact backend and 1 performance backend, for fully additive features. The new Dragonbox algorithm is faster than any existing algorithms.rounding
feature. This was never used in practice.slice::sort
is not present in no_std
.libm
which enables stable no_std
use.