2016-03-20 18 views
6

Mam trochę znajomości z Haskellem, językiem, ale nie tak bardzo z toolchainem. (Grałem z Haskellem, zanim istniała kabała i stos). Mówiono mi, że stos to narzędzie, którego powinienem używać do zarządzania projektami Haskell. Próbuję nauczyć się biblioteki pośpiechu, a mój pierwszy samouczek, którego próbowałem, jest już napięty, ponieważ nie mogę zainstalować HPlayground. Stworzyłem projekt stosu; mój stack.yaml maJak używać haste/hplayground ze stosem

i mój plik .cabal ma listę hplayground wymienioną w zależności od kompilacji. Ale kiedy uruchamiam kompilację stosu, otrzymuję następujące błędy:

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) 

oraz wiele podobnych błędów. Jakieś myśli o tym, co robię źle?

Szerzej: jaki jest szybki i łatwy sposób na rozpoczęcie pracy z pośpiechu dla kogoś, kto nie ma doświadczenia z łańcuchem narzędzi Haskell?

Odpowiedz

2

API zdarzeń pośpiech ma remontowane między serią 0,4 a 0,5, a HPlayground jest nadal na 0,4. Jeśli chcesz z niego korzystać, niestety będziesz musiał wrócić do 0.4, dopóki HPlayground nie zostanie poprawione na 0.5.

Po pierwsze, należy zainstalować pre-build binaries, jeśli korzystasz z platformy innej niż Linux (i prawdopodobnie również na platformie Linux, ponieważ masz strony podręcznika i inne szczegóły); proces budowania może być trudny i podatny na błędy.

Gdy to zrobisz, możesz odnieść się do strony docs and resources na haste-lang.org, która zawiera linki do dokumentów API, samouczków wideo, przykładów kodu źródłowego i innych.

3

Po zainstalowaniu GHC i koteria zainstalowany trzeba będzie zainstalować kompilator haste następująco (od http://haste-lang.org/downloads/):

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

Po wykonaniu tej czynności „hastec” (kompilator pośpiech) powinny być dostępne dla użyj, aby skompilować haskell do javascript. Ponadto "haste-cabal" (wersja kabała w pośpiechu) powinna być dostępna do użycia w celu zainstalowania bibliotek takich jak "haste-perch" do użycia w twoich programach.

Plik readme dla haste-perch (https://github.com/agocorona/haste-perch) zawiera instrukcję instalacji haste-okoń. Instrukcje te używają "haste-inst", aby zainstalować haste-perch, ale "haste-inst" jest przestarzały (i już nie istnieje). zainstalować haste-okoń użyć zmodyfikowanych zgodnie z poniższymi instrukcjami:

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

udało mi się zainstalować haste-okoń i skutecznie zbudować przykład, który przyszedł z.

Próbowałem również budować hplayground, ale wpadłem w kompilację problemów, które wyglądały tak, jakby były spowodowane tym, że kod nie był aktualizowany, aby użyć haste 0.5. Na przykład, „Kliknięcie” był ważny identyfikator we wcześniejszych wersjach pośpiechu, ale teraz już nie:

src/Haste/HPlay/View.hs:820:45: 
    Not in scope: data constructor ‘OnClick’ 
    Perhaps you meant ‘Click’ (line 1017) 
Powiązane problemy