Release: 0.20.0 - Expanding the Core
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
reduceimplementation now works without an initial value (removing the need forreduce2) - Added a wide range of core functions such as
select-keys,median,slurp,spit,zipmap,repeat, and more, along with aliases likeassoc/assoc-inanddissoc/dissoc-in - Introduced macros
some->andsome->>for optional chaining patterns takenow supports PHP Traversable inputs for safe slicing of generators and other iterables- Phel serves as the public entry class and proxy for
Registrymethods, exposing additional constructors and helpers
🐛 Bug fixes
- Resolved
mapexhaustion on empty collections - Fixed
contains-value?handling of nil values - Corrected set
differencebehavior for certain inputs - Addressed
requireloading when*build-mode*is unset - Prevented coercion of
nilto 0 in math operations
🔧 Enhancements & Refactors
- Improved
php/->to support nested calls - Adopted new
list,vector,set, andmapconstructors 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
- phel.phar (2.76 MB)