Skip to main content

CHANGELOG.md

# Changelog

## 0.1.5

### Added

- `foil_compiler:to_syntax/1` now accepts maps, references, pids,
  ports, funs, and non-byte-aligned bitstrings. Maps compile to a
  proper `map_expr` literal. The rest have no abstract literal form,
  so they ride through an integer syntax node — the BEAM module
  loader carries them in the compiled module's constant pool as-is,
  and `foil:lookup/2` returns them unchanged.
- eunit case `non_literal_terms_test` round-trips each new type
  (including a nested tuple/map combination that mixes literal and
  non-literal values).

## 0.1.4

### Changed

- CI moved from Travis (decommissioned years ago) to GitHub Actions.
  Matrix now covers OTP 25, 26, 27, 28.
- Documentation migrated from `edown` to `rebar3_ex_doc`. Generated
  `doc/` directory removed; HTML docs are now published to hexdocs.
- Bumped `metal` dependency from `0.1.1` to `0.1.2`.
- Tightened the `error/0` type from `{error, atom()}` to a sum:
  `{error, foil_not_started | key_not_found | module_exists |
  module_not_found}`. Dialyzer-checkable; same atoms the code already
  returns. No behavioural change.
- `foil.erl` refactored to dispatch through a `?WITH_MODULE(...)` macro
  (defined in `foil.hrl`). Removes ~40 lines of repeated try/catch
  scaffolding from `all/1`, `delete/1`, `delete/2`, `insert/3`,
  `load/1`, and `lookup/2`. Macro rather than function so the cache
  hot path stays branch-only; bench numbers unchanged.

### Removed

- `.travis.yml`, `elvis.config`, `bin/elvis`, `rebar.config.script`
  (rebar2 compatibility) — all unused.
- `coveralls` plugin and Makefile target — Travis-specific tooling.
- Coveralls and Travis build badges from the README.