lvkv
Joined 5 years ago
Joined 5 years ago
Having worked in both C++ and Rust codebases professionally, my experience has been the complete opposite. I have to be extremely cautious when making changes to C++ codebases, (especially async ones) and it’s always a huge time sink trying to just get the damn thing and its tests compiled. Rust’s compiler and tooling, on the other hand, allow me to make high-pressure changes much more confidently. It’s not perfect, but I’ll take it over the average C++ project every time
> The page you're on right now is my mess. Now go create yours!
Deadlocks are still possible when using fibers backed by a single thread if you serialize your fiber execution. Here’s an example I’ve seen in the wild:
Imagine a serialized job server implemented with fibers that, when closed, waits for all jobs to finish by posting a final bookend job and waiting for it to finish. This works, unless you decide to close the server inside one of your serialized jobs—you’ve now created a deadlock where your job server is waiting for itself to finish closing.
I’m sure an N:1 deadlock is also possible without serialization, but I can only think of contrived examples.
Attempting to transfer ownership of a repository to another user was aborted if the user had a repository of the same name—even if it was private.
Public GitHub doesn’t seem to have this issue with the transfer request system, though. Maybe it did at some point?
I’m particularly interested in: - Is Clearspace cheaper over time?
- Does Clearspace work on websites as well as apps?
- Does Clearspace require manual Shortcuts setup like One Sec does?
- Are there features here that I don’t know I want?
https://lukas.dev/posts/how-to-trust-again/
Digital signatures, media verification, authenticity and more are all covered!
a[index]
as syntactic sugar for the pointer arithmetic: *(a + index)
From this point of view, the existence of a “backwards” index operator makes sense; the arithmetic evaluates to the same address.