Commit c7f40dd
quantcpp 0.8.2: add quant_free_string, eliminate ask() leak
New public C API export in quant.h:
void quant_free_string(char* str);
The implementation lives in the same translation unit as quant_ask, so
its free() call uses the dylib's own malloc zone — no cross-heap abort
on macOS arm64 / Windows. Python ctypes wrapper calls it instead of the
v0.8.1 skip-and-leak workaround.
Backwards compat: bindings use hasattr(lib, 'quant_free_string') so
older loaded single-headers still work (with the old leak behavior).
New PyPI installs ship the updated quant.h.
Verified: 3x consecutive Model.ask() calls clean exit under faulthandler.
Honest correction track now at 7 (all self-found, all logged).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent eb41858 commit c7f40dd
5 files changed
Lines changed: 56 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
3 | 32 | | |
4 | 33 | | |
5 | 34 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
| 24 | + | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| |||
159 | 159 | | |
160 | 160 | | |
161 | 161 | | |
162 | | - | |
163 | | - | |
164 | | - | |
165 | | - | |
166 | | - | |
167 | | - | |
168 | | - | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
169 | 167 | | |
170 | 168 | | |
171 | 169 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
134 | 134 | | |
135 | 135 | | |
136 | 136 | | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
137 | 144 | | |
138 | 145 | | |
139 | 146 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
61 | 67 | | |
62 | 68 | | |
63 | 69 | | |
| |||
15770 | 15776 | | |
15771 | 15777 | | |
15772 | 15778 | | |
| 15779 | + | |
| 15780 | + | |
| 15781 | + | |
| 15782 | + | |
| 15783 | + | |
| 15784 | + | |
| 15785 | + | |
15773 | 15786 | | |
15774 | 15787 | | |
15775 | 15788 | | |
| |||
0 commit comments