|
| 1 | ++++ |
| 2 | +title = "Release v0.22 – Metadata Conditions" |
| 3 | +description = "Phel v0.22 deepens metadata support, adds new array helpers, introduces a debug namespace, and polishes the developer experience." |
| 4 | +author = "The Phel Team" |
| 5 | ++++ |
| 6 | + |
| 7 | +Just weeks after multi-arity functions landed, Phel v0.22 doubles down on ergonomics. Stronger metadata handling, fresh |
| 8 | +array utilities, and the new `phel\\debug` toolbox make it easier than ever to inspect, test, and evolve your code. Along the |
| 9 | +way, we tightened the public API surface and nudged code quality forward with a higher PHPStan bar. |
| 10 | + |
| 11 | +## ✨ Highlights |
| 12 | + |
| 13 | +- **Nested array helpers**: reach into deep structures with `php/aget-in`, `php/aset-in`, `php/aunset-in`, and `php/apush-in`. |
| 14 | +- **Metadata `:pre`/`:post` conditions** now have a toggle for performance-sensitive workloads. |
| 15 | +- **`*file*` global** exposes the current source path for macros, tooling, and documentation. |
| 16 | +- **Set literal shorthand `#{...}`** and optional commas in hash maps add readability without ceremony. |
| 17 | +- **`phel\\debug` namespace** introduces helpers like `spy` and `tap` for inline introspection. |
| 18 | +- **Public API refinements** update `PhelFunction` with generated file paths, GitHub URLs, and structured metadata, while |
| 19 | +deprecating older method calls. |
| 20 | + |
| 21 | +## 🐛 Bug fixes |
| 22 | + |
| 23 | +- Ensured the REPL can `require` code from `repl.phel` and returns an empty string for `__FILE__` / `__DIR__`. |
| 24 | +- Repaired metadata persistence on definitions, core functions, and macros. |
| 25 | +- Fixed `argv` to provide a vector result and tightened `NsSymbol` namespace validation. |
| 26 | + |
| 27 | +## 📈 Code quality |
| 28 | + |
| 29 | +- Raised PHPStan to level 5 and removed the legacy `phel\\trace` namespace in favor of `phel\\debug`. |
| 30 | + |
| 31 | +## 👥 Contributors |
| 32 | + |
| 33 | +Huge thanks to **@Chemaclass**, **@jasalt**, and **@JesusValeraDev** for continuing to push the language forward. |
| 34 | + |
| 35 | +## Dive deeper |
| 36 | + |
| 37 | +For every detail, dig into the official documentation: |
| 38 | + |
| 39 | +- [Full changelog for v0.22.0](https://github.com/phel-lang/phel-lang/compare/v0.21.0...v0.22.0) |
| 40 | +- [Release on GitHub](https://github.com/phel-lang/phel-lang/releases/tag/v0.22.0) |
0 commit comments