darcs

Issue 1065 Unexpected changes in working directory

Title Unexpected changes in working directory
Priority bug Status resolved
Milestone Resolved in
Superseder Nosy List claus.reinke, cvs-ghc, darcs-devel, dmitry.kurochkin, ertai, kowey, simonpj, thorkilnaur
Assigned To
Topics ThePendingPatch

Created on 2008-09-08.14:33:22 by simonpj, last changed 2009-10-24.00:04:56 by admin.

Files
File name Uploaded Type Edit Remove
darcs-bug-trace.gz simonpj, 2008-09-08.14:33:16 application/x-gzip
Messages
msg5939 (view) Author: simonpj Date: 2008-09-08.14:33:17
[Sending again this time with the trace as a zipped attachment]

More darcs2 woe, this time on Linux.  I'm simply merging patches from the cabal repository into my working tree. My working tree is absolutely un-modified, but it's old, so there are 197 patches to pull.

Problem is this: Darcs is hung saying "Merging them 64/197".  So far it's consumed 8 minutes of CPU time on a fast machine.

This is terribly depressing: there is nothing tricky going on here. No local modifications, no conflicts, nothing but a straight pull.  Presumably by the time we get to "Merging them" there is no network traffic either.  It's just stuck (apparently) in a horribly inefficient algorithm, or an infinite loop. I can't tell which.

What should I do now?  It's still running (I'm up to 11 mins of CPU now).  I'll leave it to run, on the grounds that disturbing it will disturb any evidence you may want me to collect.  But I'll kill it in a while.

rsvp

Simon

== running darcs pull -av --repodir libraries/Cabal
Pulling from "http://darcs.haskell.org/packages/Cabal"...
This is GHC's branch of the main Cabal repo.

NB. DO NOT push new Cabal patches to this repo, instead use the main Cabal repo at
  http://darcs.haskell.org/cabal

