Thomas Schilling wrote:
> Hi Caballers,
>> now that .cabal files are getting a more complex syntax (due to
> configurations), I'd really like to use Parsec instead of lots of
> hand-written and hard to maintain parsing code. By getting rid of
> ReadP-based field parsing, we'd also get proper error messages for
> field values.
>> At the Parsec homepage I says that it's now included by default in
> GHC, Hugs and NHC, so it'll most likely be present on any sufficiently
> recent system.
>> What would be arguments against this proposal?
I've wondered about this myself. ReadP is quite annoying, I believe the only
reason it was used originally was because it was in the base package, and hence
didn't add any new dependencies. Unfortunately the portable version of ReadP is
quite a pain to use.
Adding parsec as a dependency is a big step - it would bring parsec into GHC's
core packages, and force its distribution with other compilers too. I'm not
completely against this, but we should explore alternatives first.
Maybe a better solution would be to bring in a simple monadic parser combinator
library. Malcolm Wallace has offered to relicense his
Text.ParserCombinators.Poly from LGPL to BSD3 for use in Cabal, this might be a
good option for us. Any other ideas?
Cheers,
Simon