Haskell для компиляторов Javascript?

Недавно я встретил ghcjs компилятор haskell-to-javascript, но я не уверен, насколько он "готов". Похоже, что за последний год он мало работал.

Есть ли эквивалент GWT в Haskell?

Кроме того, больше обсуждается вопрос: как вы думаете, будет ли эквивалент gwt haskell? Почему или почему нет?

Ответ 1

Существует несколько таких компиляторов, которые можно использовать сразу.

  • Fay (ранее на http://fay-lang.org/, теперь на https://github.com/faylang/fay) Самый популярный и самый развитый компилятор Haskell → JS. AFAIU, он реализует Haskell с нуля и компилирует его на JavaScript. Он не реализует многие функции GHC, особенно языковые расширения.
  • Ускорение (https://github.com/valderman/haste-compiler) Он использует бэкэнд GHC для компиляции в javascript. В результате вы можете использовать его для компиляции расширений, содержащих код.

Ответ 2

Ji кажется актуальным, хотя он не делает компиляции Haskell-JS; он позволяет серверу Haskell управлять браузером, подключенным к нему через AJAX.

Кажется, UHC поддерживает компиляцию в JavaScript и имеет некоторые по этим строкам, но я не знаю, что такое UHC-совместимость с расширениями GHC, или насколько зрелая поддержка.

Я не уверен, что компиляция полного Haskell на JavaScript - это эффективный маршрут; накладные расходы на реализацию ленивой оценки на высоком уровне языка, вероятно, будут значительными, и все попытки до сих пор (я не проверил UHC сгенерированный код), похоже, создают довольно большой JavaScript (правда, HTTP-сжатие смягчает это).

Я не думаю, что ghcjs активно развивается, но он может быть более стабильным, чем поддержка UHC. Похоже, что поддержка Yhc до сих пор остается самой далекой, но, к сожалению, Yhc - это мертвый проект.