@@ -8,6 +8,40 @@ shows you how to drive the shell.
88
99---
1010
11+ ## v2.8.3 — * the four-bug-reports release*
12+
13+ Four field reports, four root causes, and a detector for each so none of
14+ them can quietly come back:
15+
16+ - ** The big one (#94 ):** a double free in AST teardown could SIGSEGV the
17+ shell on large rc-shaped scripts. The parse arena's rare heap-fallback
18+ handed the reparser a shared token it then freed once per word — a
19+ state so deep it needed hundreds of MB of parse allocations to reach,
20+ which is why no normal-size test ever saw it. Fixed at the root, and
21+ ` make arena-stress ` now shrinks the arena chunks to 512 bytes so those
22+ rare states happen every few nodes, under ASan, on every CI run.
23+ - ** ` $(case ...) ` parses (#95 ):** a case pattern's unbalanced ` ) ` no
24+ longer ends the command substitution — so the idiomatic
25+ ` n=$(case "$x" in ''|*[!0-9]*) echo no ;; *) echo yes ;; esac) ` works,
26+ and one such line no longer silently disables the rest of your rc.
27+ - ** Preexec hooks from functions (#96 ):** ` trap 'my_preexec' DEBUG `
28+ inside a function now persists after the function returns, exactly as
29+ bash does — the canonical installable-hook shape works. Subshells got
30+ bash's other half too: inherited DEBUG/RETURN/ERR traps stay listable
31+ in ` $( ) ` but never fire there. And because bash-preexec's hook could
32+ now actually run, hellish gained the ** ` builtin ` ** builtin it calls
33+ (` builtin history 1 ` ) — 69 builtins now.
34+ - ** ` $COLUMNS ` and ` $LINES ` (#97 ):** set at interactive startup and kept
35+ current across resizes (honouring ` shopt checkwinsize ` ), unexported,
36+ like bash — a right prompt no longer needs to fork ` tput cols ` .
37+
38+ Verified green across every layer: 4323 golden cases on both the ASan
39+ and release builds, whole-script + hard corpora, the pty suite (plus a
40+ new resize test), allocator parity on both heaps, the 13-plugin corpus,
41+ and the new arena stress.
42+
43+ ---
44+
1145## v2.8.2 — * the customize-your-prompt release*
1246
1347Paste any zsh prompt tutorial into ` ~/.hellishrc ` and it now just works
0 commit comments