summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS.md84
1 files changed, 83 insertions, 1 deletions
diff --git a/NEWS.md b/NEWS.md
index 0ccf151..c484b62 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,5 +1,87 @@
1# News 1# News
2 2
3## zg v0.16.0-pre Release Notes
4
5This brings another major change to `zg`, touching basically everything.
6
7The `zg` modules no longer require allocation to use. Everything is
8kept in static memory, where it should be.
9
10With compression gone in the last release, the inconvenience and startup
11penalty of moving the data, already present _in_ static memory, over to
12the heap, was purely wasted effort. Just CPU head. So that's gone.
13
1490% of the work here was done by Jacob Sandlund, who went on to write
15his own rather interesting Unicode library, [uucode][uucode], which you
16should check out if you like galaxy-brained comptime shenanigans (I
17surely do).
18
19Zig having moved on, I needed to merge that code via massage and
20copypasta, so none of the commits survive. But it's his work, so
21thanks Jacob!
22
23I did manage to dispose of one last allocation in `CanonData`, by
24integrating Vexu's very clever [comptime hash map][chm], so, that's
25nice.
26
27### Migration
28
29Is simplicity itself: just call the module instead of calling the
30`.init` function, with an allocator, using what it returns, and
31disposing of it when you're done with it.
32
33Technically the laws of style dictate that, since these are now
34containers, and not instantiable types, they should be lowercased.
35
36I did not do that in the README. But feel free!
37
38Pro tip: use LSP superpowers to rename the instance to the name of the
39module, then just delete the initializer. Couldn't be simpler.
40
41### Emoji Module
42
43Also Jacob's work.
44
45[uucode]: https://github.com/jacobsandlund/uucode
46[chm]: https://github.com/Vexu/comptime_hash_map/blob/master/src/main.zig
47
48### graphemeClusterWidth
49
50@lch361 submitted a minor refactor which makes it cleaner to obtain the
51display width of a grapheme cluster. Thanks Lich!
52
53### The Future
54
55I hope I don't jinx it, but this is the last major change I've wanted
56to make to `zg`. I brought it up with José before he handed over
57maintainence to me, we agreed that compressing and decompressing and
58heap-allocating was one of those ideas which turned out not to pencil
59out. Hey, it happens.
60
61Features? There are few left, sure. Bugfixes? Always, of course.
62But major API changes are now unlikely.
63
64I have a "no 1.0 until Zig 1.0" policy, because no one can guarantee the
65stability of anything until that happens. Nor is `zg` actually ready
66for a stability policy; if I decide to break apart a module, or move
67something where it makes more sense, I'm going to do that.
68
69But it is _likely_ that this is the last 'global' refactor of the
70library.
71
72## zg v0.15.2-4 Release Notes
73
74Better late than never. The notes, I mean. But the release too.
75
76This was primarily a matter of getting up to Zig `0.15` compatibility.
77Minor bugfixes in word wrapping, and the display width of certain
78esoteric emoji, are also included.
79
80Compression of the data was also removed. It was removed from stdlib,
81but we could have vendored it: more importantly, it turned out to be
82basically useless. Savings per data set were in the bytes to low
83KiB range, and startup time was negatively affected.
84
3## zg v0.14.1 Release Notes 85## zg v0.14.1 Release Notes
4 86
5In a flurry of activity during and after the `v0.14.0` beta, several 87In a flurry of activity during and after the `v0.14.0` beta, several
@@ -35,7 +117,7 @@ to use a `u64` instead, and have included an explanation of why this is
35not the solution to actual problems which it at first might seem. 117not the solution to actual problems which it at first might seem.
36 118
37My job as maintainer is to provide a useful library to the community, and 119My job as maintainer is to provide a useful library to the community, and
38comptime makes it easy and pleasant to tailor types to purpose. So for those 120comptime makes it easy and pleasant to tailor types to purpose. So for those
39who see a need for `u64` values in those structures, just pass `-Dfat_offset` 121who see a need for `u64` values in those structures, just pass `-Dfat_offset`
40or its equivalent, and you'll have them. 122or its equivalent, and you'll have them.
41 123