12

もしそうなら、私のプロジェクトの (Haskell) 構成を変更して、人々に私のプロジェクトをいじってもらうことができます: ブラウザーで再コンパイルし、ブラウザーで再実行します。速度は気にしません。基本的にセットアップが難しいデスクトッププロジェクトをブラウザーでデモできるようにしたいだけです。そのため、新しいユーザーは、セットアップなしで数秒以内に気に入ったかどうかを確認できます。

それはなんてクールでしょう!

私が読んだことによると、GHCJS は STG を JavaScript にコンパイルします。GHC API を使用していると書かれているので、他の Haskell ライブラリと同様に、それを JavaScript にコンパイルできるはずです。(そうですか?) GHC ランタイムには C がたくさんありますが、コンパイラ自体は純粋な Haskell であるというのは本当ですか?

それで:

  1. GHCJS は自分自身を JavaScript にコンパイルできますか?
  2. Haste は自分自身を JavaScript にコンパイルできますか?
  3. これらのいずれかが実行されましたか? (それがhttp://haste-lang.org/try/の仕組みですか? ネットワークが必要なようです。)
4

1 に答える 1

11

私の知る限り、GHCJS と Haste はどちらも GHC を直接利用しています。GHC は、主に haskell ですが、ランタイムとその動作方法に関してかなりの量の cbit に結び付けられています。現時点では、「自己ホスト型」の方法でブラウザーで直接実行するようにコンパイルすることはできないと確信しています。

ただし、JSの「Haskell-like-方言」であるFayはGHCJSを介してコンパイルできますが、これはかなり気の利いたものです( https://github.com/ghcjs/ghcjs-examples/tree/master/fay-hello )おそらくあなたが望むものではありません。

別の方法として、システムが十分に単純な場合は、emscripten を使用してブラウザー内にハグを配置し、ユーザーがそれで遊べるようにすることもできます。

ご想像のとおり、さまざまな「ブラウザで試してみる」サイトはすべて、実際にはマシンへの接続を使用しており、通常はmueval、指定されたコードを実際に実行するようなものを実行しています。

于 2015-02-20T05:52:29.210 に答える