from Hacker News

Using io_uring to make a high-performance finger server

by smlckz on 5/24/21, 11:31 AM with 16 comments

  • by Zababa on 5/24/21, 8:10 PM

    I tried to use finger in Ubuntu, and it doesn't display UTF-8 correctly. It seems that a patch would fix this but it's been untouched for 6 years https://bugs.launchpad.net/ubuntu/+source/bsd-finger/+bug/46...
  • by rwmj on 5/24/21, 6:20 PM

    I'm missing some "high level" context about io_uring, I might as well ask here:

    - If I want to write a multithreaded program, is it best to have one io_uring per thread?

    - Per CPU core?

    - Per device or PCIe lane to the device? (It might make sense ...)

    - Or one for the whole program? (Will Linux distribute requests across cores and run them in parallel for me?)

    - If I'm writing a library that uses io_uring, should I create my own io_uring or offer an interface to add requests to one which the main program creates? (Or perhaps both?)

  • by Zababa on 5/24/21, 12:11 PM

      const grent = match (passwd::getgroup(group)) {
        void => fmt::fatal("No '{}' group available", group),
        gr: passwd::grent => gr,
      };
    
    Interesting, is void being used as the "None" of an option type here? At least that's what it looks like to me.
  • by hawski on 5/24/21, 9:05 PM

    For confused people: it's written in author's language Hare. The language uses QBE as backend [2]. I wonder what author has against Zig (probably at least current dependence on LLVM). It reminds me of Myrddin [3], which AFAIR is connected to Suckless folks.

    [1] https://harelang.org/

    [2] https://c9x.me/compile/

    [3] https://myrlang.org/

    [4] https://suckless.org/