2016-05-12 2 views
0

Après avoir créé un nouveau projet:Dépendance Ajout - Erreur Parse

$cd myproject 
$stack new workbench 
$cd workbench/ 
$stack setup 

J'ai essayé d'ajouter cette bibliothèque ZeroMQ en mettant à jour mon workbench.cabal:

$cat workbench.cabal 
name:    workbench 

... 

library 
    hs-source-dirs:  src 
    exposed-modules:  Lib 
    build-depends:  base >= 4.7 && < 5 # my note: line 19 
         zeromq4-haskell 
    default-language: Haskell2010 

Mais, j'obtiens ce qui suit lors de l'exécution stack clean:

$stack clean 
Unable to parse cabal file .../workbench/workbench.cabal: NoParse "build-depends" 19 

Qu'est-ce que je fais mal?

+7

Essayez d'ajouter une virgule entre les dépendances, par ex. 'base> = 4.7 && <5, zeromq-haskell' - même s'ils sont sur des lignes différentes. – ErikR

+3

@ErikR Ce n'est pas un commentaire, c'est une réponse! –

Répondre

2

Toute liste d'un fichier cabal doit être séparée par des virgules et non par des espaces. Les règles relatives à .cabal fichiers are listed in the user guide *:

library 
    hs-source-dirs:  src 
    exposed-modules:  Lib 
    build-depends:  base >= 4.7 && < 5, 
         zeromq4-haskell 
    default-language: Haskell2010 

* Assez drôle, la définition d'un x list manque là.

+0

Certains champs comme 'exposed-modules' et' extra-source-files' _can_ peuvent au moins être séparés par des espaces. Je ne suis pas sûr qu'il y ait des champs qui doivent être séparés par des espaces blancs ... – sjakobi

+0

^Les règles de syntaxe compliquées des fichiers cabal sont une des raisons pour lesquelles j'utilise 'hpack' pour les nouveaux projets. Avec 'hpack', je peux définir les métadonnées du projet dans la syntaxe' yaml'. – sjakobi