2017-06-09 1 views
1

J'essaie d'utiliser Haskell Stack pour configurer un projet, mais en utilisant la pile fournie GHC j'ai une erreur -fPIC GitHub issueHaskell Stack ne pas utiliser le système Ghc

Pour contourner le problème fPIC je suis essayer d'utiliser un gestionnaire de paquets fourni GHC en utilisant la version 7.10.3 (la pile utilise actuellement 8.0.2)

Lorsque j'essaie de forcer la pile à utiliser le systm ghc, il m'ignore simplement. J'ai essayé de surcharger en utilisant /home/user/.stack/config.yaml et {projet} /stack.yaml system-ghc: option vrai ... mais la pile utilise la version 8.0.2 dans la configuration.

Ai-je raté quelque chose?

TL; DR

Stack ignorer le système GHC: véritable option

Je Runnig Sabayon 16


"haskell-amorce" est le nom du projet

stack list-dependencies 

base 4.9.1.0 
ghc-prim 0.5.0.0 
haskell-primer 0.1.0.0 
integer-gmp 1.0.0.1 
rts 1.0 
+0

Je pense (pas sûr) que la pile utilisera seulement le système ghc si le résolveur de dépendances le trouve approprié. Vérifiez si l'une de vos dépendances nécessite ghc8. –

+0

thx pour le commentaire. j'ai vérifié avec la liste dépendances dépendances list- de pile de la pile ' carte 4.9.1.0 0.5.0.0 ghc-prim haskell-amorce 0.1.0.0 entier-gmp 1.0.0.1 rts 1.0' –

+0

dominante le résolveur INTO stack.yaml semble fonctionner. Je l'ai édité pour employer lts-6.35 et maintenant il mappe au système-ghc. Mais ... je ne sais pas si c'est une solution au problème. Je ne veux pas éditer manuellement tous mes fichiers stack.yaml ... –

Répondre

6

Paramètre system-ghc: truepermet Empiler pour utiliser le système GHC s'il correspond aux contraintes du résolveur. Il ne sera pas force Pile pour utiliser le système GHC s'il ne correspond pas aux contraintes. Si votre résolveur nécessite GHC 8 mais que votre système a GHC 7, Stack n'utilisera pas votre système GHC, quelle que soit la valeur que vous donnerez system-ghc. Inversement, si system-ghc: false alors Stack jamais utiliser le système GHC, indépendamment du fait que sa version correspond.

De l'Stack FAQ, Souligné par l'auteur:

Si vous souhaitez pile d'utiliser votre système d'installation GHC, utilisez le drapeau --system-ghc ou exécuter config pile réglée system-ghc --global true pour faire pile vérifier votre chemin pour un GHC approprié par défaut.

Notez que la pile ne peut utiliser une installation système GHC que si sa version est compatible avec la configuration du projet en cours, en particulier le resolver.