Release: 0.17.0 - Macroverse

Released

What's Changed

TL;DR: This release supercharges the REPL with completions and precise error traces, introduces powerful new macros (doto, time, if-let, when-let), adds macroexpand support, enables native yield, improves string handling, and delivers broad performance gains and critical bug fixes.

https://phel-lang.org/blog/release-0-17/

🥇 New features

  • Add doto macro (#791)
  • Add time macro (#792)
  • Add if-let and when-let macros (#795)
  • Add native yield support (#802)
  • Strings in output are wrapped with quotes (#806)
  • Add macroexpand functions (#810)
  • Add source filename:line on REPL exceptions (#812)
  • Implement defexception special form (#819)
  • Add REPL completion (#821)
  • Add phel->php and php->phel functions (#829)
  • Add public Repl completer and ApiFacade::replComplete (#830)
  • Add str\contains? function (#833)
  • Display deprecated metadata on doc (#834)
  • Add phel/str/repeat

🐛 Bug fixes

  • Fix php/echo does not work (#729)
  • Fix hash-map malfunction notice (#786)
  • Fix header injection vulnerability (#803)
  • Fix multibyte string case functions (#805)
  • Fix null checks on Analyzer forms (#807)
  • Fix RangeIterator rewind state reset (#808)
  • Fix immutable global binding (#811)
  • Fix private symbol refer resolution (#813)
  • Fix global var handling in REPL (#814)
  • Fix allow re-def bindings on REPL (#815)
  • Fix html macro when using when forms (#817)
  • Fix REPL multi-line string brackets (#818)
  • Fix REPL namespace evaluation (#820)
  • Resolve macros in namespaces with hyphens (#824)
  • Fix macroExpand to encode ns by replacing - with _ (#828)
  • Fix cannot reload user namespace (#832)

🏗️ Miscellaneous

  • Use PHPStan level 2 (#785)
  • Document all? returns true for empty collection (#787)
  • Fix workflow cache (#797)
  • Document internals compiler (#804)
  • Optimize vector iteration (#809)
  • Improve vector performance (#823)
  • Test placeholder not replaced in multiline strings (#827)
  • Improve DependenciesForNamespace performance

Contributors

  • @Chemaclass
  • @smeghead
  • @jasalt made their first contribution in https://github.com/phel-lang/phel-lang/pull/787

Full Changelog: v0.16.1...v0.17.0


View release on GitHub