2013-02-23 1 views
4

에 컴파일에 실패 셰익스피어-JS-1.0.2셰익스피어-JS는 Heroku가의 음모에 내 간단한 Yesod 응용 프로그램을 배포 할 때 Heroku가

Building shakespeare-js-1.0.2... 
Building persistent-1.0.2.2... 
Building yaml-0.8.2.1... 
Building tls-extra-0.6.1... 
Failed to install shakespeare-js-1.0.2 
Last 10 lines of the build log (/app//.cabal/logs/shakespeare-js-1.0.2.log): 
Building shakespeare-js-1.0.2... 
Preprocessing library shakespeare-js-1.0.2... 
[1 of 3] Compiling Text.Julius (Text/Julius.hs, dist/build/Text/Julius.o) 
[2 of 3] Compiling Text.Coffee (Text/Coffee.hs, dist/build/Text/Coffee.o) 
Text/Coffee.hs:56:7: 
`preEscapeBegin' is not a (visible) field of constructor `PreConvert' 
Text/Coffee.hs:57:7: 
`preEscapeEnd' is not a (visible) field of constructor `PreConvert' 

프로젝트 인쇄에 WAI와 워프를 사용하는 간단한 웹 사이트입니다 설치할 때 실패 안녕하세요. 내 음모 파일에서 난 단지 (그것은 Yesod 또는 셰익스피어-JS 아직 사용하지 않습니다)는 Heroku가에 사용할 수 있는지 확인하기 위해 yesod (1.1.9)의 최신 버전을 지정

executable Website 
    extensions:NoImplicitPrelude 
      TemplateHaskell 
      QuasiQuotes 
      OverloadedStrings 
      CPP 
      MultiParamTypeClasses 
      TypeFamilies 
      GADTs 
      GeneralizedNewtypeDeriving 
      FlexibleContexts 
      EmptyDataDecls 
      NoMonomorphismRestriction 



    main-is:    source/Main.hs 
    -- other-modules:  
    build-depends:  base   == 4.5.* 
        , http-types 
        , template-haskell 
        , wai   
        , wai-extra  
        , warp   
        , yesod   == 1.1.9 

이 프로젝트 빌드 유사한 스택을 사용하여 내 VM에서 로컬로 실행됩니다. 셰익스피어 -js-1.0.2가 포함됩니다.

  • .cabal 파일에 셰익스피어-JS 다른 1.0.2 이하의 새로운 또는 이전 버전을 강제로 :

    나는 다음 시도했다. 동일한 컴파일 오류가 나타납니다. 어둠 속에서 샷으로
  • , 나는 .cabal 파일에서 같은 TemplateHaskell로 컴파일에 영향을 미칠 수있는 몇 가지 확장 기능을 제거했습니다.

편집 :

  • 내가 사용하는 셰익스피어-JS < 1.0.2에게 Heroku는 컴파일에 실패 1.0.1를 선택 후 내가 컴파일 오류가 발생합니다.
  • 나는 심지어 로컬 어디서나 컴파일 셰익스피어-JS-1.1.2 (최신 버전)을 얻을 수 없습니다.

나는이 셰익스피어 (yesod)의 최신 버전을 컴파일 할 수없는 문제가 해결되지 않는 셰익스피어 < 1.0.3 을 강제로 오류를 해결했다.

+0

하지'셰익스피어 - js', 셰익스피어 <1.0.3''로 봅니다. –

+0

빠른 질문 : Daniel이 제안한 수정 사항을 적용한 후에는이 오류가 발생하지 않습니다 :'거부 : ghc-paths-0.1.0.9 (unknown package : ghc)'? – ichistmeinname

답변

2

문제 유형 PreConvertshakespeare-1.0.2shakespeare-1.0.3 사이에서 변화한다는 것이다.

이전 버전에서 preEscapeBeginpreEscapeEnd은 생성자 PreConvert의 필드 였지만 버전 1.0.3에서는 제거되었습니다.

그래서 해결책은

  • shakespeare의 이전 버전을 사용 shakespeare < 1.0.3 또는
  • shakespeare-js >= 1.1.2를 지정 shakespeare-js의 새로운 충분한 버전을 사용 지정하는 것입니다.

가 (당신이 새로운 shakespeare 버전을 사용하는 경우 필요한 추가 조정이있을 수 있습니다, 나는 시도하지 않았습니다.)

+0

그가 말했듯이, 구형 및 신형 버전 중 하나는 작동하지 않습니다 .- 나는 지금 며칠 동안 같은 문제가 있습니다. – ichistmeinname

+0

나는 시도하지 않은,하지만 난'셰익스피어 - js'이 shakespeare''의 version_ 이전 _with 일을 기대, 나는 더 많거나 적은'셰익스피어-JS-1.1.2'는'셰익스피어-1.0.3와 함께 작동하도록 기대 '.후자는 다른 패키지의 새로운 버전을 필요로 할 수도 있으며, 아마도 이전 버전은 카발 따기를 제외한 다른 패키지의 이전 버전을 사용하도록 요구할 수도 있습니다. 그러나 셰익스피어 -0.1.3은 셰익스피어 -js <1.1.2>에서는 확실히 작동하지 않습니다. 어떤 조합을 시도 했습니까? –

+0

오, 나는 당신의 코멘트를 충분히주의 깊게 읽지 않았다. 첫 번째 제안에서 '셰익스피어'를 잘못 읽었습니다. 마지막 시도에서'셰익스피어 -js '의 다른 버전을 시도했지만 이전 버전은 작동하지 않았고 새로운 버전은 해결할 수없는 새로운 문제를 가져 왔습니다. 그러나 위에서 언급 한 오류는 셰익스피어 <1.0.3>의 제한 사항으로 더 이상 발생하지 않습니다. 팁을 가져 주셔서 감사합니다! – ichistmeinname