Zig 0.16 is coming soon judging by the recent work that has been pouring into its release notes, as such we should think about readying the codebase now.
The major breaking change this time is the new std.Io interface that will be part of any code that has to access basically any system interface (filesystem, threads, timers, etc.), and OS-specific APIs like std.posix has almost been completely removed. This will likely be an even greater challenge compared to Writergate due to how much we rely on libxev for these sorts of tasks. I would recommend trying to port the codebase to use a generic std.Io implementation, and polyfilling in the features we need but aren't quite in the standard library yet — then we could either try to run the whole program off of std.Io.Evented, or try to repackage libxev as yet another std.Io implementation.
Other than libxev, these other Zig dependencies need to be migrated:
-
libvaxis— No ongoing migration upstream -
z2d— has a Zig 0.16 branch: https://github.com/vancluever/z2d/tree/zig-0.16 -
zig-objc— No ongoing migration upstream (likely works in Zig 0.16 already?) -
zig-js— open PR: https://github.com/mitchellh/zig-js/pull/10 -
uucode— has a Zig 0.16 branch: https://github.com/jacobsandlund/uucode/tree/zig-0.16 -
zig-wayland— open PR: https://codeberg.org/ifreund/zig-wayland/pulls/114 -
zf— No ongoing migration upstream -
gobject— No ongoing migration
Activity
30I'd love to help out with this, I've been wanting to start contributing on Ghostty for some time and I've been working on Zig Master on my own Zig projects that use zig-objc so can for sure help there as I have a simple fork at the moment.
I'd love to help out with this, I've been wanting to start contributing on Ghostty for some time and I've been working on Zig Master on my own Zig projects that use zig-objc so can for sure help there as I have a simple fork at the moment.
I'd love to help out with this, I've been wanting to start contributing on Ghostty for some time and I've been working on Zig Master on my own Zig projects that use zig-objc so can for sure help there as I have a simple fork at the moment.
I'd love to help out with this, I've been wanting to start contributing on Ghostty for some time and I've been working on Zig Master on my own Zig projects that use zig-objc so can for sure help there as I have a simple fork at the moment.
I'd love to help out with this, I've been wanting to start contributing on Ghostty for some time and I've been working on Zig Master on my own Zig projects that use zig-objc so can for sure help there as I have a simple fork at the moment.
I'd love to help out with this, I've been wanting to start contributing on Ghostty for some time and I've been working on Zig Master on my own Zig projects that use zig-objc so can for sure help there as I have a simple fork at the moment.
I'd love to help out with this, I've been wanting to start contributing on Ghostty for some time and I've been working on Zig Master on my own Zig projects that use zig-objc so can for sure help there as I have a simple fork at the moment.
I'd love to help out with this, I've been wanting to start contributing on Ghostty for some time and I've been working on Zig Master on my own Zig projects that use zig-objc so can for sure help there as I have a simple fork at the moment.
I'd love to help out with this, I've been wanting to start contributing on Ghostty for some time and I've been working on Zig Master on my own Zig projects that use zig-objc so can for sure help there as I have a simple fork at the moment.
If you can make a PR to zig-objc that will be great, as I only have access to a Linux machine :)
If you can make a PR to zig-objc that will be great, as I only have access to a Linux machine :)
If you can make a PR to zig-objc that will be great, as I only have access to a Linux machine :)
If you can make a PR to zig-objc that will be great, as I only have access to a Linux machine :)
@jacobsandlund Looks like the API changed a lot with the Zig 0.16 branch. I'm not smart enough to figure out how to port our uucode setup to the new system — could you maybe lend a hand?
@jacobsandlund Looks like the API changed a lot with the Zig 0.16 branch. I'm not smart enough to figure out how to port our uucode setup to the new system — could you maybe lend a hand?
Update: never mind, I figured this out myself :)
@jacobsandlund Looks like the API changed a lot with the Zig 0.16 branch. I'm not smart enough to figure out how to port our uucode setup to the new system — could you maybe lend a hand?
Update: never mind, I figured this out myself :)
@jacobsandlund Looks like the API changed a lot with the Zig 0.16 branch. I'm not smart enough to figure out how to port our uucode setup to the new system — could you maybe lend a hand?
Update: never mind, I figured this out myself :)
@jacobsandlund Looks like the API changed a lot with the Zig 0.16 branch. I'm not smart enough to figure out how to port our uucode setup to the new system — could you maybe lend a hand?
Update: never mind, I figured this out myself :)
@jacobsandlund Looks like the API changed a lot with the Zig 0.16 branch. I'm not smart enough to figure out how to port our uucode setup to the new system — could you maybe lend a hand?
Update: never mind, I figured this out myself :)
I'd love to help out with this, I've been wanting to start contributing on Ghostty for some time and I've been working on Zig Master on my own Zig projects that use zig-objc so can for sure help there as I have a simple fork at the moment.