Skip to content

tracking: 2.0 #502

@DaniPopes

Description

@DaniPopes

I think 2.0 is pretty far away since we're blocked on generic const expressions (GCE), but I think it's worth gathering and discussing all the ideas in one place.

  • Remove Bits type
    • This is a thin wrapper around Uint which does not have any extra functionality
  • Remove second Uint generic (LIMBS), blocked by GCE
    • It could also be a non-breaking change by using a default value
  • Remove support for BITS == 0 and possibly BITS == 1
    • I don't see the point of U0, maybe U1 too. It only causes unnecessary cruft throughout the codebase, where we check for BITS == 0 and have a special case path because we have 0 limbs
  • Represent Uint internally using machine word-sized Word/DoubleWord type aliases instead of hardcoded u64
  • Align parsing behavior with standard library
  • Make as_le_slice and similar methods return an array of [u8; Self::BYTES]
  • Remove support for old crates support features
    • ssz, ark-ff-0.3 ...
  • Resolve the overflow vs panicking arithmetic question: Make UInt panic on overflow if overflow_checks is enabled #408, Add feature to enable panicking arithmetic #522

cc @mattsse @gakonst @recmo @prestwich

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions