Skip to content

Latest commit

 

History

History
53 lines (39 loc) · 2.58 KB

File metadata and controls

53 lines (39 loc) · 2.58 KB

Changelog for Abit

v1.0.0 - 2026-08-20

  • Stability - Declared the existing public API stable for the first major release.
  • Breaking - Raised the minimum supported versions to Elixir 1.14 and OTP 25.
  • Performance - Reduced overhead in bit-array set operations, atomics membership checks, and packed-counter access.
  • Fix - Added explicit validation and errors for malformed atomics serialization payloads.
  • Tests - Added property-based coverage for bitmasks, atomics operations and serialization, and packed counters.
  • Documentation - Updated installation instructions, package metadata, Erlang documentation links, and the 64-bit bitmask contract.

v0.4.0

  • Feature - Added fast atomics resetting via Abit.clear/1 and Abit.Counter.clear/1.
  • Feature - Added bit toggling via Abit.toggle_bit_at/2 and Abit.Bitmask.toggle_bit_at/2.
  • Feature - Added the missing set operations: Abit.difference/2, Abit.symmetric_difference/2, and Abit.invert/1.
  • Deprecation - Deprecated Abit.merge/2 in favor of Abit.union/2 to align with standard set theory terminology.

v0.3.3

  • Feature - Added Abit.Atomics.serialize/1 and Abit.Atomics.deserialize/1.

v0.3.2

  • Fix - Fixed a compile warning caused by using ^^^/2 in Abit.Counter.

v0.3.1

  • Fix - Restored compatibility with Elixir 1.7 by avoiding Kernel.floor/1 and Kernel.ceil/1.

v0.3.0

  • BREAKING - Removed Abit.Matrix and extracted it to matrax.

v0.2.4

  • Feature - Implemented the Enumerable protocol for Abit.Counter.

v0.2.3

  • Feature - Added add/3, exchange/3, compare_exchange/4, min/1, max/1, and other functions to Abit.Matrix.
  • Feature - Implemented the Enumerable protocol for Abit.Matrix.
  • Feature - Added Abit.Bitmask.to_list/2.
  • Feature - Added Abit.to_list/1.

v0.2.2

  • Feature - Added Abit.Matrix for working with atomics as an M x N matrix.

v0.2.1

  • Performance - Improved the performance of functions in Abit and Abit.Bitmask.

v0.2.0

Abit

  • BREAKING - Renamed set_bit/3 to set_bit_at/3 for consistency with the Abit.Bitmask API.

Abit.Counter

  • BREAKING - Added the wrap_around option. Wraparound is now disabled by default.
  • BREAKING - Replaced the custom signed and unsigned integer matching with the built-in implementation. Signed integers now wrap around as they do in Elixir.
  • BREAKING - Changed the return value of put/3 and add/3 to {:ok, {index, final_value}}, or {:error, :value_out_of_bounds} when wrap_around is false and the value is out of bounds.