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.

  • Buffalox@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    2 hours ago

    it being not obvious what happens under the hood

    To me it feels like it does things I didn’t ask it to. So I’m not 100% in control 😋

    the idiomatic version of a loop in Rust usually involves iterators and function composition.

    What? You need to make a function to make a loop? That can’t be right???

    C-loops are easy for me to understand.

    Absolutely, the way C loops work is perfect. I’m not so fond of the syntax, but at least it’s logical in how it works.

    • TriangleSpecialist@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      1 hour ago

      What? You need to make a function to make a loop? That can’t be right???

      Ah no, there is a misunderstanding. You can write C-loops, of course, they just could involve more work under the hood because in order to enforce memory safety, there needs to be some form of bounds checking that does not happen in C. Caveat: I don’t know whether that’s always true, and what the subtleties are. Maybe I’m wrong about that even, but what is true is that what I am about to say, you will encounter in Rust codebases.

      By function composition I meant in the mathematical sense. So, this example explains the gist of it. You may need to throw in a lambda function in there to actually do the job, yeah. I don’t know what the compiler actually reduces that to though.

      It’s just the more functional approach that you can also see with Haskell for example. I find it harder to parse, but that may be lack of training rather than intrinsic difficult.

      EDIT: pasted the wrong link to something totally irrelevant, fixed now