Как заменить браузерный движок JavaScript на LLVM? - PullRequest
22 голосов
/ 12 июня 2011

В качестве подтверждения концепции я хотел бы получить браузер, способный запускать LLVM IR.Основная идея заключается в том, что любой язык с компилятором LLVM сможет работать в сети как первоклассный гражданин.(Именно поэтому я не хочу идти по маршруту LLVM IR -> JS для чего-либо, кроме «отступления»)

Код LLVM должен быть в состоянии выполнять все те же функции (например, DOM) сте же ограничения.Я ищу указатели для начала работы, где лучше всего погрузиться (у меня есть опыт работы с C / C ++) и какой самый простой браузер собирается расширить.

В идеале я ищучто-то очень модульное, так что это просто еще один «движок сценариев», как и JavaScript, как и любые другие будущие (например, прямой Python)

Большое спасибо

1 Ответ

3 голосов
/ 09 февраля 2015

Emscripten - это бэкэнд LLVM, нацеленный на asm.js, который может выполняться во всех основных браузерах. Проект восходит к 2010 году. Это переводит IR в asm.js для вас. В идеале вы должны иметь возможность расширять проект для поддержки дополнительных языков, а не только для C / C ++; либо в качестве стартовой площадки для размещения других компонентов на месте, прежде чем писать привязки для среды выполнения к нужным интерфейсам браузера.

asm.js использовался для запуска движка Unreal вместе с портированием DosBox для игровых архивов Archive.org.

...