All notable changes to this project are documented here. The format follows Keep a Changelog, and this project uses Semantic Versioning.
1.0.2 - 2026-10-21
Fixed
- The
:toleranceconfig is now tracked by Mix. Before, it was read while your code compiled without Mix knowing, so changing it inconfig.exscould leave some modules using the old value until a forced recompile. Changing it now recompiles everything that uses the guards. - The README example
is_eq_ish(0.1 + 0.2) == 0.3did not compile. It is nowis_eq_ish(0.1 + 0.2, 0.3). - The package's GitHub link pointed to the wrong repository.
Changed
- A release now fails to boot if
config/runtime.exssets a different:tolerancethan the one it was compiled with. Before, the runtime value was ignored without any warning. Guards cannot read config at runtime, so set the tolerance inconfig/config.exsinstead. (mix runandiex -S mixstill ignore the runtime value.) - Typespecs now accept any number as the tolerance, not just floats. Integer tolerances already worked.
Documentation
- Explained that the tolerance is a compile-time setting, and where to set it.
- Explained that the tolerance is a fixed amount, not a percentage, with examples of where that matters for very large and very small numbers.
- Added this changelog.
1.0.1 - 2026-09-03
- Version bump only.
1.0.0 - 2026-09-03
- Initial release:
is_eq_ish,is_not_eq_ish,is_gt_ish,is_gte_ish,is_lt_ishandis_lte_ish, usable as guards or ordinary expressions, with an optional tolerance argument and a configurable default.