[Haskell-cafe] Re: ANN: Takusen 0.8

Duncan Coutts duncan.coutts at worc.ox.ac.uk
Wed Mar 5 18:57:39 EST 2008


On Wed, 2008-03-05 at 15:08 -0800, Don Stewart wrote:
> alistair:
> > > ross:
> > >
> > > > If you want to use your own Setup.hs, you need to specify a Build-Type of
> > >  > Custom, not Simple.  Some tools will ignore your Setup.hs if you specify
> > >  > Simple.  I guess the message "If possible use 'build-type: Simple'" is
> > >  > a bit confusing.
> > >
> > > Yes, cabal-setup found this confusing.
> > >
> > >  I wonder if its possible to just use flags for building the different
> > >  takusen backends, rather than this automagic uber-discovery?
> > 
> > Mebbe... are you suggesting command-line flags, or cabal flags? I'm
> > certainly open to suggestions for improving the install.

It would be possible to turn the backends on/off via configuration
flags, like:

flag odbc

library
  if flag(odbc)
    exposed-modules: Blah.Backend.ODBC
    extra-libraries: odbc

however that is considered a bit evil, changing the exposed interface
based on flags. We did even consider banning that outright (except that
the base package does it for the GHc.* modules). It also means that
other packages cannot depend on a particular backend, they can only tell
users to use certain configure flags. It cannot be automated.

What do you do if the user does not have the ODBC or the postgresql C
libs installed? Do they have to have all backends installed to use just
one?

The custom code in Setup.hs to find the flags by calling pg_config etc
is perfectly ok. It is unfortunately a bit fragile however but I don't
have any better suggestion at the moment.

Duncan



More information about the Libraries mailing list