2017-05-07 9 views
-1

내 프로젝트 중 하나에서 llvm-generalllvm-general-pure을 사용하고 싶지만 llvm 3.9와 함께 작동하는 llvm-3.9 분기를 사용하고 싶습니다.이 라이브러리의 최신 버전은 다음과 같습니다. hackage는 llvm 3.5입니다.llvm-general의 특정 분기를 스택과 함께 사용하는 방법

내 프로젝트는 이것이 내가 stack.yaml에 무엇을 가지고, 스택 프로젝트입니다 :

resolver: nightly-2017-05-01  
packages: 
- '.' 
- location: 
    git: https://github.com/bscarlet/llvm-general.git  
    commit: 61fd03639063283e7dc617698265cc883baf0eec 
    subdirs: 
    - llvm-general 
    - llvm-general-pure 
    extra-dep: true  

다른 모든 옵션은 기본값으로 남아 있습니다.

name:    compiler-final 
version:    0.1.0.0  
category:   Compiler 
build-type:   Simple 
-- extra-source-files: 
cabal-version:  >=1.10 

library 
    hs-source-dirs:  src 
    exposed-modules:  Lexer,Parser,ParserTestData,CodeGen 
    other-modules:  Prelude,StateTUtil 
    ghc-options:   -Wall -dcore-lint -fhpc -XNoImplicitPrelude -fobject-code 
    build-depends:  base-noprelude >= 4.7 && < 5 , megaparsec < 6 , transformers < 1, unordered-containers < 1 , hashable < 2 
         ,classy-prelude , either < 5 , mono-traversable < 2 , logfloat < 0.14 , text 
    default-language: Haskell2010 
    default-extensions: OverloadedStrings 

executable compiler-final-exe 
    hs-source-dirs:  app 
    main-is:    Main.hs 
    ghc-options:   -threaded -rtsopts -XNoImplicitPrelude -with-rtsopts=-N -fobject-code 
    build-depends:  base 
        , compiler-final 
    default-language: Haskell2010 
    default-extensions: OverloadedStrings 

test-suite compiler-final-test 
    type:    exitcode-stdio-1.0 
    hs-source-dirs:  test 
    other-modules:  LexerSpec , ParserSpec 
    main-is:    Spec.hs 
    build-depends:  base 
         , compiler-final, megaparsec < 6 , hspec < 3,hspec-megaparsec >= 0.3,unordered-containers < 1 
         ,hashable,transformers < 1,text,bytestring , mtl, text 
    ghc-options:   -threaded -rtsopts -with-rtsopts=-N -fhpc -Wall -XNoImplicitPrelude -fobject-code 
    default-language: Haskell2010 
    default-extensions: OverloadedStrings 
Benchmark compiler-final-bench 
    type:    exitcode-stdio-1.0 
    hs-source-dirs:  bench 
    main-is:    Bench.hs 
    other-modules:  ParserBench 
    build-depends:  base,compiler-final,megaparsec < 6 ,unordered-containers < 1,QuickCheck<3 
         ,hashable 
    ghc-options:   -rtsopts -auto-all -caf-all -fforce-recomp -fobject-code 
    default-language: Haskell2010 

불행하게도 CodeGen.hs이 간단한 import 문이 컴파일되지 않습니다 :

이 내 project.cabal입니다 import LLVM.General.AST, 그것은 모듈을 찾을 수 없습니다 말했다.

이제 llvm-general branch 3.9가 cabal install을 통해 전역에 설치되어 있고 ghci -package (stack ghci 아님)으로 액세스 할 수 있으며 위 모듈이 존재합니다. 나는 버전 3.9.0.0하지만 스택 내 종속성 목록에 llvm-generalllvm-general-pure을 추가하는 시도

이 일치하지 않는 버전에 대한 오류를보고 있기 때문에 버전 3.5를 설치하려고 할 것으로 보인다.

내가 원하는 것을 어떻게 달성 할 수 있습니까?

+0

와 저장소에 해당하는 전체 location 필드를 대체 할 수있다 "는 일치하지 않는 버전에 대한 오류를보고"당신은 오류를 게시 할 수 있습니까? –

답변

1

.caballlvm-generalllvm-general-pure을 종속성으로 나열하지 않으므로 LLVM.General.AST이 (가) 발견되지 않는 이유는 무엇입니까?

또한 stack.yamlmaster을 가리키고 있으므로 stack은 버전 3.5 만 표시됩니다. stackstack.yaml 파일에없는 경우 버전 3.9에 대해 알지 못합니다. 다음 중 하나 :

  • 커밋을 ec1ad5bd2112e7f64dbb43441b5e2075cf6ad8e으로 변경하십시오.
  • 또는 로컬 복제 지점이있는 경우, 당신은

    - location: 'path/to/llvm-general' 
        extra-dep: true 
    - location: 'path/to/llvm-general-pure' 
        extra-dep: true 
    
+0

감사합니다. 현지에서 복제 된 지점의 위치가 작동했습니다. – niceman