Release: 0.20.0 - Expanding the Core

Released

This release expands Phel’s core with many new functions and macros, unifies and improves collection handling (reduce, take, map, sets), and streamlines runtime access through the new Phel facade. It also includes key bug fixes, refined math behavior, and developer workflow enhancements.

✨ New features

  • Unified reduce implementation now works without an initial value (removing the need for reduce2)
  • Added a wide range of core functions such as select-keys, median, slurp, spit, zipmap, repeat, and more, along with aliases like assoc/assoc-in and dissoc/dissoc-in
  • Introduced macros some-> and some->> for optional chaining patterns
  • take now supports PHP Traversable inputs for safe slicing of generators and other iterables
  • Phel serves as the public entry class and proxy for Registry methods, exposing additional constructors and helpers

🐛 Bug fixes

  • Resolved map exhaustion on empty collections
  • Fixed contains-value? handling of nil values
  • Corrected set difference behavior for certain inputs
  • Addressed require loading when *build-mode* is unset
  • Prevented coercion of nil to 0 in math operations

🔧 Enhancements & Refactors

  • Improved php/-> to support nested calls
  • Adopted new list, vector, set, and map constructors for cleaner proxying through Phel

⚙️ Miscellaneous

  • Added an auto-assign-author GitHub workflow to streamline contributions

👥 Contributors

@Chemaclass @jasalt @JesusValeraDev

Full Changelog: v0.19.1…v0.20.0

Downloads


View release on GitHub