6

言語である Haskell にはある程度の知識がありますが、ツールチェーンにはあまり詳しくありません。(cabal と stack が存在する前に Haskell をいじってみました。) Haskell プロジェクトを管理するために使用すべきツールは stack だと言われました。ヘイスト ライブラリを学習しようとしていますが、hplayground をインストールできないため、最初に試したチュートリアルで苦労しています。スタック プロジェクトを作成しました。私のstack.yamlには

extra-deps:
- ghc-simple-0.3
- haste-compiler-0.5.3
- shellmate-0.2.3
- haste-perch-0.1.0.9
- hplayground-0.1.3.1

私の.cabalファイルには、ビルド依存にリストされているhplaygroundがあります。しかし、スタック ビルドを実行すると、次のエラーが発生します。

Configuring haste-perch-0.1.0.9...
Building haste-perch-0.1.0.9...
Preprocessing library haste-perch-0.1.0.9...

Haste/Perch.hs:17:15: Warning:
    -XOverlappingInstances is deprecated: instead use per-instance pragmas OVERLAPPING/OVERLAPPABLE/OVERLAPS

Haste/App/Perch.hs:18:15: Warning:
    -XOverlappingInstances is deprecated: instead use per-instance pragmas OVERLAPPING/OVERLAPPABLE/OVERLAPS
[1 of 2] Compiling Haste.App.Perch  ( Haste/App/Perch.hs, .stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/Haste/App/Perch.o )

Haste/App/Perch.hs:61:15: Not in scope: ‘newTextElem’

Haste/App/Perch.hs:71:9:
    Not in scope: ‘setAttr’
    Perhaps you meant ‘jsSetAttr’ (imported from Haste.App)

Haste/App/Perch.hs:76:15:
    Not in scope: ‘newElem’
    Perhaps you meant one of these:
    ‘nelem’ (line 75), ‘notElem’ (imported from Prelude)

と同様のエラーがたくさんあります。私が間違っていることについて何か考えはありますか?

より広い意味で: Haskell ツールチェーンの経験がない人が急いで立ち上げて実行するための迅速で簡単な方法は何ですか?

4

2 に答える 2

3

ghc と cabal をインストールしたら、haste コンパイラを次のようにインストールする必要があります ( http://haste-lang.org/downloads/から):

$ cabal update
$ cabal install haste-compiler
$ haste-boot

これを行った後、「hastec」(速攻コンパイラ) を使用して、haskell を JavaScript にコンパイルできるようになります。さらに、「haste-cabal」( cabal の haste バージョン) を使用して、プログラムで使用する haste-perch などのライブラリをインストールできる必要があります。

haste-perch の readme ファイル ( https://github.com/agocorona/haste-perch ) には、haste-perch のインストール手順が含まれています。これらの手順では、「haste-inst」を使用して haste-perch をインストールしますが、「haste-inst」は廃止されました (そして、もう存在しません)。以下の変更された手順を使用して、haste-perch をインストールします。

>git clone http://github.com/agocorona/haste-perch.git
>cd haste-perch
>haste-cabal install

haste-perch をインストールして、付属のサンプルを正常にビルドできました。

私も hplayground をビルドしようとしましたが、コードが haste 0.5 を使用するように更新されていないことが原因であるかのように見えるコンパイルの問題に遭遇しました。たとえば、"OnClick" は以前のバージョンの Haste では有効な識別子でしたが、現在は無効になっています。

src/Haste/HPlay/View.hs:820:45:
    Not in scope: data constructor ‘OnClick’
    Perhaps you meant ‘Click’ (line 1017)
于 2016-03-20T04:34:58.603 に答える
3

Haste のイベント API は 0.4 から 0.5 シリーズの間にオーバーホールされ、HPlayground はまだ 0.4 のままです。それを使用したい場合は、残念ながら、HPlayground に 0.5 のパッチが適用されるまで、0.4 にフォールバックする必要があります。

一般に、Linux 以外のプラットフォームを使用している場合は、ビルド前のバイナリをインストールする必要があります (Linux プラットフォームを使用している場合は、man ページやその他の優れた機能を入手できるため)。ビルド プロセスは複雑で、エラーが発生しやすくなります。

それが完了したら、haste-lang.org のドキュメントとリソースのページを参照できます。このページには、API ドキュメント、ビデオ チュートリアル、ソース コード例などへのリンクが含まれています。

于 2016-03-21T09:54:29.437 に答える