4 ms·
Or, don't, and have your apps still work just fine (and be portable)
by 0xbadcafebee 4y ago
Or, don't, and have your apps still work just fine (and be portable)
- eru 4y agoShouldn't you be able to hide that behind a library?
- 0xbadcafebee 4y agoYou could say that about any software at all. The point is, you don't need to use io_uring. Almost nobody does.
- eru 4y agoNo, you can't necessarily say that about any software at all. Eg the style differences between blocking and non-blocking IO are big enough, that it's hard to hide them behind a library.
- rektide 4y agoIdeally support gets built into languages & users just get a free performance boost without even thinking about it. Wouldn't that be great? Bun has io-uring support. Deno issue, https://github.com/denoland/deno/issues/16232 https://github.com/denoland/deno/issues/16232 . Node.js issue with prototype, https://github.com/libuv/libuv/issues/1947 https://github.com/libuv/libuv/issues/1947. Getting good seems interesting & compelling to me. I'm not quite sure where your dislike of this better way of doing things stems from? Even if it does mean changing how we program a bit, to actually go about adopting a better way.
- eru 4y ago> Ideally support gets built into languages [...] Depends on how narrow you want to make your definitions of 'language'. If a library can handle things ergonomically and fast, no need to bake it into the language itself. Eg Perl has regular expressions built in, but Python handles them via a library (arguably it's via the standard library). More drastically: C has a few loops built in, and Haskell handles arbitrary loops via a library and you can build your own new constructs, too. See https://hackage.haskell.org/package/monad-loops-0.4.3/docs/Control-Monad-Loops.html https://hackage.haskell.org/package/monad-loops-0.4.3/docs/C... (Incidentally, that's why Haskell is one of the best imperative languages.)
- rektide 4y agoWhat languages can we cite that have a stdlib that doesnt include either file io, network io (or if I really want to make the point: syscalls)? I can go first actually, get one answer out of the way. Javascript. But it did evolve network io, and modern JS runtimes almost all include some file/storage io. Im down with a big-language/small-language discussion, but it seems basically beside the point here. I said language, but whether it's the language or libraries doesn't seem materially interesting useful or to alter the basic lay of the discussion of what consuming io-uring may well be like for most (likely: abstracted).
- FridgeSeal 4y agoAnd so the software that wants faster IO and is prepared to make trade offs should just do what, ignore any potential advantages?
- goodpoint 4y agoNot everbody writes "apps". Some write real software that has heavy I/O requirements, e.g. databases.