Компонентите на браузъра Ladybird започнаха да се пренаписват на Rust с помощта на AI

Андреас Клинг (Andreas Kling), основателят на уеб браузъра Ladybird, обяви, че решението е да се използва езикът Rust при разработването на проекта и започването на пренаписването на части от Ladybird на този език. Като експеримент, JavaScript двигателя LibJS, написан на C++, вече е пренаписан на Rust. LibJS е избран поради доброто покритие с тестове, което опростява оценката на качеството на преноса.

За да се ускори преносът, бяха използвани AI асистенти Claude Code и OpenAI Codex, благодарение на които кодът успя да бъде пренаписан за две седмици. Преводът се осъществява постепенно с участието на разработчик, който в процеса на работа изпраща на AI асистентите няколко стотин промпта, решавайки в каква последователност и какво да пренася, а също така указвайки изискванията за получения код на Rust. След получаване на кода от различните AI модели беше проведен преглед на резултата и анализ на кода за наличие на грешки и съмнителни решения.

В крайна сметка, пренаписаната на Rust версия на двигателя успешно премина всички 52898 теста за съвместимост с ECMAScript от набора test262 и 12461 регресионни теста от проекта Ladybird. Версията на Rust демонстрира пълно съвпадение на генерираното AST и байткода с версията на C++, регресии не са установени до момента. В тестовете на JavaScript също не е установено намаляване на производителността. Освен това, пълното съвпадение показа сравнителното тестване на резултатите от обработката на сайтове с използването на версиите на LibJS на C++ и Rust.

Пренаписването на компонентите на браузъра на Rust се разглежда като второстепенен проект, който може да отнеме много време. Основната разработка все още продължава на езика C++. Решенията относно подсистемите, които ще бъдат пренаписвани на Rust, ще вземе основният екип от разработчици. Новият код на Rust ще съжителства с съществуващия код на C++ чрез ясно определени нива на интероперабилност.

Забележително е, че през 2024 година разработчиците на Ladybird решиха да използват програмния език Swift, но се сблъскаха с недостатъчна интероперативност с кода на C++ и ограничена поддръжка на платформи, различни от Apple. Що се отнася до Rust, за този език е отбелязана по-зряла екосистема за системно програмиране и гаранции за безопасност. Освен това, между разработчиците на Ladybird има много участници, запознати с този език. През 2024 година езикът Rust не беше одобрен за използване в Ladybird заради парадигмата на разработка, основана на собствеността, която не съвпада напълно с обектно-ориентирания стил на C++.

Андреас Клинг някога е работил в компанията Nokia и е разработвал KHTML, а след това в Apple е бил един от разработчиците на Safari. Първоначално проектът Ladybird е създаден като приложение за операционната система SerenityOS, но през лятото на 2024 година е отделен в самостоятелен проект и получава дарение от 1 милион долара. Браузерът е написан на C++ и се разпространява под лиценза BSD. Проектът развива собствен двигател LibWeb, JavaScript интерпретатор LibJS и съпътстващи библиотеки.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster