GHC-мод работает в директории с только исходным Haskell файл, но если я бегу «междусобойчик INIT» в этом каталоге (/ TMP/тест), я получаю следующее сообщение об ошибке:Почему «cabal init» прерывает «ghc-mod check»?
(p1)[email protected]:/tmp/test$ !ghc
ghc-mod check Main.hs
ghc-mod: /tmp/test/dist/setup-config: hGetContents: invalid argument (invalid byte sequence)
Что происходит здесь не так ?
Я запускаю ghc-mod 5.2.11 и cabal 1.21.1.0 на 64-разрядном компьютере ubuntu 14.04. переменная среды LANG установлена в en_US.UTF-8 (я видел ответы на некоторые другие вопросы, которые говорят о том, что здесь может быть важна настройка LANG). Я попробовал запустить версию cabal 1.16.0, но это не имело никакого значения.
Вот запись, которая показывает более подробно:
(p1)[email protected]:/tmp/test$ ls -la
total 80
drwxrwxr-x 2 dave dave 4096 Dec 4 07:07 .
drwxrwxrwt 35 root root 69632 Dec 4 07:06 ..
-rw-rw-r-- 1 dave dave 143 Dec 4 07:04 Main.hs
(p1)[email protected]:/tmp/test$ set | grep LANG
GDM_LANG=en_US
LANG=en_US.UTF-8
LANGUAGE=en_US
(p1)[email protected]:/tmp/test$ ghc-mod version
ghc-mod version 5.2.1.1 compiled by GHC 7.6.3
(p1)[email protected]:/tmp/test$ cabal -V
cabal-install version 1.21.1.0
using version 1.21.1.0 of the Cabal library
(p1)[email protected]:/tmp/test$ ghc-mod check Main.hs
Main.hs:7:1:Warning: Top-level binding with no type signature: haqify :: [Char] -> [Char]
(p1)[email protected]:/tmp/test$ cabal init
Package name? [default: test]
Package version? [default: 0.1.0.0]
Please choose a license:
* 1) (none)
2) GPL-2
3) GPL-3
4) LGPL-2.1
5) LGPL-3
6) AGPL-3
7) BSD2
8) BSD3
9) MIT
10) ISC
11) MPL-2.0
12) Apache-2.0
13) PublicDomain
14) AllRightsReserved
15) Other (specify)
Your choice? [default: (none)] 2
Author name? [default: XXXXXXXXXXXX]
Maintainer email? [default: XXXXXXXXXXXXXXXXXXXXXX]
Project homepage URL?
Project synopsis?
Project category:
* 1) (none)
2) Codec
3) Concurrency
4) Control
5) Data
6) Database
7) Development
8) Distribution
9) Game
10) Graphics
11) Language
12) Math
13) Network
14) Sound
15) System
16) Testing
17) Text
18) Web
19) Other (specify)
Your choice? [default: (none)]
What does the package build:
1) Library
2) Executable
Your choice? 2
What is the main module of the executable:
* 1) Main.hs
2) Other (specify)
Your choice? [default: Main.hs]
What base language is the package written in:
* 1) Haskell2010
2) Haskell98
3) Other (specify)
Your choice? [default: Haskell2010]
Include documentation on what each field means (y/n)? [default: n]
Source directory:
* 1) (none)
2) src
3) Other (specify)
Your choice? [default: (none)]
Guessing dependencies...
Generating LICENSE...
Generating Setup.hs...
Generating test.cabal...
Warning: no synopsis given. You should edit the .cabal file and add one.
You may want to edit the .cabal file and add a Description field.
(p1)[email protected]:/tmp/test$ !ghc
ghc-mod check Main.hs
ghc-mod: /tmp/test/dist/setup-config: hGetContents: invalid argument (invalid byte sequence)
(p1)[email protected]:/tmp/test$
GHC-мод выполняет 'междусобойчик configure', так что я бы перехватывать вывод этой команды и посмотреть, если вы видите что-то подозрительное , – ErikR
Кроме того, что произойдет, если вы запустите 'cabal configure' перед запуском' ghc-mod check ... '? – ErikR
Также проверьте файл 'dist/setup-config'. Это файл 'ghc-mod' читает после запуска' cabal configure' – ErikR