2016-03-24 5 views
4

После обновления с ghc 7.6 до 7.10 кажется, что вы не можете :m [Module] или ghci> import [Module] где [Module.hs] - это ваш файл с файлами, написанный вручную, который находится в текущем рабочем каталоге.ghci: как импортировать модули в папку

Похоже, что ghci ищет только модули, которые являются частью стандартной библиотеки haskell и модулей, которые установлены глобально через cabal. (вы все равно можете :load [Module.hs] в подсказках ghci)

Я думаю, что это раздражает, поскольку вы не можете проверить, правильно ли определено мое определение модуля, напрямую импортируя их из ghci. Есть ли какой-либо переключатель или конфигурация, с которыми я могу играть, поэтому я могу сказать, где мой рабочий файл haskell работает с ghci?

+0

просто бросить '.cabal' в папку подвергая модуль, и он должен работать – Carsten

+2

Я не понимаю. Если ': load' работает, почему бы просто не использовать это? – sclv

+0

Вы по-прежнему можете использовать ': m' или' import' на «локальных» модулях, это значит, что теперь все модули должны быть загружены перед вызовом любой из этих команд на них (я считаю, что он ранее загружал модуль автоматически, если бы он wasn ' t загружен?). Так что просто ': l Module.hs; : m + Module'. – user2407038

ответ

4

Не очень полезный способ, но если вы хотите, чтобы достичь этого старого поведения, вы должны загрузить файл, который содержит модуль

ghci> :l File.hs 

Скрыть/удалить все модули, которые вы не хотите

ghci> :m 

модуль импортирован из файла теперь доступен

ghci> :m YourModule