Komponenterna i webbläsaren Ladybird börjar skrivas om i Rust med hjälp av AI

Andreas Kling, grundare av webbläsaren Ladybird, meddelade att han har beslutat att använda språket Rust i utvecklingen av projektet och att han påbörjar omskrivning av delar av Ladybird till detta språk. Som ett experiment har JavaScript-motorn LibJS redan skrivits om från C++ till Rust. LibJS valdes på grund av den goda testtäckningen, vilket underlättar bedömningen av kvaliteten på porteringen.

För att påskynda porteringen användes AI-assistenterna Claude Code och OpenAI Codex, vilket gjorde det möjligt att skriva om koden på två veckor. Översättningen genomfördes gradvis med hjälp av en utvecklare som under arbetets gång skickade flera hundra uppmaningar till AI-assistenterna, för att lösa i vilken ordning och vad som skulle porteras, samt angav krav på den resulterande koden i Rust. Efter att ha fått koden från olika AI-modeller genomfördes en granskning av resultatet och en analys av koden för att upptäcka fel och tveksamma lösningar.

Resultatet av den skrivna versionen av motorn i Rust lyckades framgångsrikt klara alla 52898 tester för kompatibilitet med ECMAScript från test262-satsen och 12461 regressiva tester från Ladybird-projektet. Rust-versionen visade fullständig överensstämmelse mellan den genererade AST och bytekoden med C++-versionen, och några regressioner har inte upptäckts än. För JavaScript-testerna uppvisades inte heller någon minskning av prestandan. Dessutom visade den fullständiga överensstämmelsen jämförande testning av resultaten från webbplatsbehandlingar med LibJS-versionerna på C++ och Rust.

Omskrivningen av webbläsarens komponenter i Rust ses som ett sekundärt projekt som kan ta mycket tid. Huvudutvecklingen pågår fortfarande på språket C++. Besluten om vilka delsystem som ska skrivas om i Rust kommer att fattas av huvudteamet av utvecklare. Den nya koden i Rust kommer att samexistera med den befintliga koden i C++ genom tydligt definierade nivåer av interoperabilitet.

Det är anmärkningsvärt att utvecklarna av Ladybird planerar att använda programmeringsspråket Swift år 2024, men de stötte på begränsad interoperabilitet med C++-koden och begränsat stöd för plattformar som inte är Apples. För Rust finns det en mer mogen ekosystem för systemprogrammering och säkerhetsgarantier. Dessutom är många av utvecklarna av Ladybird bekanta med detta språk. År 2024 godkändes inte Rust för användning i Ladybird på grund av utvecklingsparadigmet baserat på ägande, vilket inte riktigt passar med det objektorienterade C++-stilen.

Andreas Kling arbetade tidigare på Nokia och var involverad i utvecklingen av KHTML, och därefter var han en av utvecklarna av Safari på Apple. Ursprungligen skapades projektet Ladybird som en applikation för operativsystemet SerenityOS, men under sommaren 2024 blev det ett separat projekt och fick en donation på 1 miljon dollar. Webbläsaren är skriven i C++ och distribueras under en BSD-licens. Projektet utvecklar sin egen motor LibWeb, JavaScript-tolk LibJS och relaterade bibliotek.

Källa: opennet.ru

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster