Skip to content

Releases: servo/rust-smallvec

v1.5.1

05 Dec 01:21
c1e68df
Compare
Choose a tag to compare
  • Improve performance of push (#241).

v1.5.0

17 Nov 18:15
fc12fb1
Compare
Choose a tag to compare
  • Add the append method (#237).
  • Add support for more array sizes between 17 and 31 (#234).
  • Don't panic on deserialization errors (#238).

v1.4.2

11 Aug 23:15
9ae7076
Compare
Choose a tag to compare
  • insert_many no longer leaks elements if the provided iterator panics (#213).
  • The unstable const_generics and specialization features are updated to work with the most recent nightly Rust toolchain (#232).
  • Internal code cleanup (#229, #231).

v1.4.1

07 Jul 03:46
5513f47
Compare
Choose a tag to compare
  • Don't allocate when the size of the element type is zero. Allocating zero bytes is undefined behavior. (#228)

v1.4.0

25 Apr 17:42
78c2528
Compare
Choose a tag to compare
  • Add try_reserve, try_reserve_exact, and try_grow methods (#214).

v1.3.0

08 Apr 21:37
3957cd8
Compare
Choose a tag to compare
  • Add a new unstable const_generics feature (#204).
  • Improve inlining of constructor functions (#206).
  • Add a slice.to_smallvec() convenience method (#203).
  • Documentation and testing improvements.

v1.2.0

29 Jan 16:47
08b8249
Compare
Choose a tag to compare
  • IntoIter now implements Debug (#196).
  • smallvec! macro is now easier to use in no_std contexts where the vec! macro isn't automatically imported (#198).

v1.1.0

20 Dec 22:19
34d7b8d
Compare
Choose a tag to compare
  • Added new method SmallVec::into_boxed_slice (#190).
  • Added new methods IntoIter::as_slice and as_mut_slice (#182).
  • IntoIter now implements Clone (#192).
  • Improved documentation and testing (#186, #189, #193).
  • Minor code cleanups (#176).

v0.6.13

05 Nov 16:45
7852204
Compare
Choose a tag to compare
  • Use the maybe-unit crate in place of soon-to-be-deprecated std::mem::uninitialized (#180). When built with Rust 1.36 or later, this fixes a source of undefined behavior. It also fixes deprecation warnings in Rust 1.39 and later, and test failures when run in MIRI. In Rust 1.35 and earlier it provides some safety improvements but does not completely eliminate undefined behavior. (However, we are not aware of any cases where the undefined behavior causes bugs in practice in those toolchains.)

v1.0.0

04 Nov 16:37
34c2628
Compare
Choose a tag to compare
  • Requires Rust 1.36 or later.
  • [breaking change] Use MaybeUninit to avoid possible undefined behavior (#162, #170).
  • [breaking change] The drain method now takes a range argument, just like the standard Vec::drain (#145).
  • [breaking change] Remove the unreachable function and replace it with the new standard unreachable_unchecked function (#164).
  • [breaking change] Use no_std by default. This crate depends only on core and alloc by default. If the optional write feature is enabled then it depends on std so that SmallVec<[u8;_]> can implement the std::io::Write trait (#173).
  • [breaking change] Remove the deprecated VecLike trait (#165).
  • Add support for 96-element small vectors, SmallVec<[T; 96]> (#163).
  • Iterators now implement FusedIterator (#172).
  • Indexing now uses the standard SliceIndex trait (#166).
  • Add automatic fuzz testing and MIRI testing (#168, #162).
  • Update syntax and formatting to Rust 2018 standard (#174, #167).