Szukaj…


Instalowanie stosu

Mac OS X

Korzystanie z Homebrew :

brew install haskell-stack

Tworzenie prostego projektu

Aby utworzyć projekt o nazwie helloworld run:

stack new helloworld simple

Spowoduje to utworzenie katalogu o nazwie helloworld z plikami niezbędnymi do projektu Stack.

Struktura

Struktura pliku

Prosty projekt zawiera następujące pliki:

➜  helloworld ls 
LICENSE          Setup.hs         helloworld.cabal src              stack.yaml

W folderze src znajduje się plik o nazwie Main.hs To jest „punkt początkowy” projektu helloworld . Domyślnie Main.hs zawiera proste „Hello, World!” program.

Main.hs

module Main where

main :: IO ()
main = do
  putStrLn "hello world"

Uruchamianie programu

Upewnij się, że znajdujesz się w katalogu helloworld i uruchom:

stack build # Compile the program
stack exec helloworld # Run the program
# prints "hello world"

Pakowanie pakietów i zmiana wersji LTS (resolvera)

Stackage to repozytorium pakietów Haskell. Możemy dodać te pakiety do projektu stosu.

Dodawanie soczewki do projektu.

W projekcie stosu znajduje się plik o nazwie stack.yaml . W stack.yaml znajduje się segment, który wygląda następująco:

resolver: lts-6.8

Stackage przechowuje listę pakietów dla każdej wersji lts . W naszym przypadku chcemy listę pakietów dla lts-6.8 Aby znaleźć te pakiety odwiedź:

https://www.stackage.org/lts-6.8 # if a different version is used, change 6.8 to the correct resolver number.

Przeglądając paczki, znajduje się Obiektyw 4.13 .

Możemy teraz dodać pakiet językowy, modyfikując sekcję helloworld.cabal :

  build-depends: base >= 4.7 && < 5

do:

  build-depends: base >= 4.7 && 5,
                 lens == 4.13

Oczywiście, jeśli chcemy zmienić nowszy LTS (po jego wydaniu), po prostu zmieniamy numer resolvera, np .:

resolver: lts-6.9

Przy następnym stack build Stack będzie korzystał z wersji LTS 6.9, a zatem pobierze kilka nowych zależności.

Zbuduj i uruchom projekt stosu

W tym przykładzie nazwa naszego projektu to „helloworld”, który został utworzony przy użyciu stack new helloworld simple

Najpierw musimy zbudować projekt przy użyciu stack build a następnie możemy go uruchomić

stack exec helloworld-exe

Instalacja stosu

Uruchamiając polecenie

stack install 

Stos skopiuje plik wykonywalny do folderu

/Users/<yourusername>/.local/bin/

Profilowanie za pomocą stosu

Skonfiguruj profilowanie projektu za pomocą stack . Najpierw zbuduj projekt z flagą --profile :

stack build --profile

Flagi GHC nie są wymagane w pliku cabal, aby to działało (jak -prof ). stack automatycznie włączy profilowanie zarówno biblioteki, jak i plików wykonywalnych w projekcie. Następnym razem, gdy plik wykonywalny zostanie uruchomiony w projekcie, można użyć zwykłych flag +RTS :

stack exec -- my-bin +RTS -p

Wyświetlanie zależności

Aby dowiedzieć się, od których pakietów bezpośrednio zależy twój projekt, możesz po prostu użyć tego polecenia:

stack list-dependencies

W ten sposób możesz dowiedzieć się, która wersja twoich zależności została faktycznie ściągnięta przez stos.

Projekty Haskell często pośrednio przyciągają wiele bibliotek, a czasem te zewnętrzne zależności powodują problemy, które należy wyśledzić. Jeśli znajdziesz fałszywą zależność zewnętrzną, którą chcesz zidentyfikować, możesz przejrzeć cały wykres zależności i określić, które z Twoich zależności ostatecznie przyciągają niepożądany pakiet:

stack dot --external | grep template-haskell

stack dot drukuje wykres zależności w postaci tekstu, który można przeszukiwać. Można go również wyświetlić:

stack dot --external | dot -Tpng -o my-project.png

Możesz także ustawić głębokość wykresu zależności, jeśli chcesz:

stack dot --external --depth 3 | dot -Tpng -o my-project.png


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow