On Sat, Nov 21, 2009 at 1:13 PM, John MacFarlane <j...@berkeley.edu> wrote: > +++ Gwern Branwen [Nov 21 09 11:38 ]: >> On Sat, Nov 21, 2009 at 11:14 AM, Vladimir Ivanov >> <vladimir.v.iva...@gmail.com> wrote: >> > I decided to give orchid a try, but failed to install the latest >> > version (0.0.8) using cabal. >> > >> > The reason is that one of the dependencies (filestore) depends on >> > parsec-2.0.* and orchid requires parsec3. I installed filestore-0.2 >> > separately, but nothing changed. >> > >> > $ cabal install orchid >> > Resolving dependencies... >> > cabal: cannot configure filestore-0.2. It requires parsec ==2.* >> > For the dependency on parsec ==2.* there are these packages: parsec-2.0, >> > parsec-2.1.0.0 and parsec-2.1.0.1. However none of them are available. >> > parsec-2.0 was excluded because orchid-0.0.8 requires parsec ==3.0.* >> > parsec-2.1.0.0 was excluded because orchid-0.0.8 requires parsec ==3.0.* >> > parsec-2.1.0.1 was excluded because orchid-0.0.8 requires parsec ==3.0.* >> > >> > $ ghc-pkg list filestore >> > /usr/lib64/ghc-6.10.1/./package.conf: >> > ~/.ghc/x86_64-linux-6.10.1/package.conf: >> > filestore-0.2, filestore-0.3.2, filestore-0.3.3 >> > >> > $ ghc-pkg list parsec >> > /usr/lib64/ghc-6.10.1/./package.conf: >> > parsec-2.1.0.1, parsec-3.0.0 >> > >> > $ cabal --version >> > cabal-install version 0.6.2 >> > using version 1.6.0.2 of the Cabal library >> > >> > Have you seen this before? >> > I hope I overlooked something trivial... =) >> > >> > -- vi >> >> Apparently you can build filestore with parsec-3 if you want. >> Data/FileStore/Git.hs doesn't seem to use any of the functionality >> that changed between 2 & 3. I swapped the dep: >> >> hunk ./filestore.cabal 35 >> - parsec >= 2 && < 3, process, time, >> datetime, regex-posix, xml, split, Diff >> + parsec >= 3, process, time, datetime, >> regex-posix, xml, split, Diff >> >> Configured, noticing what parsec was being used: >> >> Dependency parsec >=3: using parsec-3.0.0 >> >> Built & installed successfully. > > This is a bit of a problem. gitit requires parsec >= 2 && < 3, > so gitit needs filestore to depend on parsec-2. The reason why > is that pandoc depends on parsec-2, and the reason pandoc depends > on parsec-2 is that parsec-2 is significantly faster than parsec-3. > (I've verified this with several benchmarks, and so have others.) > > John
This doesn't surprise me; but how much slower are we talking? If it's not at the point that a browser of a Gitit wiki could notice the difference, then it seems to me that the dep ought to be loosened: the parsec/quickcheck/base diamond dependency problem is one of the worst ones a user can run into, the hardest to resolve, and one that can arise in the course of ordinary safe use of Haskell. -- gwern _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe