GHCJS / Haste可以编译自己吗?

时间:2015-01-16 06:47:57

标签: haskell ghcjs haste

如果是这样,那么我可以通过更改其(Haskell)配置让人们玩我的项目:在浏览器中重新编译它,然后在浏览器中重新运行它。我不在乎速度。我只是想在浏览器中演示一个难以设置的基础桌面项目。因此,可能的新用户可以在几秒钟内看到他们是否喜欢它,而无需设置。

那会有多酷!

从我读过的内容来看,GHCJS将STG编译成JavaScript。它说它使用GHC API,所以我们应该能够将它编译成JavaScript,就像任何其他Haskell库一样。 (对吗?)虽然GHC运行时有很多C,但编译器本身是纯Haskell吗?

这样:

  1. GHCJS可以将自己编译成JavaScript吗?
  2. 可以将自己编译成JavaScript吗?
  3. 其中任何一个都完成了吗? (是http://haste-lang.org/try/如何工作?似乎需要一个网络。)

1 个答案:

答案 0 :(得分:11)

GHCJS和Haste据我所知,直接利用GHC。虽然GHC主要是haskell,但它在运行时及其运行方式上与相当数量的cbits相关联。我相当肯定,目前也不能编译为直接在浏览器中运行"自托管"方式。

然而,Fay,这是一种类似Haskell的方言" JS可以通过GHCJS编译,这非常漂亮(https://github.com/ghcjs/ghcjs-examples/tree/master/fay-hello)虽然可能不是你想要的。

另一种选择,如果您的系统足够简单,就是使用emscripten将拥抱置于浏览器中,并让您的用户使用它。

正如你猜测的那样,各种各样的"在浏览器中尝试它"网站实际上都使用与机器的连接,通常运行类似mueval的实际执行给定代码的东西。