問題タブ [ghcjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
788 参照

haskell - GHCJS/Haste は自分自身をコンパイルできますか?

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

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

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

それで:

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

haskell - .cabal ファイル内の異なるターゲットに対して 2 つの異なるコンパイラを使用する方法は?

実行するcabal buildと、Haskell コンパイラを使用して、実行可能ファイルやテスト スイートを .cabal ファイルにビルドします。

さまざまなターゲットにどのコンパイラを使用するかを制御できますか? 理想的には、同じ.cabalファイルで ghc と ghcjs を使用する個別のビルド ターゲットが必要です。誰かが同じプロジェクトでghcとhugsまたはghcの2つのバージョンを使いたいと思うかもしれません。これは現在可能ですか?

また、cabal は実行時に使用するコンパイラをどのように決定しcabal buildますか? ~/.cabal/configファイルにコンパイラ オプションがあることを確認しましたが、それを からghcに変更しghcjsてコメントを外しても、機能が変わるようには見えませんでしたcabal build

0 投票する
2 に答える
1050 参照

haskell - Haskell で書かれたゲームをブラウザで実行することはできますか? (もしかしたらGHCJS経由?)

現在、Haskell でHelmまたは GHCJS を介してブラウザ上で動作する他のエンジンを使用してゲームを作成できるのでしょうか?

0 投票する
1 に答える
366 参照

javascript - ghcjs を正しく使用していますか?

Haskell と ghcjs は初めてです。最初の「Hello, world!」から始めます。学ぶためのプログラム。

GHCJS wiki からコピーした私の Haskell プログラムは次のとおりです。

コマンドを使用しghcjs -o hello hello.hsてjavascriptにコンパイルし、コマンドを使用してターミナルで実行しようとしましたnode hello.jsexe/all.jsが、生成されたファイル「index.html」を開こうとしたとき:

しかし、これを Chrome で開くと、ページが空白になります。ここで何が悪いのか誰か知っていますか?

0 投票する
2 に答える
3003 参照

haskell - GHCJSでJavascriptからHaskellを呼び出す方法

私はGHCJSで遊んでいます。FFI を使用して Haskell から JavaScript を呼び出すことができますが、その逆の方法がわかりません。Haskell で書いた非常に便利なユーティリティ関数があるとします。

Javascriptから呼び出すことができるように何かをすることは可能ですか? h$main(h$main2CMainzimain)最も近いのは、Haskell のメイン関数をトリガーすることに気付くことです。

0 投票する
0 に答える
183 参照

javascript - GHCJS FFI バインディングから JavaScript の import/require をトリガーする

出発点として Famo.us の例を使用します。

今、私はこれらの GHCJS FFI バインディングを持っています:

— ご覧のとおり、インライン JavaScript コードでは、通常famous.core.FOOのように完全修飾名を使用するのではなく、完全修飾名を使用するなどのことを常に参照する必要があります。FOO

これらの FFI バインディングを使用した同等の Haskell スニペットを次に示します (わかりやすくするために、高レベルのラッパーの背後に隠されています)。

ここで質問があります: GHCJSに依存する FFI バインディングが使用されるたびに、GHCJS を自動生成し、出力された JavaScriptvar Engine = famous.core.Engineをインポートすることは可能ですか? var Surface = famous.core.Surfaceまたは、インラインJSで常に完全修飾名を使用するか、FFIバインディングごとに常に手動で名前をインポートする唯一のオプションですか?

0 投票する
2 に答える
1043 参照

haskell - reflex/reflex-dom を使用した XhrRequest

基本的な Ajax リクエストを実行したいだけです。

reflexフロントエンドとバックエンドに使用しScottyます。Firefox Web コンソールに、リクエストが成功したことが示され、期待どおりの結果が表示されます。Just "default"しかし、ウェブサイトはからNothingではなく に切り替わりますJust "success!"

完全な最小限の例を次に示します。

そしてそのScotty部分:

デバッグツールはリクエストが成功したことを教えてくれるので、どこかにエラーdecodeXhrResponseがあるのではないかと思いますが、(読み取り不能な) Javascript にコンパイルされるだけなので、デバッグをどのように進めるべきか少し迷っています。

GitHub の try-reflex Nix スクリプトを使用してすべてをセットアップしghcjs hello.hs、Nix 環境でコンパイルしました。

編集:の出力を追加curl