#12228

Zig 0.16 migration

Openpluiedevopened 6mo ago

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:

Activity

30
francisqureshi6mo ago

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.

francisqureshi6mo ago

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.

francisqureshi6mo ago

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.

francisqureshi6mo ago

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.

francisqureshi6mo ago

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.

francisqureshi6mo ago

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.

francisqureshi6mo ago

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.

francisqureshi6mo ago

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.

francisqureshi6mo ago

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.

francisqureshi6mo ago

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.

pluiedev6mo ago

If you can make a PR to zig-objc that will be great, as I only have access to a Linux machine :)

pluiedev6mo ago

If you can make a PR to zig-objc that will be great, as I only have access to a Linux machine :)

pluiedev6mo ago

If you can make a PR to zig-objc that will be great, as I only have access to a Linux machine :)

pluiedev6mo ago

If you can make a PR to zig-objc that will be great, as I only have access to a Linux machine :)

pluiedev6mo ago

@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?

pluiedev6mo ago

@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 :)

pluiedev6mo ago

@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 :)

pluiedev6mo ago

@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 :)

pluiedev6mo ago

@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 :)

pluiedev6mo ago

@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 :)