什么是生产级Haskell to JavaScript编译器,编写在浏览器中运行的代码?

我不是在寻找一个拥有10年历史logging的超强健的解决scheme,而是寻找可以在真实应用程序中使用的东西,而不仅仅是能够运行Hello World示例。

我的首选是在服务器上运行编译器,所以我可以提前编译Haskell代码。 当然,这个解决scheme不仅仅是一个编译器,还需要Haskell代码来访问浏览器上可用的API(DOM,XHR …)。

脚注:到目前为止,我所看到的项目似乎并没有得到积极的维护,或者超越了能够运行“Hello world”,甚至超出了项目描述的范围。

这里有一个更完整的列表:

http://www.haskell.org/haskellwiki/The_JavaScript_Problem

还有Fay(虽然它只是haskell的一个子集)

https://github.com/faylang/fay

你可能会发现这个列表很有用: https : //github.com/jashkenas/coffee-script/wiki/List-of-languages-that-c​​ompile-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,但咖啡脚本是基于expression式和相当优雅恕我直言。

我偶然发现了这个叫做ghcjs的项目

看起来很有前途!

README引用:

哈斯克尔JavaScript翻译

项目旨在提供解决scheme

  • 将现代的Haskell库编译成Javascript文件,并在Ajax应用程序中使用它们
  • 用Haskell语言开发整个Ajax应用程序

以前版本的项目位于vir.mskhug.ru 。

虽然GHCJS似乎没有得到积极维护,但Emscripten似乎是相当stream行的。

  • Emscripten将LLVM位代码编译为JavaScript。
  • GHC的LLVM后端似乎正在积极开发。
  • 直观地说,为了回答这个问题,下面的pipe道可能与“生产质量”并不相距甚远:Haskell词位( – > GHC – >)LLVM词位( – > Emscripten – >)JavaScript词位

我承认这是一个投机性的post。

这个语言, 罗伊 ,也许不是真正的哈斯克尔(?),但似乎非常相似:

http://roy.brianmckenna.org/

罗伊似乎还活着; GitHub库中有很多叉: https : //github.com/pufuwozu/roy
它似乎还活着: https : //github.com/pufuwozu/roy/graphs

如果您使用的是Play Framework 2.0,那么有一个插件Ray可以在Play Framework 2.0上运行Roy:

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

最后一次提交是在四个月前,这是在很久以前,牢记Play Framework 2可能在4或5个月前发布。

有一个Yesod的“最生产级别”候选人列表: https : //github.com/yesodweb/yesod/wiki/Javascript-Options (Yesod是一个非常受欢迎的Haskellnetworking框架,所以他们可能知道他们在说什么)