LINUX.ORG.RU

Части Ladybird переписывают на Rust при помощи LLM

 , , ,


0

5

Ladybird переходит на частичное использование Rust вместо C++. Разработчики давно искали memory-safe альтернативу: Swift не подошёл из-за слабых возможностей взаимодействия с C++ и ограниченной поддержки вне Apple. Rust оказался лучше: зрелая экосистема, многие контрибьюторы уже знают язык, а Firefox и Chromium уже используют его.

Первым портировали LibJS — движок JavaScript (лексер, парсер, AST, генератор байткода). Работу вёл человек с помощью Claude Code и Codex: ~25 000 строк Rust за две недели вместо нескольких месяцев вручную. Результат — полная идентичность выходных данных с C++-версией, ноль регрессий в тестах (52 898 тестов test262, 12 461 собственных тестов).

Код намеренно стилистически близок к C++-оригиналу — идиоматичность придёт позже. Полного перехода на Rust не планируется: C++ и Rust будут сосуществовать, а портирование будет постепенным и управляться основной командой.

>>> ladybird.org



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)

«Мы писали, мы писали, наши пальчики устали. Мы немного отдохнём – а дальше пусть нейронка пишет».

Bfgeshka ★★★★★
()

Странные подходы, зачем переписывать на раст, то что уже работает? Да еще пытаться мимикрировать под плюсы, которые им не нравятся. Какой то новый синдром у молодежи, по типу NIH?

A 1982 study by Ralph Katz and Thomas J. Allen provides empirical evidence for the «not invented here» syndrome, showing that the performance of R&D project groups declines after about five years, which they attribute to the groups becoming increasingly insular and communicating less with key information sources outside the group.

Исследование Ральфа Каца и Томаса Дж. Аллена 1982 года предоставляет эмпирические доказательства синдрома «не изобретено здесь», показывая, что эффективность работы групп, занимающихся научно-исследовательскими проектами, снижается примерно через пять лет. Авторы объясняют это тем, что группы становятся все более замкнутыми и меньше общаются с ключевыми источниками информации за пределами группы.

Lusine
()
Ответ на: комментарий от Lusine

Странные подходы, зачем переписывать на раст, то что уже работает?

Тем же вопросом задаюсь с тех пор, как эти черти полезли в ffmpeg.

error_
()

Правильно, скармливайте нейронкам еще больше исходников. Приближайте то время, когда девелоперы будут не нужны.

rumgot ★★★★★
()

Swift не подошёл из-за слабых возможностей взаимодействия с C++ и ограниченной поддержки вне Apple.

Бггг.

Работу вёл человек с помощью Claude Code и Codex: ~25 000 строк Rust за две недели вместо нескольких месяцев вручную.

А как сравнивал? Сначала потратил нескольких месяцев вручную, а потом сравнил?

dataman ★★★★★
()
Последнее исправление: dataman (всего исправлений: 1)

Код намеренно стилистически близок к C++-оригиналу

Зачем писать на одном языке так, чтобы он походил на другой язык? Чтобы код на rust читался хреново?

dicos ★★★
()

переписывают на Rust при помощи LLM

Ну вот, вы слюни пускали, а авторы оказались конченными.

MoldAndLimeHoney ★★
()
Ответ на: комментарий от Lusine

Поляризация и распыление ресурсов сообщества, усложнение разработки.

BruteForce ★★★★
()
Ответ на: комментарий от rumgot

Правильно, скармливайте нейронкам еще больше исходников. Приближайте то время, когда девелоперы будут не нужны.

Вы так пишете, словно единственное ограничение – это недостаток доступного кода.

MoldAndLimeHoney ★★
()

Полного перехода на Rust не планируется: C++ и Rust будут сосуществовать

Нафига?

Manhunt ★★★★★
()

Ещё бы объяснил, что это за неуловимый Джо такой.

зрелая экосистема

Шутку понял, смешно.

beastie ★★★★★
()
Ответ на: комментарий от beastie

Ladybird is a new browser engine built from scratch. Not a fork. No user monetization. Backed by a 501(c)(3) non-profit.

Какие-то погромисты поняли, что начать переписывать на расте можно то, что в принципе ещё не доделано.

apt_install_lrzsz ★★★★
()

>>> ladybird.org

What’s next

Просто добавить, не?

[dependencies]
boa_engine = { workspace = true }
dataman ★★★★★
()
Ответ на: комментарий от sarumeister

Память не обманула: The Ladybird browser is replacing C++ with… Swift.

Полтора года назад.

sarumeister
()
Ответ на: комментарий от dicos

Зачем писать на одном языке так, чтобы он походил на другой язык?

Видимо, иначе не умеет. Приходится прибегать к такому оправданию.

question4 ★★★★★
()
Ответ на: комментарий от Lusine

Странные подходы, зачем переписывать на раст, то что уже работает?

