This was caught during review, so nothing was “introduced” quite yet. And there’s no indication that Linus wouldn’t have produced a race condition (a notoriously more easy to miss kind of bug) without the use of AI tools.
It’s only being exaggerated so much because he used AI.
You are correct to point out the distinction between race conditions and data races. Rust only rules out data races.
I don’t know whether the race in question was a data race or not.
I would still wager that Rust code generally has fewer race conditions than C, given that mutable aliasing can be used as symbolic prevention of race conditions, i.e. your &mut T doesn’t necessarily need to hold data; it can represent some domain concept.
aren’t language specific
There are actually languages that guarantee deterministic concurrent execution, and this can rule out larger classes of race conditions than just data races. See the Bloom language and CALM theorem.
That is something I am surprisingly okay with. Quickly figuring out if something is feasible is good, and doing it in a back of the napkin style is the norm, even without LLMs. Of course then you need to do it properly, without falling into the trap of reimplementing the slop.
This was caught during review, so nothing was “introduced” quite yet. And there’s no indication that Linus wouldn’t have produced a race condition (a notoriously more easy to miss kind of bug) without the use of AI tools.
It’s only being exaggerated so much because he used AI.
I could attribute the race condition just as much to their use of the C language as to AI.
Race conditions I’m pretty sure aren’t language specific. Rust can have them too.
You are correct to point out the distinction between race conditions and data races. Rust only rules out data races.
I don’t know whether the race in question was a data race or not.
I would still wager that Rust code generally has fewer race conditions than C, given that mutable aliasing can be used as symbolic prevention of race conditions, i.e. your
&mut Tdoesn’t necessarily need to hold data; it can represent some domain concept.There are actually languages that guarantee deterministic concurrent execution, and this can rule out larger classes of race conditions than just data races. See the Bloom language and CALM theorem.
Yes, but the tools provided by Rust:
unsafe {}block to be used.Yea he basically said “This seems to work but is slop, lead Dev, make it real.”
That is something I am surprisingly okay with. Quickly figuring out if something is feasible is good, and doing it in a back of the napkin style is the norm, even without LLMs. Of course then you need to do it properly, without falling into the trap of reimplementing the slop.