You can find the talks of Zigtoberfest 2024 on youtube: https://m.youtube.com/@zigtoberfest/videos. The audio quality isn’t that good but I’ve already invested in better microphones.
Are the examples from Andrew available somewhere? The talks were awesome and it’s a pleasure to see how fast Zig is evolving and bringing so much on the table.
A couple of weeks ago, my cloud provider bill suddenly and unexpectedly went through the roof. To react quickly and figure out what was going on, I did what anyone would do in 2025: I sent the server logs to ChatGPT and asked it to analyze them and tell me what to do.
Of course, these logs contained a ton of private information that should never be shared with third parties, but whatever. Just before that, I had already used an MCP server to get insights about another service, using private data as well. So I was probably already on my way to hell.
Or maybe not.
In this talk, I’ll introduce techniques for using untrusted third-party services to analyze private information without ending up burning in hell.
I think example 7 is slightly misleading. It is only correct because the io.sleep(.fromSeconds(1), .awake) catch {}; line does a lot of heavy-lifting by ensuring that the error and success code paths are the same.
If there was a try after the allocation (for example if someone wrote try io.sleep(), which is very natural to do) then we would need to also add an errdefer gpa.free(copied_string) or something like that.
This particular example is fine (canceling sleep() is just a shorter sleep) but usually functions creating resources do not return the resource if an error happened inside – they return an error. I think example 7 would be less magical if it handled the io.sleep() errors explicitly.