Changelog

View Source

v1.0.0 (2026-06-16)

  • Fixed Access.fetch/2 and Access.pop/2 to no longer treat stored falsy values (e.g. false, nil) as missing; entries are now compared against the array's default value instead of a truthy check.
  • Improved Collectable.into/1 to append via :array.set/3 starting at the original array's size/1, instead of rebuilding through to_list/from_list. The original array's default and fixed attributes are now preserved.
  • Improved Enumerable.slice/1 to return a slicing_fun, so partial slices touch only the requested window rather than materializing the full list. The implementation is selected at compile time: the 2-arity form on Elixir 1.14–1.17, and the 3-arity form (with step support) on Elixir 1.18+, which silences the deprecation warning emitted on those versions.
  • Replaced the soft-deprecated unless macro in from_erlang_array/1 for forward compatibility with Elixir 1.19+.
  • Fixed typespecs so mix dialyzer passes on Elixir 1.18 / OTP 28+. The hand-written array() opaque tuple now delegates to :array.array/0, and orddict() is exposed as a regular @type (it is a user-constructable list of {index, value} tuples, not an opaque value).
  • Added a GitHub Actions workflow exercising mix compile --warnings-as-errors, mix test, and mix dialyzer across every supported Elixir 1.14–1.20 / OTP 24–29 combination.
  • Documented the Access, Enumerable, and Collectable protocols in the README, added examples for the remaining public API, and fixed a stale output value and a typo (ConvertionsConversions).
  • Added regression tests covering the Access falsy-value fix, Collectable attribute preservation, the Enum.slice/3 start/length form, and stepped ranges (Enum.slice(arr, 0..5//2)) to exercise the 3-arity slicing_fun's step path on Elixir 1.18+.

v0.1.3 (2023-04-21)

  • Improved the README.md by providing examples

v0.1.2 (2023-04-21)

v0.1.1 (2023-04-21)

  • Changed the internal implementation of ExArray
  • Improved the typespecs and documentations

v0.1.0 (2023-04-20)

  • Version initial