brainstorming ways to stabalize Cabal interface?
ijones at syntaxpolice.org
Thu Jan 19 01:57:57 EST 2006
Greetings. I'm keen to try to stabalize more of the Cabal interface,
but I'm not sure the best way to go about that. I started a wiki page
to start to document what is stable and what is not. Eventually this
should move into the end-user documentation:
Does anyone have clever ideas for how to go about pushing these
interfaces toward stability? Do we just need to declare that certain
things are unstable for the near-term (and possibly implement the
eternal compatibility in theory idea) and continue to experiment
with them until they seem done enough? Do we stare at them very hard?
Below are my thoughts about what we _know_ to be stable, and the
types for the new hooks interface.
 Here's a summary of the bits of interface that need to be
stabalized, or are already stabalized.
* ./setup configure
o --ghc, --hugs
* ./setup build
* ./setup install
* everything else. well, they're really _pretty_ stable.
* defaultMainWithHooks defaultUserHooks
o but regular defaultMainWithHooks isn't stable since userHooks changes.
* Various utility functions
runTests :: Args -> Bool -> PackageDescription -> LocalBuildInfo -> IO ExitCode, -- ^Used for @.\/setup test@
readDesc :: IO (Maybe PackageDescription), -- ^Read the description file
hookedPreProcessors :: [ PPSuffixHandler ],
-- ^Custom preprocessors in addition to and overriding 'knownSuffixHandlers'.
hookedPrograms :: [Program],
-- ^These programs are detected at configure time. Arguments for them are added to the configure command.
-- |Hook to run before configure command
preConf :: Args -> ConfigFlags -> IO HookedBuildInfo,
-- |Over-ride this hook to get different behavior during configure.
confHook :: PackageDescription -> ConfigFlags -> IO LocalBuildInfo,
-- |Hook to run after configure command
postConf :: Args -> ConfigFlags -> PackageDescription -> LocalBuildInfo -> IO ExitCode,
* Everything else
More information about the Libraries