2014/07/29

Agda を HEAD から build する


brew で gcc と ghc の version を上げたら Agda が build できなくなったので repository から build したおはなし


環境

  • Mac OSX 10.9.4
  • Homebrew 0.9.5 (bd3217ea598e9ccf85bb5b1f5ac244f1641378f8)
  • gcc 4.9.1
  • ghc 7.6.3 (brew 的には 7.6.3_3)
  • cabal-install 1.20.0.2 (installed by homebrew)
  • cabal-install 1.20.0.3 (installed by cabal-install)


経緯

一旦 cabal を消して gcc と ghc の version を上げる
  • brew uninstall haskell-platform
  • brew upgrade gcc
  • brew upgrade ghc
  • rm -rf ~/.cabal ~/.ghc
  • brew install haskell-platform
そして cabal で agda を入れる
  • rehash
  • cabal update
  • cabal install cabal-install
  • rehash
  • cabal install agda
と、こんなエラーが。

src/full/Agda/Utils/Cluster.hs:50:10:
    Duplicate instance declarations:
      instance Monad m => Functor (EquivT s x y m)
        -- Defined at src/full/Agda/Utils/Cluster.hs:50:10
      instance Functor m => Functor (EquivT s c v m)
        -- Defined in ‘Data.Equivalence.Monad’
cabal: Error: some packages failed to install:
Agda-2.4.0.1 failed during the building phase. The exception was:
ExitFailure 1

調べてみると依存パッケージの equivalence に 0.2.4 から Agda と重複する内容が入ったらしいです

解決方法としては equivalence を downgrade するか Agda の該当部分を排除しろ、とのこと。


HEAD からの build と haskell-platform からの脱却

stack over flow に書かれてるっぽいのでおそらく HEAD では修正されてないかなー、ということで repository を落としてみる。
  • cabal info agda
の Source Repo に github があったのでそれを clone。

あと brew 側で haskell-platform ではなく cabal-install を使ってみたり。
何故か依存が自動インストールされなくて happy と alex を入れたりもした。
結果的に実行したコマンドは以下な流れ。

  • cabal install happy
  • cabal install alex
  • git clone https://github.com/agda/agda.git
  • cd agda
  • ./configure
  • make

make すると cabal install が走ってくれるみたいで結果的に実行ファイルがきちんと .cabal に入ってた。
ちなみに記事を書いた時点での HEAD は a11a5fb9fc8421747f50d0280c3afe650acd4f1b で Agda の versioning は 2.4.1 扱いになってました。


brew で gcc の install から実行するとなると
  • brew install gcc
  • brew install ghc
  • brew install cabal-install
  • rehash
  • cabal update
  • cabal install cabal-install
  • rehash
  • cabal install happy
  • cabal install alex
  • git clone https://github.com/agda/agda.git
  • cd agda
  • ./configure
  • make

ってな感じでしょうか。

とりあえず Agda 2.4.1 がリリースされれば問題無く build できるはずなので、それまでの間で発生しちゃう問題っぽさそうです。

0 件のコメント:

コメントを投稿