2017-01-07 6 views
3

私は現在、GHCの頭にのみ存在するような、種類の平等を使いたいと思います。どのように私はhaskellプロジェクトの上限をオーバーライドするのですか?

私はそれが正しいコンパイラを選ぶことstack pathを使用して見ることができる私はGHCのシステムがインストール作られた、と私のプロジェクトで私がsnapshot.yaml

resolver: nightly-2016-12-31 
compiler: ghc-8.1.20170103 

stack.yaml応じ

resolver: 
    name: snapshot 
    location: snapshot.yaml 

更新を追加しました。

私は私のプロジェクトをビルドするとき、私は今

In the dependencies for array-0.5.1.1: 
    base-4.10.0.0 must match >=4.5 && <4.10 (latest applicable is 4.9.0.0) 
needed due to bookkeeper-0.2.4 -> array-0.5.1.1 

を持ってどのように私は実際にはおそらく必要されていない、私のプロジェクトから上限配列-0.5.1.1によって宣言をオーバーライドすることができますか?

+0

'--allow-newer'を試してください。 – sjakobi

+1

ああ、明らかにCLIオプションではありません。 [あなたはstack.yamlで設定することができます。](https://docs.haskellstack.org/en/stable/yaml_configuration/#allow-newer) – sjakobi

答えて

2

あなたの主な問題はnightly-2016-12-31スナップショットuses GHC 8.0.1 and base 4.9.0.0です。したがって、GHC 8.1のインストールと互換性がありません。 set the resolver to ghc-8.1.20170103に十分である必要があります。そのため、スナップショットは使用されません。 (system-ghcオプションもありますが、Stackが既に正しいコンパイラを使用しているので、これをオンにする必要はありません)。GHCにバンドルされていないパッケージが必要な場合は、 extra-depsstack.yamlに設定します(既に依存関係を指定している.cabalファイルがある場合は、stack solver --update-configを使用して自動的に埋め込むことができます)。

+0

ヒントをありがとう。リゾルバをghc-8.1.20170103に設定すると、ソルバの試行では、この上限を基底に指定しているすべてのライブラリについて不平を言うので、計画が見つからない。とてもイライラします。 – nicolas

+0

ok、ソルバーはstack.yamlに設定された 'allow-newer'フラグを無視します。必要なパッケージをビルドして追加しようとすると、コンパイルが行われます。 – nicolas

関連する問題