← HOME - a blog about
xit RSS
██╗ ██╗██╗████████╗██╗ ██████╗ ██████╗
╚██╗██╔╝██║╚══██╔══╝██║ ██╔═══██╗██╔════╝
╚███╔╝ ██║ ██║ ██║ ██║ ██║██║ ███╗
██╔██╗ ██║ ██║ ██║ ██║ ██║██║ ██║
██╔╝ ██╗██║ ██║ ███████╗╚██████╔╝╚██████╔╝
╚═╝ ╚═╝╚═╝ ╚═╝ ╚══════╝ ╚═════╝ ╚═════╝
DEVLOG - ZIG'S BREAKING CHANGES AND THE FUTURE OF XIT -
September 16, 2025
In the last six months, my pace with the xit project
slowed down a lot, both for personal and technical reasons.
I hit some snags in my personal life that I'm still working
through. I'm sure some reading this can relate to the
experience where ordinary pains in life can sap your
once-limitless energy and excitement over a project. The
project didn't change; only your brain did.
On the technical side, zig 0.15 brought an avalanche of
breaking changes, most of which affected xit. Through sheer
force of will I got it all working in one huge
commit, but
it looks like 0.16 will be even more work for me once it is
released.
Currently xit is still using the old-style readers and
writers, including many custom ones, that were deprecated as
part of
writergate. In 0.16 it looks like they'll be
removed completely, so I will need to convert them to use
the new design everywhere.
Additionally, zlib compression was removed from 0.15's std
lib, and there is no indication that the removal is
temporary. As a stopgap measure, I was able to just copy
that code into the xit project. However, it relies on the
old-style writers so it won't work once 0.16 is out. So,
I'll need to rewrite it to use the new writer interface, or
find another implementation.
I don't want this to sound like complaining. The
writergate changes clearly make zig better, and arguably I
"signed up for this" by using an unstable language. That
said, at my reduced capacity, I wasn't prepared for this
level of breakage this late in the game. I'm hoping I'll get
another burst of motivation to support future versions of
zig so my 2+ years of effort don't turn into bitrot.