Patches to this repo must pass GHC's validate script before being pushed.
**********************
We have the following new (to them) patches:
They have the following patches to pull:
Wed May 14 15:47:28 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add in {-# OPTIONS #-} for the benefit of ghc-6.4.x
  Which do not grok OPTIONS_GHC or LANGUAGE pragmas
Wed May 14 01:39:19 BST 2008  Ian Lynagh <igloo@earth.li>
  UNDO: Define bracketOnError in compat; fixes the build for GHC 6.4
Wed May 14 16:32:06 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Eliminate use of bracketOnError, use handle instead
  It's actually more appropriate anyway.
  This means we don't need any Distribution.Compat.Exception.
Wed May 14 16:33:43 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Remove redundant Char test in parseBuildToolName
  It was made redundant after the isSymbol test was removed.
  Spotted by Igloo.
Wed May 14 16:41:04 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Check invariant on every construction and elide on lookups
Wed May 14 17:29:54 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add PackageIndex.lookupPackageName and extra deletion functions
Wed May 14 18:18:22 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Remove Distribution.Compat.Exception from other-modules
Fri May  9 10:44:55 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Do not display version tags
Tue May 13 10:43:01 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Remove unused import
Mon May 19 18:38:08 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Allow the bindir, libdir and libexec dir to be specified via env vars too
  Same as for the datadir. Eg for package Foo, you'd use
  Foo_bindir=... Foo_datadir=... Foo_libexecdir=... ./Foo
  The next step would be generating a wrapper script that allows
  running the program inplace. It should also work for a library.
Fri May  9 14:04:48 BST 2008  Bertram Felgenhauer <int-e@gmx.de>
  * add data-dir field to package config
  Cabal will look for data files to install relative to the directory given
  in the data-dir field, allowing package authors to better structure their
  source tree. There's no behavioural change by default.
Fri May  9 14:13:06 BST 2008  Bertram Felgenhauer <int-e@gmx.de>
  * document data-dir field
Sun May 11 14:00:35 BST 2008  Ian Lynagh <igloo@earth.li>
  UNDO: Remove gnerated file (doc/fptools.css)
Tue May 20 20:17:00 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Rename doc/fptools.css to avoid the ghc build system cleaning it
  The user guide gets built in two different ways. There's a target
  in Cabal's the top level Makefile and there is also the stuff that
  the ghc build system uses. The ghc build system expects to copy in
  doc/fptools.css and then delete it again on make clean. We want a
  persistent copy so that we can make the docs when we've just got a
  standalone Cabal build tree, so that's now kept as doc/Cabal.css.
Wed May 21 16:34:20 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Write out Bool config values correctly
  Used by cabal-install when writing the default ~/.cabal/config file.
  Previously it was using show for type Maybe Bool and writing out
  "Just True" when of course it should just be "True".
Thu May 29 10:22:44 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add notThisVersion :: Version -> VersionRange
  Opposite of ThisVersion, it means /= x.y but is actually implemented
  as > x.y || < x.y as we do not have not or not equal as primitives.
Thu May 29 10:26:07 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add thisPackageVersion and notThisPackageVersion
  Util functions for makeing dependencies from package identifiers.
  thisPackageVersion    (foo-1.0) = foo ==1.0
  notThisPackageVersion (foo-1.0) = foo /=1.0
  The latter is handy as a constraint in dependency resolution.
Thu May 29 10:53:46 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Change the PackageIndex invariant so the buckets are ordered
  Each bucket holds packages with the same name case-insensitively.
  Previously each buckets was internally unordered. Now they're
  ordered by the full package id which means first by package name
  case-sensitively and then by version.
Thu May 29 11:42:14 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Put spaces round || and && when displaying version range expressions
  This makes them much more readable.
Thu May 29 11:47:14 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Bump version due to api changes
Tue May 27 14:58:30 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Note compatability issue in deprecation message for defaultUserHooks
Mon Jun  9 19:58:40 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Install license file into the right place
  even if the license file was kept in a subdir of the src tree.
  The canonical example was: license-file: debian/copyright
  It was being installed into $docdir/debian/ and failing since
  that dir did not exist. It's now installed into just $docdir.
Mon Jun  9 20:02:51 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Install haddock interface only when generated
  This is actually Andrea Rossato's patch but it didn't merge
  cleanly due to more recent changes. Fixes ticket #250.
Mon Jun  9 20:05:55 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fail better when using haddock 2.x and the --hoogle flag
  Fixes ticket #249
Tue Jun 10 00:36:09 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix pre-processing for haddock and executables
  Now look in the right place to find the pre-processed source
  files belongign to executables. Fixes ticket #252.
Tue Jun 10 19:01:50 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add withFileContents and withUTF8FileContents
  Safe block scoped reading of files.
  These guarantee that the file gets closed.
Tue Jun 10 19:02:17 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Close the package.conf file after reading it
  We had a bug on windows where we open and read ghc's package.conf
  database but because we did not consume the final newline we did
  not close the file. Then when we called ghc-pkg to register a
  package it failed because it could not rename the open file.
Tue Jun 10 19:05:28 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Switch to scoped file reading rather than lazy readFile
Tue Jun 10 19:07:27 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Use writeFileAtomic everywhere instead of writeFile
Tue Jun 10 19:09:47 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Switch the hugs code to safe file reading and writing
Thu Jun 12 10:18:10 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Filter out the Paths_pkgname file in sdist
  Fixes ticket #187 finally (I hope).
Thu Jun 12 10:24:25 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix the register --gen-pkg-config flag
  When specified without any file name it is supposed to use
  a default file name rather than be ignored completely.
Thu Jun 12 10:28:55 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Use the standard autogenModulesDir rather than a local copy
Thu Jun 12 10:29:24 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Lift the restriction that libraries must have exposed-modules
  This allows libs that have only private modules or C code. This
  might be used to make libs that have non-exposed modules and only
  export C APIs. It could also be used to make packages that consist
  only of C code. That might be useful for bindings where it may
  make sense to split the C and Haskell code into separate packages.
Thu Jun 12 16:43:09 BST 2008  Duncan Coutts <duncan@haskell.org>
  * base-1.0 does not have Data.Map.alter so use insertWith instead
Thu Jun 12 16:44:44 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Update copyright and authors list in the .cabal file
Thu Jun 12 16:46:24 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Update the release notes
Thu Jun 12 17:29:06 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Update the README and convert it to markdown syntax
Thu Jun 12 17:41:44 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add the 1.2.4.0 release to the changelog
Thu Jun 12 17:42:42 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add the 1.4.0.0 release to the changelog
Thu Jun 12 18:49:58 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Put upper bounds on all the build-depends
Thu Jun 12 20:03:17 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Move the mkGHCMakefile.sh out of the root dir
  Having it there confuses people.
  They think they have to run it as part of the install process.
Thu Jun 12 20:05:58 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Include the readme and the changelog in the tarball
Sat Jun 14 17:07:07 BST 2008  Ross Paterson <ross@soi.city.ac.uk>
  * force results inside withHaskellFile

  withUTF8FileContents now closes the file, so we need to force what we're
  computing from the contents before it's gone.
Mon Jun 16 18:15:05 BST 2008  Duncan Coutts <duncan@haskell.org>
  * construct InstalledPackageInfo from scratch rather than by overriding
  It means we catch any fields that get added. As it happens we were
  missing a field, though its value is supposed to be just [] which is
  the same value as we got from the default emptyInstalledPackageInfo.
Mon Jun 16 18:54:46 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Makefile tweak, setup depends on Setup.hs
Tue Jun 17 14:04:34 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Update changelog for 1.4.0.1
Tue Jun 17 14:38:11 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix css location in generation of user guide
Sat Jun 14 00:03:52 BST 2008  Duncan Coutts <duncan@haskell.org>
  * '.' should not always be in hs-source dirs
  We changed the parsing of list fields in the .cabal file so that it
  adds to the current value rather than replacing it. This allows you
  to put multiple entries for a list field and they all get
  concatenated. However that means that the '.' in the hsSourceDirs of
  emptyBuildInfo is always added to and not replaced like we did
  previously. That's not what we want in this case. We want to use '.'
  for hsSourceDirs *only* if hsSourceDirs is otherwise null. As it
  happens, due to the way the configurations code works, we're already
  filling in the default if it'd otherwise be null so we do not need
  '.' in the emptyBuildInfo at all.
Fri Jun 13 21:54:45 BST 2008  Duncan Coutts <duncan@haskell.org>
  * haddock-2.2 and later do now support the --hoogle flag
Thu Jun 19 18:50:06 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add version wildcard syntax
    build-depends: foo ~1.2.*
  means:
    build-depends: foo >=1.2 && <1.3
  It's also valid everywhere else version ranges are used.
Sat Jun 14 01:16:54 BST 2008  Duncan Coutts <duncan@haskell.org>
  * No more need for the distinction between null and emptyBuildInfo
  Now that we have removed the hsSourceDirs = [currentDir] default
  from emptyBuildInfo it is now equal to nullBuildInfo.
Sat Jun 14 01:29:26 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add PackageName as a newtype
Sat Jun 14 01:37:05 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add PackageSet, like PackageIndex but case sensitive
  Actually it turns out that we don't need case insensitivity in many
  cases, mosty just for simple lookups in the UI. For everything else
  the ordinary Ord instance is much simpler. The fact that listing the
  contents of a PackageIndex doesn't come out in Ord order actually
  causes real problems in cabal-install and necessitates re-sorting.
  So we should move to using PackageSet in most cases and just leave
  the search and lookup operations in PackageIndex.
Thu Jun 19 23:09:40 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Include trailing newline in hscolour command description
Thu Jun 19 23:22:58 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Use conservative render style for display
Fri Jun 27 19:20:13 BST 2008  Ian Lynagh <igloo@earth.li>
  * Update .darcs-boring
Sun Jun 29 12:42:39 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix a haddock typo
Sun Jun 29 12:43:42 BST 2008  Ian Lynagh <igloo@earth.li>
  * haddock typo
Thu Jun 26 18:14:24 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add simple file name globbing (*) to data-files and extra-source-files
Sat Jun 21 02:37:27 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add compat InstalledPackageInfo types for older GHCs
  We need these types for their Read instances so that we
  can still read older GHCs package db files when we make
  changes to the current InstalledPackageInfo type, or the
  types contained in it, like PackageIdentifier or License.
Thu Jun 26 00:20:51 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Tweaks to the readme, hopefully will reduce confusion
Thu Jun 26 20:29:39 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add ModuleName as a new type instead of using String everywhere
Thu Jun 26 20:52:04 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Remove a couple old deprecated empty modules
Thu Jun 26 21:09:33 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Whitespace changes, convert tabs to spaces
Sat Jun 28 18:25:50 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Update module headers
  Use cabal-devel@haskell.org as the maintainer in most cases except for
  a few which were pre-existing modules copied from elsewhere or modules
  like L.H.Extension which really belong to libraries@haskell.org
  Remove the useless stability module. We have more detailed information
  on stability elsewhere (in the version number and user guide).
  Add more top level module documentation, taken from the source guide.
Sat Jun 28 18:30:10 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Remove the SetupWrapper module
  It's not used in Cabal itself and while cabal-install used
  it previously, it now has its own extended implementation.
Sun Jun 29 17:49:39 BST 2008  Ian Lynagh <igloo@earth.li>
  * Allow installing executables in-place, and using shell script wrappers
  GHC-only currently.
Thu Jul  3 01:11:51 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix the build with GHC 6.4.2: Data.Map.alter doesn't exist
Thu Jul  3 01:12:16 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix using specified package databases
  If we are using a specified package database, we need to tell GHC what
  it is when building
Thu Jul  3 16:47:14 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix haddocking (with old haddocks?)
Fri Jul  4 15:05:41 BST 2008  Malcolm.Wallace@cs.york.ac.uk
  * massage a pattern-with-context around nhc98's typechecker
Fri Jul  4 15:06:13 BST 2008  Malcolm.Wallace@cs.york.ac.uk
  * help nhc98's import overlap resolver
Sat Jul  5 11:50:48 BST 2008  Ross Paterson <ross@soi.city.ac.uk>
  * fix #if __GLASGOW_HASKELL__ test

  The problem is that

  #if __GLASGOW_HASKELL__ < NNN

  is also true for non-GHC.  It should be

  #if __GLASGOW_HASKELL__ && __GLASGOW_HASKELL__ < NNN
Thu Jul 10 16:46:00 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Remove the need for a compat Data.Map module
  Stop using Map.alter, use the same solution as the PackageIndex module.
Thu Jul 10 19:14:37 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Correct the order of args given by --PROG-options
  They were getting reversed. Problem located by Igloo.
Fri Jul 11 00:14:15 BST 2008  Ian Lynagh <igloo@earth.li>
  * In Makefile.in, put all the rules that mentions srcdir together
Fri Jul 11 00:15:19 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix some whitespace in Makefile.in
Fri Jul 11 01:07:26 BST 2008  Ian Lynagh <igloo@earth.li>
  * Teach "Setup makefile" how to cope with multiple hs-source-dirs
Fri Jul 11 01:08:26 BST 2008  Ian Lynagh <igloo@earth.li>
  * Add a hack to copy .hs-boot files into dist/...
  When a preprocessor generates a .hs file we need to put the .hs-boot
  file next to it so that GHC can find it.
Sat Jul 12 13:19:16 BST 2008  Ian Lynagh <igloo@earth.li>
  * If install is given a distPref, pass it on to copy and register
Sat Jul 12 18:38:51 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix the "Setup makefile" rules for C files
Sat Jul 12 18:39:34 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix installing datafiles
  If datadir is foo and the datafile is bar then we should install it to
  $datadir/bar, not $datadir/foo/bar.
Fri Jul 11 15:20:26 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Simplify ghc version test slightly
Fri Jul 11 17:01:38 BST 2008  Duncan Coutts <duncan@haskell.org>
  * derive Eq for ConfiguredProgram
  a request from Saizan
Sun Jul 13 12:05:48 BST 2008  Ian Lynagh <igloo@earth.li>
  * If we are using ghc as hsc2hs's cc, then tell it where package.conf is
  if we have been told to use a specific one with --package-db
Sun Jul 13 13:39:58 BST 2008  Ian Lynagh <igloo@earth.li>
  * Pass -package-conf foo when using GHC as CC
Tue Jul 15 14:24:29 BST 2008  Ian Lynagh <igloo@earth.li>
  * Put GHC's programArgs in GHC_OPTS when making a Makefile
Sun Jul 20 20:48:01 BST 2008  Ian Lynagh <igloo@earth.li>
  * Generate expanded makefile rules directly, rather than using $(eval ...)
  We used to do this with $(eval ...) and $(call ...) in the
  Makefile, but make 3.79.1 (which is what comes with msys)
  doesn't understand $(eval ...), so now we just stick the
  expanded loop directly into the Makefile we generate.
Sun Jul 20 21:46:09 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Pass -x to strip on OSX
Sun Jul 20 23:08:51 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix warnings and add a comment explaining why we pass -x to strip on OS X
Tue Jul 22 13:57:59 BST 2008  Ian Lynagh <igloo@earth.li>
  * And exitcode of 2 from ghc-pkg when doing describe '*' means no packages
  This is a bit of a kludge around GHC's #2201, until Cabal is updated to
  use ghc-pkg dump.
Tue Jul 22 17:33:46 BST 2008  Ian Lynagh <igloo@earth.li>
  * If we have GHC >= 6.9 then use the new -optdep replacement flags
Sun Jul 20 20:49:24 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Convert from PackageIndex to PackageSet
  Turns out the feature to do case-insensitive lookups was only
  needed in cabal-install (and only in one little part) and
  elsewhere it causes problems. So use PackageSet instead.
Sun Jul 20 23:17:02 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Change some PackageSet functions to return the package rather than the id
  dependencyGraph and reverseDependencyClosure now return the
  full package rather than just the PackageIdentifier
Sun Jul 20 23:37:31 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add PackageSet.topologicalOrder and reverseTopologicalOrder
  with type :: PackageFixedDeps pkg => PackageSet pkg -> [pkg]
Mon Jul 21 00:28:18 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add gccProgram
  on Windows we have to find ghc's private copy of gcc.exe
Mon Jul 21 00:37:59 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Always use gcc as cc with hsc2hs
  Lookup what flags to use from the package index. Previously this
  was done by calling ghc as cc and passing -package flags to ghc.
  ghc would then lookup what extra flags to pass to gcc. We now do
  that ourselves directly and it's a good deal simpler and it's
  portable to the other haskell implementations. This is only a
  first go, the flags may not all be exactly right. Needs testing.
Mon Jul 21 00:40:19 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Don't need the complex code in detecting hsc2hs anymore
  Since we do not need to know if hsc2hs uses ghc or gcc as cc
  by default since in either case we now tell it to use gcc.
Wed Jul 23 11:18:48 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix the location of gcc.exe in a Windows GHC installation
Wed Jul 23 12:22:32 BST 2008  Ian Lynagh <igloo@earth.li>
  * Substitute for $topdir when we read GHC's InstalledPackageInfo's
Thu Jul 24 17:57:53 BST 2008  Malcolm.Wallace@cs.york.ac.uk
  * help nhc98's module disambiguator a bit
Mon Jul 28 16:36:29 BST 2008  Malcolm.Wallace@cs.york.ac.uk
  * more import qualification to help nhc98
Mon Jul 28 17:45:06 BST 2008  Malcolm.Wallace@cs.york.ac.uk
  * disambiguate Control.Exception.catch for nhc98
Tue Jul 29 15:50:40 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Pass -no-user-package-conf to ghc when not using UserPackageDB
  Should eliminate the corner case where we're doing a global
  install but the user package db contains the exact same
  version as in the global package db. Perhaps we should warn
  in that case anyway since it's likely to go wrong later.
Tue Jul 29 16:16:12 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Use "pkg == 1.2.*" as the version wildcard syntax
  Rather than "pkg ~ 1.2.*". This seemed to be the consensus.
  The syntax "pkg == 1.2.*" means "pkg >= 1.2 && < 1.3" and it
  is to encourage people to put upper bounds on api versions.
Tue Jul 29 16:19:52 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Allow $arch and $os in install paths.
  Fixes ticket #312. For example a user could use:
    cabal configure --libsubdir="$pkgid/$compiler/$arch"
  if they wanted to have packages for multiple architectures
  co-exist in the same filestore area.
Tue Jul 29 16:26:24 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix the semantics of the simple file globbing to be sane
  I realised when I started to document it that the behaviour
  was not terribly consistent or sensible. The meaning now is:
    The limitation is that * wildcards are only allowed in
    place of the file name, not in the directory name or
    file extension. In particular, wildcards do not include
    directories contents recursively. Furthermore, if a
    wildcard is used it must be used with an extension, so
    "data-files: data/*" is not allowed. When matching a
    wildcard plus extension, a file's full extension must
    match exactly, so "*.gz" matches "foo.gz" but not
    "foo.tar.gz".
  The reason for providing only a very limited form of wildcard
  is to concisely express the common case of a large number of
  related files of the same file type without making it too easy
  to accidentally include unwanted files.
Tue Jul 29 16:40:50 BST 2008  Duncan Coutts <duncan@haskell.org>
  * File globs must match at least one file or it's an error.
Tue Jul 29 16:56:54 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Document the $os and $arch install path vars
Tue Jul 29 16:59:20 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Document the wildcard behaviour in data-files and extra-source-files fields
Tue Jul 29 17:03:08 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Document more clearly that every modules must be listed
  in one of the fields exposed-modules, other-modules or main-is
  Add an extra note to the section on the Paths_pkgname module
  as the fact that it's automatically generated confuses people.
Tue Jul 29 17:08:08 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Move the docs for the buildable field to a better place.
  It doesn't need to be right up near the top.
Tue Jul 29 17:09:50 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Remove references to cabal-setup from the documentation
  Change to runhaskell Setup or cabal-install as appropriate.
Tue Jul 29 17:20:24 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Move docs for build-depends into the build information section
  Since it is shared between libs and exes. Extend the documentation
  to describe the syntax of version constraints, including the new
  version range syntax "build-depends: foo ==1.2.*".
Tue Jul 29 17:37:29 BST 2008  Ian Lynagh <igloo@earth.li>
  * Tweak whitespace
Tue Jul 29 18:02:15 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix linking with hsc2hs on OS X
  We don't tell hsc2hs to link the actual Haskell packages, so with GHC's
  rts package we need to also filter out the -u flags.
Tue Jul 29 18:27:50 BST 2008  Ian Lynagh <igloo@earth.li>
  * Tweak a test to not go via the pretty printer
Tue Jul 29 18:27:57 BST 2008  Ian Lynagh <igloo@earth.li>
  * Pass the right -F and --framework flags when running hsc2hs on OS X
Tue Jul 29 18:05:56 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Do not use ',' as a list separator for the cpp/cc/ld-options fields
  It breaks for some options like "ld-options: -Wl,-z,now"
  No existing .cabal files on hackage were using ',' as a
  list separator so this should not break anything.
Tue Jul 29 20:18:55 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix uses of verbosity > deafening to use >=
  The maximum verbosity value is deafening so >= the correct test.
  This primarily affected haddock.
Tue Jul 29 20:57:14 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Do the ghc rts ldOptions hack in a slightly more hygenic way
Wed Jul 30 17:34:32 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Rearrange the Monoid instances for Library, Executable, BuildInfo
  No functional change, just moving code about.
  We now define the Monoid methods directly rather than in
  terms of emptyLibrary, unionLibrary etc.
Wed Jul 30 17:45:16 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add an "exposed" field to the .cabal file library section
  It's a bool flag that says if by default the library should
  be registered with the compiler as exposed/unhidden (for
  compilers which have such a concept, ie ghc). You might want
  to do this for packages which would otherwise pollute the
  module namespace or clash with other common packages.
  It should be very rarely used. The only current examples we
  know of are the ghc api package and the dph packages.
Wed Jul 30 17:50:31 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Remove unused inDir util function
Wed Jul 30 19:29:57 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Remove unused imports
Wed Jul 30 19:39:10 BST 2008  Ian Lynagh <igloo@earth.li>
  * Make Cabal compatible with extensible exceptions
  The code is now also more correct, e.g. when we are ignoring IO exceptions
  while trying to delete something, we don't also ignore timeout exceptions.
Wed Jul 30 20:45:26 BST 2008  Ian Lynagh <igloo@earth.li>
  * Remove unused imports
Thu Jul 31 20:48:41 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix the Windows build
Sun Aug  3 21:12:53 BST 2008  Ian Lynagh <igloo@earth.li>
  * Windows fixes
Wed Aug  6 14:03:09 BST 2008  Simon Marlow <marlowsd@gmail.com>
  * setup makefile: put the source-dir suffix rules after the distdir suffix rules
  This matches the behaviour of 'setup build' works, and is robust to
  people accidentally having old preprocessed sources lying around in the
  source dir.
Sat Aug  9 22:11:48 BST 2008  Ian Lynagh <igloo@earth.li>
  * When running "Setup makefile", put "default: all" at the top of the Makefile
  This make "make" work even if Makefile.local contains any targets.
Sun Aug 10 01:51:35 BST 2008  Ian Lynagh <igloo@earth.li>
  * Make binary-dist do nothing in doc/Makefile, for now
Wed Aug  6 14:05:12 BST 2008  Simon Marlow <marlowsd@gmail.com>
  * allow Cabal to use base-4
Mon Aug 11 18:30:16 BST 2008  Simon Marlow <marlowsd@gmail.com>
  * Add auto-generated CPP macros for package version testing

  Now when using CPP you get

     MIN_VERSION_<package>(A,B,C)

  for each <package> in build-depends, which is true if the version of
  <package> in use is >= A.B.C, using the normal ordering on version
  numbers.

  This is done by auto-generating a header file
  dist/build/autogen/cabal_macros.h, and passing a -include flag when
  running CPP.
Thu Jul 31 17:28:07 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Document the "exposed" .cabal file field
Sat Aug  2 01:20:45 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix instance Monoid ConfigFlags for configStripExes
Mon Aug  4 15:38:17 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Don't try to install libHSfoo.a if the lib had no object files
  To allow meta-packages.
Mon Aug  4 16:58:26 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Adjust registration to allow packages with no modules or objects
  So ghc-pkg does not complain about missing files and dirs.
Mon Aug  4 20:03:24 BST 2008  Thomas Schilling <nominolo@googlemail.com>
  * Document and refactor 'parsePackageDescription'.

  Hopefully this makes this function more understandable and easier to
  modify.
Wed Aug  6 01:13:52 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Move parseFreeText into ParseUtils and use it more widely
Wed Aug  6 01:15:47 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Generalise checkPackageFiles to any monad, not just IO
  This is to let us use the same checks for virtual or
  in-memory file systems, like tarball contents.
Wed Aug  6 13:13:15 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Tidy up the ppFields function and uses
  Put the arguments in a more sensible order:
  ppFields :: [FieldDescr a] -> a -> Doc
  and make the implementation clearer.
  clean up the use of it in the PackageDescription.Parse module
Wed Aug  6 13:26:13 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add parsse utils for simple flat formats.
  Should help to simplify the InstalledPackageInfo parser
  and also for similar formats in cabal-install.
Wed Aug  6 13:28:07 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Simplify InstalledPackageInfo parser and pretty printer
  Using the new utils in ParseUtils.
Thu Aug  7 20:03:07 BST 2008  David Waern
  * Use 'ghc-pkg dump' instead of 'ghc-pkg describe *'

  Does not implement lazy parsing of the output of ghc-pkg dump, so this
  is only a partial fix of #311.

  For more information about why we want to use ghc-pkg dump, see GHC
  ticket #2201.
Tue Aug 12 17:07:31 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Don't use tab characters in the generated Paths module
Tue Aug 12 17:09:41 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add data Platform = Platform Arch OS
  Since we tend to pass them around together rather a lot.
  Also add a Text instance with a format like "i386-linux"
Tue Aug 12 18:10:06 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add alias type PackageId = PackageIdentifier
Tue Aug 12 18:12:07 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix the config-file field name of the install command's packagedb option
Tue Aug 12 22:13:49 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix warnings in Windows Paths_pkgname module
Tue Aug 12 22:22:36 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Flush stdout when printing debugging messages
Tue Aug 12 23:04:15 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Don't warn about missing strip.exe on Windows
  We don't expect Windows systems to have the strip program anyway.
Wed Aug 13 14:21:12 BST 2008  Malcolm.Wallace@cs.york.ac.uk
  * fix imports for nhc98
Wed Aug 13 20:20:17 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add util rewriteFile :: FilePath -> String -> IO ()
  Write a file but only if it would have new content.
  If we would be writing the same as the existing content
  then leave the file as is so that we do not update the
  file's modification time.
Wed Aug 13 20:32:45 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Move Paths_pkgname and cabal_macros.h generation into their own modules
Wed Aug 13 22:30:35 BST 2008  Ian Lynagh <igloo@earth.li>
  * Catch exit exceptions as well as IO exceptions after running programs
  We need to catch IO exceptions for things like "couldn't find the program",
  but we also need to catch exit exceptions as Cabal uses them to signal
  what the program returned.
Thu Aug 21 14:25:51 BST 2008  Simon Marlow <marlowsd@gmail.com>
  * Don't propagate cc-options to the InstalledPackageInfo
  cc-options is for options to be passed to C compilations in the
  current package.  If we propagate those options to the
  InstalledPackageInfo, they get passed to C compilations in any package
  that depends on this one, which could be disastrous.  I've seen
  cc-options like these:

     cc-options:      -optc-std=c99
     cc-options:         -D_FILE_OFFSET_BITS=64
     Cc-options:      -Wall

  these are all clearly intended to be local, but are in fact currently
  propagated to all dependent packages.
Thu Aug 21 14:34:21 BST 2008  Simon Marlow <marlowsd@gmail.com>
  * Don't pass cc-options to Haskell compilations
  This has no effect with GHC 6.9, and with earlier GHC's it was a
  misuse of cc-options.
Thu Aug 14 19:25:58 BST 2008  Malcolm.Wallace@cs.york.ac.uk
  * unbreak for non-GHC
Wed Aug 13 13:49:57 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Minor info and help message improvements
Mon Aug 18 20:49:51 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix spelling of compatibility
  At request of gwern who found that it was driving him nuts.
Sun Aug 24 14:51:45 BST 2008  Ian Lynagh <igloo@earth.li>
  * We now depend on concurrent (split off from base)
Thu Aug 21 16:49:13 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix for #333, "Setup sdist --snapshot fails"
  Credit to Spencer Janssen. This is just a slight alternative
  to the fix he proposed. It simplifies prepareSnapshotTree.
Sat Aug  2 14:54:52 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Update changelog
Fri Aug 22 17:08:28 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Update changelog for recent 1.5.x changes
Fri Aug 22 17:09:18 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Bump version number to 1.5.3
Mon Aug 25 14:23:52 BST 2008  Ian Lynagh <igloo@earth.li>
  * Teach Cabal about the PackageImports extension
Mon Aug 25 17:42:58 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Rename --distpref to --distdir
  It's more consistent with the other flag names for dirs.
  Kept the old name too, but it's not shown by --help.
Sun Aug 24 21:37:44 BST 2008  Duncan Coutts <duncan@haskell.org>
  * More changelog updates for 1.4.0.2
Sun Aug 24 21:39:23 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Note the per-user install path on Windows in the README
Tue Aug 26 01:32:40 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Separate out and export installDirsOptions
  The InstallDirs is a separate type so it's handy to have the
  command line and config file options for it available
  separately. It'd be useful in cabal-install for one thing.
Tue Aug 26 01:55:02 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Ban package names that are not valid windows file names
  At least for the purposes of distribution. So if you're on unix
  then you can call your package 'LPT1' if you feel you must, but
  you cannot distribute a package with this name.
Tue Aug 26 21:48:10 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add release date of 1.4.0.2
Wed Aug 27 18:01:05 BST 2008  Ian Lynagh <igloo@earth.li>
  * Add support for manually en/disabled flags
  The immediate use for these is so that, in haddock, we can require
  ghc-paths normally, but in the GHC build we can manually turn off a flag
  so that this dependency isn't needed. We can't use a normal flag, or
  in the normal build Cabal would infer that the flag needs to be turned
  off if ghc-paths isn't available.
Thu Aug 28 15:23:03 BST 2008  Ian Lynagh <igloo@earth.li>
  * We need to pass the CPP options to haddock 2
Thu Aug 28 15:24:24 BST 2008  Ian Lynagh <igloo@earth.li>
  * Allow passing haddock's location and options to "Setup haddock"
Thu Aug 28 16:55:54 BST 2008  Ian Lynagh <igloo@earth.li>
  * In wrappers, $executablename needs to expand to something with DESTDIR
  The installed wrapper needs to call the executable in its final place,
  not inside the DESTDIR where we are constructing a package.
Mon Sep  1 15:58:43 BST 2008  Simon Marlow <marlowsd@gmail.com>
  * Haddock 2: #include <cabal_macros.h>
Sun Aug 31 23:04:18 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Bump the version number to 1.5.4
  due to the PackageSet/Index api changes
Tue Sep  2 18:03:48 BST 2008  Ian Lynagh <igloo@earth.li>
  * Update CPP-Options in Cabal.cabal to define CABAL_VERSION=1,5,4
  It was still defining CABAL_VERSION=1,5,3
Wed Aug 27 09:23:49 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add checkPackageFileNames function to check portability of file names
  Windows has restrictions on names of files and portable
  tar archives have some weird length restrictions too.
  Not yet used but should be used in sdist and hackage.
Sat Aug 30 14:02:50 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Merge PackageSet and PackageIndex
  Have just a single module that provides both the case sensitive and
  insensitive operations. Turns out we hardly use the case insensitive
  operations, and the places where we do are not performance sensitive
  at all. So we use the PackageSet implementation which stores the
  packages case sensitively and tack on the case insensitive operations
  but with linear time implementations rather than log time. For the
  merged module/type name use PackageIndex because that is what older
  released versions exported, so less needless client breakage.
Sun Aug 31 22:25:26 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Don't redundantly pass programArgs in when calling programs.
  That's already done by the Program framework so we were passing
  those extra args in twice.
Sun Aug 31 22:48:13 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add some more handy Program utils
  Mostly for dealing with lists of programs so that client
  code doesn't need quite to much flip foldl' (flip thing)
  Add specific helpers for reconfiguring programs and
  restoring a full ProgramConfiguration after usign read.
Sun Aug 31 22:50:54 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Use the new Program utils to simplify code in Configure
Sun Aug 31 22:51:35 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add flags to build command for specifying program paths
  So we're going to allow --with-PROG for the build and haddock
  commands, in addition to the existing --PROG-options= flags.
Sun Aug 31 22:53:25 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Update the haddock command help text
  The haddock command now supports --haddock-options=
Sun Aug 31 22:55:51 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Simplify the handling of --with-prog= in build/haddock commands.
  We allow extra rgs and the location of programs to be given to
  the build and haddock commands, not just at configure time. The
  code to do this is now simpler and more general. This should not
  be the default use mode however since it involves configuring
  the programs each time where as doing it at configure time allows
  it to be done once and saved. Further, specifying a different
  version of the program at build time than at configure time is
  likely to fail, especially for the compiler programs. Changing
  the compiler really requires reconfiguring.
Sun Aug 31 23:01:45 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Use a hopefully more robust method of determining the gcc version
Sun Aug 31 23:17:56 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Display the right message for sdist --snapshot
Tue Sep  2 10:28:02 BST 2008  Malcolm.Wallace@cs.york.ac.uk
  * package concurrent not available in nhc98
Tue Sep  2 18:14:13 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add more detail to the -Werror and -fvia-C checks
  Also, ban rather than just warn about the -optl-Wl,-s hack
  now that Cabal strips exes by default.
Wed Sep  3 13:38:13 BST 2008  Ian Lynagh <igloo@earth.li>
  * Pass the interfaces for the transitive set of dependencies to haddock
  Otherwise we don't get links to types from packages that we don't
  directly depend on.
Wed Sep  3 23:36:08 BST 2008  Ian Lynagh <igloo@earth.li>
  * follow library changes
Wed Sep  3 23:01:16 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix cabal_macros.h for package names containing '-'
  As with the Paths_pkgname module, we map '-' to '_' as the
  former is not a valid character in cpp macro identifiers.
  Fixes cpp redefinition warnings. First reported by gwern.
Fri Sep  5 00:31:26 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix to compile with base-1.0:Data.List
  which did not have isInfixOf
Getting and merging the following patches:
Wed May 14 15:47:28 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add in {-# OPTIONS #-} for the benefit of ghc-6.4.x
  Which do not grok OPTIONS_GHC or LANGUAGE pragmas
Wed May 14 01:39:19 BST 2008  Ian Lynagh <igloo@earth.li>
  UNDO: Define bracketOnError in compat; fixes the build for GHC 6.4
Wed May 14 16:32:06 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Eliminate use of bracketOnError, use handle instead
  It's actually more appropriate anyway.
  This means we don't need any Distribution.Compat.Exception.
Wed May 14 16:33:43 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Remove redundant Char test in parseBuildToolName
  It was made redundant after the isSymbol test was removed.
  Spotted by Igloo.
Wed May 14 16:41:04 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Check invariant on every construction and elide on lookups
Wed May 14 17:29:54 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add PackageIndex.lookupPackageName and extra deletion functions
Wed May 14 18:18:22 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Remove Distribution.Compat.Exception from other-modules
Fri May  9 10:44:55 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Do not display version tags
Tue May 13 10:43:01 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Remove unused import
Mon May 19 18:38:08 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Allow the bindir, libdir and libexec dir to be specified via env vars too
  Same as for the datadir. Eg for package Foo, you'd use
  Foo_bindir=... Foo_datadir=... Foo_libexecdir=... ./Foo
  The next step would be generating a wrapper script that allows
  running the program inplace. It should also work for a library.
Fri May  9 14:04:48 BST 2008  Bertram Felgenhauer <int-e@gmx.de>
  * add data-dir field to package config
  Cabal will look for data files to install relative to the directory given
  in the data-dir field, allowing package authors to better structure their
  source tree. There's no behavioural change by default.
Fri May  9 14:13:06 BST 2008  Bertram Felgenhauer <int-e@gmx.de>
  * document data-dir field
Sun May 11 14:00:35 BST 2008  Ian Lynagh <igloo@earth.li>
  UNDO: Remove gnerated file (doc/fptools.css)
Tue May 20 20:17:00 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Rename doc/fptools.css to avoid the ghc build system cleaning it
  The user guide gets built in two different ways. There's a target
  in Cabal's the top level Makefile and there is also the stuff that
  the ghc build system uses. The ghc build system expects to copy in
  doc/fptools.css and then delete it again on make clean. We want a
  persistent copy so that we can make the docs when we've just got a
  standalone Cabal build tree, so that's now kept as doc/Cabal.css.
Wed May 21 16:34:20 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Write out Bool config values correctly
  Used by cabal-install when writing the default ~/.cabal/config file.
  Previously it was using show for type Maybe Bool and writing out
  "Just True" when of course it should just be "True".
Thu May 29 10:22:44 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add notThisVersion :: Version -> VersionRange
  Opposite of ThisVersion, it means /= x.y but is actually implemented
  as > x.y || < x.y as we do not have not or not equal as primitives.
Thu May 29 10:26:07 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add thisPackageVersion and notThisPackageVersion
  Util functions for makeing dependencies from package identifiers.
  thisPackageVersion    (foo-1.0) = foo ==1.0
  notThisPackageVersion (foo-1.0) = foo /=1.0
  The latter is handy as a constraint in dependency resolution.
Thu May 29 10:53:46 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Change the PackageIndex invariant so the buckets are ordered
  Each bucket holds packages with the same name case-insensitively.
  Previously each buckets was internally unordered. Now they're
  ordered by the full package id which means first by package name
  case-sensitively and then by version.
Thu May 29 11:42:14 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Put spaces round || and && when displaying version range expressions
  This makes them much more readable.
Thu May 29 11:47:14 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Bump version due to api changes
Tue May 27 14:58:30 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Note compatability issue in deprecation message for defaultUserHooks
Mon Jun  9 19:58:40 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Install license file into the right place
  even if the license file was kept in a subdir of the src tree.
  The canonical example was: license-file: debian/copyright
  It was being installed into $docdir/debian/ and failing since
  that dir did not exist. It's now installed into just $docdir.
Mon Jun  9 20:02:51 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Install haddock interface only when generated
  This is actually Andrea Rossato's patch but it didn't merge
  cleanly due to more recent changes. Fixes ticket #250.
Mon Jun  9 20:05:55 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fail better when using haddock 2.x and the --hoogle flag
  Fixes ticket #249
Tue Jun 10 00:36:09 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix pre-processing for haddock and executables
  Now look in the right place to find the pre-processed source
  files belongign to executables. Fixes ticket #252.
Tue Jun 10 19:01:50 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add withFileContents and withUTF8FileContents
  Safe block scoped reading of files.
  These guarantee that the file gets closed.
Tue Jun 10 19:02:17 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Close the package.conf file after reading it
  We had a bug on windows where we open and read ghc's package.conf
  database but because we did not consume the final newline we did
  not close the file. Then when we called ghc-pkg to register a
  package it failed because it could not rename the open file.
Tue Jun 10 19:05:28 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Switch to scoped file reading rather than lazy readFile
Tue Jun 10 19:07:27 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Use writeFileAtomic everywhere instead of writeFile
Tue Jun 10 19:09:47 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Switch the hugs code to safe file reading and writing
Thu Jun 12 10:18:10 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Filter out the Paths_pkgname file in sdist
  Fixes ticket #187 finally (I hope).
Thu Jun 12 10:24:25 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix the register --gen-pkg-config flag
  When specified without any file name it is supposed to use
  a default file name rather than be ignored completely.
Thu Jun 12 10:28:55 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Use the standard autogenModulesDir rather than a local copy
Thu Jun 12 10:29:24 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Lift the restriction that libraries must have exposed-modules
  This allows libs that have only private modules or C code. This
  might be used to make libs that have non-exposed modules and only
  export C APIs. It could also be used to make packages that consist
  only of C code. That might be useful for bindings where it may
  make sense to split the C and Haskell code into separate packages.
Thu Jun 12 16:43:09 BST 2008  Duncan Coutts <duncan@haskell.org>
  * base-1.0 does not have Data.Map.alter so use insertWith instead
Thu Jun 12 16:44:44 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Update copyright and authors list in the .cabal file
Thu Jun 12 16:46:24 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Update the release notes
Thu Jun 12 17:29:06 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Update the README and convert it to markdown syntax
Thu Jun 12 17:41:44 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add the 1.2.4.0 release to the changelog
Thu Jun 12 17:42:42 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add the 1.4.0.0 release to the changelog
Thu Jun 12 18:49:58 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Put upper bounds on all the build-depends
Thu Jun 12 20:03:17 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Move the mkGHCMakefile.sh out of the root dir
  Having it there confuses people.
  They think they have to run it as part of the install process.
Thu Jun 12 20:05:58 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Include the readme and the changelog in the tarball
Sat Jun 14 17:07:07 BST 2008  Ross Paterson <ross@soi.city.ac.uk>
  * force results inside withHaskellFile

  withUTF8FileContents now closes the file, so we need to force what we're
  computing from the contents before it's gone.
Mon Jun 16 18:15:05 BST 2008  Duncan Coutts <duncan@haskell.org>
  * construct InstalledPackageInfo from scratch rather than by overriding
  It means we catch any fields that get added. As it happens we were
  missing a field, though its value is supposed to be just [] which is
  the same value as we got from the default emptyInstalledPackageInfo.
Mon Jun 16 18:54:46 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Makefile tweak, setup depends on Setup.hs
Tue Jun 17 14:04:34 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Update changelog for 1.4.0.1
Tue Jun 17 14:38:11 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix css location in generation of user guide
Sat Jun 14 00:03:52 BST 2008  Duncan Coutts <duncan@haskell.org>
  * '.' should not always be in hs-source dirs
  We changed the parsing of list fields in the .cabal file so that it
  adds to the current value rather than replacing it. This allows you
  to put multiple entries for a list field and they all get
  concatenated. However that means that the '.' in the hsSourceDirs of
  emptyBuildInfo is always added to and not replaced like we did
  previously. That's not what we want in this case. We want to use '.'
  for hsSourceDirs *only* if hsSourceDirs is otherwise null. As it
  happens, due to the way the configurations code works, we're already
  filling in the default if it'd otherwise be null so we do not need
  '.' in the emptyBuildInfo at all.
Fri Jun 13 21:54:45 BST 2008  Duncan Coutts <duncan@haskell.org>
  * haddock-2.2 and later do now support the --hoogle flag
Thu Jun 19 18:50:06 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add version wildcard syntax
    build-depends: foo ~1.2.*
  means:
    build-depends: foo >=1.2 && <1.3
  It's also valid everywhere else version ranges are used.
Sat Jun 14 01:16:54 BST 2008  Duncan Coutts <duncan@haskell.org>
  * No more need for the distinction between null and emptyBuildInfo
  Now that we have removed the hsSourceDirs = [currentDir] default
  from emptyBuildInfo it is now equal to nullBuildInfo.
Sat Jun 14 01:29:26 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add PackageName as a newtype
Sat Jun 14 01:37:05 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add PackageSet, like PackageIndex but case sensitive
  Actually it turns out that we don't need case insensitivity in many
  cases, mosty just for simple lookups in the UI. For everything else
  the ordinary Ord instance is much simpler. The fact that listing the
  contents of a PackageIndex doesn't come out in Ord order actually
  causes real problems in cabal-install and necessitates re-sorting.
  So we should move to using PackageSet in most cases and just leave
  the search and lookup operations in PackageIndex.
Thu Jun 19 23:09:40 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Include trailing newline in hscolour command description
Thu Jun 19 23:22:58 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Use conservative render style for display
Fri Jun 27 19:20:13 BST 2008  Ian Lynagh <igloo@earth.li>
  * Update .darcs-boring
Sun Jun 29 12:42:39 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix a haddock typo
Sun Jun 29 12:43:42 BST 2008  Ian Lynagh <igloo@earth.li>
  * haddock typo
Thu Jun 26 18:14:24 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add simple file name globbing (*) to data-files and extra-source-files
Sat Jun 21 02:37:27 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add compat InstalledPackageInfo types for older GHCs
  We need these types for their Read instances so that we
  can still read older GHCs package db files when we make
  changes to the current InstalledPackageInfo type, or the
  types contained in it, like PackageIdentifier or License.
Thu Jun 26 00:20:51 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Tweaks to the readme, hopefully will reduce confusion
Thu Jun 26 20:29:39 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add ModuleName as a new type instead of using String everywhere
Thu Jun 26 20:52:04 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Remove a couple old deprecated empty modules
Thu Jun 26 21:09:33 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Whitespace changes, convert tabs to spaces
Sat Jun 28 18:25:50 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Update module headers
  Use cabal-devel@haskell.org as the maintainer in most cases except for
  a few which were pre-existing modules copied from elsewhere or modules
  like L.H.Extension which really belong to libraries@haskell.org
  Remove the useless stability module. We have more detailed information
  on stability elsewhere (in the version number and user guide).
  Add more top level module documentation, taken from the source guide.
Sat Jun 28 18:30:10 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Remove the SetupWrapper module
  It's not used in Cabal itself and while cabal-install used
  it previously, it now has its own extended implementation.
Sun Jun 29 17:49:39 BST 2008  Ian Lynagh <igloo@earth.li>
  * Allow installing executables in-place, and using shell script wrappers
  GHC-only currently.
Thu Jul  3 01:11:51 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix the build with GHC 6.4.2: Data.Map.alter doesn't exist
Thu Jul  3 01:12:16 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix using specified package databases
  If we are using a specified package database, we need to tell GHC what
  it is when building
Thu Jul  3 16:47:14 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix haddocking (with old haddocks?)
Fri Jul  4 15:05:41 BST 2008  Malcolm.Wallace@cs.york.ac.uk
  * massage a pattern-with-context around nhc98's typechecker
Fri Jul  4 15:06:13 BST 2008  Malcolm.Wallace@cs.york.ac.uk
  * help nhc98's import overlap resolver
Sat Jul  5 11:50:48 BST 2008  Ross Paterson <ross@soi.city.ac.uk>
  * fix #if __GLASGOW_HASKELL__ test

  The problem is that

  #if __GLASGOW_HASKELL__ < NNN

  is also true for non-GHC.  It should be

  #if __GLASGOW_HASKELL__ && __GLASGOW_HASKELL__ < NNN
Thu Jul 10 16:46:00 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Remove the need for a compat Data.Map module
  Stop using Map.alter, use the same solution as the PackageIndex module.
Thu Jul 10 19:14:37 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Correct the order of args given by --PROG-options
  They were getting reversed. Problem located by Igloo.
Fri Jul 11 00:14:15 BST 2008  Ian Lynagh <igloo@earth.li>
  * In Makefile.in, put all the rules that mentions srcdir together
Fri Jul 11 00:15:19 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix some whitespace in Makefile.in
Fri Jul 11 01:07:26 BST 2008  Ian Lynagh <igloo@earth.li>
  * Teach "Setup makefile" how to cope with multiple hs-source-dirs
Fri Jul 11 01:08:26 BST 2008  Ian Lynagh <igloo@earth.li>
  * Add a hack to copy .hs-boot files into dist/...
  When a preprocessor generates a .hs file we need to put the .hs-boot
  file next to it so that GHC can find it.
Sat Jul 12 13:19:16 BST 2008  Ian Lynagh <igloo@earth.li>
  * If install is given a distPref, pass it on to copy and register
Sat Jul 12 18:38:51 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix the "Setup makefile" rules for C files
Sat Jul 12 18:39:34 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix installing datafiles
  If datadir is foo and the datafile is bar then we should install it to
  $datadir/bar, not $datadir/foo/bar.
Fri Jul 11 15:20:26 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Simplify ghc version test slightly
Fri Jul 11 17:01:38 BST 2008  Duncan Coutts <duncan@haskell.org>
  * derive Eq for ConfiguredProgram
  a request from Saizan
Sun Jul 13 12:05:48 BST 2008  Ian Lynagh <igloo@earth.li>
  * If we are using ghc as hsc2hs's cc, then tell it where package.conf is
  if we have been told to use a specific one with --package-db
Sun Jul 13 13:39:58 BST 2008  Ian Lynagh <igloo@earth.li>
  * Pass -package-conf foo when using GHC as CC
Tue Jul 15 14:24:29 BST 2008  Ian Lynagh <igloo@earth.li>
  * Put GHC's programArgs in GHC_OPTS when making a Makefile
Sun Jul 20 20:48:01 BST 2008  Ian Lynagh <igloo@earth.li>
  * Generate expanded makefile rules directly, rather than using $(eval ...)
  We used to do this with $(eval ...) and $(call ...) in the
  Makefile, but make 3.79.1 (which is what comes with msys)
  doesn't understand $(eval ...), so now we just stick the
  expanded loop directly into the Makefile we generate.
Sun Jul 20 21:46:09 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Pass -x to strip on OSX
Sun Jul 20 23:08:51 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix warnings and add a comment explaining why we pass -x to strip on OS X
Tue Jul 22 13:57:59 BST 2008  Ian Lynagh <igloo@earth.li>
  * And exitcode of 2 from ghc-pkg when doing describe '*' means no packages
  This is a bit of a kludge around GHC's #2201, until Cabal is updated to
  use ghc-pkg dump.
Tue Jul 22 17:33:46 BST 2008  Ian Lynagh <igloo@earth.li>
  * If we have GHC >= 6.9 then use the new -optdep replacement flags
Sun Jul 20 20:49:24 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Convert from PackageIndex to PackageSet
  Turns out the feature to do case-insensitive lookups was only
  needed in cabal-install (and only in one little part) and
  elsewhere it causes problems. So use PackageSet instead.
Sun Jul 20 23:17:02 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Change some PackageSet functions to return the package rather than the id
  dependencyGraph and reverseDependencyClosure now return the
  full package rather than just the PackageIdentifier
Sun Jul 20 23:37:31 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add PackageSet.topologicalOrder and reverseTopologicalOrder
  with type :: PackageFixedDeps pkg => PackageSet pkg -> [pkg]
Mon Jul 21 00:28:18 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add gccProgram
  on Windows we have to find ghc's private copy of gcc.exe
Mon Jul 21 00:37:59 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Always use gcc as cc with hsc2hs
  Lookup what flags to use from the package index. Previously this
  was done by calling ghc as cc and passing -package flags to ghc.
  ghc would then lookup what extra flags to pass to gcc. We now do
  that ourselves directly and it's a good deal simpler and it's
  portable to the other haskell implementations. This is only a
  first go, the flags may not all be exactly right. Needs testing.
Mon Jul 21 00:40:19 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Don't need the complex code in detecting hsc2hs anymore
  Since we do not need to know if hsc2hs uses ghc or gcc as cc
  by default since in either case we now tell it to use gcc.
Wed Jul 23 11:18:48 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix the location of gcc.exe in a Windows GHC installation
Wed Jul 23 12:22:32 BST 2008  Ian Lynagh <igloo@earth.li>
  * Substitute for $topdir when we read GHC's InstalledPackageInfo's
Thu Jul 24 17:57:53 BST 2008  Malcolm.Wallace@cs.york.ac.uk
  * help nhc98's module disambiguator a bit
Mon Jul 28 16:36:29 BST 2008  Malcolm.Wallace@cs.york.ac.uk
  * more import qualification to help nhc98
Mon Jul 28 17:45:06 BST 2008  Malcolm.Wallace@cs.york.ac.uk
  * disambiguate Control.Exception.catch for nhc98
Tue Jul 29 15:50:40 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Pass -no-user-package-conf to ghc when not using UserPackageDB
  Should eliminate the corner case where we're doing a global
  install but the user package db contains the exact same
  version as in the global package db. Perhaps we should warn
  in that case anyway since it's likely to go wrong later.
Tue Jul 29 16:16:12 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Use "pkg == 1.2.*" as the version wildcard syntax
  Rather than "pkg ~ 1.2.*". This seemed to be the consensus.
  The syntax "pkg == 1.2.*" means "pkg >= 1.2 && < 1.3" and it
  is to encourage people to put upper bounds on api versions.
Tue Jul 29 16:19:52 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Allow $arch and $os in install paths.
  Fixes ticket #312. For example a user could use:
    cabal configure --libsubdir="$pkgid/$compiler/$arch"
  if they wanted to have packages for multiple architectures
  co-exist in the same filestore area.
Tue Jul 29 16:26:24 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix the semantics of the simple file globbing to be sane
  I realised when I started to document it that the behaviour
  was not terribly consistent or sensible. The meaning now is:
    The limitation is that * wildcards are only allowed in
    place of the file name, not in the directory name or
    file extension. In particular, wildcards do not include
    directories contents recursively. Furthermore, if a
    wildcard is used it must be used with an extension, so
    "data-files: data/*" is not allowed. When matching a
    wildcard plus extension, a file's full extension must
    match exactly, so "*.gz" matches "foo.gz" but not
    "foo.tar.gz".
  The reason for providing only a very limited form of wildcard
  is to concisely express the common case of a large number of
  related files of the same file type without making it too easy
  to accidentally include unwanted files.
Tue Jul 29 16:40:50 BST 2008  Duncan Coutts <duncan@haskell.org>
  * File globs must match at least one file or it's an error.
Tue Jul 29 16:56:54 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Document the $os and $arch install path vars
Tue Jul 29 16:59:20 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Document the wildcard behaviour in data-files and extra-source-files fields
Tue Jul 29 17:03:08 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Document more clearly that every modules must be listed
  in one of the fields exposed-modules, other-modules or main-is
  Add an extra note to the section on the Paths_pkgname module
  as the fact that it's automatically generated confuses people.
Tue Jul 29 17:08:08 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Move the docs for the buildable field to a better place.
  It doesn't need to be right up near the top.
Tue Jul 29 17:09:50 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Remove references to cabal-setup from the documentation
  Change to runhaskell Setup or cabal-install as appropriate.
Tue Jul 29 17:20:24 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Move docs for build-depends into the build information section
  Since it is shared between libs and exes. Extend the documentation
  to describe the syntax of version constraints, including the new
  version range syntax "build-depends: foo ==1.2.*".
Tue Jul 29 17:37:29 BST 2008  Ian Lynagh <igloo@earth.li>
  * Tweak whitespace
Tue Jul 29 18:02:15 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix linking with hsc2hs on OS X
  We don't tell hsc2hs to link the actual Haskell packages, so with GHC's
  rts package we need to also filter out the -u flags.
Tue Jul 29 18:27:50 BST 2008  Ian Lynagh <igloo@earth.li>
  * Tweak a test to not go via the pretty printer
Tue Jul 29 18:27:57 BST 2008  Ian Lynagh <igloo@earth.li>
  * Pass the right -F and --framework flags when running hsc2hs on OS X
Tue Jul 29 18:05:56 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Do not use ',' as a list separator for the cpp/cc/ld-options fields
  It breaks for some options like "ld-options: -Wl,-z,now"
  No existing .cabal files on hackage were using ',' as a
  list separator so this should not break anything.
Tue Jul 29 20:18:55 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix uses of verbosity > deafening to use >=
  The maximum verbosity value is deafening so >= the correct test.
  This primarily affected haddock.
Tue Jul 29 20:57:14 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Do the ghc rts ldOptions hack in a slightly more hygenic way
Wed Jul 30 17:34:32 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Rearrange the Monoid instances for Library, Executable, BuildInfo
  No functional change, just moving code about.
  We now define the Monoid methods directly rather than in
  terms of emptyLibrary, unionLibrary etc.
Wed Jul 30 17:45:16 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add an "exposed" field to the .cabal file library section
  It's a bool flag that says if by default the library should
  be registered with the compiler as exposed/unhidden (for
  compilers which have such a concept, ie ghc). You might want
  to do this for packages which would otherwise pollute the
  module namespace or clash with other common packages.
  It should be very rarely used. The only current examples we
  know of are the ghc api package and the dph packages.
Wed Jul 30 17:50:31 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Remove unused inDir util function
Wed Jul 30 19:29:57 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Remove unused imports
Wed Jul 30 19:39:10 BST 2008  Ian Lynagh <igloo@earth.li>
  * Make Cabal compatible with extensible exceptions
  The code is now also more correct, e.g. when we are ignoring IO exceptions
  while trying to delete something, we don't also ignore timeout exceptions.
Wed Jul 30 20:45:26 BST 2008  Ian Lynagh <igloo@earth.li>
  * Remove unused imports
Thu Jul 31 20:48:41 BST 2008  Ian Lynagh <igloo@earth.li>
  * Fix the Windows build
Sun Aug  3 21:12:53 BST 2008  Ian Lynagh <igloo@earth.li>
  * Windows fixes
Wed Aug  6 14:03:09 BST 2008  Simon Marlow <marlowsd@gmail.com>
  * setup makefile: put the source-dir suffix rules after the distdir suffix rules
  This matches the behaviour of 'setup build' works, and is robust to
  people accidentally having old preprocessed sources lying around in the
  source dir.
Sat Aug  9 22:11:48 BST 2008  Ian Lynagh <igloo@earth.li>
  * When running "Setup makefile", put "default: all" at the top of the Makefile
  This make "make" work even if Makefile.local contains any targets.
Sun Aug 10 01:51:35 BST 2008  Ian Lynagh <igloo@earth.li>
  * Make binary-dist do nothing in doc/Makefile, for now
Wed Aug  6 14:05:12 BST 2008  Simon Marlow <marlowsd@gmail.com>
  * allow Cabal to use base-4
Mon Aug 11 18:30:16 BST 2008  Simon Marlow <marlowsd@gmail.com>
  * Add auto-generated CPP macros for package version testing

  Now when using CPP you get

     MIN_VERSION_<package>(A,B,C)

  for each <package> in build-depends, which is true if the version of
  <package> in use is >= A.B.C, using the normal ordering on version
  numbers.

  This is done by auto-generating a header file
  dist/build/autogen/cabal_macros.h, and passing a -include flag when
  running CPP.
Thu Jul 31 17:28:07 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Document the "exposed" .cabal file field
Sat Aug  2 01:20:45 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix instance Monoid ConfigFlags for configStripExes
Mon Aug  4 15:38:17 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Don't try to install libHSfoo.a if the lib had no object files
  To allow meta-packages.
Mon Aug  4 16:58:26 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Adjust registration to allow packages with no modules or objects
  So ghc-pkg does not complain about missing files and dirs.
Mon Aug  4 20:03:24 BST 2008  Thomas Schilling <nominolo@googlemail.com>
  * Document and refactor 'parsePackageDescription'.

  Hopefully this makes this function more understandable and easier to
  modify.
Wed Aug  6 01:13:52 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Move parseFreeText into ParseUtils and use it more widely
Wed Aug  6 01:15:47 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Generalise checkPackageFiles to any monad, not just IO
  This is to let us use the same checks for virtual or
  in-memory file systems, like tarball contents.
Wed Aug  6 13:13:15 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Tidy up the ppFields function and uses
  Put the arguments in a more sensible order:
  ppFields :: [FieldDescr a] -> a -> Doc
  and make the implementation clearer.
  clean up the use of it in the PackageDescription.Parse module
Wed Aug  6 13:26:13 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add parsse utils for simple flat formats.
  Should help to simplify the InstalledPackageInfo parser
  and also for similar formats in cabal-install.
Wed Aug  6 13:28:07 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Simplify InstalledPackageInfo parser and pretty printer
  Using the new utils in ParseUtils.
Thu Aug  7 20:03:07 BST 2008  David Waern
  * Use 'ghc-pkg dump' instead of 'ghc-pkg describe *'

  Does not implement lazy parsing of the output of ghc-pkg dump, so this
  is only a partial fix of #311.

  For more information about why we want to use ghc-pkg dump, see GHC
  ticket #2201.
Tue Aug 12 17:07:31 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Don't use tab characters in the generated Paths module
Tue Aug 12 17:09:41 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add data Platform = Platform Arch OS
  Since we tend to pass them around together rather a lot.
  Also add a Text instance with a format like "i386-linux"
Tue Aug 12 18:10:06 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add alias type PackageId = PackageIdentifier
Tue Aug 12 18:12:07 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix the config-file field name of the install command's packagedb option
Tue Aug 12 22:13:49 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix warnings in Windows Paths_pkgname module
Tue Aug 12 22:22:36 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Flush stdout when printing debugging messages
Tue Aug 12 23:04:15 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Don't warn about missing strip.exe on Windows
  We don't expect Windows systems to have the strip program anyway.
Wed Aug 13 14:21:12 BST 2008  Malcolm.Wallace@cs.york.ac.uk
  * fix imports for nhc98
Wed Aug 13 20:20:17 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add util rewriteFile :: FilePath -> String -> IO ()
  Write a file but only if it would have new content.
  If we would be writing the same as the existing content
  then leave the file as is so that we do not update the
  file's modification time.
Wed Aug 13 20:32:45 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Move Paths_pkgname and cabal_macros.h generation into their own modules
Wed Aug 13 22:30:35 BST 2008  Ian Lynagh <igloo@earth.li>
  * Catch exit exceptions as well as IO exceptions after running programs
  We need to catch IO exceptions for things like "couldn't find the program",
  but we also need to catch exit exceptions as Cabal uses them to signal
  what the program returned.
Thu Aug 21 14:25:51 BST 2008  Simon Marlow <marlowsd@gmail.com>
  * Don't propagate cc-options to the InstalledPackageInfo
  cc-options is for options to be passed to C compilations in the
  current package.  If we propagate those options to the
  InstalledPackageInfo, they get passed to C compilations in any package
  that depends on this one, which could be disastrous.  I've seen
  cc-options like these:

     cc-options:      -optc-std=c99
     cc-options:         -D_FILE_OFFSET_BITS=64
     Cc-options:      -Wall

  these are all clearly intended to be local, but are in fact currently
  propagated to all dependent packages.
Thu Aug 21 14:34:21 BST 2008  Simon Marlow <marlowsd@gmail.com>
  * Don't pass cc-options to Haskell compilations
  This has no effect with GHC 6.9, and with earlier GHC's it was a
  misuse of cc-options.
Thu Aug 14 19:25:58 BST 2008  Malcolm.Wallace@cs.york.ac.uk
  * unbreak for non-GHC
Wed Aug 13 13:49:57 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Minor info and help message improvements
Mon Aug 18 20:49:51 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix spelling of compatibility
  At request of gwern who found that it was driving him nuts.
Sun Aug 24 14:51:45 BST 2008  Ian Lynagh <igloo@earth.li>
  * We now depend on concurrent (split off from base)
Thu Aug 21 16:49:13 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix for #333, "Setup sdist --snapshot fails"
  Credit to Spencer Janssen. This is just a slight alternative
  to the fix he proposed. It simplifies prepareSnapshotTree.
Sat Aug  2 14:54:52 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Update changelog
Fri Aug 22 17:08:28 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Update changelog for recent 1.5.x changes
Fri Aug 22 17:09:18 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Bump version number to 1.5.3
Mon Aug 25 14:23:52 BST 2008  Ian Lynagh <igloo@earth.li>
  * Teach Cabal about the PackageImports extension
Mon Aug 25 17:42:58 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Rename --distpref to --distdir
  It's more consistent with the other flag names for dirs.
  Kept the old name too, but it's not shown by --help.
Sun Aug 24 21:37:44 BST 2008  Duncan Coutts <duncan@haskell.org>
  * More changelog updates for 1.4.0.2
Sun Aug 24 21:39:23 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Note the per-user install path on Windows in the README
Tue Aug 26 01:32:40 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Separate out and export installDirsOptions
  The InstallDirs is a separate type so it's handy to have the
  command line and config file options for it available
  separately. It'd be useful in cabal-install for one thing.
Tue Aug 26 01:55:02 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Ban package names that are not valid windows file names
  At least for the purposes of distribution. So if you're on unix
  then you can call your package 'LPT1' if you feel you must, but
  you cannot distribute a package with this name.
Tue Aug 26 21:48:10 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add release date of 1.4.0.2
Wed Aug 27 18:01:05 BST 2008  Ian Lynagh <igloo@earth.li>
  * Add support for manually en/disabled flags
  The immediate use for these is so that, in haddock, we can require
  ghc-paths normally, but in the GHC build we can manually turn off a flag
  so that this dependency isn't needed. We can't use a normal flag, or
  in the normal build Cabal would infer that the flag needs to be turned
  off if ghc-paths isn't available.
Thu Aug 28 15:23:03 BST 2008  Ian Lynagh <igloo@earth.li>
  * We need to pass the CPP options to haddock 2
Thu Aug 28 15:24:24 BST 2008  Ian Lynagh <igloo@earth.li>
  * Allow passing haddock's location and options to "Setup haddock"
Thu Aug 28 16:55:54 BST 2008  Ian Lynagh <igloo@earth.li>
  * In wrappers, $executablename needs to expand to something with DESTDIR
  The installed wrapper needs to call the executable in its final place,
  not inside the DESTDIR where we are constructing a package.
Mon Sep  1 15:58:43 BST 2008  Simon Marlow <marlowsd@gmail.com>
  * Haddock 2: #include <cabal_macros.h>
Sun Aug 31 23:04:18 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Bump the version number to 1.5.4
  due to the PackageSet/Index api changes
Tue Sep  2 18:03:48 BST 2008  Ian Lynagh <igloo@earth.li>
  * Update CPP-Options in Cabal.cabal to define CABAL_VERSION=1,5,4
  It was still defining CABAL_VERSION=1,5,3
Wed Aug 27 09:23:49 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add checkPackageFileNames function to check portability of file names
  Windows has restrictions on names of files and portable
  tar archives have some weird length restrictions too.
  Not yet used but should be used in sdist and hackage.
Sat Aug 30 14:02:50 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Merge PackageSet and PackageIndex
  Have just a single module that provides both the case sensitive and
  insensitive operations. Turns out we hardly use the case insensitive
  operations, and the places where we do are not performance sensitive
  at all. So we use the PackageSet implementation which stores the
  packages case sensitively and tack on the case insensitive operations
  but with linear time implementations rather than log time. For the
  merged module/type name use PackageIndex because that is what older
  released versions exported, so less needless client breakage.
Sun Aug 31 22:25:26 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Don't redundantly pass programArgs in when calling programs.
  That's already done by the Program framework so we were passing
  those extra args in twice.
Sun Aug 31 22:48:13 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add some more handy Program utils
  Mostly for dealing with lists of programs so that client
  code doesn't need quite to much flip foldl' (flip thing)
  Add specific helpers for reconfiguring programs and
  restoring a full ProgramConfiguration after usign read.
Sun Aug 31 22:50:54 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Use the new Program utils to simplify code in Configure
Sun Aug 31 22:51:35 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add flags to build command for specifying program paths
  So we're going to allow --with-PROG for the build and haddock
  commands, in addition to the existing --PROG-options= flags.
Sun Aug 31 22:53:25 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Update the haddock command help text
  The haddock command now supports --haddock-options=
Sun Aug 31 22:55:51 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Simplify the handling of --with-prog= in build/haddock commands.
  We allow extra rgs and the location of programs to be given to
  the build and haddock commands, not just at configure time. The
  code to do this is now simpler and more general. This should not
  be the default use mode however since it involves configuring
  the programs each time where as doing it at configure time allows
  it to be done once and saved. Further, specifying a different
  version of the program at build time than at configure time is
  likely to fail, especially for the compiler programs. Changing
  the compiler really requires reconfiguring.
Sun Aug 31 23:01:45 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Use a hopefully more robust method of determining the gcc version
Sun Aug 31 23:17:56 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Display the right message for sdist --snapshot
Tue Sep  2 10:28:02 BST 2008  Malcolm.Wallace@cs.york.ac.uk
  * package concurrent not available in nhc98
Tue Sep  2 18:14:13 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Add more detail to the -Werror and -fvia-C checks
  Also, ban rather than just warn about the -optl-Wl,-s hack
  now that Cabal strips exes by default.
Wed Sep  3 13:38:13 BST 2008  Ian Lynagh <igloo@earth.li>
  * Pass the interfaces for the transitive set of dependencies to haddock
  Otherwise we don't get links to types from packages that we don't
  directly depend on.
Wed Sep  3 23:36:08 BST 2008  Ian Lynagh <igloo@earth.li>
  * follow library changes
Wed Sep  3 23:01:16 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix cabal_macros.h for package names containing '-'
  As with the Paths_pkgname module, we map '-' to '_' as the
  former is not a valid character in cpp macro identifiers.
  Fixes cpp redefinition warnings. First reported by gwern.
Fri Sep  5 00:31:26 BST 2008  Duncan Coutts <duncan@haskell.org>
  * Fix to compile with base-1.0:Data.List
  which did not have isInfixOf
diffing dir...
Merging them 64/197
Attachments
msg5940 (view) Author: ertai Date: 2008-09-08.14:46:04
I'm sorry to ask this, but are you sure to have an un-modified repository?

Here is the checks:

$ darcs whatsnew -ls
(the purpose of -l is to be sure that no local file can conflict with some newly
added ones)

$ darcs send --dry-run <PULL-URL>
(this to check that you don't have more patches than upstream)
msg5941 (view) Author: simonpj Date: 2008-09-08.14:48:25
Ah interesting.  I do assure you that *I* have made no changes.  But I see

| -----Original Message-----
| From: Nicolas Pouillard [mailto:bugs@darcs.net]
| Sent: 08 September 2008 15:46
| To: cvs-ghc@haskell.org; dagit@codersbase.com; kowey@darcs.net; nicolas.pouillard@gmail.com;
| Simon Peyton-Jones
| Subject: [issue1065] Darcs taking infinite time to merge patches from Cabal
|
|
| Nicolas Pouillard <nicolas.pouillard@gmail.com> added the comment:
|
| I'm sorry to ask this, but are you sure to have an un-modified repository?
|
| Here is the checks:
|
| $ darcs whatsnew -ls
| (the purpose of -l is to be sure that no local file can conflict with some newly
| added ones)
|
| $ darcs send --dry-run <PULL-URL>
| (this to check that you don't have more patches than upstream)
|
| ----------
| nosy: +ertai
| priority:  -> bug
| status: unread -> chatting
|
| __________________________________
| Darcs bug tracker <bugs@darcs.net>
| <http://bugs.darcs.net/issue1065>
| __________________________________
msg5942 (view) Author: simonpj Date: 2008-09-08.14:57:36
[Sorry keyboard trouble made me send prematurely]

| I'm sorry to ask this, but are you sure to have an un-modified repository?

I am absolutely 100% certain that *I* made no changes.  But darcs must have!  Here is what 'darcs what' says:

cd libraries/Cabal/
bash-3.2$ darcs what -ls
 ./Distribution/PackageDescription.hs -> ./Distribution/PackageDescription/Types.hs
 ./Distribution/PackageDescription/Check.hs -> ./Distribution/PackageDescription/QA.hs
 ./tests/UnitTest/Distribution/Simple/PreProcess/UnlitTest.hs -> ./tests/UnlitTest.hs
A ./Distribution/PackageDescription.hs
A ./Distribution/PackageDescription/Check.hs
R ./Distribution/PackageDescription/QA.hs
R ./Distribution/PackageDescription/Types.hs
A ./tests/UnitTest/Distribution/Simple/PreProcess/UnlitTest.hs
R ./tests/UnlitTest.hs
a ./doc/Cabal.xml.~1~
bash-3.2$

OK. So I "darcs reverted" and am now trying to pull in this one repo......  Ha.  It worked.

So one bug (screwing up the working files) led to another (infinite time).  That is v confusing to a punter like me.

Nevertheless I'm unstuck, so thank you for that.  I cannot say when the working-file screw up happened, but I have seen it happen before.  I guess you have an open ticket on it?  Or is it only darcs1?

Thanks

Simon

| -----Original Message-----
| From: Nicolas Pouillard [mailto:bugs@darcs.net]
| Sent: 08 September 2008 15:46
| To: cvs-ghc@haskell.org; dagit@codersbase.com; kowey@darcs.net; nicolas.pouillard@gmail.com;
| Simon Peyton-Jones
| Subject: [issue1065] Darcs taking infinite time to merge patches from Cabal
|
|
| Nicolas Pouillard <nicolas.pouillard@gmail.com> added the comment:
|
| I'm sorry to ask this, but are you sure to have an un-modified repository?
|
| Here is the checks:
|
| $ darcs whatsnew -ls
| (the purpose of -l is to be sure that no local file can conflict with some newly
| added ones)
|
| $ darcs send --dry-run <PULL-URL>
| (this to check that you don't have more patches than upstream)
|
| ----------
| nosy: +ertai
| priority:  -> bug
| status: unread -> chatting
|
| __________________________________
| Darcs bug tracker <bugs@darcs.net>
| <http://bugs.darcs.net/issue1065>
| __________________________________
msg5943 (view) Author: dagit Date: 2008-09-08.16:09:09
On Mon, Sep 8, 2008 at 7:57 AM, Simon Peyton-Jones
<simonpj@microsoft.com> wrote:
> [Sorry keyboard trouble made me send prematurely]
>
> | I'm sorry to ask this, but are you sure to have an un-modified repository?
>
> I am absolutely 100% certain that *I* made no changes.  But darcs must have!  Here is what 'darcs what' says:
>
> cd libraries/Cabal/
> bash-3.2$ darcs what -ls
>  ./Distribution/PackageDescription.hs -> ./Distribution/PackageDescription/Types.hs
>  ./Distribution/PackageDescription/Check.hs -> ./Distribution/PackageDescription/QA.hs
>  ./tests/UnitTest/Distribution/Simple/PreProcess/UnlitTest.hs -> ./tests/UnlitTest.hs
> A ./Distribution/PackageDescription.hs
> A ./Distribution/PackageDescription/Check.hs
> R ./Distribution/PackageDescription/QA.hs
> R ./Distribution/PackageDescription/Types.hs
> A ./tests/UnitTest/Distribution/Simple/PreProcess/UnlitTest.hs
> R ./tests/UnlitTest.hs
> a ./doc/Cabal.xml.~1~
> bash-3.2$
>
>
> OK. So I "darcs reverted" and am now trying to pull in this one repo......  Ha.  It worked.
>
> So one bug (screwing up the working files) led to another (infinite time).  That is v confusing to a punter like me.
>
> Nevertheless I'm unstuck, so thank you for that.  I cannot say when the working-file screw up happened, but I have seen it happen before.  I guess you have an open ticket on it?  Or is it only darcs1?

Interesting set of changes.  It has been my experience, but only
anecdotally, that file moves can be very slow to merge at times.  This
may be another example re-enforcing that idea.

Further investigation would be warranted if we have a volunteer.
msg5945 (view) Author: kowey Date: 2008-09-08.16:11:46
On Mon, Sep 08, 2008 at 09:08:59 -0700, Jason Dagit wrote:
> > OK. So I "darcs reverted" and am now trying to pull in this one
> > repo......  Ha.  It worked.
> >
> > So one bug (screwing up the working files) led to another (infinite
> > time).  That is v confusing to a punter like me.
> >
> > Nevertheless I'm unstuck, so thank you for that.  I cannot say when
> > the working-file screw up happened, but I have seen it happen
> > before.  I guess you have an open ticket on it?  Or is it only
> > darcs1?

I think that you (Simon) were bitten by http://bugs.darcs.net/issue494
which has since been resolved.

> Further investigation would be warranted if we have a volunteer.

Done! :-)
msg5947 (view) Author: claus.reinke Date: 2008-09-08.17:09:14
> | I'm sorry to ask this, but are you sure to have an un-modified repository?
>
> I am absolutely 100% certain that *I* made no changes.  But darcs must have!  Here is what 'darcs 
> what' says:
>
> cd libraries/Cabal/
> bash-3.2$ darcs what -ls
> ./Distribution/PackageDescription.hs -> ./Distribution/PackageDescription/Types.hs
> ./Distribution/PackageDescription/Check.hs -> ./Distribution/PackageDescription/QA.hs
> ./tests/UnitTest/Distribution/Simple/PreProcess/UnlitTest.hs -> ./tests/UnlitTest.hs
> A ./Distribution/PackageDescription.hs
> A ./Distribution/PackageDescription/Check.hs
> R ./Distribution/PackageDescription/QA.hs
> R ./Distribution/PackageDescription/Types.hs
> A ./tests/UnitTest/Distribution/Simple/PreProcess/UnlitTest.hs
> R ./tests/UnlitTest.hs
> a ./doc/Cabal.xml.~1~
> bash-3.2$

I notice that this bogus whatsnew report looks very similar to the bogus
pending attached to http://bugs.darcs.net/issue1034 . Afaik, this hasn't
been reproduced yet (well, not in a bug-tracking sense, though certainly
in a bug sense).

But note that the direction of moves is wrong (inverted):

Mon Feb 11 00:38:30 GMT Standard Time 2008  Duncan Coutts <duncan@haskell.org>
  * Unify sanity and other checks and separate IO checks
  And rename from QA so we no longer pretend to assure anything :-)
  We now distinguish different kinds of tests with a PackageCheck type so the
  caller gets to decide which kinds of checks are relevant to the context.
  This PackageCheck type should be extensible if we want to add more kinds or
  more info besides a brief human readable explanation.

     ./Distribution/PackageDescription/QA.hs -> ./Distribution/PackageDescription/Check.hs
    M ./Cabal.cabal -1 +1
    M ./Distribution/PackageDescription/Check.hs -186 +199
    M ./Distribution/Simple/Configure.hs -20 +14
    M ./Distribution/Simple/SrcDist.hs -14 +21

If the example can't be reproduced for debugging, perhaps this
reversing of moves can be explained from darcs sources?

Claus
msg5961 (view) Author: kowey Date: 2008-09-09.07:55:04
This still looks like issue494 to me, and I am resolving it as such.  

The symptoms:
To simplify, first patch adds f1; second patch moves
  f1 -> f2
and modifies f2

And whatsnew shows
  f2 -> f1 (inverse)
  A f2
  R f1

If only we could boil issue1034 down into something like this.
msg5962 (view) Author: claus.reinke Date: 2008-09-09.08:38:21
>This still looks like issue494 to me, and I am resolving it as such.  

I don't understand? Simon's report starts with 'More darcs2 woe',
darcs2 came out in 2008, issue494 claims to have been resolved
by a patch in August 2007. How can a patch from a year ago
solve an issue in a version of darcs that should already include
that patch in the first place?

Btw, it would be useful if 'resolved' messages would offer some
brief explanation of what went wrong, how it was fixed, and
which darcs version is going to have the fix, as opposed to 
'we happen to have a patch that fixes something that looks 
somewhat related to this'.

Also, David wasn't convinced that that patch was totally correct:

$ darcs changes -s -p 'optimize --reorder' | less
Wed Aug  8 01:52:51 GMT Daylight Time 2007  David Roundy <droundy@darcs.net>
  * fix bug that revealed itself in optimize --reorder on unstable repo.
  I'm sure this fix doesn't make things worse, but am not convinced that it
  is a totally correct fix.  "Sifting for pending" is a subtle business,
  and in many ways this patch just works around this complexity.  On the other
  hand, I can't see another way to deal with this.  :(

    M ./src/Darcs/Patch.lhs +2
    M ./src/Darcs/Patch/Commute.lhs -2 +16
    M ./src/Darcs/Repository/DarcsRepo.lhs -8 +10

Frustratingly, the patch message also doesn't say what went
wrong and what was fixed.

Claus
msg5963 (view) Author: kowey Date: 2008-09-09.08:46:42
On Tue, Sep 09, 2008 at 09:38:07 +0100, Claus Reinke wrote:
> I don't understand? Simon's report starts with 'More darcs2 woe',
> darcs2 came out in 2008, issue494 claims to have been resolved
> by a patch in August 2007. How can a patch from a year ago
> solve an issue in a version of darcs that should already include
> that patch in the first place?

Because Simon's working directory changes were from his darcs 1.0.9
days.  He says it's an old repository that he's pulling from.
msg5964 (view) Author: claus.reinke Date: 2008-09-09.09:40:38
On Tue, Sep 09, 2008 at 09:38:07 +0100, Claus Reinke wrote:
> I don't understand? Simon's report starts with 'More darcs2 woe',
> darcs2 came out in 2008, issue494 claims to have been resolved
> by a patch in August 2007. How can a patch from a year ago
> solve an issue in a version of darcs that should already include
> that patch in the first place?

|Because Simon's working directory changes were from his darcs 1.0.9 days. 

I must have missed that info.

|He says it's an old repository that he's pulling from.

He says it is an old repository that he's pulling into, hence
lots of patches to pull. But the list of patches doesn't include
the renaming that is reported the wrong way round in whatsnew,
so it might be that pending was screwed up while he was using
an earlier darcs version.

All ghc repos are old, though, and have been handled
by some version of darcs 1 at some point or other,
including the repos involved in issue1034. And since
darcs does not preserve information about screwups
(issue1010), and users don't ask whatsnew in repos
they don't work in, there is no telling whether the issues
are old or new.

Claus
msg5965 (view) Author: kowey Date: 2008-09-09.10:14:42
On Tue, Sep 09, 2008 at 10:40:23 +0100, Claus Reinke wrote:
> He says it is an old repository that he's pulling into, hence
> lots of patches to pull. But the list of patches doesn't include
> the renaming that is reported the wrong way round in whatsnew,
> so it might be that pending was screwed up while he was using
> an earlier darcs version.

Yes, that is precisely my poorly articulated guess.  What I should have
said when I first resolved this bug was:

We know from the bugtracker history that the pending was corrupted prior
to this pull.  I surmised from the age of the repository he was pulling
into that he had been working with an older darcs when it had happened,
and the striking similarity this change had with issue494 and other
similar repositories I saw in code.haskell.org led me to leap to to the
conclusion that this was yet another issue494 manifestation, and hence
an issue resolved.

> All ghc repos are old, though, and have been handled
> by some version of darcs 1 at some point or other,
> including the repos involved in issue1034. And since
> darcs does not preserve information about screwups
> (issue1010), and users don't ask whatsnew in repos
> they don't work in, there is no telling whether the issues
> are old or new.

Right. It would be nice if forensics in darcs was easier.
History
Date User Action Args
2008-09-08 14:33:22simonpjcreate
2008-09-08 14:41:27koweylinkissue1064 superseder
2008-09-08 14:46:06ertaisetpriority: bug
nosy: + ertai
status: unread -> unknown
messages: + msg5940
2008-09-08 14:48:27simonpjsetnosy: kowey, dagit, simonpj, cvs-ghc, ertai
messages: + msg5941
2008-09-08 14:57:39simonpjsetnosy: kowey, dagit, simonpj, cvs-ghc, ertai
messages: + msg5942
2008-09-08 16:09:11dagitsetnosy: kowey, dagit, simonpj, cvs-ghc, ertai
messages: + msg5943
2008-09-08 16:11:48koweysetstatus: unknown -> resolved
nosy: kowey, dagit, simonpj, cvs-ghc, ertai
messages: + msg5945
2008-09-08 17:09:19claus.reinkesetstatus: resolved -> unknown
nosy: + claus.reinke
messages: + msg5947
2008-09-09 07:55:08koweysetstatus: unknown -> resolved
nosy: kowey, dagit, simonpj, cvs-ghc, claus.reinke, ertai
topic: + ThePendingPatch
messages: + msg5961
title: Darcs taking infinite time to merge patches from Cabal -> Unexpected changes in working directory
2008-09-09 08:38:23claus.reinkesetstatus: resolved -> unknown
nosy: kowey, dagit, simonpj, cvs-ghc, claus.reinke, ertai
messages: + msg5962
2008-09-09 08:46:43koweysetnosy: kowey, dagit, simonpj, cvs-ghc, claus.reinke, ertai
messages: + msg5963
2008-09-09 09:40:41claus.reinkesetnosy: kowey, dagit, simonpj, cvs-ghc, claus.reinke, ertai
messages: + msg5964
2008-09-09 10:14:44koweysetstatus: unknown -> resolved
nosy: kowey, dagit, simonpj, cvs-ghc, claus.reinke, ertai
messages: + msg5965
2009-08-10 23:45:10adminsetnosy: + dmitry.kurochkin, simon, thorkilnaur, - dagit
2009-08-25 18:14:46adminsetnosy: + darcs-devel, - simon
2009-08-27 14:10:22adminsetnosy: kowey, darcs-devel, simonpj, cvs-ghc, thorkilnaur, claus.reinke, ertai, dmitry.kurochkin
2009-10-23 22:39:57adminsetnosy: + nicolas.pouillard, - ertai
2009-10-24 00:04:56adminsetnosy: + ertai, - nicolas.pouillard