
* How about replacing the modules field with hidden-modules, to avoid repetition? * 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? * It would be useful to have alternatives in dependencies, e.g. HGL could depend on X11 | Win32. * The compilerBinaryName for Hugs should be "ffihugs" (which compiles FFI stubs). * moveSources seems misnamed, because it copies rather than moving, and operates on the relult of building as well as sources. * 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.

Ross Paterson
* 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? peace, isaac P.S. Ross, you should let me know if my hooks proposal is acceptable.

On Sat, Dec 18, 2004 at 10:47:34PM -0500, Isaac Jones wrote:
Ross Paterson
writes: * 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"?
In that case the package would be installed relative to the default value of --user-prefix, say the value of System.Directory.getHomeDirectory.
participants (2)
-
Isaac Jones
-
Ross Paterson