Alex Kirsz
alexkirsz.bsky.social
Alex Kirsz
@alexkirsz.bsky.social
Bit me a couple of times bsky.app/profile/alex...
Fun deadlock of the day: Tokio mutexes are "fair", which means that locks/acquires will complete in the order they were called. A future doesn't need to be actively polled for it to hold the lock, which makes sense as locks need to be held across .await points.
October 31, 2025 at 8:22 PM
Context: I have a single macro call generating a ton of unrelated top-level items. I’d like to understand whether this can already be split up into multiple codegen units, or whether there’s a way to nudge the compiler towards doing it. @amanieu.bsky.social mentioned splitting into modules may help.
October 11, 2025 at 10:17 AM
Thanks for your work!
September 29, 2025 at 10:46 AM
Congrats Ruben! I'll watch the recording 😄
September 29, 2025 at 10:45 AM
I would love something like that, but across our whole workspace.
June 13, 2025 at 11:15 AM
needs more liquid glass
June 11, 2025 at 1:47 PM
If you change that syntax to `#[facet(default(some_func()))]`, rustfmt will also be able to format within the attribute (and you still get RA go-to-def!)

IIRC it won't format the `=` form because it's not valid Rust syntax.
April 29, 2025 at 2:19 PM
What about "miroir"?
April 6, 2025 at 10:01 AM
Would love to start seeing better Supermaven integration! For some reason, the Zeta model does very poorly on our codebase, even on repetitive boilerplate code with dozens of examples.
March 14, 2025 at 5:06 PM
fut1 is polled once, which is enough for it to request a lock on a mutex without actually getting it as it's already locked elsewhere. Once the other lock is dropped, fut2 requests a lock, but will never get it as fut1 is still alive, even if it isn't actively being polled.
February 25, 2025 at 3:26 PM
Here's a playground example of the issue play.rust-lang.org?%E2%80%94=st...
Rust Playground
A browser interface to the Rust compiler to experiment with the language
play.rust-lang.org
February 25, 2025 at 3:26 PM
However, a more surprising effect of this is that the future doesn't need to have been notified about the mutex being locked at all for it to hold the lock anyway. It just needs to have started .awaiting it and not have been dropped.
February 25, 2025 at 3:26 PM
When’s the next one?
February 16, 2025 at 12:47 PM
You could pass it as a path that references the actual implementation function. Like serde(serialize_with).
February 7, 2025 at 6:32 PM
Derive macro attribute?

#[derive(Foo)]
#[foo(bar = “bar”)]
struct S;
February 7, 2025 at 5:27 PM
If you're using Bazel instead of Cargo, you could make a third crate that both crate 1 and crate 2 depend on, which contains a public type which is necessary to implement and/or name `SomeTrait`. Then make that crate only visible to crate 1 and crate 2.
February 6, 2025 at 5:59 PM
I’m on macOS, running rust-analyzer on a large Bazel project.
January 27, 2025 at 3:52 PM
Also, Zed sometimes stop being able to open and read new files. I've seen it report "too many files open" in the past, but now it seems to fail silently. Also reported this a while back. This happens around once a day on a large monorepo.
January 27, 2025 at 2:54 PM
I’ve created a few already 😄
January 26, 2025 at 10:19 AM
The one thing that keeps me at the edge of switching to VS Code and back is the quality of the Supermaven integration. Things like suggestions not refreshing, support for replacement suggestions, etc. I reverted to Copilot this week because it got to the point where it was slowing me down.
January 25, 2025 at 7:16 PM
I feel the Zed integration is particularly bad and got worse recently. I recall it being leagues better on VS Code. But it might be the model itself has changed.
January 24, 2025 at 8:40 AM
...rustc
January 17, 2025 at 1:53 PM