Release: 0.26.0 - Seqable Strings
String iteration + lazy file IO + more lazy seq functions + mocking framework + compiler optimizations
🎉 New Features
String Iteration & UTF-8 Support
- Basic string iteration support (#1047)
- Strings now work directly in
foreach,count,frequencies, and all sequence functions - Sequence functions work directly on strings without explicit conversion
- Added
seqandphel\str/charsfor explicitly converting strings to character vectors when needed - Full UTF-8 / multibyte iteration support
Lazy File & Directory Processing
- Added
partition-allfor lazy partitioning with infinite sequence support (#1034) - Added
line-seqfor lazy line-by-line file reading with auto-cleanup (#1035) - Added
file-seqfor lazy recursive directory traversal (#1036) - Added
read-file-lazyfor lazy chunked file reading (#1037) - Added
csv-seqfor lazy CSV parsing (#1038)
More Fully Lazy Sequence Functions
concat(#1028)interpose(#1029)map-indexed(#1030)interleave(#1031)- Variadic
map(#1033) partition(#1034)- Added
lazy-seqandlazy-catmacros (#1043)
Core Library Improvements
- Added mocking framework under
phel\mock(#1042) - Added URL support to
slurp(http/https/ftp) (#1040) - Added
conjand deprecatedpush(#1046) - Added string index support to
contains?(#1052)
✨ Developer Experience
- Renamed collection args xs → coll for consistency (#1039)
- Promoted
assoc/dissoc, deprecatedput/unset(#1041) - Improved docblocks across namespaces with examples (#1044)
- Optimized compiler with multilevel caching (~25–35% faster, ~10% less memory) (#1045)
🐛 Bug Fixes
- Fixed
intoforPersistentListand otherConcatInterfacetypes lackingPushInterface - Fixed
contains?to use character count instead of byte count for multibyte UTF-8 strings (#1053) - Prevent random failures in
RunCommandTestwith isolated cache (#1049) - Cleanup / rename generator classes (#1050)
Downloads
- phel.phar (850.12 KB)