273
submitted 6 days ago* (last edited 5 days ago) by HaraldvonBlauzahn@feddit.org to c/linux@lemmy.ml

The topic of the Rust experiment was just discussed at the annual Maintainers Summit. The consensus among the assembled developers is that Rust in the kernel is no longer experimental — it is now a core part of the kernel and is here to stay. So the "experimental" tag will be coming off. Congratulations are in order for all of the Rust for Linux team.

you are viewing a single comment's thread
view the rest of the comments
[-] TriangleSpecialist@lemmy.world 28 points 6 days ago* (last edited 6 days ago)

Enjoy! I don't know what you used to seriously program on but I am willing to bet that the ownership paradigm that it enforces is going to feel at least moderately new to you, unless you forced yourself to code that way anyways.

Plus, as long as you're doing silly little home projects, the compiler errors are the absolute best I've ever seen. Literally just learn basic syntax, try it out, and when it does not compile, the compiler not only tells you why but also what it thinks you're trying to do and how to fix.

Absolute gem of a learning tool.

[-] Buffalox@lemmy.world 5 points 6 days ago* (last edited 6 days ago)

I am willing to bet that the ownership paradigm that it enforces is going to feel at least moderately new to you

Absolutely, I am more used to program closer to the iron mostly C. My favorite was 68000 Assembly, python is nice, but I prefer compiled languages for efficiency. Although that efficiency isn't relevant for basic tasks anymore.

The compiler error messages sound extremely cool. 👍

[-] TriangleSpecialist@lemmy.world 7 points 6 days ago

Ah, a fellow C coder. Never did do assembly with chips older than x86_64 basically. The only old school stuff I touched was writing an interpreter for the CHIP-8. I tried writing some CHIP-8 too, but coming from more recent paradigms, it seemed quite unwieldy to me.

I like python for quick and dirty stuff, I don't like python for being interpreted and it being not obvious what happens under the hood, memory wise, at a glance.

Seeing as you do C I'll say this. The one thing I really did not enjoy, subjectively, with Rust, is that writing "C-style loops" comes with a performance penalty because there are bound checks happening, so the idiomatic version of a loop in Rust usually involves iterators and function composition.

I am stupid. C-loops are easy for me to understand. More sophisticated stuff is hard for my little brain. I'd rather be trusted with my memory access, and be reminded of my stupidity when comes the inevitable segfault. Keeps you humble.

[-] HaraldvonBlauzahn@feddit.org 4 points 5 days ago

The one thing I really did not enjoy, subjectively, with Rust, is that writing "C-style loops" comes with a performance penalty because there are bound checks happening, so the idiomatic version of a loop in Rust usually involves iterators and function composition.

IIRC you can speed up such checks by putting an assertion in front that checks for the largest index - this will make repeated checks for smaller indices unnecessary. Also, bound checks are often not even visible on modern CPUs because speculative execution, branch prediction, and out-of-order execution. The CPU just assumes that the checks will succeed, and works on the next step.

[-] TriangleSpecialist@lemmy.world 4 points 5 days ago* (last edited 5 days ago)

I had no idea about the assertion! Thanks.

Yes, this is plain wrong or often unimportant on modern architecture, you're right. I, certainly mistakenly, thought this was one of the reasons for the idiomatic version involving function composition, which is the thing I, subjectively, don't enjoy as much.

I stand corrected.

[-] HaraldvonBlauzahn@feddit.org 5 points 5 days ago

The function composition style comes from functional programming and Rust's OCaml heritage. It can make it easier to reason about invriants and possible sets of values of the result of a computation step.

Rust transforms these to the same or a close equivalent of hand-written loops.

Similar methods are used in specialized, high-performance C++ libraries such as blitz++ and Eigen. But if you mess up bounds, you will get UB with them.

load more comments (6 replies)
load more comments (6 replies)
load more comments (13 replies)
this post was submitted on 10 Dec 2025
273 points (96.6% liked)

Linux

57274 readers
696 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

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS