Unless I’m missing something, all of these functions have to be implemented in order to create an Io instance, and because it’s data, they’ll all be analyzed and end up in the code. netBindIp and secureRandom are among them.
Like how in this thread an enormous .rodata table was created, because Zig doesn’t ‘lazy’ a struct: ask for a struct, get the whole struct.
If that’s already not true, I encourage you to communicate that, because from what I’ve seen here it’s perhaps the only sticking point in the whole business. I’m only bothered in the abstract, it will make no practical difference to the code I write personally.
Measuring binary size of ZTAP before and after building under 0.16 is one of the first tasks I’ve set myself, but I’m not downloading it until Sunday. So I don’t want to jump the gun. We had a long thread on this topic in January.
Seems entirely practical to me. I mentioned “not the last release of Zig” for several reasons, including that. Many things could be done here, and this is just a size optimization, that would be a silly thing to blow out of proportion.