Cabal suggestions

Isaac Jones ijones at
Sat Dec 18 22:47:34 EST 2004

Ross Paterson <ross at> writes:

> * How about replacing the modules field with hidden-modules, to avoid
>   repetition?

Yeah, that makes sense.  Like I said, I'd like to eventually make it
unnecessary to have hidden-modules, the dependency analyzer should
figure that out.

> * setup install and register have --user and --system flags, which seem
>   to offer a choice at that point, but one has to have anticipated this
>   choice when supplying the --prefix flag to configure.  How about a
>   --user-prefix flag to configure (with a sensible default) to say where
>   user packages are installed?

So the idea is that if they said "./setup configure --user=~/usr/
--system=/usr/local/" then it would install it in the appropriate
place when they said "./setup install --user"?

What should happen if they say "./setup install --prefix=/usr/bin" and
"./setup install --user"?

> * It would be useful to have alternatives in dependencies, e.g. HGL
>   could depend on X11 | Win32.

I agree.

> * The compilerBinaryName for Hugs should be "ffihugs" (which compiles
>   FFI stubs).

I saw you fixed that in CVS.  Thanks.

> * moveSources seems misnamed, because it copies rather than moving, and
>   operates on the relult of building as well as sources.

Yeah, it's evolved over time.  Maybe could even use some refactoring.

> * Could singleStanza ignore comments like splitStanzas does?
> * How about using a new data type for parse results instead of Either?
>   That would remove the dependency on mtl, which will help with bootstrapping.
>   I know there is Distribution.Compat.Error, but that defines a Monad
>   instance for Either, so it one uses that there'll be trouble later if
>   some program includes both Cabal and mtl.

Can someone who has hacked on the parser comment on these?



P.S. Ross, you should let me know if my hooks proposal is acceptable.

More information about the Libraries mailing list