working on a fix for ticket #212

Laszlo Nagy rizsotto at gmail.com
Tue Jun 16 15:54:31 EDT 2009


Hi All,

>> - VersionRange does not passes parse tests, iff more than two ranges
>> is present. As far as I could see, the parse method is wired to handle
>> only two ranges. Not corrected, because found no good solution. Need
>> help on this!
>
> Right, currently the parser only allows one conjunction and no brackets.
> There's an open ticket to allow more general expressions.
> http://hackage.haskell.org/trac/hackage/ticket/484
> For the moment then it's ok for this test to fail. We can expect it'll
> be fixed when ticket #484 is completed.

I'm trying to solve this as well.

  http://sites.google.com/site/rizsotto/patches/cabal-ticket-484.v1.darcs-send

For a start I modified the disp method only. I wanted to see what
output shall be parsed. Please review it.

> compat :: VersionRange
> compat =
>   betweenVersionsInclusive
>     (Version {versionBranch = [2,0,1], versionTags = []})
>     (Version {versionBranch = [2,3], versionTags = []})
>
> brackets :: VersionRange
> brackets =
>   unionVersionRanges compat compat

>From the test values above it makes the following:

*Test Distribution.Text> show $ disp compat
">=2.0.1 && <=2.3"
*Test Distribution.Text> show $ disp brackets
"( >=2.0.1 && <=2.3 ) || ( >=2.0.1 && <=2.3 )"

If it is the right way to do, I'm going to write the parser for it.

Regards,
Laszlo



More information about the cabal-devel mailing list