Невозможно установить кислотное состояние с помощью cabal на Haskell Platform 2012.2.0.0 (Windows XP)
Используя cabal, я попытался установить acid-state на Haskell Platform 2012.2.0.0 (Windows XP), но получил следующую ошибку:
src-win32\FileIO.hs:43:5:
Not in scope: catchIO Perhaps you meant `catch' (imported from Prelude)
src-win32\FileIO.hs:55:6:
Not in scope: tryE Perhaps you meant `try' (imported from Control.Exception.Extensible)
src-win32\FileIO.hs:56:6:
Not in scope: tryE
Perhaps you meant `try' (imported from Control.Exception.Extensible)
cabal: Error: some packages failed to install:
acid-state-0.8.1 failed during the building phase. The exception was:
ExitFailure 1
1 ответ
Подобные проблемы часто возникают при переходе на расширяемую систему исключений. tryE
а также catchIO
являются стандартным шаблоном; они просто специализируются catch
а также try
использовать SomeException
а также IOException
import Control.Exception.Extensible(try,throw)
import Control.Exception(SomeException,IOException)
import qualified Control.Exception as E
tryE :: IO a -> IO (Either SomeException a)
tryE = try
catchIO :: IO a -> (IOException -> IO a) -> IO a
catchIO = E.catch
Ну действуй cabal unpack acid-state
и замените src-win32/FileIO.hs этим, который определяет их в строках 18ff https://gist.github.com/4032603 а затем выполните cabal install
из внешнего каталога, тот, с acid-state.cabal
файл.
Вероятно, есть какая-то дополнительная ошибка, так как я не могу проверить это в данный момент. Как говорит Пол Р., когда вы получите его для компиляции, отправьте его сопровождающим. Пакет тщательно поддерживается, но похоже, что они нуждаются в тестере Windows. Кислотное состояние, безусловно, стоит того. Вам также следует попробовать некоторые модули из каталога examples/, которые в любом случае станут отличным учебником. Если у вас возникли другие проблемы, напишите, мы можем разработать подходящий исправленный файл вместе.