Changelog
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 (Convertions → Conversions).
- 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)
- Added tests to get full coverage
- Replaced the implementation of
ExArray.equal?/2
- Added a clause for non
ExArray argument for ExArray.is_array/1
- Fixed the implementation of
ExArray.from_erlang_array/1 to return an ExArray
v0.1.1 (2023-04-21)
- Changed the internal implementation of
ExArray
- Improved the typespecs and documentations
v0.1.0 (2023-04-20)