6 ms·
Does the removal of “experimental” now mean that all maintainers are now obligated to not break Rust code?
by dcrazy 10mo ago
Does the removal of “experimental” now mean that all maintainers are now obligated to not break Rust code?
- teekert 10mo agoYeah I was wondering about that one angry bearded guy in that movie. He will be very upset.
- bpavuk 10mo agoI am missing some context, did not follow the Linux/Rust drama. which guy?
- grimgrin 10mo agolinus torvalds
- teekert 10mo agoI can't find the movie, but there was a guy angry that stated that he should not have to learn Rust, nobody should. And Rust should not be in the kernel.
- xphos 10mo agoIts in a talk about File systems in Rust for Linux. Basically the rust maintainer who I think stepped down was talking about how the C-code base for VFS has a lot of documented but complex orderings where you have to call a lock, or pin before accessing an Inode(or something) one way but not the other. They made a bunch of Rust Types so you basically could not produce an illegal ordering and got heckled pretty hard by the "bearded guy". They basically run out the presentation time with heckling and I think the Rust maintainer quit a few months later (over many similar instances of this. don't quote me time line here) [source] https://www.youtube.com/watch?v=WiPp9YEBV0Q https://www.youtube.com/watch?v=WiPp9YEBV0Q
- dralley 10mo agoIIRC, the point was actually that they were undocumented in many cases, and that the Rust developers were willing to take on a lot of work, but they would need help with understanding all of the hidden and implicit "rules", but that they had received pushback for simply asking questions or asking for documentation to be comprehensive.
- xphos 10mo agoOkay I felt that they were undocumented but I was trying to be charitable to the bearded man :D. I didn't have time to watch the video again haha. But Yeah the push back at the suggestion was very surprising.
- GuB-42 10mo agoLinus Torvalds greenlit Rust in the kernel, and as a BDFL, he is the one to decide. He has no reason to be upset with any decision because ultimately, all decisions are his own. If he didn't want Rust in the kernel, he would have said it, and there would have been no Rust in the kernel. It is also the reason why there is no C++ in the kernel, Linus doesn't like C++. It is that simple. And I respect that, Linux is hugely successful under Linus direction, so I trust his decisions, whatever opinion I have about them.
- grimgrin 10mo agoI only typed Linus Torvald not realizing the person was asking for a "movie character" quite literally, lol. I thought "you mean the guy famous for (among many things..) his behavior?" This is the first time I've had a comment hit -3 which, I mean, I get it!!
- teekert 10mo agoMy bad perhaps, in my language Movie and Video and sometimes (Film) are (or can) all be the same word.
- mewse-hn 10mo agoTed T'so: "Here’s the thing: you’re not going to force all of us to learn Rust." https://arstechnica.com/gadgets/2024/09/rust-in-linux-lead-retires-rather-than-deal-with-more-nontechnical-nonsense/ https://arstechnica.com/gadgets/2024/09/rust-in-linux-lead-r... https://youtu.be/WiPp9YEBV0Q?t=1529 https://youtu.be/WiPp9YEBV0Q?t=1529
- bonzini 10mo agoThat was way way blown out of proportion. https://lwn.net/Articles/991062/ https://lwn.net/Articles/991062/ has a much less somber quote from just three months later: > Ted Ts'o said that the Rust developers have been trying to avoid scaring kernel maintainers, and have been saying that "all you need is to learn a little Rust". But a little Rust is not enough to understand filesystem abstractions, which have to deal with that subsystem's complex locking rules. There is a need for documentation and tutorials on how to write filesystem code in idiomatic Rust. He said that he has a lot to learn; he is willing to do that, but needs help on what to learn
- dralley 10mo agoTed was being an asshole, nobody was asking him to learn Rust, he completely misinterpreted the point being made and then proceeded to go on an angry rant for like 5 minutes in the middle of a presentation which just is kind of disrespectful.
- teekert 10mo agoYes that was it indeed thanx for finding it. I kept coming to this video but couldn't find the time index.
- veidelis 10mo agoIs rust code part of user space?
- dxroshan 10mo agoProjects like GNOME are increasingly using Rust.
- veidelis 10mo agoFrom kernel side, I meant - I wasn't clear. Now I understand what's the meaning of "don't break rust code". Happy that rust's journey in the kernel is successful so far. The pace seems strong.
- josephg 10mo agoThis is the Linux kernel. User space can do whatever it wants.
- mort96 10mo agoNo maintainer is obligated to not break any part of Linux other than the user space API, there are no stable in-kernel APIs
- simonask 10mo agoWhat they mean is that the Linux kernel has a long-standing policy to keep the whole kernel compilable on every commit, so any commit that changes an internal API must also fix up _all_ the places where that internal API is used. While Rust in the kernel was experimental, this rule was relaxed somewhat to avoid introducing a barrier for programmers who didn't know Rust, so their work could proceed unimpeded while the experiment ran. In other words, the Rust code was allowed to be temporarily broken while the Rust maintainers fixed up uses of APIs that were changed in C code.
- Imustaskforhelp 10mo agoSo does this mean that the C developers might need to learn Rust or cooperate more with the rust developer team basically?
- bmicraft 10mo agoThat's exactly the original question.
- eru 10mo agoI guess in practice you'd want to have Rust installed as part of your local build and test environment. But I don't think you have to learn Rust any more (or any less) than you have to learn Perl or how the config script works. As long as you can detect if/when you break it, you can then either quickly pick up enough to get by (if it's trivial), or you ask around.
- jacquesm 10mo agoThe proof of the pudding will be in the eating, the rust community better step up in terms of long term commitment to the code they produce because that is the thing that will keep this code in the kernel. This is just first base.
- chippiewill 10mo agoI believe the removal of the "experimental" nomenclature is just an indication that Rust is "here to stay" in the kernel (which essentially means that developers can have confidence investing in writing Rust based drivers). The overall rules haven't changed. Strictly speaking they've always been obligated to not break the Rust code, but the R4L developers have agreed to fix it on some subsystems behalf IIRC so Rust can be broken in the individual subsystem trees. But I think it's been the case all along that you can't send it to Linus if it breaks the Rust build, and you probably shouldn't send it to linux-next either.