View Source Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

unreleased

Unreleased

2-0-0-2023-03-29

2.0.0 - 2023-03-29

changed

Changed

  • Inspecting an IntSet now returns a string using IntString.new([1, 2, 3, ...]) syntax.
  • The internal binary that IntSet uses to store values is now always byte-aligned, and each byte has changed endianness to allow for some internal optimizations.
  • Binaries returned by IntSet.bitstring/1 is now always byte-aligned.

removed

Removed

1-5-2-2022-09-05

1.5.2 - 2022-09-05

added

Added

changed-1

Changed

  • Fixes for Elixir 1.14 deprecations
  • The project now uses Earthly for CI. You can run the entire CI pipeline on your local machine by installing Earthly and running earthly +all.

1-5-1-2021-09-12

1.5.1 - 2021-09-12

added-1

Added

  • Sponshorship link to mix.exs

fixed

Fixed

  • inspect/2 no longer renders certain sets as charlists.

1-5-0-2020-10-10

1.5.0 - 2020-10-10

changed-2

Changed

  • IntSet.bitstring/1 is now IntSet.bitstring/2 and now accepts an option: :byte_align. When this option is set to true, the bitstring is padded at the end to make it byte-aligned.

1-4-2-2019-11-24

1.4.2 - 2019-11-24

fixed-1

Fixed

1-4-1-2019-11-24

1.4.1 - 2019-11-24

fixed-2

Fixed

1-4-0-2019-11-24

1.4.0 - 2019-11-24

added-2

Added

  • The IntSet.inverse/2 function, which is like taking the difference of your IntSet with a completely-full IntSet with n members. Say you have a list of indices, and you want to create a list of all the indices you don't have. Just take the inverse, providing a member limit.
  • Added an .editorconfig file to the project.

1-3-0-2018-05-25

1.3.0 - 2018-05-25

added-3

Added

1-2-1-2018-02-09

1.2.1 - 2018-02-09

added-4

Added

changed-3

Changed

1-2-0-2018-02-06

1.2.0 - 2018-02-06

added-5

Added

changed-4

Changed

  • The Collectable implementation was dramatically optimized.

1-1-0-2018-02-03

1.1.0 - 2018-02-03

added-6

Added

  • The IntSet.bitstring/1 function. Returns a binary with bits flipped at the indices at which the set has members. For example, say you have a set containing 0, 1, and 4. Calling IntSet.bitstring/1 on that set will return a five-bit-long binary with the first, second, and fifth bits set to 1, and the rest are 0.
  • The library is now typespecced and documented.

1-0-0-2018-02-01

1.0.0 - 2018-02-01

added-7

Added

  • Constructor IntSet.new/0, which creates a new empty set.
  • Constructor IntSet.new/1, which accepts either an enumerable and returns a set containing those elements. This constructor also accepts a bitstring. See the documentation for details on that behavior.
  • The IntSet.put/2 function. Just like MapSet.put/2, this function returns a new set with the given value added.
  • The IntSet.delete/2 function. Again, just like MapSet.delete/2. Returns a new set with the given value removed.
  • The IntSet.union/2 function. Returns a set that contains elements of both given sets.
  • An implementation of Inspect that sorts members before printing them, so the order can be relied upon in doctests.
  • An implementation of Collectable.
  • An implementation of Enumerable.