Stack - Haskell Build Tool
O Stack é uma ferramenta de construção (build tool) para Haskell que simplifica o gerenciamento de projetos, dependências e versões do compilador GHC. Ele resolve problemas comuns como compatibilidade entre bibliotecas e versões do GHC.
Principais Características
Gerenciamento de Dependências
Permite adicionar bibliotecas externas (ex.: text
, http-client
) de forma fácil e reproduzível.
Isolamento de Ambientes
Cada projeto pode usar uma versão específica do GHC e das bibliotecas, evitando conflitos (“dependency hell”).
Facilidade de Configuração
Cria uma estrutura padrão para projetos Haskell e automatiza a compilação.
Como Usar o Stack
1. Instalação
Instale o Stack (disponível em haskellstack.org
).
2. Criar um projeto
$ stack new meu-projeto
Isso cria uma pasta meu-projeto
com uma estrutura pronta:
app/Main.hs
: Arquivo principal.src/
: Para módulos adicionais.stack.yaml
: Configuração do projeto.meu-projeto.cabal
: Arquivo de build com dependências.
3. Compilar e executar
$ cd meu-projeto
$ stack build
$ stack exec meu-projeto-exe
4. Adicionar dependências
Edite o arquivo .cabal
(ex.: meu-projeto.cabal
) na seção build-depends
:
$ build-depends: base >= 4.7 && < 5, text
O Stack instala a biblioteca text
automaticamente ao rodar stack build
.
Vantagens
Reproduzibilidade
Outros desenvolvedores podem clonar seu projeto e usar stack build
para obter o mesmo ambiente.
Integração com o GHC
O Stack baixa a versão correta do GHC para o projeto, definida no stack.yaml
.