“Final Comment Period” on arrayvec 1.0


#1

Hiya,

Arrayvec is overdue for an 1.0 release, yet we face some challenges, primarily around soundness and adapting to the emerging guidelines for handling uninitialized fields.

The most important change related to this release is still open, PR #97 which is our stop-gap solution that stands in for a future MaybeUninit or equivalent.

I want to be pragmatic about this solution. The new code is designed to be much better than the old that served for a long time (crate nodrop), and it should be easy for arrayvec, without breaking changes, to adopt a stable and sound mechanism as soon as it is available.

The full crate API was overhauled already in version 0.4 and should now be close to 1.0 quality.

Any comments about the specific PR are welcome in that thread on github, and any comments on the general 1.0-readyness of the API are welcome here. I’m happy to hear constructive comments.

cc @tbu @arielb1


#2

Do you have a plan for const generics? ArrayVec<T, N> would look nicer, and probably be easier to deal with than the custom Array trait.


#3

The plan is that arrayvec 1.0 is a stabilization of what currently exists, and const generics is an arrayvec 2.0 feature. Nothing more specific, we’ll see when const generics land.