this post was submitted on 21 Feb 2025
393 points (99.5% liked)
Linux
50355 readers
1322 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I can understand Hellwig's fear, though.
From what I gather as a bystander, it's apparently common that a refactoring in your module that breaks its API will involve fixing all the call-sites to keep the effort on the person responsible for the change. Now the Rust maintainers say "it's fine; if it breaks, we'll deal with it" which is theoretically takes away the cross-language issue for the C-maintainer. Practically I can very well see, that this will still cause friction in the future.
Let's say such a change happens and at that time there's a bit of time pressure and the capacity on the rust maintainers is thing for whatever reasons. Will they still happily swallow that change or will they start to discuss if it's really necessary to do that change? And suddenly, the C-maintainer has a political discussion on top of the technical issue they wanted to solve.
As someone who just wants to get shit done, I would definitely have that fear.
(That doesn't mean it's still a bullet worth swallowing. The change overall can still be worth the friction. I am just saying that I think it's not totally unwarranted that a maintainer feels affected by this even though current pledges from the other parties promise otherwise; this stance can change or at least be challenged over and over.)
This situation could occur even if the code using the API was written in C.
If an API change breaks other downstream kernel code, and that code can't be fixed in time then they have a conversation about pushing the changes to the next build.
In the end, Linus has already chosen to accept the extra development overhead in using Rust. I think this situation was more about a maintainer, who happens to disagree with the Rust inclusion, using their position to create unnecessary friction for other maintainers.
Isn’t it just to make the code more idiomatic rust side? If there’s breaking api change c side, it’s just a matter of adjusting the interface, it should not involve any grand work, right? The contributor bringing that change over can just ping anyone familiar with the rust interface and that should be the end of it for them, can’t imagine it’d be very involved to fix