Komponenterne af browseren Ladybird er begyndt at blive genkodet i Rust ved hjælp af AI

Andreas Kling, grundlæggeren af webbrowseren Ladybird, har annonceret, at han vil anvende sproget Rust i udviklingen af projektet og begynde at omskrive dele af Ladybird på dette sprog. Som et eksperiment er JavaScript-motoren LibJS allerede blevet omskrevet fra C++ til Rust. LibJS blev valgt på grund af det gode testdækning, som gør det lettere at vurdere kvaliteten af porteringen.

For at accelerere porteringen blev AI-assistenterne Claude Code og OpenAI Codex involveret, hvilket gjorde det muligt at omskrive koden på to uger. Omskrivningen blev udført trinvis med deltagelse af en udvikler, der under arbejdet sendte flere hundrede prompts til AI-assistenterne, besluttede i hvilken rækkefølge der skulle porteres, og angav kravene til den resulterende kode på Rust. Efter at have modtaget koden fra de forskellige AI-modeller blev resultaterne gennemgået og koden analyseret for fejl og tvivlsomme løsninger.

Som et resultat bestod den omskrevne version af motoren på Rust alle 52898 tests for kompatibilitet med ECMAScript fra test262-sættet og 12461 regressionstests fra Ladybird-projektet. Versionen på Rust viste fuld overensstemmelse mellem den genererede AST og bytekoden med versionen på C++, og der er ikke fundet nogen regressioner. Der var heller ikke registreret nogen ydelsesnedgang i JavaScript-tests. Desuden viste den fulde overensstemmelse sammenlignende test af resultaterne fra behandling af websteder ved brug af versioner af LibJS på C++ og Rust.

Omskrivningen af browserkomponenter til Rust betragtes som et sekundært projekt, der kan tage lang tid. Hovedudviklingen fortsætter på C++. Beslutninger om, hvilke subsystemer der skal omskrives til Rust, træffes af hovedteamet af udviklere. Den nye kode på Rust vil co-exist med den eksisterende kode på C++ via klart definerede niveauer af interoperabilitet.

Bemærkelsesværdigt er det, at udviklerne af Ladybird i 2024 besluttede at bruge programmeringssproget Swift, men stødte på utilstrækkelig interoperabilitet med C++-koden og begrænset support til platforme uden for Apple. Hvad angår Rust, er der blevet observeret et mere modent økosystem for systemprogrammering og sikkerhedsgarantier. Desuden er der mange udviklere hos Ladybird, der er bekendt med dette sprog. I 2024 blev Rust ikke godkendt til brug i Ladybird på grund af ejerskabsparadigmet, som ikke helt passer sammen med den objektorienterede stil i C++.

Andreas Kling har tidligere arbejdet hos Nokia og har været involveret i udviklingen af KHTML, og senere var han en af udviklerne af Safari hos Apple. Oprindeligt blev projektet Ladybird skabt som en applikation til operativsystemet SerenityOS, men i sommeren 2024 blev det adskilt som et selvstændigt projekt og modtog en donation på 1 million dollars. Browsere er skrevet i C++ og distribueres under BSD-licensen. Projektet udvikler sin egen motor, LibWeb, JavaScript-fortolker LibJS og relaterede biblioteker.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster