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

Каков самый компилятор Haskell для компилятора на уровне продукта, чтобы писать код, запущенный в браузере?

Я не ищу непревзойденного супер-надежного решения с 10-летней историей, но для чего-то, что можно использовать в реальных приложениях, и выходит за рамки просто возможности запуска примера Hello World.

Мое предпочтение заключается в том, чтобы запустить компилятор на сервере, поэтому я могу заранее скомпилировать код Haskell. Конечно, решение должно быть больше, чем просто компилятором, и включить код Haskell для доступа к API, доступному в браузере (DOM, XHR...).

Сноска: проекты, которые я видел до сих пор, похоже, не поддерживаются активно или не могут запускать "Hello world", или в некоторых случаях даже выйти за рамки описания проекта.суб >

4b9b3361

Ответ 2

Вы можете найти этот список полезным: https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS

Из списка:

* UHC (Utrecht Haskell Compiler) backend converts UHC core to JavaScript, allowing the compiling of Haskell code to JS.
* YHC (York Haskell Compiler) backend, as above but with YHC core language.
* jshaskell

Я знаю его не Haskell, но Coffee script - это выражение на основе и довольно элегантное IMHO.

Ответ 3

Я наткнулся на этот проект под названием ghcjs

Кажется многообещающим!

Цитата из README:

Переводчик Haskell на Javascript

Цель проекта - предоставить решение для

  • скомпилировать современные библиотеки Haskell в файлы Javascript и использовать их в приложениях Ajax или
  • разработать полное приложение Ajax на языке Haskell

Предыдущая версия проекта находится в vir.mskhug.ru.

Ответ 4

В то время как GHCJS, похоже, активно не поддерживается, Emscripten кажется довольно актуальным.

  • Emscripten компилирует LLVM бит-код в JavaScript.
  • GHC LLVM backend активно развивается.
  • Интуитивно, чтобы ответить на вопрос, следующий конвейер может быть не очень далек от "качества продукции": Haskell lexemes (- > GHC → ) LLVM lexemes (- > Emscripten → ) JavaScript lexemes

Я признаю, что это спекулятивный пост.

Ответ 5

Этот язык, Roy, возможно, не совсем Haskell (?), но он кажется очень похожим:

http://roy.brianmckenna.org/

Рой, кажется, жив; в репозитории GitHub есть много вилок: https://github.com/pufuwozu/roy
и он кажется живым: https://github.com/pufuwozu/roy/graphs


Если вы используете Play Framework 2.0, то есть плагин Ray, чтобы запустить Roy на Play Framework 2.0:

http://brianmckenna.org/blog/ray
https://github.com/pufuwozu/ray

Последнее совершение было четыре месяца назад, что довольно давно, имея в виду, что Play Framework 2 был выпущен, возможно, 4 или 5 месяцев назад.

Ответ 6

Существует список кандидатов на "самый производственный уровень" из Yesod: https://github.com/yesodweb/yesod/wiki/Javascript-Options (Yesod - очень популярная веб-рамка Haskell, чтобы они могли знать, о чем они говорят)