Zuletzt aktualisiert am

Ladybird beginnt mit Hilfe von KI mit der Neuprogrammierung seiner Browser-Engine in Rust

Das Ladybird-Browser-Projekt führt Rust neben C++ ein und portiert seine JavaScript-Engine mit identischer Ausgabe und ohne Regressionen.
Eine Übersetzung von 🇬🇧 Linuxiac.com

Ladybird, ein neuer Browser, der sich noch in der Entwicklung befindet, hat damit begonnen, Teile seines Codes in Rust neu zu schreiben. Gründer Andreas Kling sagte, das Team habe Swift als möglichen Ersatz für C++ in Betracht gezogen. Allerdings funktioniere Swift nicht gut mit C++ zusammen und würde außerhalb der Apple-Plattformen nur begrenzt unterstützt.

Als wir Rust ursprünglich im Jahr 2024 evaluierten, lehnten wir es ab, weil es für die objektorientierte Programmierung im Stile von C++ nicht besonders gut geeignet ist. Aber nach einem weiteren Jahr des Abwartens ist es nun an der Zeit, eine pragmatische Entscheidung zu treffen. Rust verfügt über das Ökosystem und die Sicherheitsgarantien, die wir benötigen. Sowohl Firefox als auch Chromium haben bereits damit begonnen, Rust in ihre Codebasen zu integrieren, und wir glauben, dass dies auch für Ladybird die richtige Wahl ist.

Das Team beginnt mit LibJS. Sein Lexer, Parser, abstrakter Syntaxbaum und Bytecode-Generator sind größtenteils in sich geschlossen und verfügen über eine starke Testabdeckung, einschließlich Ladybirds eigener Regressionstests.

🎓 Die Portierung generierte etwa 25.000 Zeilen Rust-Code und dauerte etwa zwei Wochen. Der Prozess wurde von Menschen geleitet, aber KI-Tools wie Claude Code und Codex halfen mit Hunderten von kleinen Eingabeaufforderungen.

Tests bestätigten, dass das Team sein Ziel erreicht hat. Die Rust-Version bestand 52.898 Tests und 12.461 Ladybird-Regressionstests ohne neue Fehler. Die Entwickler gaben außerdem an, dass die Leistung für alle verfolgten JavaScript-Aufgaben gleich geblieben ist.

Derzeit ist der Rust-Code so konzipiert, dass er den C++-Mustern entspricht, sogar in der Art und Weise, wie er die Registerzuweisung handhabt, sodass die Compiler-Ausgabe identisch ist. Das Team plant, ihn später zu überarbeiten und zu vereinfachen, sobald es mehr Sicherheit hat und einige C++-Teile entfernen kann.

Die Entwickler sagen, dass die Umstellung langsam erfolgen wird. C++ bleibt der Schwerpunkt, während Rust-Versionen als langfristiges Projekt entwickelt werden. Neue Rust-Teile werden mit dem bestehenden C++-Code zusammenarbeiten, wobei klare Regeln für ihre Interaktion gelten.

Weitere Details finden Sie in der Ankündigung.

 

Spendieren Sie Bobby einen ☕ Ko-fi

Ein Service von s3n🧩net

Comments