Напомнить, как появился раст? ресурсов Мозиллы не хватало писать не багованный c++ код. В итоге, со временем, мозиллу разрабатывет меньшее количество людей и она ест память значительно меньше хрома (плюс может отрисовать market.yandex.ru на тех машинах, где chrome встанет раком - но это не фича, это пример более оптимальной программы).

Shadow ★★★★★
()
Ответ на: комментарий от Lusine

зачем переписывать на раст, то что уже работает?

Ты как будто из пещеры вылез.

Zhbert ★★★★★
()
Ответ на: комментарий от dataman

А как сравнивал? Сначала потратил нескольких месяцев вручную, а потом сравнил?

Сванговал. Зато теперь можно говорить не только про бизапаснасть, но и про скорость.

Zhbert ★★★★★
()
Ответ на: комментарий от dicos

Зачем писать на одном языке так, чтобы он походил на другой язык? Чтобы код на rust читался хреново?

«На любом языке можно написать фортрановскую программу» © Эдсгер Вибе Дейкстра

CrX ★★★★★
()

Ну окей, писать на расте - хорошая идея. Но плюсы-то зачем оставлять? Чтобы что?

liksys ★★★★
()
Ответ на: комментарий от rumgot

Правильно, скармливайте нейронкам еще больше исходников.

Всё что на гите лежит и так уже скормлено. А во время генерации нейронки не обучаются.

red75prim ★★★
()
Ответ на: комментарий от CrX

фортрановскую программу

Он мне нравился, кстати.
Была у меня книжка году в 2008, сама книжка родом из 1990х ещё вроде или начала 2000х. Я в неё зачитывался прямо. Даже что-то писать пробовал по фану, правда это уже тогда было не совсем тривиальной задачек ЕМНИП в плане сборки инфры под это дело.
Блин, жаль протерял её во время переездов по кабинетам.

Zhbert ★★★★★
()
Ответ на: комментарий от Shadow

ресурсов Мозиллы не хватало писать не багованный c++ код.

Впервые слышу.

со временем, мозиллу разрабатывет меньшее количество людей

Это потому что топ-менеджмент оптимизирует расходы, и выписал себе бонусов на, сколько там было? 35-50 млн долл США одной Бейкер?

sarumeister
()
Ответ на: комментарий от sarumeister

Но браузер-то в итоге сравним по уязвимостям с хромом и работает!

Shadow ★★★★★
()

C++ и Rust будут сосуществовать

А смысл? Не будет ли в итоге программа сочетать недостатки Rust и C++?

question4 ★★★★★
()

Бгыы, бедненькие хейтеры, мир никак не хочет оставить их в покое. Покупайте мазь Вишневского оптом ;)

zabbal ★★★★☆
()

А вообще это хорошее применение LLM, потому как для того чтобы переписать один-в-один много ума не надо, но надо выполнить много простой однотипной работы.

maxcom ★★★★★
()
Ответ на: комментарий от liksys

Ну окей, писать на расте - хорошая идея. Но плюсы-то зачем оставлять? Чтобы что?

Чтобы тому, кто решил вкатиться в проект, надо было знать не только Rust, но и C++, видимо. А то ещё набегут энтузиасты, да так и доделают браузер до состояния юзабельности обычным пользователем.

CrX ★★★★★
()

Жалко конечно Swift. Походу так и не взлетит. Но, похоже, Apple не так уж и хотелось.

perl5_guy ★★★★★
()

Полного перехода на Rust не планируется

слабаки

seiken ★★★★★
()

О, ещё и во Фрибсдю Rust тащат - прямиком в ядро. Таков путь!

zabbal ★★★★☆
()
Ответ на: комментарий от red75prim

Но в данном случай ей дают плюсовой код и вполне вероятно она его где-то прехраняет для того чтобы потом использовать для обучения.

rumgot ★★★★★
()
Ответ на: комментарий от zabbal

Нет больше радости, чем неприятности у других, да?

rumgot ★★★★★
()

Ladybird ("About"): «Our first Alpha release for Linux and macOS is coming in 2026.

А тогда на кой это здесь и сейчас??..

Somebody ★★★★
()
Ответ на: комментарий от Shadow

А что мешало просто нанять людей, которые просто умеют писать на с++? Чтобы писать на плюсах ума большого не надо, даже после фортрана люди спокойно пишут сложные системы на плюсах, даже не используя все новомодные фичи типа метапрограммирования на шаблонах. Тут гораздо большую роль играет дизайн системы, чем выбор языка. Если сравнивать браузер и например jvm, последняя куда сложнее устроена и требования к программистам выше.

Lusine
()
Ответ на: комментарий от seiken

Когда ЛОР на расте ждать?

ЛОР уже много лет пытается с Java на Scala переехать, прежде чем какие-то другие изменения планировать нужно этот процесс завершить.

maxcom ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.