Hello, first time here and first of all i want to say that i value Zig core Team and their work they did so far. I never loved programming language as much as i love zig. I am just learning so much from the language and its standard library. Like what dude invented std memory pool with self contained linked list is just as clever as could possibly be! Just perfect.
Tho I was recently messing with The New IO Interface introduced in 0.16.0 and so far i love it. Since IO interface is mainly bunch of very OS dependent functions and less shared logic, i found it confusing to be all stick and glued together in single Io/Threaded.zig file (speaking of Io.Threaded specifically). Itâs pretty hard to follow but i am getting used to it, the reason i was digging in, is that i am heavy windows user (sadly more devs and end users are as well). So my plan was investigate options and experiment with my own IOCP based event loop (with NTDll only btw). Lucky I found a lot of code i could use directly inside Threaded.zig that already helps me with proper structs and windows dependent abstraction, sadly on other hand bunch of these windows dependent functions are not exported or available for std end users.
Right now, i am on my way to learn more about stackfull coroutines and fiber context switching directly on windows, i would like to ask if anyone knows any good resources where i could find more on this topic! So far its lot of assembly magic for me, thanks.
Anyway since i am posting this in âEXPLAINâ section, i would appreciate if anyone could explain or linked me some juicy resources related to following topics/questions.
- Ideas behind implementing
Io.Threadedas whole VS as very OS specific implementation for exampleIo/Threaded.Windows.zigand other OS alternatives, and if there are any benefits in implementing it as whole or vice versa. - Anything to stackfull curoutines / fiber context switches, any material related to that would be really appreciated!!!
- How concrete the implementations of IO interface are? And if there is still chance it might change before
1.0releases, if so what parts are might be considered and what are not. - Also i am curious what other members of this clever community found interesting that i might look at next, so share anything thank you
Again, shout out to the core team for their work they did and do!!!