We’ve been searching for a memory-safe programming language to replace C++ in Ladybird for a while now. We previously explored Swift, but the C++ interop never quite got there, and platform support outside the Apple ecosystem was limited. Rust is a different story. The ecosystem is far more mature for systems programming, and many of our contributors already know the language. Going forward, we are rewriting parts of Ladybird in Rust.

Porting LibJS

I used Claude Code and Codex for the translation. This was human-directed, not autonomous code generation. I decided what to port, in what order, and what the Rust code should look like. It was hundreds of small prompts, steering the agents where things needed to go. After the initial translation, I ran multiple passes of adversarial review, asking different models to analyze the code for mistakes and bad patterns.

  • darkkite@lemmy.ml
    link
    fedilink
    arrow-up
    4
    arrow-down
    2
    ·
    4 hours ago

    The requirement from the start was byte-for-byte identical output from both pipelines. The result was about 25,000 lines of Rust, and the entire port took about two weeks. The same work would have taken me multiple months to do by hand. We’ve verified that every AST produced by the Rust parser is identical to the C++ one, and all bytecode generated by the Rust compiler is identical to the C++ compiler’s output. Zero regressions across the board:

    Seems like a non-issue.

  • CarrotsHaveEars@lemmy.ml
    link
    fedilink
    arrow-up
    3
    ·
    4 hours ago

    Your final hope at this point is announcing you will not use LLM to write any part of your program, including tests. Adopting a language which your developers are less familiar is bad enough, and you’re writing it with LLM? I’d rather you stick with C++.

  • morto@piefed.social
    link
    fedilink
    English
    arrow-up
    23
    arrow-down
    1
    ·
    8 hours ago

    We need competition in the browser market, ANY competition!

    * ladybird appears *

    Well… that was on me, I set the bar too low

  • Solumbran@lemmy.world
    link
    fedilink
    arrow-up
    63
    arrow-down
    11
    ·
    edit-2
    11 hours ago

    “We want rust for safety. That’s why we made the code in the most unreliable way to code known to humanity”.

    Not surprising from the devs that think that not being a fascist is political I guess

    Edit : ah apparently the guy is not trying to be an enlightened centrist anymore and is a full-on nazi. Heh, who could have guessed? /s

      • Solumbran@lemmy.world
        link
        fedilink
        arrow-up
        13
        arrow-down
        1
        ·
        9 hours ago

        It keeps on coming back and ladybird supporters keep on trying to tone it down because they don’t want the project to die. But yeah, the guy seems like a big piece of shit.

    • SwooshBakery624 [they/them]@programming.devOP
      link
      fedilink
      English
      arrow-up
      9
      arrow-down
      7
      ·
      edit-2
      10 hours ago

      I will copy my comment here:

      Just so you know, Drew DeVault is a pedophile apologist. He cannot even remotely be considered a reliable source of information.

      However, I completely agree regarding the use of AI, especially in a project such as a browser engine.

      EDIT: I accidentally replied to this comment instead of the one with the link to Drew DeVault’s blog. My bad.

      • orc girly@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        4 hours ago

        That is appalling, and I don’t mean to diminish the importance of this, but if the claims on fascism stand to scrutiny then it’s not relevant, and if the claims don’t stand to scrutiny they can be easily refuted.

        Edit: and to be clear, I know DHH, I’ve read his blog and his social media activity, he’s clearly a fascist.

      • UnspecificGravity@piefed.social
        link
        fedilink
        English
        arrow-up
        6
        arrow-down
        3
        ·
        9 hours ago

        Most of the information that you get about terrible people comes from terrible people because that is who knows them. Should we discount Trump accusations from Epstein because they came from a known pedo? No, pedos are the people that Trump hangs out with because that is what he is.

        • TomAwezome@lemmy.world
          link
          fedilink
          arrow-up
          1
          arrow-down
          6
          ·
          8 hours ago

          Given that Drew Devault has pity for pedophiles, the correct choice is to discount anything he says, much like you should discount anything Trump or Epstein claims without further primary sources of evidence from unaffiliated parties

          • Spectrism@lemmy.dbzer0.com
            link
            fedilink
            arrow-up
            3
            arrow-down
            1
            ·
            edit-2
            7 hours ago

            This is not at all comparable to Trump/Epstein. Drew was only pitying pedophiles, not actual rapists This may come as a surprise to you, but there is a very clear difference (one is a choice, the other is not).

            • TomAwezome@lemmy.world
              link
              fedilink
              arrow-up
              1
              arrow-down
              4
              ·
              7 hours ago

              Nobody should pity pedophiles, you should want them removed from society permanently. If that’s controversial, so be it

              • velocidinodinodino@feddit.org
                link
                fedilink
                arrow-up
                4
                ·
                6 hours ago

                Then you’ve probably never really thought about what pedophilia actually means. My partner works with pedophiles in a clinical setting and there’s way more people with pedophile tendencies than you’d think (or at least than I thought). Most of them realise it’s a problem early on and seek help, some live in shame for most of their lives and only a tiny percentage actually does something to kids. Obviously, this shouldn’t happen at all (!!) but saying „all pedophiles should be removed from society“ is no solution to anything. Just to be sure: I have no idea what the ladybird-guy said about this topic, nor do I know who he is (or even what Ladybird is. I now know it’s a Browser, but that’s it).

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

                  Some people are truly sick and need a lot of help to change how their minds work. I respect your partner and their line of work. Hopefully they all can undergo thorough and intensive rehabilitative care as far away from society as possible until they are fit to be around vulnerable people.

                • TomAwezome@lemmy.world
                  link
                  fedilink
                  arrow-up
                  1
                  arrow-down
                  2
                  ·
                  6 hours ago

                  You’d agree of course, that pedophiles should be removed from society? Is the idea of shaming pedophiles and pedo apologists some kind of line in the sand that shouldn’t be crossed in your eyes?

    • Midnitte@beehaw.org
      link
      fedilink
      English
      arrow-up
      10
      ·
      7 hours ago

      Given that Servo was already written in rust (and not just some of it), it does feel a bit like wasted effort.

      (Plus, it was started by Mozilla, so theres the irony factor)

    • HubertManne@piefed.social
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      11
      ·
      11 hours ago

      I came to say this sounds like a good example of how to use ai. Its going to be used but the big problem is folks who will take the output and say good enough.

      • Blisterexe@lemmy.zip
        link
        fedilink
        arrow-up
        4
        arrow-down
        9
        ·
        11 hours ago

        Yeah, using AI to help you rewrite code (which is tedious) in a scenario where there are clear test cases (it either works or it doesn’t) is basically the ideal usecase.

        • gravitas_deficiency@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          11
          arrow-down
          3
          ·
          9 hours ago

          …no… this is a bad idea. Especially in a browser, given the myriad safety and security concerns in play. This is an objectively bad way to make changes to the project. I can just about guarantee they’re going to introduce some horrid subtle flaws.

          • Blisterexe@lemmy.zip
            link
            fedilink
            arrow-up
            5
            ·
            8 hours ago

            I may be misinformed but the article says

            We’ve verified that every AST produced by the Rust parser is identical to the C++ one, and all bytecode generated by the Rust compiler is identical to the C++ compiler’s output.

            which I took to mean that the new code behaves 100% identically to the old code, like a byte-perfect decompilation. If that’s not the case and it’s just the same in their suite of tests then I’d agree with you.

            • Liketearsinrain@lemmy.ml
              link
              fedilink
              arrow-up
              8
              ·
              6 hours ago

              It depends on how extensive (and correct) the tests are, which can be pretty difficult. There is also maintainability of generated code.