5.6 KiB
5.6 KiB
Changelog
All notable changes to this library will be documented in this file.
The format is based on Keep a Changelog, and this library adheres to Rust's notion of Semantic Versioning.
[Unreleased]
[0.13.1] - 2025-03-09
Changed
ff_derivenow works with all odd primes, not just primes that are either3 (mod 4)or1 (mod 16).
Fixed
- A type inference problem when
ff_deriveandhybrid-arrayare in the same dependency tree has been fixed.
[0.13.0] - 2022-12-06
Added
ff::Field::{ZERO, ONE}ff::Field::powff::Field::{sqrt_ratio, sqrt_alt}core::iter::{Sum, Product}bounds onff::Fieldff::PrimeField::from_u128ff::PrimeField::{MODULUS, TWO_INV}- Constants related to multiplicative generators:
ff::PrimeField::MULTIPLICATIVE_GENERATORff::PrimeField::{ROOT_OF_UNITY, ROOT_OF_UNITY_INV}ff::PrimeField::DELTA
ff::WithSmallOrderMulGroupff::FromUniformBytesff::helpers:sqrt_tonelli_shankssqrt_ratio_generic
Changed
ff::Field::sqrtis now a provided method that uses theField::sqrt_ratiomethod. Implementors of theFieldtrait can choose to implementField::sqrt_ratioand use the providedff::Field::sqrtmethod, especially if it is more efficient in practice, or they can keep their own implementation ofField::sqrtand implementField::sqrt_ratioin terms of that implementation using theff::helpers::sqrt_ratio_generichelper function.ff::PrimeFieldis now documented as representing a non-binary field (i.e. its prime is not 2). This was always the intention, but is now a concrete requirement in order forPrimeField::TWO_INVto exist.
Removed
ff::Field::{zero, one}(useff::Field::{ZERO, ONE}instead).ff::PrimeField::{multiplicative_generator, root_of_unity}(useff::PrimeField::{MULTIPLICATIVE_GENERATOR, ROOT_OF_UNITY}instead).
[0.12.1] - 2022-10-28
Fixed
ff_derivepreviously generated aField::randomimplementation that would overflow for fields that needed a full 64-bit spare limb.
[0.12.0] - 2022-05-04
Changed
- MSRV is now 1.56.0.
- Bumped
bitvecto 1.0.
[0.11.1] - 2022-05-04
Fixed
ff_deriveprocedural macro can now be invoked within regular macros.- Previously,
ff_derive's procedural macro would generate implementations ofPrimeFieldBitseven when thebitscrate feature was disabled.ff_derivecan now be used without a dependency onbitvecby disabling feature features. The new crate featurederive_bitscan be used to force the generation ofPrimeFieldBitsimplementations. This new crate feature will be removed once our MSRV is at least 1.60 and we have access to weak dependency features.
[0.11.0] - 2021-09-02
Added
subtle::ConstantTimeEqbound onff::FieldCopy + Send + Sync + 'staticbounds onff::PrimeField::Reprff::derivemodule behind thederivefeature flag, containing dependencies for thePrimeFieldderive macro:- Re-exports of required crates.
adc, mac, sbbconstant-time const helper functions.
ff::Field::is_zero_vartimeff::PrimeField::from_repr_vartime
Changed
ff::Field::is_zeronow returnssubtle::Choice.ff::PrimeField::{is_odd, is_even}now returnsubtle::Choice.ff::PrimeField::from_reprnow returnsubtle::CtOption<Self>.ff::PrimeField::from_strhas been renamed toPrimeField::from_str_vartime.
Removed
ff::{adc, mac_with_carry, sbb}(replaced byff::derive::{adc, mac, sbb}).
[0.10.1] - 2021-08-11
Added
ff::BatchInvertextension trait, implemented for iterators over mutable field elements which allows those field elements to be inverted in a batch. This trait is behind the newallocfeature flag.ff::BatchInverterstruct, which provides methods for non-allocating batch inversion of field elements contained within slices.
[0.10.0] - 2021-06-01
Added
ff::PrimeFieldBits: PrimeFieldtrait, behind abitsfeature flag.
Changed
- MSRV is now 1.51.0.
- Bumped
bitvecto 0.22 to enable fixing a performance regression inff 0.9. Thebitvec::view::BitViewre-export has been replaced bybitvec::view::BitViewSized. - The
bitvecdependency and its re-exports have been gated behind thebitsfeature flag.
Removed
ff::PrimeField::{ReprBits, char_le_bits, to_le_bits}(replaced byff::PrimeFieldBitstrait).
Fixed
#[derive(PrimeField)]now works on small moduli (that fit in a singleu64limb).
[0.9.0] - 2021-01-05
Added
- Re-export of
bitvec::view::BitView. ff::FieldBits<V>type alias for the return type offf::PrimeField::{char_le_bits, to_le_bits}.
Changed
- Bumped
bitvecto 0.20,rand_coreto 0.6.
Removed
From<Self>andFrom<&Self>bounds onff::PrimeField::Repr.
[0.8.0] - 2020-09-08
Added
ff::PrimeField::{ReprBits, char_le_bits, to_le_bits}, and a public dependency onbitvec 0.18.ff::Field::cubemethod with provided implementation.Send + Syncbounds onff::PrimeField::ReprBits
Changed
- MSRV is now 1.44.0.
ff::Field::random<R: RngCore + ?Sized>(rng: &mut R) -> Selfhas been changed toField::random(rng: impl RngCore) -> Self, to align withgroup::Group::random.
Removed
fmt::Displaybound onff::Field.ff::PrimeField::char(replaced byff::PrimeField::char_le_bits).ff::{BitIterator, Endianness, PrimeField::ReprEndianness(replaced byff::PrimeField::to_le_bits).