Skip to content

Commit 55eb613

Browse files
committed
blog: release-0.17
1 parent 9235807 commit 55eb613

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
+++
2+
title = "Release: v0.17.0"
3+
+++
4+
5+
## Macroverse
6+
7+
### ✨ TL;DR
8+
9+
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.
10+
11+
## Highlights
12+
13+
### 🧠 Language Features
14+
15+
- New macros: `doto`, `time`, `if-let`, `when-let`
16+
- `defexception` special form for custom exception types
17+
- Native `yield` support
18+
- Strings in output are now wrapped in quotes
19+
- Added `str\contains?` and `str\repeat` functions
20+
- New conversion functions: `phel->php` and `php->phel`
21+
22+
### 🛠 Macro & Meta Programming
23+
24+
- `macroexpand` functions for inspecting macros
25+
- Deprecated metadata is now visible in `doc` output
26+
- Macros now resolve correctly in namespaces with hyphens
27+
- Namespace encoding improved (hyphens converted to underscores)
28+
29+
### 💻 REPL Improvements
30+
31+
- REPL completion (auto-suggest)
32+
- REPL exceptions now show filename:line for better traceability
33+
- Namespace evaluation and re-definition fixes
34+
- Proper handling of global variables and re-definable bindings
35+
36+
## Bug Fixes
37+
38+
### 🧩 Core Language Fixes
39+
40+
- Fixed `php/echo` not working
41+
- Fixed malfunctioning `hash-map`
42+
- Corrected behavior of multibyte string case functions
43+
- Resolved analyzer null checks and symbol resolution issues
44+
- Fixed private symbol resolution
45+
46+
### 🧷 REPL Stability
47+
48+
- Fixed global var handling
49+
- Allowed re-definitions in REPL
50+
- Fixed issues with `html` macro when used with when
51+
- Corrected bracket handling in multiline REPL strings
52+
- Fixed evaluation bugs in REPL namespaces
53+
- Fixed the inability to reload the user namespace
54+
55+
### 🔐 Security
56+
57+
- Patched header injection vulnerability
58+
59+
## Performance & Internals
60+
61+
- Optimized vector iteration and overall performance
62+
- Fixed test placeholders not being replaced in multiline strings
63+
- Clarified behavior of `all?` returning true for empty collections
64+
- Documented internals of the compiler
65+
- Fixed workflow cache usage in CI
66+
- Upgraded static analysis to PHPStan level 2
67+
68+
## Full list
69+
70+
For a full list of changes, have a look at
71+
the [release notes](https://github.com/phel-lang/phel-lang/releases/tag/v0.17.0).

0 commit comments

Comments
 (0)