Skip to main content

Release: 0.26 - Seqable Strings

Latest update

0.26.0 - Seqable Strings

Released 2025-11-16 · GitHub release

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 seq and phel\str/chars for explicitly converting strings to character vectors when needed
  • Full UTF-8 / multibyte iteration support

Lazy File & Directory Processing

  • Added partition-all for lazy partitioning with infinite sequence support (#1034)
  • Added line-seq for lazy line-by-line file reading with auto-cleanup (#1035)
  • Added file-seq for lazy recursive directory traversal (#1036)
  • Added read-file-lazy for lazy chunked file reading (#1037)
  • Added csv-seq for lazy CSV parsing (#1038)

More Fully Lazy Sequence Functions

Core Library Improvements

  • Added mocking framework under phel\mock (#1042)
  • Added URL support to slurp (http/https/ftp) (#1040)
  • Added conj and deprecated push (#1046)
  • Added string index support to contains? (#1052)

✨ Developer Experience

  • Renamed collection args xs → coll for consistency (#1039)
  • Promoted assoc / dissoc, deprecated put / unset (#1041)
  • Improved docblocks across namespaces with examples (#1044)
  • Optimized compiler with multilevel caching (~25–35% faster, ~10% less memory) (#1045)

🐛 Bug Fixes

  • Fixed into for PersistentList and other ConcatInterface types lacking PushInterface
  • Fixed contains? to use character count instead of byte count for multibyte UTF-8 strings (#1053)
  • Prevent random failures in RunCommandTest with isolated cache (#1049)
  • Cleanup / rename generator classes (#1050)

Downloads

v0.26.0


View release on GitHub