summaryrefslogtreecommitdiff
path: root/NEWS.md
diff options
context:
space:
mode:
Diffstat (limited to 'NEWS.md')
-rw-r--r--NEWS.md46
1 files changed, 46 insertions, 0 deletions
diff --git a/NEWS.md b/NEWS.md
new file mode 100644
index 0000000..ca8308d
--- /dev/null
+++ b/NEWS.md
@@ -0,0 +1,46 @@
1# News
2
3## zg v0.14.0 Release Notes
4
5This is the first minor point release since Sam Atman (me) took over
6maintenance of `zg` from the inimitable José Colon, aka
7@dude_the_builder.
8
9As it's a fairly complex project, I'm adding a NEWS.md so that users
10have a place to check for changes.
11
12### Data is Unmanaged
13
14This is the biggest change. Prior to `v0.14`, all structs which need
15heap allocation no longer have a copy of their allocator. It was felt
16that this was redundant, especially when several such structures were
17in use, and it reflects a general trend in the standard library toward
18fewer managed data structures.
19
20Getting up to speed is a matter of passing the allocator to `deinit`.
21
22This change comes courtesy of [lch361](https://lch361.net), in his
23first contribution to the repo. Thanks Lich!
24
25### Grapheme Iterator Creation
26
27This is a modest streamlining of how a grapheme iterator is created.
28
29Before:
30
31```zig
32const gd = try grapheme.GraphemeData.init(allocator);
33defer gd.deinit();
34var iter = grapheme.Iterator.init("🤘🏻some rad string! 🤘🏿", &gd);
35```
36
37Now:
38
39```zig
40const gd = try grapheme.GraphemeData.init(allocator);
41defer gd.deinit(allocator);
42var iter = gd.iterator("🤘🏻some rad string! 🤘🏿");
43```
44
45You can still make an iterator with `grapheme.Iterator.init`, but the
46second argument has to be `&gd.gd`.