[Haskell-cafe] Re: Wiki software?

Gwern Branwen gwern0 at gmail.com
Sat Nov 21 16:09:34 EST 2009


On Sat, Nov 21, 2009 at 1:13 PM, John MacFarlane <jgm at berkeley.edu> wrote:
> +++ Gwern Branwen [Nov 21 09 11:38 ]:
>> On Sat, Nov 21, 2009 at 11:14 AM, Vladimir Ivanov
>> <vladimir.v.ivanov at 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


More information about the Haskell-Cafe mailing list