cross-posted from: https://lemmy.world/post/25857381

Hellwig is the maintainer of the DMA subsystem. Hellwig previously blocked rust bindings for DMA code, which in part resulted in Hector Martin from stepping down as a kernel maintainer and eventually Asahi Linux as a whole.

  • LeFantome@programming.dev
    link
    fedilink
    arrow-up
    41
    arrow-down
    2
    ·
    2 days ago

    I do not know why you say it is easy to break.

    The Rust team are maintaining their side. I do not expect it to break. And the C code that the Rust code depends on is used by lots of other code. It should be a stable interface. Changing the C code just to break the Rust code would break a lot of C code too and upset a lot of folks.

    And the who point is to create a more idiomatic interface on the Rust side. So, even if the c interface does change, it may only be a small amount of Rust code that needs to change in response.

    • jerakor@startrek.website
      link
      fedilink
      arrow-up
      1
      arrow-down
      4
      ·
      1 day ago

      Yea and if the Rust developers don’t show up to the show? Rust is a baby and it has done so little on its own. This isn’t a neat little side project, this is code that a major vendor will want to take up and will demand be maintained. There are implications on a global scale.

      • LeFantome@programming.dev
        link
        fedilink
        arrow-up
        11
        ·
        1 day ago

        This is such a red herring.

        The Rust side we are talking about here have been involved for years. They have written amazing code (eg. Apple Silicon GPU drivers). There is an official Fedora spin based on their work.

        What makes you think any of that is going to go away?

        In fact, this whole incident shows their depth as the project lead quit Linux in disgust and was quickly replaced with another talented, dedicated, and proven developer.

        There is a lot more drive-by C code you should worry about.

    • aksdb@lemmy.world
      link
      fedilink
      arrow-up
      3
      arrow-down
      6
      ·
      edit-2
      2 days ago

      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.)

      • FauxLiving@lemmy.world
        link
        fedilink
        arrow-up
        15
        ·
        1 day ago

        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.

        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.

      • orgrinrt@lemmy.world
        link
        fedilink
        arrow-up
        2
        arrow-down
        1
        ·
        2 days ago

        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