Readit News logoReadit News
tavianator commented on lsr: ls with io_uring   rockorager.dev/log/lsr-ls... · Posted by u/mpweiher
rockorager · a month ago
Oh that's cool. `find` is another tool I thought could benefit from io_uring like `ls`. I think it's definitely worth enabling io_uring for single threaded applications for the batching benefit. The kernel will still spin up a thread pool to get the work done concurrently, but you don't have to manage that in your codebase.
tavianator · a month ago
I did try it a while ago and it wasn't profitable, but that was before I added stat() support. Batching those is probably good
tavianator commented on lsr: ls with io_uring   rockorager.dev/log/lsr-ls... · Posted by u/mpweiher
rockorager · a month ago
Author of the project here! I have a little write up on this here: https://rockorager.dev/log/lsr-ls-but-with-io-uring
tavianator · a month ago
My bfs project also uses io_uring: https://github.com/tavianator/bfs/blob/main/src/ioq.c

I'm curious how lsr compares to bfs -ls for example. bfs only uses io_uring when multiple threads are enabled, but maybe it's worth using it even for bfs -j1

tavianator commented on Pathfinding   juhrjuhr.itch.io/deep-spa... · Posted by u/sebg
juhrjuhr · 3 months ago
Hello!

I'm the developer of this game. Thanks very much for your interest and discussion here :)

I'm starting to feel like I didn't go into enough detail with my post, since there's a lot I could talk about and also a lot I could benchmark to give you some actual numbers on performance. But maybe I'll leave that for a different post in the future.

The game I'm developing is a commercial project, so it would be silly to be on the front page of HN and not try to direct people towards the commercial side of things. Here is the link to the game's steam page, you can wishlist and maybe buy the game when it's released so I can afford living expenses and expensive coffee beans: https://store.steampowered.com/app/3656660/Deep_Space_Exploi...

Thank you! :)

tavianator · 3 months ago
You may want to look into improvements to A* for grids, like Rectangular Symmetry Reduction.
tavianator commented on Show HN: HelixDB – Open-source vector-graph database for AI applications (Rust)   github.com/HelixDB/helix-... · Posted by u/GeorgeCurtis
GeorgeCurtis · 3 months ago
we just started off as a side project and thought the name fitted well. With the strands, graph type structure, connections...

We didn't think of getting people to use it until we found it was solving a real pain point for people, so weren't worried about trademarks or names. There was no other helix db so that was good enough for us at the time.

tavianator · 3 months ago
tavianator commented on Understanding Memory Management, Part 5: Fighting with Rust   educatedguesswork.org/pos... · Posted by u/Curiositry
demurgos · 4 months ago
My understanding is that "ad-hoc" in this context means that you are not defining a single generic implementation but adding individual impls for specific types. There's no fundamental difference between Java's overloading and Rust's implicitly inferred trait implementations in my opinion.

Rust's implementation is more orthogonal, so specifying which impl you want explicitly does not require special syntax. It's also based on traits so you'd have to use a non-idiomatic style if you wanted to use overloading as pervasively as in Java. But are those really such big differences? See my reply to the original where I post an example using Rust nightly that is very close to overloading in other languages.

tavianator · 4 months ago
They were referencing the title of a specific paper, which invented type classes: https://dl.acm.org/doi/10.1145/75277.75283
tavianator commented on Driving Compilers (2023)   fabiensanglard.net/dc/ind... · Posted by u/misonic
unwind · 4 months ago
I agree, but I have to point out that if you're gonna be like that, then you should be explicit about your final

    return 0;

tavianator · 4 months ago
The C standard (since C99) says that `main()` has an implicit `return 0`, you don't need to write it explicitly.
tavianator commented on Parallel ./configure   tavianator.com/2025/confi... · Posted by u/brooke2k
Chocimier · 4 months ago
It is possible in theory to speed up existing configure scripts by switching interpreter from /bin/sh to something that scans file, splits it to independent blocks and runs them in parallel.

Is there any such previous work?

tavianator · 4 months ago
I was looking for a relevant paper and found this one, which isn't what I was looking for but is related: https://sigops.org/s/conferences/hotos/2023/papers/liargkova...
tavianator commented on Parallel ./configure   tavianator.com/2025/confi... · Posted by u/brooke2k
tekknolagi · 4 months ago
This doesn't mention another use of configure which is manually enabling or disabling features via --with-X -- I might send in a PR for that
tavianator · 4 months ago
My actual "production" implementation of this concept does support that: https://github.com/tavianator/bfs/blob/main/configure

But I wanted the blog post sized version to be simpler for exposition.

tavianator commented on Parallel ./configure   tavianator.com/2025/confi... · Posted by u/brooke2k
OskarS · 4 months ago
Meson and cmake in my experience are both MUCH faster though. It’s much less of an issue with these systems than with autotools.
tavianator · 4 months ago
Just tried reconfiguring LLVM:

    27.24s user 8.71s system 99% cpu 36.218 total
Admittedly the LLVM build time dwarfs the configuration time, but still. If you're only building a smaller component then the config time dominates:

    ninja libc  268.82s user 26.16s system 3246% cpu 9.086 total

u/tavianator

KarmaCake day431November 20, 2012
About
[ my public key: https://keybase.io/tavianator; my proof: https://keybase.io/tavianator/sigs/4gTWU8ZsLQerX7b8g6Mo023-HRzovm9BiZI_1ESRxEw ]
View Original