什么是生产级Haskell to JavaScript编译器,编写在浏览器中运行的代码?
我不是在寻找一个拥有10年历史logging的超强健的解决scheme,而是寻找可以在真实应用程序中使用的东西,而不仅仅是能够运行Hello World示例。
我的首选是在服务器上运行编译器,所以我可以提前编译Haskell代码。 当然,这个解决scheme不仅仅是一个编译器,还需要Haskell代码来访问浏览器上可用的API(DOM,XHR …)。
脚注:到目前为止,我所看到的项目似乎并没有得到积极的维护,或者超越了能够运行“Hello world”,甚至超出了项目描述的范围。
你可能会发现这个列表很有用: 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,但咖啡脚本是基于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。
这个语言, 罗伊 ,也许不是真正的哈斯克尔(?),但似乎非常相似:
罗伊似乎还活着; 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框架,所以他们可能知道他们在说什么)