Reorganize notes about breaking changes

This commit is contained in:
Josh Stone 2018-05-16 15:38:52 -07:00
parent 2d67ee4fcd
commit 57ea5d4f44

View File

@ -1,18 +1,7 @@
# Release 0.2.0 (pending)
- :warning: [`num-bigint` now requires rustc 1.15 or greater][23].
- :warning: [The crate now has a `std` feature, and won't build without it][46].
This is in preparation for someday supporting `#![no_std]` with `alloc`.
- :warning: [The `rand` and `serde` dependencies have been updated to 0.4 and 1.0][24]
respectively, and neither are enabled by default. The `rustc-serialize`
crate is no longer supported by `num-bigint`.
- :warning: [`Shr for BigInt` now rounds down][8] rather than toward zero,
matching the behavior of the primitive integers for negative values.
- :warning: [`ParseBigIntError` is now an opaque type][37].
- :warning: [The `big_digit` module is no longer public][38], nor are the
`BigDigit` and `DoubleBigDigit` types and `ZERO_BIG_DIGIT` constant that
were re-exported in the crate root. Public APIs which deal in digits, like
`BigUint::from_slice`, will now always be base-`u32`.
### Enhancements
- [`BigInt` and `BigUint` now implement `Product` and `Sum`][22] for iterators
of any item that we can `Mul` and `Add`, respectively. For example, a
factorial can now be simply: `let f: BigUint = (1u32..1000).product();`
@ -24,7 +13,21 @@
if sufficient compiler support is detected.
- The release also includes other miscellaneous improvements to performance.
:warning: indicates a **breaking change**.
### Breaking Changes
- [`num-bigint` now requires rustc 1.15 or greater][23].
- [The crate now has a `std` feature, and won't build without it][46]. This is
in preparation for someday supporting `#![no_std]` with `alloc`.
- [The `rand` and `serde` dependencies have been updated to 0.4 and 1.0][24]
respectively, and neither are enabled by default. The `rustc-serialize` crate
is no longer supported by `num-bigint`.
- [`Shr for BigInt` now rounds down][8] rather than toward zero, matching the
behavior of the primitive integers for negative values.
- [`ParseBigIntError` is now an opaque type][37].
- [The `big_digit` module is no longer public][38], nor are the `BigDigit` and
`DoubleBigDigit` types and `ZERO_BIG_DIGIT` constant that were re-exported in
the crate root. Public APIs which deal in digits, like `BigUint::from_slice`,
will now always be base-`u32`.
**Contributors**: @clarcharr, @cuviper, @dodomorandi, @tspiteri