2014-10-09 2 views
3

Я пытаюсь запустить код Safe Haskell с runghc, но он не работает для меня.Почему runghc терпит неудачу при использовании -XSafe?

[email protected]:/tmp/wtf$ ls 
Strange.hs 
[email protected]:/tmp/wtf$ cat Strange.hs 
module Strange where 

main :: IO() 
main = do 
    return() 
[email protected]:/tmp/wtf$ runghc -XSafe Strange 

Strange:1:1: Not in scope: `System.Environment.withArgs' 
[email protected]:/tmp/wtf$ runghc --version 
runghc 7.6.3 

Я думал, что это будет действительным использование runghc; ошибка является наиболее запутанной. Это ошибка?

Я использую Ubuntu 14.04, 64-бит.

+0

не смущает. добавьте 'import System.Environment'. – d8d0d65b3f7cf42

+3

Программа orig работает для меня на ghc 7.4.1 под Ubuntu 12.04, но не работает под ghc 7.8.3 в HaskellPlatform 14.2.0.0 под Win7. Добавление импорта является ненужным, потому что код не вызывает 'getArgs' или любую функцию в' System.Environment' и, кроме того, не устраняет проблему (для меня, на HaskellPlatform 14.2.0.0 на Win7). –

+0

ОК теперь я вижу, что это странно. Я не могу воспроизвести вашу ошибку с помощью ghc-7.8.3 на Fedora. Можете ли вы показать вывод 'runghc -v Strange.hs'? – d8d0d65b3f7cf42

ответ

-1

Как уже говорилось в комментарии, просто добавьте import System.Environment

1

Наблюдаемое поведение можно объяснить следующим образом.

Реализация runghc здесь: https://ghc.haskell.org/trac/ghc/browser/ghc/utils/runghc/runghc.hs

Это сделает следующий вызов ghc, который также показывает странное поведение:

ghc -XSafe -e ':main' Strange.hs 

Реализация GHC в режиме evalatue-выражение добавьте оскорбительный импорт: https://ghc.haskell.org/trac/ghc/browser/ghc/ghc/InteractiveUI.hs#L1154

Я не уверен, что это ошибка. Я согласен, что это сбивает с толку.

Смежные вопросы