Можно ли скомпилировать Standard ML в JavaScript, используя преимущества MLTon?
Единственный способ, которым я мог представить, - это использовать Emscripten, но у MLTon нет бэкэнда LLVM. Возможно ли это как-то?
1 ответ
Я не думаю, что это так, и, как я прокомментировал ваш другой вопрос, я не вижу особого смысла в этом. Многие из оптимизаций, выполняемых MLton, не имеют отношения к агрессивному jit-компилятору. С другой стороны, вам нужно будет не только скомпилировать программу, но и перенести среду выполнения MLton на JavaScript. В частности, это касается системы управления памятью. С маршрутом Emscripten вам, вероятно, потребуется запустить сборщик мусора MLton, вложенный в JavaScript. Обычно это ужасная идея. Особенно, если вы также хотите взаимодействовать со средой JS интересными способами, потому что тогда вам придется маршалировать и завершать перемотку вперед и назад через языковые границы, что приводит к ужасной производительности и высокому потенциалу для утечек пространства.
Для этого варианта использования вам нужен прямой компилятор SMLtoJS (хотя сайт сейчас не работает).