Skip to content

Latest commit

 

History

History
81 lines (50 loc) · 2.59 KB

CHANGELOG.md

File metadata and controls

81 lines (50 loc) · 2.59 KB
  • 0.8.6 - September 14 2024

    • Added AsRef implementations for OsStr and Path (thanks @GrigorenkoPV).

    • Added is_interned (thanks @DanielJoyce).

  • 0.8.4 - June 22, 2024

    • Fixed DeepSizeOf impl, thanks @gmryuuko.
  • 0.8.3 - April 21, 2024

    • Made Intern<str> work with serde.
  • 0.8.2 - April 17, 2024

    • Added support for deepsize for all three intern types.
  • 0.8.1 - April 11, 2024

    • Increased MSRV to 1.70.

    • Made ArcIntern not implement Borrow which I apparently missed in version 0.7.0.

  • 0.7.4 - October 28, 2023

    • Increased MSRV to 1.65, got it wrong last time because I forgot to check the arc feature.
  • 0.7.3 - October 28, 2023

    • Made Copy and Clone for ArenaIntern support ?Sized types.
  • 0.7.2 - October 28, 2023

    • Increased MSRV to 1.60 for building and 1.65 for testing due to changes in dependencies.

    • Bumped ahash dependency version.

    • Optimization of ArcInvtern (thanks gwy15!).

  • 0.7.1 - June 17, 2023

    • Added ArcIntern::into_ref (thanks PuzzleMaker!).
  • 0.7.0 - March 30, 2022

    • Removed the Borrow implementation for interned types, which was not compliant with the documentation for that trait. This did not lead to unsoundness, but did lead to confusing and buggy behavior.

    • Add new Arena type which can hold interned data that is then freed when the arena is dropped.

    • Renamed the intrinsic from method (which shadowed the From trait), so it would be easier and less confusing to use From to create Intern<T> for !Sized types.

    • Added at least rudimentary support for common !Sized types, such as Intern<str>, Intern<[u8]> or Intern<Path>. Please report any bugs you might encounter, as the test suite on such types is not fully populated.

  • 0.6.0 - February 11, 2022

    • Removed LocalIntern, since I concluded that it was unsound. Specifically, since the order of dropping of thread-local storage is undefined, users could put a LocalIntern into thread-local storage, and get a use-after-free bug.

      I'm not sure that anyone ever used LocalIntern, and it wasn't faster than Intern anyhow (unlike what I documented and expected), so it's only advantage was that you could get a crude arena-storage-like effect by using LocalIntern within a temporary thread. Not a very compelling use case.

    • Not an actual change, but I now use miri in the CI to check for undefined behavior, which is what clued me into the unsoundness in LocalIntern.