Haskell 如何将llvm general的特定分支与堆栈一起使用
在我的一个项目中,我想使用Haskell 如何将llvm general的特定分支与堆栈一起使用,haskell,cabal,haskell-stack,Haskell,Cabal,Haskell Stack,在我的一个项目中,我想使用llvm-general和llvm-general-pure但是我想使用llvm-3.9分支,它与llvm 3.9一起工作,这些库的最新版本是针对llvm 3.5的 我的项目是一个堆栈项目,这是我在stack.yaml中的内容: resolver: nightly-2017-05-01 packages: - '.' - location: git: https://github.com/bscarlet/llvm-general.git
llvm-general
和llvm-general-pure
但是我想使用llvm-3.9分支,它与llvm 3.9一起工作,这些库的最新版本是针对llvm 3.5的
我的项目是一个堆栈项目,这是我在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
名称:编译器最终版
版本:0.1.0.0
类别:编译器
构建类型:简单
--额外源文件:
阴谋集团版本:>=1.10
图书馆
hs源目录:src
公开模块:Lexer、Parser、ParserTestData、CodeGen
其他模块:前奏曲、状态图
ghc选项:-墙-dcore lint-fhpc-XNoImplicitPrelude-FOObject代码
构建取决于:base noprelude>=4.7&&<5,megaparsec<6,transformers<1,无序容器<1,hashable<2
,优雅的前奏曲,或<5,单声道可遍历<2,对数浮点<0.14,文本
默认语言:Haskell 2010
默认扩展名:重载字符串
可执行编译器
hs源目录:应用程序
main是:main.hs
ghc选项:-threaded-rtsopts-XNoImplicitPrelude-with-rtsopts=-N-fobject代码
构建取决于:基础
,编译器最终版本
默认语言:Haskell 2010
默认扩展名:重载字符串
测试套件编译器最终测试
类型:exitcode-stdio-1.0
hs源目录:测试
其他模块:LexerSpec、ParserSpec
主要是:规格hs
构建取决于:基础
,编译器最终版,megaparsec<6,hspec<3,hspec megaparsec>=0.3,无序容器<1
,可哈希,转换器<1,文本,bytestring,mtl,文本
ghc选项:-threaded-rtsopts-with-rtsopts=-N-fhpc-Wall-xnomplicitprelude-fobject代码
默认语言:Haskell 2010
默认扩展名:重载字符串
基准编译器最终工作台
类型:exitcode-stdio-1.0
hs源目录:工作台
主要是:Bench.hs
其他模块:ParserBench
构建依赖于:base、compiler final、megaparsec<6、无序容器<1、QuickCheck您的。cabal
没有将llvm general
和llvm general pure
列为依赖项,因此找不到llvm.general.AST
此外,您的stack.yaml
指向master
,因此stack
只能看到版本3.5<如果3.9版不在stack.yaml
文件中,则code>stack
对其一无所知。要么:
- 将提交更改为
李>EC1AD5BD212E7F64DBB4344B5E2075CF6AD8E
- 或者,如果在本地克隆了分支,则可以将存储库对应的整个
位置
字段替换为
- location: 'path/to/llvm-general' extra-dep: true - location: 'path/to/llvm-general-pure' extra-dep: true