1

으로 가장 최신의 GHC (7.9.20140608)와 Cabal (1.20.0.0)을 실행 중이며 attoparsec이 실패한 것으로 보입니다.attoparsec이 글을 쓰는 시점에 불법적 인 방정식

Data/Attoparsec/ByteString/Internal.hs:519:7: 
    Illegal equational constraint a_audv ~ (ByteString, t) 
    (Use GADTs or TypeFamilies to permit this) 
    In the context: (a_audv ~ (ByteString, t)) 
    While checking the inferred type for ‘succ'’ 
    In the expression: 
     let 
     succ' t' pos' more' a 
      = succ t' pos' more' (substring pos (pos' - pos) t', a) 
     in runParser p t pos more lose succ' 
    In the second argument of ‘($)’, namely 
     ‘\ t pos more lose succ 
     -> let succ' t' pos' more' a = ... 
      in runParser p t pos more lose succ'’ 

언어 확장이 누락 되었습니까? 아니면이 문제는 좀 더 까다 롭습니다? 다음은 내 Cabal 파일입니다. http://lpaste.net/105329

위와 관련한 도움이 될 것입니다. 해피 해킹!

+3

오류 메시지는 attoparsec이 출시 된 버전의 GHC에 필요하지 않은 확장명을 지정하기 만하면된다는 것을 나타냅니다. 왜 야간 스냅 샷을 사용하고 있습니까? 그것들은 정말로 불안정하며, 대부분의 도서관 관리자가 출시일 전까지는 해결하지 못하는 급격한 변화를 도입 할 것입니다. –

+0

아, 알겠습니다. 고마워요. 배포판 패키지 관리자가 없으면 7.8 이상으로 업그레이드하는 표준 방법은 무엇입니까? 도와 줘서 고마워. –

+0

7.8보다 새로운 GHC를 사용하는 표준 방법은 없습니다. 7.8보다 새로운 버전의 GHC를 사용해야하는 유일한 사람들은 GHC 자체에서 작업하는 사람들입니다. 이 시점에서 라이브러리를 수정하여 7.10으로 작업하기에는 아직시기 상조입니다. 여전히 많은 변화가 있습니다. – Carl

답변

2

지금 ghc-7.8을 사용하는 가장 좋은 방법은 ghc download page으로 가서 current stable release의 지침을 따르는 것입니다. 바이너리 패키지가 있거나 소스에서 설치할 수 있습니다 (소스 타볼을 사용하면 간단하게 ./configure && make && make install 일 수 있지만 이미 작동중인 ghc가 있어야합니다).

소스에서 설치하는 경우 버전을 변경하는 것이 좋습니다. 7.8.2.1. AC_INIT 행을 configure.ac으로 편집 한 다음 autoreconfconfigure 앞에 실행하면됩니다. 이 작업을 수행하고 버전 특정 위치 (예 : /usr/local/ghc/ghc-7.8.2.1.src, 이것은 ./configure --PREFIX=/path/to/install을 통해 설정할 수 있음)에 설치하면 로컬로 컴파일 된 버전을 패키지 설치 또는 플랫폼과 함께 설치하거나 다른 버전들).

ghc-7.8.3이 곧 제공 될 예정입니다 (최대 2 주 이내). 버그 수정 릴리스입니다. 또한 현재 ghc-7.8이 포함 된 Haskell Platform 릴리즈가 없으므로 현재로서는 옵션이 아닙니다.

관련 문제