Подтвердить что ты не робот

Как заменить механизм JavaScript javascript на LLVM?

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

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

В идеале я ищу что-то очень модульное, так что это просто еще один "скриптовый движок", как и javascript, как и любые другие будущие (например, прямой python one)

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

4b9b3361

Ответ 1

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

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