RFC: Cabal-Configurations patch(es)

Thomas Schilling nominolo at googlemail.com
Sun Jun 24 13:05:43 EDT 2007

You can also browse the source at:


/ Thomas

On 24 jun 2007, at 12.41, Thomas Schilling wrote:

> Hi,
> you just received a longish patch bundle, that together implement  
> Cabal configurations.  I realized too late that there's a way to  
> combine this mail with the actual patch, so consider this an addendum.
> The implementation can read all old Cabal-files (and should do the  
> same), but unfortunately, I had to change the interface of the  
> confHook function, which I assume will break some setup files.  The  
> documentation states, that you shouldn't depend on that interface,  
> but then again do people have to use them if they have special  
> requirements.
> The most important change is, that Cabal files are now parsed to  
> 'PreparedPackageDescription' which requires a run of  
> 'finalizePackageDescription' to get to the actual  
> 'PackageDescription'.  This resolving process is potentially very  
> slow (exponential in the number of flags), especially if there is  
> no possible flag assignment.  I plan to correct this by adding some  
> minimum SAT solving capabilities,  which will however still be  
> exponential in the worst case.  For now, the current implementation  
> should be sufficient, though.
> My testing is far from exhaustive, as I haven't yet found a good  
> way of setting up a suitable test environment without endangering  
> to break my current setup.  I am setting up a ghc-HEAD  
> installation, but there is currently a build error stopping me from  
> it.  Incidentally, Cabal itself now needs configurations to build  
> with ghc-head as well as ghc-6.6.1.
> That said, I'd like to ask you to review the patches and possibly  
> also test it on your projects.  A preliminary HOWTO is at:
>   http://hackage.haskell.org/trac/hackage/wiki/CabalConfigurations
> Thanks,
> / Thomas

More information about the cabal-devel mailing list