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