4 ms·
For what it's worth, Bun is written in Zig (https://bun.sh/ https://bun.sh/). The language isn't exactly in an early stage.
by warent 8mo ago
For what it's worth, Bun is written in Zig (https://bun.sh/ https://bun.sh/). The language isn't exactly in an early stage.
- eptcyka 8mo agoOh but it is.
- tomalbrc 8mo agoOh but it isn’t.
- maleldil 8mo agoThey just did a massive reactor that broke nearly 100% of existing code. Only an early language can do that.
- deleted 8mo ago[deleted]
- pmarreck 8mo agoWhat version are you referring to? I've had zero issues updating my zig stuff to 0.15.2 with frontier LLM assistance.
- kccqzy 8mo agoI’ll use Ghostty as an example because that’s the only software I use that I know is written in Zig. It’s also a moderately complex project not a toy project. Its Zig 0.15 effort started in August and was only complete in October (see first PR at https://github.com/ghostty-org/ghostty/pull/8372 https://github.com/ghostty-org/ghostty/pull/8372). And many issues were encountered and solved along the way. And of course during all of this they also encountered an issue in Zig itself: https://github.com/ziglang/zig/issues/24627 https://github.com/ziglang/zig/issues/24627
- maleldil 8mo agoThe huge change that will be passing Io objects around like you have with Allocator.
- the_mitsuhiko 8mo ago0.16 changes things around dramatically.
- pmarreck 8mo agoDocs on this?
- maleldil 8mo agoHere[1]. This mentions async, but it affects every single use of IO functions. [1] https://kristoff.it/blog/zig-new-async-io/ https://kristoff.it/blog/zig-new-async-io/
- the_mitsuhiko 8mo agoAlso anything that reads environment variables.
- pmarreck 8mo agoAh. Yeah. My main Zig project will need over 1,000 edits to get it up there :O I've already had Claude spec out the changes required. I'll just have it or Codex or whatever fork itself into one agent per file and bang on it (for the stuff I can't regex myself) ;) But the IO thing is frankly a good idea. I/O dependency injection, when I've used it in the past, has made testing quite a bit simpler (such as routing any I/O stream into a string to assert on) and the code much easier to reason about. The extra argument is a bit annoying, but that's the price of purity and it's worth it.