System.IO.UTF8 не найден (установка PureScript)

Я пытаюсь установить PureScript на Ubuntu 14.04. У меня установлена ​​последняя версия Haskell-Platform, и я запустил cabal update. Во время cabal install purescript я получаю сообщение об ошибке, что модуль System.IO.UTF8 не найден. Поиск в Google показывает, что это часть utf8-string и должна быть одной из открытые модули, когда этот пакет установлен.

Однако, когда я его устанавливаю, такой пакет недоступен:

ely@eschaton:~$ cabal update
Downloading the latest package list from hackage.haskell.org
ely@eschaton:~$ cabal --reinstall install utf8-string
Resolving dependencies...
In order, the following will be installed:
utf8-string-1 (reinstall)
Warning: Note that reinstalls are always dangerous. Continuing anyway...
Configuring utf8-string-1...
Building utf8-string-1...
Preprocessing library utf8-string-1...
[1 of 5] Compiling Codec.Binary.UTF8.String ( Codec/Binary/UTF8/String.hs, dist/build/Codec/Binary/UTF8/String.o )
[2 of 5] Compiling Codec.Binary.UTF8.Generic ( Codec/Binary/UTF8/Generic.hs, dist/build/Codec/Binary/UTF8/Generic.o )
[3 of 5] Compiling Data.String.UTF8 ( Data/String/UTF8.hs, dist/build/Data/String/UTF8.o )
[4 of 5] Compiling Data.ByteString.UTF8 ( Data/ByteString/UTF8.hs, dist/build/Data/ByteString/UTF8.o )
[5 of 5] Compiling Data.ByteString.Lazy.UTF8 ( Data/ByteString/Lazy/UTF8.hs, dist/build/Data/ByteString/Lazy/UTF8.o )
In-place registering utf8-string-1...
Installing library in /home/ely/.cabal/lib/utf8-string-1/ghc-7.6.3
Registering utf8-string-1...
Installed utf8-string-1
ely@eschaton:~$ ghci
GHCi, version 7.6.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> import System.IO.UTF8

<no location info>:
    Could not find module `System.IO.UTF8'
    It is not a module in the current program, or in any known package.

Вы можете видеть, что только 5 из заявленных предлагаемых библиотек скомпилированы.

исходный код PureScript определенно использует System.IO.UTF8.

Но System.IO.UTF8 выглядит довольно старым пакетом, который давно (2+ года) не претерпевал изменений, поэтому маловероятно, что это было существенное изменение в последней версии. Для загрузки, PureScript очень новый, и поэтому он наверняка будет основан на более новых версиях utf8-string, если они будут доступны.

Итак, вопрос: почему PureScript не может установить эту зависимость самостоятельно... и почему cabal установка utf8-string не может открыть модуль System.IO.UTF8, как это предполагается.


person ely    schedule 23.01.2015    source источник


Ответы (1)


Похоже, что utf-string был обновлен сегодня (23 января) до версии 1, которая не у меня больше нет модуля System.IO.UTF8. Он присутствует в предыдущей версии 0.3.8 из utf-string.

И purescript не указывает верхнюю границу для utf-string.


EDIT Я сделал PR, чтобы обойти проблема. Также существует более правильное исправление WIP.

person phadej    schedule 23.01.2015
comment
Просто мне повезло! Я зарегистрирую проблему на странице PureScript. - person ely; 23.01.2015
comment
На самом деле похоже, что они уже внесли некоторые изменения, чтобы исправить это. Не уверен, какой будет лучшая политика установки, пока пакет не будет обновлен. Похоже, я выбрал неудачный день для тестирования PureScript... - person ely; 23.01.2015
comment
Я только что слил это в мастер и сделал релиз на Hackage и GitHub, так что теперь у вас все должно быть хорошо. - person Phil Freeman; 23.01.2015