2016-05-27 4 views
2

J'aiLa pile ghci ne charge pas les modules locaux?

mainLogger.hs 
Logger.hs 

dans mon répertoire local où les mainLogger.hs font référence au module enregistreur.

Lorsqu'en stack ghci je :load mainLogger.hs je reçois le message d'erreur suivant:

mainLogger.hs:6:18: 
    Could not find module ‘Logger’ 
    It is not a module in the current program, or in any known package. 

Cependant, si je peux compiler et exécuter stack exec -- ghc mainLogger.hsstack runghc mainLogger2.hs ou ont stack exec -- ghci charge correctement le module.

Tout le monde sait ce qui empêche stack ghci du module de localisation dans le répertoire local?

ps: Je ne suis pas en utilisant un fichier cabale ou d'un fichier stack.yaml dans ce répertoire, il retombe sur ma config globale stack.yaml

+0

@Carsten Je suppose. essayer cela maintenant. mon emacs par défaut a lancé la pile ghci c'est pourquoi je regarde dans ce – nicolas

+1

je devais le tester pour être sûr mais vous devriez être capable de charger les deux si vous faites juste ': charger Logger.h mainLogger.hs' - je ne sais pas savoir si vous pouvez obtenir GHCi pour rechercher le module manquant dans le dossier actuel si vous n'avez pas de fichier cabal (je n'en crée habituellement qu'un) – Carsten

+0

@Carsten oui! Ça marche. J'ai essayé de charger l'un puis l'autre (échoué), mais les donner tous les deux en même temps fonctionne. pouvez-vous mettre cela comme une réponse? – nicolas

Répondre

2

Vous devriez être en mesure de charger à la fois si vous le faites au en même temps:

:load Logger.hs mainLogger.hs 

Je ne sais pas si vous pouvez obtenir GHCi pour chercher le module manquant dans le dossier en cours si vous avez pas de fichier cabale, mais si vous créez/initialiser un ce n'est pas nécessaire.

1

Ce problème devrait maintenant être corrigé dans la dernière version de la pile. Il semble que lorsqu'un module importait un module local, la pile n'incluait pas le répertoire local dans son chemin de recherche de module. Dans la dernière version 1.5.1. version de la pile, cela a été corrigé - donc vous devriez être en mesure de simplement taper

stack ghci mainLogger.hs 
+0

merci de le mentionner – nicolas