darcs patch: Refuse to run any commands if the .cabal has been modified
I think we want to get this patch into the Cabal shipped with GHC 6.8.1. It closes one possible way that spurious build failures can occur when tracking development with multiple packages. The xmonad team report that this is a common problem for users. patch description: Tue Oct 23 10:31:11 BST 2007 Simon Marlow <simonmar@microsoft.com> * Refuse to run any commands if the .cabal has been modified See GHC bug #1372 This is a consistency check, intended to prevent this class of build failures: * Package P is updated, its version number is bumped, the new version is compiled and installed. * Package Q depends on P. Q is modified to use the new P, and Q's .cabal file is updated with changes to the build-depends field to depend on the new version of P. * The user has an old build of Q. They pull the changes to Q and 'setup build' without cleaning or re-configuring. Build errors ensue, because the code of Q depends on changes to P's API, and we're still building against the old P. Note that you can't get segfaults this way, only build errors. This also relies on some new consistency checking in GHC 6.8 to work properly. If the user re-configures their Q build and then issues 'setup build' without cleaning, GHC must now realise that the package flags have changed, and re-compile all the affected Q modules. GHC 6.6 would not do this, but 6.8 does. New patches: [Refuse to run any commands if the .cabal has been modified Simon Marlow <simonmar@microsoft.com>**20071023093111 See GHC bug #1372 This is a consistency check, intended to prevent this class of build failures: * Package P is updated, its version number is bumped, the new version is compiled and installed. * Package Q depends on P. Q is modified to use the new P, and Q's .cabal file is updated with changes to the build-depends field to depend on the new version of P. * The user has an old build of Q. They pull the changes to Q and 'setup build' without cleaning or re-configuring. Build errors ensue, because the code of Q depends on changes to P's API, and we're still building against the old P. Note that you can't get segfaults this way, only build errors. This also relies on some new consistency checking in GHC 6.8 to work properly. If the user re-configures their Q build and then issues 'setup build' without cleaning, GHC must now realise that the package flags have changed, and re-compile all the affected Q modules. GHC 6.6 would not do this, but 6.8 does. ] { hunk ./Distribution/Simple/Configure.hs 47 + checkPersistBuildConfig, hunk ./Distribution/Simple/Configure.hs 123 - ( doesFileExist ) + ( doesFileExist, getModificationTime ) hunk ./Distribution/Simple/Configure.hs 158 --- |Read the 'localBuildInfoFile'. Error if it doesn't exist. +-- |Read the 'localBuildInfoFile'. Error if it doesn't exist. Also +-- fail if the file containing LocalBuildInfo is older than the .cabal +-- file, indicating that a re-configure is required. hunk ./Distribution/Simple/Configure.hs 179 +-- |Check that localBuildInfoFile is up-to-date with respect to the +-- .cabal file. +checkPersistBuildConfig :: FilePath -> IO () +checkPersistBuildConfig pkg_descr_file = do + t0 <- getModificationTime pkg_descr_file + t1 <- getModificationTime localBuildInfoFile + when (t0 > t1) $ + die (pkg_descr_file ++ " has been changed, please re-configure.") + hunk ./Distribution/Simple/Configure.hs 192 - hunk ./Distribution/Simple/Configure.hs 303 + pkgDescrFile = Nothing, hunk ./Distribution/Simple/LocalBuildInfo.hs 90 + pkgDescrFile :: Maybe FilePath, + -- ^ the filename containing the .cabal file, if available hunk ./Distribution/Simple.hs 87 -import Distribution.Simple.Configure(getPersistBuildConfig, maybeGetPersistBuildConfig, +import Distribution.Simple.Configure(getPersistBuildConfig, + maybeGetPersistBuildConfig, + checkPersistBuildConfig, hunk ./Distribution/Simple.hs 310 - pkg_descr0 <- maybe (confPkgDescr flags') (return . Right) mdescr + (mb_pd_file, pkg_descr0) <- confPkgDescr flags' hunk ./Distribution/Simple.hs 319 - localbuildinfo <- confHook hooks epkg_descr flags' + localbuildinfo0 <- confHook hooks epkg_descr flags' hunk ./Distribution/Simple.hs 321 + -- remember the .cabal filename if we know it + let localbuildinfo = localbuildinfo0{ pkgDescrFile = mb_pd_file } hunk ./Distribution/Simple.hs 328 - confPkgDescr :: ConfigFlags -> IO (Either GenericPackageDescription - PackageDescription) - confPkgDescr cfgflags = do - mdescr' <- readDesc hooks - case mdescr' of - Just descr -> return $ Right descr - Nothing -> do - pdfile <- defaultPackageDesc (configVerbose cfgflags) - ppd <- readPackageDescription (configVerbose cfgflags) pdfile - return (Left ppd) + confPkgDescr :: ConfigFlags + -> IO (Maybe FilePath, + Either GenericPackageDescription + PackageDescription) + confPkgDescr cfgflags = + case mdescr of + Just ppd -> return (Nothing, Right ppd) + Nothing -> do + mdescr' <- readDesc hooks + case mdescr' of + Just descr -> return (Nothing, Right descr) + Nothing -> do + pdfile <- defaultPackageDesc (configVerbose cfgflags) + ppd <- readPackageDescription (configVerbose cfgflags) pdfile + return (Just pdfile, Left ppd) hunk ./Distribution/Simple.hs 345 - lbi <- getPersistBuildConfig + lbi <- getBuildConfigIfUpToDate hunk ./Distribution/Simple.hs 356 - getPersistBuildConfig + getBuildConfigIfUpToDate hunk ./Distribution/Simple.hs 361 - getPersistBuildConfig + getBuildConfigIfUpToDate hunk ./Distribution/Simple.hs 366 - getPersistBuildConfig + getBuildConfigIfUpToDate hunk ./Distribution/Simple.hs 371 - getPersistBuildConfig + getBuildConfigIfUpToDate hunk ./Distribution/Simple.hs 390 - getPersistBuildConfig + getBuildConfigIfUpToDate hunk ./Distribution/Simple.hs 395 - getPersistBuildConfig + getBuildConfigIfUpToDate hunk ./Distribution/Simple.hs 413 - localbuildinfo <- getPersistBuildConfig + localbuildinfo <- getBuildConfigIfUpToDate hunk ./Distribution/Simple.hs 420 - getPersistBuildConfig + getBuildConfigIfUpToDate hunk ./Distribution/Simple.hs 425 - getPersistBuildConfig + getBuildConfigIfUpToDate hunk ./Distribution/Simple.hs 450 +getBuildConfigIfUpToDate :: IO LocalBuildInfo +getBuildConfigIfUpToDate = do + lbi <- getPersistBuildConfig + case pkgDescrFile lbi of + Nothing -> return () + Just pkg_descr_file -> checkPersistBuildConfig pkg_descr_file + return lbi + } Context: [Correct the spelling of mingw32 in os alias list Duncan Coutts <duncan@haskell.org>**20071018195641 Doh! ] [refinement of fix for #1785: don't use xargs' -s option at all Simon Marlow <simonmar@microsoft.com>**20071019124522] [don't fail if xxx_hsc_make.c is gone Ross Paterson <ross@soi.city.ac.uk>**20071018164245 The non-GHC hsc2hs deletes it even if the compilation fails. ] [Use cpp-options rather than abusing ghc-options Duncan Coutts <duncan@haskell.org>**20071017164914] [Add a "cpp-options:" field and use it for pre-processing .hs .hsc .chs files Duncan Coutts <duncan@haskell.org>**20071017164747 This is for pre-processing Haskell modules, not for C code. We already have cc-options for that purpose. Up 'til now people have been abusing ghc-options for this purpose. Even Cabal itself was guilty of doing that. ] [Figure out if hsc2hs is using gcc or ghc as it's C compiler Duncan Coutts <duncan@haskell.org>**20071017143108 and pass the appropriate flags on the basis of knowing that. This is a hack. What we should do longer term is make hsc2hs always use gcc as it's C compiler and have Cabal figure out the right flags to pass it, rather than using ghc to pass on the appropriate flags to gcc. ] [Change the handling of cpp & ghc flags for hsc2hs Duncan Coutts <duncan@haskell.org>**20071016231652 The hsc2hs that comes with ghc uses ghc as the C compiler. This means we must escape the real cc flags. It also means we can ask ghc to add extra include dirs that we might need to find includes of dependent packages. This is a bit of a hack. In the longer term it'd be better for Cabal to collect the include dirs and cc options of dependent packages and to pass them explicitly itself. ] [Move ghcVerbosity function into GHC module to share code Duncan Coutts <duncan@haskell.org>**20071014165730] [Note current development version number in release notes Duncan Coutts <duncan@haskell.org>**20071012121835] [Update the TODO list, mostly removing things. Duncan Coutts <duncan@haskell.org>**20071012121702 Most of these are duplicated by Trac bugs. We should try and get rid of this TODO file completely and just use Trac. ] [Add logging functions notice, info, debug functions and use them consistently Duncan Coutts <duncan@haskell.org>**20071012113237 We previously had this kind of code all over the place:
when (verbosity >= verbose) (putStrLn "some message") We now replace that with: info verbosity "some message" Much nicer. ] [When parsing ghc-pkg output, only look at the first package.conf file for GlobalPackageDB and SpecificPackageDB, and all package.conf files for UserPackageDB. bjorn@bringert.net**20071016095254 Before, we would consider user packages when fulfilling dependencies for global installs. ghc-pkg will refuse to install packages globally if they use user packages. Thus, without this patch, global installs can fail when you have user packages installed. ] [Pass -c (silent create) to ar when verbosity < normal. bjorn@bringert.net**20071013220906] [Change --verbosity= option of SetupWrapper (cabal-setup) to --verbose=, since that is what the rest of Cabal uses. bjorn@bringert.net**20071013215617] [Pass -w -v0 to ghc when compiling Setup.{lhs,hs} in SetupWrapper when verbosity == silent. bjorn@bringert.net**20071013214820] [Update documentation on configurations Duncan Coutts <duncan@haskell.org>**20071012015338 Describe the new syntax and make variuous changes to the description of the meaning. ] [Use -O2 for compiling .c files when we configure --enable-optimization Duncan Coutts <duncan@haskell.org>**20071011223607 Seems a reasonable default behaviour. ] [Remove commented-out code. bjorn@bringert.net**20071006083615 Push to 1.2. ] [Rename parseDescription to parsePackageDescription. bjorn@bringert.net**20071006083354 This should be pushed to cabal-1.2 to make cabal-install work with 1.2. ] [Bump version number to 1.3 bjorn@bringert.net**20071005105412] [Fix GenericPrackageDescription pretty printing to make it parsable. It still does not include all information. bjorn@bringert.net**20071005102555] [Haddock comment for the available dependencies argument to finalizePackageDescription. bjorn@bringert.net**20071004134544] [FIX GHC bug #1785: use 2048 as the maximum command-line size Simon Marlow <simonmar@microsoft.com>**20071018140500 Apparently Solaris sets a limit of 2048 here ] [Expose parseDescription. bjorn@bringert.net**20071005104554] [parameterise InstalledPackageInfo over the type of module names Simon Marlow <simonmar@microsoft.com>**20071003114947 This is useful in GHC, we can instantiate InstalledPackageInfo to ModuleName and avoid lots of String<->FastString conversions. ] [Add extra-libs to shared library linking Clemens Fruhwirth <clemens@endorphin.org>**20070927123923] [Actually -stubdir only works well in ghc-6.8 due to -I search dir mess Duncan Coutts <duncan@haskell.org>**20070926131843 In ghc-6.6 the Foo/Bar.hc files only #include "Bar_stub.h" rather than #include "Foo/Bar_stub.h". This means when we set the stubdir so that the _stub.h files don't sit next to the .hs file then the include search path is not right to find the _stub.h file. In ghc-6.8 this is fixed so that it adds the -stubdir path to the include search path when calling gcc. ] [The -stubdir flag is supported in ghc-6.6 not just 6.6.1 Duncan Coutts <duncan@haskell.org>**20070926114223] [Improve error messages for failed sanity checks. Thomas Schilling <nominolo@gmail.com>**20070925144955] [Translate flat files into sectionized files, by duplicating global Thomas Schilling <nominolo@gmail.com>**20070925144921 dependecies into each non-empty section. The previous solution dumped them into the library section, even if it would have been empty otherwise. ] [Add -package-name to GHC invocation when linking DSOs Clemens Fruhwirth <clemens@endorphin.org>**20070926090025] [Be more fuzzy with os, arch and impl matching in conditions. Fixes bug #158. Duncan Coutts <duncan@haskell.org>**20070925132608 Do all the comparisons case insensitively and add some OS aliases so that if os(windows) works if the System.Info.os is actually "mingw32". ] [Don't generate links when dependent docs not installed. Fixes bug #157. Duncan Coutts <duncan@haskell.org>**20070924142520 Generates a warning rather than failing as before. ] [Fix warnings Ian Lynagh <igloo@earth.li>**20070923122921] [Fix pre-processing for executables Duncan Coutts <duncan@haskell.org>**20070922105414 The pre-processed files should go into the exe's build dir, not the lib's build dir. Also pre-process main modules, fixing bug #14. ] [Remove some now-unecessary cleaning that causes problems for haskell-src Ian Lynagh <igloo@earth.li>**20070920203257 The code that removes .hs files in the source tree generated from .y files had a comment: XXX: This is actually no longer necessary, but we keep it, so that clean works correctly on packages built with an older version of Cabal This was causing problems for source distributions that include such generated files (including haskell-src in extralibs). ] [Move expensive conviguration actions inside branch where they're used Duncan Coutts <duncan@haskell.org>**20070917085834 We only need to configure the compiler and resolve any "Cabal-Version:" dependency when we're actually going to compile the Setup.hs program. We can otherwise save time by not calling ghc and ghc-pkg unnecessarily. (I only noticed this because I've got >150 registered packages which causes ghc and ghc-pkg to be very slow to start.) ] [Note in .cabal file that we're using a custom build-type Duncan Coutts <duncan@haskell.org>**20070917033959] [Pass on all the cabal-setup options to cabal, not just unrecognised ones Duncan Coutts <duncan@haskell.org>**20070917025121 So for example -v and -w get passed on rather than swallowed by cabal-setup itself. ] [Put setup program and setup .o/.hi files into dist/setup Duncan Coutts <duncan@haskell.org>**20070917024907 That way they get cleaned automatically and do not clutter the top dir. ] [Correct the verbosity range in the "--help" text Duncan Coutts <duncan@haskell.org>**20070917024416 The correct range in 0--3, not 0--2 or 0--5 ] [look in odir for source and .hs files, not buildDir lbi Duncan Coutts <duncan@haskell.org>**20070917145030 odir = buildDir lbi for the lib case, which is why it worked most of the time in testing but in the exe case it's a different dir. ] [Put _stub.{c|h} files under dist/ so they'll get cleaned. Fixes bug #154. Duncan Coutts <duncan@haskell.org>**20070917123042 Only used with ghc-6.6 and later which supports the -stubdir flag. With earlier ghc versions the files still end up in the src dirs and so do not get cleaned. ] [Don't create empty data dirs. Fixes bug #153. Duncan Coutts <duncan@haskell.org>**20070912113803 Patch contributed by Sven Panne. ] [Use confgurations to help build Cabal for ghc-6.2.x Duncan Coutts <duncan@haskell.org>**20070912112934 Replacing a long-standing comment telling people how to do it manually. ] [Add a boring file Ian Lynagh <igloo@earth.li>**20070913203550] [Fix haddockDir Ian Lynagh <igloo@earth.li>**20070912133051] [Add htmlDirTemplate to inplaceDirs Ian Lynagh <igloo@earth.li>**20070912125749] [Add a --htmldir flag Ian Lynagh <igloo@earth.li>**20070912122145] [Don't forcibly append "pkgName (package pkg_descr)" to htmldir Ian Lynagh <igloo@earth.li>**20070911192814] [TAG 2007-09-06 Ian Lynagh <igloo@earth.li>**20070906212150] [use OPTIONS instead of OPTIONS_GHC for now, the latter doesn't work with GHC 6.2.x Simon Marlow <simonmar@microsoft.com>**20070912105243] [warning police Simon Marlow <simonmar@microsoft.com>**20070907140731] [Update D.S.GHC/Makefile.hs Clemens Fruhwirth <clemens@endorphin.org>**20070906213507] [Add shared library building to GHC module (also via Makefile) Clemens Fruhwirth <clemens@endorphin.org>**20070906213132] [fix type clash: Data.Version -> Distribution.Version Malcolm.Wallace@cs.york.ac.uk**20070906163051] [fix broken #ifdefs for nhc98 Malcolm.Wallace@cs.york.ac.uk**20070906161553] [spell nhc98-options correctly Malcolm.Wallace@cs.york.ac.uk**20070906150411] [TAG 1.2.0 Duncan Coutts <duncan@haskell.org>**20070906121830] [Remove now-empty dependencies dir Duncan Coutts <duncan@haskell.org>**20070906012144 Not needed since cabal-install moved to another repo. ] [note need to use -i when bootstrapping ghc, and update coders list Duncan Coutts <duncan@haskell.org>**20070906012055] [Bump version number to 1.2.0 Duncan Coutts <duncan@haskell.org>**20070906010337] [Fix haddock markup Duncan Coutts <duncan@haskell.org>**20070906010221] [Use layout rather than braces {} for sections in our own .cabal file Duncan Coutts <duncan@haskell.org>**20070906002844 Since we can and we want to set a good example. ] [Update changelog Duncan Coutts <duncan@haskell.org>**20070906002539] [Update authors list in LICENSE and remove duplicate copyright file Duncan Coutts <duncan@haskell.org>**20070906002235 We currently have 39 different authors, all those with a significant number of patches are listed as copyright holders in the LICENSE file. ] [Rewrite the parser for the configuration structure to allow laout or braces Duncan Coutts <duncan@haskell.org>**20070905223609 Joint work with Thomas Schilling. The sections and indeed fields (and if/else) can now use either explicit brace {} style layout or indentation eg: library exposed-modules: Blah or library { exposed-modules: } layout style can be nested within explict braces style and vica versa. Also add some more checks and relax the tab checks. Unrecognised sections, like unrecognised fields, are not fatal errors, so we could add sections in future without breaking old cabal. ] [Remove unused helper function Duncan Coutts <duncan@haskell.org>**20070903122408 Ok to remove, it never appeared in any release. ] [Oops, fix Distribution.Make Duncan Coutts <duncan@haskell.org>**20070903122355] [Fix haddock markup Duncan Coutts <duncan@haskell.org>**20070903113145 Thanks to int-e for reporting ] [Generalise build --ghc-option flag to --prog-option for any prog Duncan Coutts <duncan@haskell.org>**20070903110658 and remove makefile --ghc-option flag as it's not used (as far as I can see). It works generically by updating the ProgramConfiguration rather than the previous ad-hoc implementation. This feature is generally only useful for hackers who want to pass extra args to a progam during the build step (probably as a one-off) without having to reconfigure. ] [Make userSpecifyArgs update the args even if the prog is configured already Duncan Coutts <duncan@haskell.org>**20070903104852] [Remove register --with-hc-pkg flag Duncan Coutts <duncan@haskell.org>**20070903091038 It was just a hack for the benefit of ghc and we don't need it now. ] [Rename --prog-args to --prog-options Duncan Coutts <duncan@haskell.org>**20070902170637 amd --prog-arg to --prog-arg and update the user guide. ] [Change --configure-option= to --configure-arg= Duncan Coutts <duncan@haskell.org>*-20070902003334 For consitency with other flags. ] [Change --configure-option= to --configure-arg= Duncan Coutts <duncan@haskell.org>**20070902003334 For consitency with other flags. ] [Pass --configure-option= options to configure in the right order Duncan Coutts <duncan@haskell.org>**20070901173147 in the same order as they were passed to cabal configure on the command line ] [Add --prog-arg= and make --prog-args parse quotes Duncan Coutts <duncan@haskell.org>**20070901171742 So this provides two ways of passing options that contain embeded spaces: --foo-args='--bar --baz="path with spaces in"' --foo-arg=--bar --foo-arg=--baz="path with spaces in" all args passed this way are collected in order. ] [Don't use normalise when parsing configure arguments Duncan Coutts <duncan@haskell.org>**20070901162043] [Maintainer is now cabal-devel@haskell.org Ross Paterson <ross@soi.city.ac.uk>**20070901140921] [Document the new "pkgconfig-depends:" field Duncan Coutts <duncan@haskell.org>**20070831182113] [Update the user guide on where the build-tools: field lives Duncan Coutts <duncan@haskell.org>**20070831181816 It's now part of the build information rather than package description, which is as it should be. ] [Use pkg-config to check for the packages specified in "pkgconfig-depends:" Duncan Coutts <duncan@haskell.org>**20070831171014 And fill out the includeDirs, extraLibs, extraLibDirs, ccOptions and ldOptions with the results from pkg-config --cflags --libs ] [Add a pkgconfig-depends: field to the .cabal file Duncan Coutts <duncan@haskell.org>**20070831170922] [Move build-tools into the lib/exe stanzas and update configure Duncan Coutts <duncan@haskell.org>**20070831144001 configure now has to gather the required build tools from the BuildInfo of the lib and exes. ] [Add util function allBuildInfo :: PackageDescription -> [BuildInfo] Duncan Coutts <duncan@haskell.org>**20070831143906 The 'BuildInfo' for the library (if there is one and it's buildable) and all the buildable executables. Useful for gathering dependencies. ] [Refactor the internal handling of the "--user" flag into a PackageDB type Duncan Coutts <duncan@haskell.org>**20070831135042 PackageDB can be user/global or a specific package db. The latter option is not exposed in the user interface anywhere. Also move the getInstalledPackages into the per-compiler modules with a non-compiler-specific wrapper left in Distribution.Simple.Configure ] [Fix various mispellings of nhc98. Malcolm.Wallace@cs.york.ac.uk**20070906143959] [nhc-options should be spelled nhc98-options Malcolm.Wallace@cs.york.ac.uk**20070906143536] [make this buildable with GHC 6.2.x Simon Marlow <simonmar@microsoft.com>**20070903140232] [Warning supression for Windows Ian Lynagh <igloo@earth.li>**20070902225111] [Suppress some warnings Ian Lynagh <igloo@earth.li>**20070902193955] [Don't pass docdir to ./configure, as older autoreconfs don't support it Ian Lynagh <igloo@earth.li>**20070831173226] [Display the appropriate install messages for lib vs exes Duncan Coutts <duncan@haskell.org>**20070831115746 Don't confuse users by suggesting that we're installing libs when we're actually only installing exes, or vica-versa. ] [Update user guide on Windows installation paths, and add default for docdir Duncan Coutts <duncan@haskell.org>**20070831113054] [fix 'Make checking program versions not produce error spew' for non-GHC Ross Paterson <ross@soi.city.ac.uk>**20070831082438] [track renaming of GHCMakefile.in Ross Paterson <ross@soi.city.ac.uk>**20070831082151] [for c2hs, look for .chi files in dist/build rather than hs-src-dirs Duncan Coutts <duncan@haskell.org>**20070830233715 Since when we run c2hs we put .chi files into dist/build so that's also where we should be looking for them. ] [Install license file into docdir rather than datadir Duncan Coutts <duncan@haskell.org>**20070830233651] [Change installation layout on Windows slightly Duncan Coutts <duncan@haskell.org>**20070824163141 Make Haskell part of the default $prefix and make docs relative to $prefix rather than $datadir which is fixed for libs. Make the default fixed lib $datadir be Program Files\Haskell rather than Common Files. ] [Make checking program versions not produce error spew Duncan Coutts <duncan@haskell.org>**20070830144312 Redirect stderr to /dev/null (or NUL on windows) and throw an exception like rawSystemExit does rather than calling die which prints an unhelpful message before throwing an exception. It's not an overall failure to not be able to establish the version of a program, since we check later if we actually have any requirement for any particular version anyway. So for example this makes running configure with an old version of c2hs that doesn't grok --numeric-version not produce unhelpful output that make people think that configure failed. ] [Reorder configure message about what compiler we're using Duncan Coutts <duncan@haskell.org>**20070829014420] [Remove compilerProg & compilerPkgTool from Compiler Duncan Coutts <duncan@haskell.org>**20070829013814 This info is redundant since the compiler-specific code knows what programs to run and it can get that from the ProgramConfiguration. ] [Make getInstalledPackages use ProgramConfiguration rather than Compiler Duncan Coutts <duncan@haskell.org>**20070829013518 These should be moved into the GHC and JHC modules, possibly with some unifying version if that make sense. ] [Add rawSystemProgramStdout, the Program variant of rawSystemStdout Duncan Coutts <duncan@haskell.org>**20070829012200] [Don't use the compilerProg and compilerPkgTool, use the ProgramConfiguration Duncan Coutts <duncan@haskell.org>**20070829002113 Except for reporting, we use the ProgramConfiguration directly. Less duplication of information this way. ] [More register cleanups to do with ghc-pkg args Duncan Coutts <duncan@haskell.org>**20070829002008] [Rename searchPath to findProgramOnPath Duncan Coutts <duncan@haskell.org>**20070828162906] [Move defaultCompilerFlavor into Distribution.Compiler Duncan Coutts <duncan@haskell.org>**20070828161546] [Move GHC Makefile's .depend into dist/build Clemens Fruhwirth <clemens@endorphin.org>**20070824115920] [Add dynlibdir to InstallDirs Clemens Fruhwirth <clemens@endorphin.org>**20070828092655] [Move several modules under .Simple Duncan Coutts <duncan@haskell.org>**20070826201510 Compiler, Program, PreProcess and Setup are really part of the Simple build system. Also move a couple GHC modules under Simple.GHC.* ] [Use dllExtension rather than reimplementing it locally Duncan Coutts <duncan@haskell.org>**20070825114706] [correct copy'n'pasted comment Duncan Coutts <duncan@haskell.org>**20070825114203] [remove unused imports Duncan Coutts <duncan@haskell.org>**20070825114141] [Remove the use of 'normalise' since it is currently broken (normalise Thomas Schilling <nominolo@gmail.com>**20070824233303 "./" => "/"!) and we don't need it that much, right now. ] [Add mkSharedLibName to D.Simple.Utils for DSO filename mangling Clemens Fruhwirth <clemens@endorphin.org>**20070824141609] [Add --enable-shared as configure argument, and ghc-shared-options as .cabal field Clemens Fruhwirth <clemens@endorphin.org>**20070824141140] [Define delete in Distribution/Compat/Map.hs Ian Lynagh <igloo@earth.li>**20070829195308 Fixes the build with old GHCs. ] [Rejig the register code a bit Ian Lynagh <igloo@earth.li>**20070828205209] [The prologue.txt is not needed for anything Duncan Coutts <duncan@haskell.org>*-20070822214122 The text from the description is now used for haddock ] [Add docDirTemplate for inplace package config files Clemens Fruhwirth <clemens@endorphin.org>**20070824204819] [Import FilePath.dropDrive for hugs and GHC>6.6. In all other cases, provide our own. Clemens Fruhwirth <clemens@endorphin.org>**20070824145816] [Install any license file Duncan Coutts <duncan@haskell.org>**20070824161642] [Update documentation on install-includes field Duncan Coutts <duncan@haskell.org>**20070824155146] [Add install-includes .h files to the sdist tarball Duncan Coutts <duncan@haskell.org>**20070824154839] [Only create includes and bin dirs if necessary Duncan Coutts <duncan@haskell.org>**20070824152749 For includes, don't list the include dir in the package registration info unless we're actually going to install some include files. So we should create fewer pointless empty directories. See bug #97. ] [Look for install-includes in . first, then in include-dirs Duncan Coutts <duncan@haskell.org>**20070824152632 Since .h files listed in install-includes need not be in the include-dirs search path at all. ] [Document lots of flags and the new build-tools: field Duncan Coutts <duncan@haskell.org>**20070824134316 Document the following options: --enable-library-for-ghci / --disable-library-for-ghc --enable-library-vanilla / --disable-library-vanilla --enable-split-objs / --disable-split-objs --jhc --save-configure --with-PROG= --PROG-args= --gen-pkg-config= ] [Remove unused --enable-haddock-use-packages flags Duncan Coutts <duncan@haskell.org>**20070824133045 The feature they controled had been removed but the --enable/disable flag had not been removed. ] [Add a "build-tools:" field to the cabal file format Duncan Coutts <duncan@haskell.org>**20070823212946 It's the same format as the build-depends, eg: build-tools: cpphs, c2hs >= 0.15 During the configure step we try to configure the listed programs and if a version range is specified then we check that it is satisfied. ] [Hack to supress a warning when building Cabal Duncan Coutts <duncan@haskell.org>**20070823212645 Normally we'd warn if using a new format cabal file and a cabal-version >= 1.2 field is not specified in the cabal file. However we cannot do this for cabal itself or we'd not be able to bootstrap. So we just supress the warning for the package "Cabal". ] [Wrap the configure help text program list and rename the prog arg templates Duncan Coutts <duncan@haskell.org>**20070823193245 Use "--with-PROG=" rather than "--with-<program>" since the other subsitution bits like ARGS, PATH etc are upper case contractions. So it's more consistent. ] [Make the GetOpt help text fit in 80 cols by wrapping the description Duncan Coutts <duncan@haskell.org>**20070823193015 And reduce the padding slightly. The configure help text look slightly less terrible now, though we've still got too many long flags and short flags with long arg names so there's not really enough width for the description so it wraps in too many cases. ] [Don't include the massive list of --with-prog --prog-args flags in help text Duncan Coutts <duncan@haskell.org>**20070823155910 Instead have just two generic ones in the help text and at the bottom, list the programs that the flags apply to. This still needs to be properly word wrapped to fit in 80 cols (as does the rest of the help text). ] [Swap haddock inplace/install dirs that were accidentally the wrong way round Duncan Coutts <duncan@haskell.org>**20070823154258] [Fix register --gen-script Duncan Coutts <duncan@haskell.org>**20070823154218 It's still useless on Windows. ] [The prologue.txt is not needed for anything Duncan Coutts <duncan@haskell.org>**20070822214122 The text from the description is now used for haddock ] [tweak #if's to avoid treating non-GHC as old GHC Ross Paterson <ross@soi.city.ac.uk>**20070819232947] [Hugs: get dropDrive from current version of filepath Ross Paterson <ross@soi.city.ac.uk>**20070819232801] [We don't need a short option configure flag for selecting nhc Duncan Coutts <duncan@haskell.org>**20070817043021 I don't think we need one for ghc either, but perhaps we shouldn't remove that immediately as people might be using it. It's safe to remove -n now becuase nobody is relying on it as nhc support is still incomplete. ] [Trivial reformatting Duncan Coutts <duncan@haskell.org>**20070817043002] [Make configure much less verbose by default and give useful output with -v Duncan Coutts <duncan@haskell.org>**20070817042414 This actually brings it into line with the other commands which do not produce much output by default. It is very very quiet by default now though. To make the -v output nice we have to lower the verbosity one notch in places. ] [Add a sanity check that the ghc and ghc-pkg versions should be equal Duncan Coutts <duncan@haskell.org>**20070817034519 This was easy to do now that Programs know how to find their version numbers. ] [Rewrite the Program abstraction and the ProgramConfiguration database Duncan Coutts <duncan@haskell.org>**20070817033841 Also make the follow on changes to everything that uses Program. The notion of a program is now split into the abstract notion of a program that we know about and might be able to configure, and a configured program that we can actually run. The ProgramConfiguration database is similarly split. We still keep user-supplied loation and arguments and use them when we configure programs. The abstract Program now has functions to search for the program on the system and for finding the version number. This allows for more generic configuration of programs. ] [Add some extra functions to Compat.Map that we'll need later Duncan Coutts <duncan@haskell.org>**20070817033800] [Split ConfVar into ConfFlag and ConfVar Esa Ilari Vuokko <ei@vuokko.info>**20070816003105] [Make 'make tests' runnable again Esa Ilari Vuokko <ei@vuokko.info>**20070816002009] [Add configure --docdir flag which defaults to "$datadir/doc/$pkgid" Duncan Coutts <duncan@haskell.org>**20070816011634 Fixes bug #140 ] [Fix Paths_pkg.hs generation Esa Ilari Vuokko <ei@vuokko.info>**20070814204557] [Warning police: Add type signatures and rename arg Esa Ilari Vuokko <ei@vuokko.info>**20070814160830] [Warning police: Remove unused statement and import Esa Ilari Vuokko <ei@vuokko.info>**20070814143057] [Warning police: provide fallback pattern match Esa Ilari Vuokko <ei@vuokko.info>**20070814143008] [Reorder, make explicit and beautify imports Esa Ilari Vuokko <ei@vuokko.info>**20070814142000] [Refactor the code for managing installation directories Duncan Coutts <duncan@haskell.org>**20070814092320 New types for the collection of installation directory templates and a separate type for the collection of actual real install FilePaths. The templates are represented with a PathTemplate adt. Dir templates can now be relative to each other, eg $htmldir to $docdir Default install dir templates are now specified compactly in one place. Adding new dirs should be considerably simpler than previously. This patch should not actualy change where anything is installed. ] [ghc only supports the -x flag in 6.6 and above Duncan Coutts <duncan@haskell.org>**20070814090557] [update ghc-pkg field parse error message Duncan Coutts <duncan@haskell.org>**20070812170800] [Clean up import ordering and format Esa Ilari Vuokko <ei@vuokko.info>**20070811113227] [Explicit imports Esa Ilari Vuokko <ei@vuokko.info>**20070811111518] [Use existing parsers to handle ghc-pkg field output Esa Ilari Vuokko <ei@vuokko.info>**20070809041153] [Never generate empty language extension flags Duncan Coutts <duncan@haskell.org>**20070808235240 Needed because some compilers support some language extensions by default so need no flag to turn those extensions on. ] [Cabal now depends on teh containers package Ian Lynagh <igloo@earth.li>**20070801235622] [fix build with GHC 6.2.x Simon Marlow <simonmar@microsoft.com>**20070809102844] [Parse the output of ghc --supported-languages correctly Magnus Jonsson <magnus@smartelectronix.com>**20070808204523] [Oops, fix deprecated Distribution.Extension module Duncan Coutts <duncan@haskell.org>**20070807172125 it no longer exports the internal per-compiler extension to flags functions as they are no longer exist and the equivalents are internal. ] [remove unused local vars Duncan Coutts <duncan@haskell.org>**20070807171235] [Add compilerExtensions field to Compiler and make each compiler fill it in Duncan Coutts <duncan@haskell.org>**20070807170653 It's just a list of supported extensions and the corresponding compiler flags. For most compilers this is currently just a static list. For ghc 6.7 and above we query ghc to find the list of language extensions it supports. In each case the code has moved out into the compiler-specific modules and the core code treats it generically. The extensionsToFlags function has been split into two: extensionsToFlags which now returns the flags for the supported extensions and unsupportedExtensions which does what it says it does. This is because the two roles of the previous function were always used separately, never together. ] [Use String rather than importing a module just to misuse a String type alias Duncan Coutts <duncan@haskell.org>**20070807170526] [Add a little documentation. Thomas Schilling <nominolo@gmail.com>**20070807162023] [Fix error message. Thomas Schilling <nominolo@gmail.com>**20070807162001] [Fix translation of deprecated fields. Add test case. Thomas Schilling <nominolo@gmail.com>**20070807161837] [Warn if no Cabal-version field is specified, but new syntax is used. Thomas Schilling <nominolo@gmail.com>**20070806235131 This isn't quite exact. Ideally, we'd like to have something like isEmptyRange (specified-range && >= 1.2) but implementing isEmptyRange is non-trivial, so we'll go with this imperfect solution until we need that feature elsewhere. ] [Re-enable and update unit tests. Thomas Schilling <nominolo@gmail.com>**20070807000155] [Cosmetic cleanup (fix line length) Thomas Schilling <nominolo@gmail.com>**20070806235644] [No longer fail to parse packages without any library or executable Thomas Schilling <nominolo@gmail.com>**20070806235404 sections. Issue a warning instead. (The previous error message "Unexpected end of file" was not very helpful.) ] [Allow querying for the wildcard version range. Thomas Schilling <nominolo@gmail.com>**20070806234707] [Split up make target for documentation generation. Allows to build Thomas Schilling <nominolo@gmail.com>**20070803200533 the user's guide separately from the Haddock documentation. ] [Remove more os-specific cppery Duncan Coutts <duncan@haskell.org>**20070807115707 The only difference for this one was / vs \\ path separators ] [Remove use of cpp in Distribution.System Duncan Coutts <duncan@haskell.org>**20070807111837 base it off of the System.Info.os string rather than cpp defs ] [Make things build with ghc-6.6.x rather than just ghc HEAD Duncan Coutts <duncan@haskell.org>**20070807111724 filepath-1.0 does not export dropDrive ] [Ask the compiler what languages it supports, when possible Ian Lynagh <igloo@earth.li>**20070805171323] [Pattern match on an OS datatype rather than using ifdef everywhere Ian Lynagh <igloo@earth.li>**20070805130347] [Add StandaloneDeriving extension Ian Lynagh <igloo@earth.li>**20070804192416] [extensionToGHCFlag is now version dependent, and uses -XFoo flags for >=6.7 Ian Lynagh <igloo@earth.li>**20070804191833] [Add TypeFamilies extension Ian Lynagh <igloo@earth.li>**20070804184959] [Don't complain about AllRightsReserved licenses Duncan Coutts <duncan@haskell.org>**20070804125110 That can be done in hackage when people try to upload. Fixes bug #127. ] [Add setup register --gen-pkg-config flag for distros that want that. Duncan Coutts <duncan@haskell.org>**20070804115512 It generates the actual file to be passed to the compiler's package program. This is obviously compiler-specific. ] [Correct the location of the haddock dir in inplace registrations Duncan Coutts <duncan@haskell.org>**20070804115428] [normalise the input and output file names when pre-processing Duncan Coutts <duncan@haskell.org>**20070804013029 eg so we don't call cpp with ././src/blah -o ./dist/blah since those ././ can end up in error messages. ] [Put the generated haddock-prolog file under dist Duncan Coutts <duncan@haskell.org>**20070804004848] [Try and simplify cleaning by always removing dist Duncan Coutts <duncan@haskell.org>**20070804004643 so we don't have to individually track all the files we create we still have to delete a few files outside of the build dir sadly the configuration is still preserved if you specify --save-configure ] [Remove compilerBinaryName, use compilerId instead Duncan Coutts <duncan@haskell.org>**20070804004524] [Move compiler-specific code for configurion into compiler modules Duncan Coutts <duncan@haskell.org>**20070803213321 There's slightly more code overally but it's no longer incomprehensible because it's not all mixed together for all the different compilers. ] [Clean up rather un-sbstract use of Compiler in configure Duncan Coutts <duncan@haskell.org>**20070803205901] [-Wall police Duncan Coutts <duncan@haskell.org>**20070802194000] [Change Compiler's compilerVersion fild to compilerId Duncan Coutts <duncan@haskell.org>**20070802193400 Of type PackageIdentifier rather than Version. ] [Remove Distribution.Simple.Configure.findProgram as it's no longer used Duncan Coutts <duncan@haskell.org>**20070802194230] [Put the haddock and hscolour version numbers in the global ProgramConfiguration Duncan Coutts <duncan@haskell.org>**20070802185614 We do this during the configure step and then later we don't have to run haddock & hscolour again to find out their version numbers. This also eliminates some annoying module interdependencies. Eventually the Program abstraction ought to include the ability for programs to discover their own version numbers so it can be done more modularly. ] [Alter version parse error message to make it clearer Duncan Coutts <duncan@haskell.org>**20070802181620] [Add version field to Program and add findProgram(AndVersion) utilities Duncan Coutts <duncan@haskell.org>**20070802172941 findProgram and findProgramAndVersion construct Program values The latter makes it easier to parse output of --version calls. The idea is that we should carry the version number along with the program if we know it, so we can later decide version-dependent args without having to do more IO to find the program version, eg see use_optP_P & haddockVersion. ] [Tidy some imports/exports Duncan Coutts <duncan@haskell.org>**20070802003250] [Remove redundant configure flags, missed bits of previous refactoring. Duncan Coutts <duncan@haskell.org>**20070802003154] [Make the Compiler abstraction use the Program abstraction Duncan Coutts <duncan@haskell.org>**20070801205428 So out with compilerPath :: FilePath, in with compilerProg :: Program Similarly for compilerPkgTool. Lots of knock-on changes due to this, including converting many more uses of rawSystemExit to rawSystemProgram. ] [Simplify rawSystemProgram using programPath Duncan Coutts <duncan@haskell.org>**20070801200247] [Add programPath :: Program -> FilePath Duncan Coutts <duncan@haskell.org>**20070801200139 At the moment it's a partial function, but we should change that by having a distinction between an abstract program and a configured program. ] [Clean up cpphs/ghc -cpp preprocessor code Duncan Coutts <duncan@haskell.org>**20070801135256 Now better separated and uses Program better. Also no longer needs internal lookupProgram' utils function. ] [Clean up calling of ar, make it use Program abstraction Duncan Coutts <duncan@haskell.org>**20070801021526] [Make all the pre-processors use the Program abstraction Duncan Coutts <duncan@haskell.org>**20070801021049] [Improve hangling of the title and prolog for haddock docs Duncan Coutts <duncan@haskell.org>**20070804021538 Only include ": " in the title if it has a synopsis to use as subtitle Use the description as the prolog, or if that's empty we use the synopsis. Do the same for executables, fixing bug #142. ] [Less confusing haddock command output when there are no libs in the package Duncan Coutts <duncan@haskell.org>**20070804013133 It says: No documentation was generated as this package does not contain a library. Perhaps you want to use the haddock command with the --executables flag. ] [Add message saying where haddock docs got put Duncan Coutts <duncan@haskell.org>**20070804010016 And make the similar message for sdist respect the verbosity ] [Make the writing registration script message less silly Duncan Coutts <duncan@haskell.org>**20070804002353] [Fix haddock markup for finalizePackageDescription Duncan Coutts <duncan@haskell.org>**20070804001745] [Change error message for tabs used as indentation to something more Thomas Schilling <nominolo@gmail.com>**20070803213331 helpful. ] [Fix import path to HUnit. Thomas Schilling <nominolo@gmail.com>**20070803200829] [Fix printing of 'impl' checks. Thomas Schilling <nominolo@gmail.com>**20070803200622] [Disallow tabs .cabal files with new syntax Thomas Schilling <nominolo@gmail.com>**20070803181244] [Fix tab in Cabal.cabal. Thomas Schilling <nominolo@gmail.com>**20070803175701] [Add impl(...) conditional to configurations. Thomas Schilling <nominolo@gmail.com>**20070802010527 You can now use expressions like impl( ghc >= 6.6.1 ) in conditionals in .cabal files. ] [Add documentation for Cabal Configurations. Thomas Schilling <nominolo@gmail.com>**20070803125632] [Move the SetupWrapper module under Distribution.Simple Duncan Coutts <duncan@haskell.org>**20070803012304 It's really a wrapper around the simple build system. ] [Cleanup. fix line length Thomas Schilling <nominolo@gmail.com>**20070801221329] [Fix name of flag in error message Duncan Coutts <duncan@haskell.org>**20070802172141] [Add readVersion convenience function to Distribution.Version Duncan Coutts <duncan@haskell.org>**20070802171703 So it's merely readVersion :: String -> Maybe Version Having to use readP_to_S parseVersion all over the place is annoying. ] [extraArgs should override args in command lines Duncan Coutts <duncan@haskell.org>**20070801023042 besides, the order was inconsistent within the same function between the UserSpecified and FoundOnSystem cases. ] [FIX compilation with GHC 6.2.x Simon Marlow <simonmar@microsoft.com>**20070801095523] [Move the haddock code out into it's own module Duncan Coutts <duncan@haskell.org>**20070731183410 It removes about 250 loc from Distribution.Simple ] [-Wall police Duncan Coutts <duncan@haskell.org>**20070731173626] [Fix order of warnings. Thomas Schilling <nominolo@gmail.com>**20070730225311] [Add line numbers to unknown fields error message. Thomas Schilling <nominolo@gmail.com>**20070730225256] [Display a more helpful error message, when unknown fields are Thomas Schilling <nominolo@gmail.com>**20070730224026 noticed. ] [Fix self-compile warnings. Thomas Schilling <nominolo@gmail.com>**20070730220537] [Fix haddock markup Ian Lynagh <igloo@earth.li>**20070729233545 I haven't checked that it looks right, but it is now accepted by haddock. ] [Pass ghc -package flags when using it as a C compiler in GHCMakefile Ian Lynagh <igloo@earth.li>**20070729152803 This means we get the CPP include directories included. ] [Add a missing case in updateCfg Ian Lynagh <igloo@earth.li>**20070729105910] [Resolve conflicts Ian Lynagh <igloo@earth.li>**20070729105854] [Fix conflicts. Fix for changed argument to 'preprocessSources'. Thomas Schilling <nominolo@gmail.com>**20070728223322] [Rename field. Thomas Schilling <nominolo@gmail.com>**20070728223102] [Change HUnit module path to Test.HUnit (the default now). Thomas Schilling <nominolo@gmail.com>**20070728221453] [Add note to 'clean' that it could be simpler, but for compatibility Thomas Schilling <nominolo@gmail.com>**20070728221342 reasons isn't (for now). ] [Let sdist command run the preprocessors itself. This way we don't Thomas Schilling <nominolo@gmail.com>**20070728221237 have to put stuff into the source tree. ] [Store resolved package description in local build info. Thomas Schilling <nominolo@gmail.com>**20070728221102
The clean and sdist commands need to use a flattened representation of the original description. Note the notes for flattenPackageDescription for some problems with this approach. ] [Export 'flattenPackageDescription'. Thomas Schilling <nominolo@gmail.com>**20070728215155] [Minor documentation fix. Thomas Schilling <nominolo@gmail.com>**20070728214859] [Modify test case. Thomas Schilling <nominolo@gmail.com>**20070728214825] [Add function 'flattenPackageDescription'. Thomas Schilling <nominolo@gmail.com>**20070728214746] [Avoid reporting the same missing dependecy twice. Thomas Schilling <nominolo@gmail.com>**20070728214645] [Add documentation Thomas Schilling <nominolo@gmail.com>**20070728214541] [Add documentation Thomas Schilling <nominolo@gmail.com>**20070728214444] [Add/Fix test cases Thomas Schilling <nominolo@gmail.com>**20070728214410] [Minor. Moved some code. Thomas Schilling <nominolo@gmail.com>**20070719222541] [Add function 'ignoreCondition'. Thomas Schilling <nominolo@gmail.com>**20070719222444] [Re-enable and extend test case. Thomas Schilling <nominolo@gmail.com>**20070719222341] [Filter duplicate dependencies. Thomas Schilling <nominolo@gmail.com>**20070719222233] [Adopt new CondTree data structure. Thomas Schilling <nominolo@gmail.com>**20070719125305 'finalizePackageDescription' now also takes dependencies of executables into account. ] [Change CondTree data structure to something more flexible. Thomas Schilling <nominolo@gmail.com>**20070719124655 This also requires some interface changes. ] [Add simpler representation of a .cabal file with conditions. Thomas Schilling <nominolo@gmail.com>**20070717203942] [Preprocessor output never gets written back to the source dir. Thomas Schilling <nominolo@gmail.com>**20070717174026 'preprocessSources' now gets an additional flag to determine whether to process all sources (for building) or only platform independent ones (for sdist). ] [Add resolved package description to 'LocalBuildInfo'. Thomas Schilling <nominolo@gmail.com>**20070716204325] [Fix removed import by importing a required accessor only. Thomas Schilling <nominolo@gmail.com>**20070716204238] [Add tags target to generate a tags file using 'hasktags'. (Unix only) Thomas Schilling <nominolo@gmail.com>**20070716203015] [Rename 'PreparedPackageDescription' to 'GenericPackageDescription' Thomas Schilling <nominolo@gmail.com>**20070716200427] [Remove unused dependency. Thomas Schilling <nominolo@gmail.com>**20070716200215] [Move configured_cabal to 'dist' directory. Thomas Schilling <nominolo@gmail.com>**20070716154146] [Bugfix by Ian Lynagh: Cabal can't have a Cabal-Version header; it breaks bootstrapping Thomas Schilling <nominolo@gmail.com>**20070716151535] [Partial bugfix to allow traditional .cabal files without a library but Thomas Schilling <nominolo@gmail.com>**20070628112301 global build dependencies. The correct solution is to add global dependencies to each executable and implement dependency resolution for executables. The current workaround is to add the dependencies to the library, but disable building of the library. ] [Take advantage of configurations to build Cabal itself and fix bootstrapping problem. Thomas Schilling <nominolo@gmail.com>**20070628081438] [Re-add configurations module to .cabal file. (Got removed on update.) Thomas Schilling <nominolo@gmail.com>**20070623204706] [Properly fix tests. Thomas Schilling <nominolo@gmail.com>**20070623203939] [Disable (comment out) tests for now. Break due to changed interface. Thomas Schilling <nominolo@gmail.com>**20070623203121] [Fix typo. Thomas Schilling <nominolo@gmail.com>**20070623202333] [Add proper handling of configurations to configure command. Thomas Schilling <nominolo@gmail.com>**20070623202017] [Fix warnings. Thomas Schilling <nominolo@gmail.com>**20070623201723] [Adjust to new package reading interface. Thomas Schilling <nominolo@gmail.com>**20070623201546] [Downcase flagnames. Re-add config flags (were removed due to update). Thomas Schilling <nominolo@gmail.com>**20070623201455] [Fix warnings. Thomas Schilling <nominolo@gmail.com>**20070623201254] [Fix warnings, add documentation and changes in response to some Thomas Schilling <nominolo@gmail.com>**20070623201135 interface changes. ] [Make explicit that reading package descriptions isn't supported here, ATM. Thomas Schilling <nominolo@gmail.com>**20070623200701] [Fixed warning Thomas Schilling <nominolo@gmail.com>**20070623200522] [Fixed warnings, added documentation, and changed os and arch names to Thomas Schilling <nominolo@gmail.com>**20070623200453 simple strings. ] [Add helpers for reading and writing the file to hold a configured cabal-file. Thomas Schilling <nominolo@gmail.com>**20070618195710] [Add commandline support for specifying defaults for flags. Thomas Schilling <nominolo@gmail.com>**20070618195449] [Compatibility parsing and working configurations. Thomas Schilling <nominolo@gmail.com>**20070618195329] [Pretty printing of conditions and CondTrees. Non-dependency Thomas Schilling <nominolo@gmail.com>**20070614125031 information of CondTrees is now a modifier. Move CondTree resolution functionality. ] [Prototypical configurations Thomas Schilling <nominolo@gmail.com>**20070613184332] [add line numbers to all field times Thomas Schilling <nominolo@gmail.com>**20070613173548] [add flag as a section Thomas Schilling <nominolo@gmail.com>**20070613172416] [added docs Thomas Schilling <nominolo@gmail.com>**20070613172309] [fixed typo Thomas Schilling <nominolo@gmail.com>**20070613172230] [Abstracted variables out of conditions. Generalized simplification Thomas Schilling <nominolo@gmail.com>**20070613172114 function to accept an arbitrary partial assignment of these variables. ] [Added Configuration parsing and simplification. Thomas Schilling <nominolo@gmail.com>**20070529210344] [Extended low-level parsing routines to also allow labelled blocks and if-blocks. Thomas Schilling <nominolo@gmail.com>**20070529205958] [Added documentation. Thomas Schilling <nominolo@gmail.com>**20070528211221] [Use the right output directory when building C sources for executables Duncan Coutts <duncan@haskell.org>**20070726213309] [Use our own GetOpt if __GLASGOW_HASKELL__ >= 606 only Ian Lynagh <igloo@earth.li>**20070724213112 Used to be if __GLASGOW_HASKELL__ >= 604, but the 6.4 branch had a bug which looks likely to be the cause of GHC build failures we're seeing: - procNextOpt (NonOpt x) RequireOrder = ([],x:rest,us,[]) + procNextOpt (NonOpt x) RequireOrder = ([],x:rest,[],[]) ] [-Wall police Duncan Coutts <duncan@haskell.org>**20070724172023] [Update user guide about haddock --css --hyperlink-source --hscolour-css Duncan Coutts <duncan@haskell.org>**20070724160742 The haddock --css flag is new. The old --hscolour=[path] flag got split into two flags: --hyperlink-source and --hscolour-css=path ] [Remove a couple bits of unused code and imports Duncan Coutts <duncan@haskell.org>**20070724110732] [use nhc-Options rather than deprecated nhc98-Options Duncan Coutts <duncan@haskell.org>**20070724110703] [Hugs build: track change to install-includes Ross Paterson <ross@soi.city.ac.uk>**20070724101816] [Rename --hscolour to --hyperlink-source and add haddock --css flag Duncan Coutts <duncan@haskell.org>**20070723190026 So now --hyperlink-source controles wether or not we run hscolour and get haddock to link to the sources. The new flag --hscolour-css can be used to override the css file that hscolour uses. Also, the new flag --css can override the css file that haddock uses. ] [Merges from hscolour patch and make it work with haddock-0.8 Duncan Coutts <duncan@haskell.org>**20070723180602 Some minor changes due to changes since the hscolour patch was written. Make it work with haddock-0.8 by using %{MODULE} rather than %{FILE} and generate output file names to match (ie not using the original file extension, just using the module name for the output file). ] [HsColour support Roberto Zunino <zunrob@users.sf.net>**20070530194747 Integration of Cabal, HsColour, and Haddock. (Also fixes bug #102) ] [Remove ContextStack extension Ian Lynagh <igloo@earth.li>**20070709132341 Seems to be based on GHC's -fcontext-stack flag, which takes an integer argument. ] [Remove InlinePhase extension Ian Lynagh <igloo@earth.li>**20070708172919 As far as I can tell (a) The -finline-phase flag stopped actually being accepted by GHC sometime between GHC 4.08.2 and GHC 5.04.3 (b) It took an Int argument ] [Add KindSignatures extension Ian Lynagh <igloo@earth.li>**20070708120616] [Add the MagicHash extension Ian Lynagh <igloo@earth.li>**20070708111043] [TAG 2007-06-29 Ian Lynagh <igloo@earth.li>**20070629112545] Patch bundle hash: d0d1818a244f3f9a702c59a84affb3f58e60e4e8
participants (1)
-
Simon Marlow