Ticket #621: macro_parens.dpatch

File macro_parens.dpatch, 62.3 KB (added by AntoineLatter, 3 years ago)

fix against HEAD

Line 
1Mon Dec 28 21:33:58 CST 2009  Antoine Latter <aslatter@gmail.com>
2  * Add parenthesis to macros in cabal_macros.h
3  Now this like "#if !MIN_VERSION_base(4,2,0)" will work
4
5New patches:
6
7[Add parenthesis to macros in cabal_macros.h
8Antoine Latter <aslatter@gmail.com>**20091229023358
9 Ignore-this: 5c5e7244d10bcd82da2cbf4432b30a6d
10 Now this like "#if !MIN_VERSION_base(4,2,0)" will work
11] {
12hunk ./Distribution/Simple/Build/Macros.hs 43
13   "/* DO NOT EDIT: This file is automatically generated by Cabal */\n\n" :
14   [ concat
15     ["/* package ",display pkgid," */\n"
16-    ,"#define MIN_VERSION_",pkgname,"(major1,major2,minor) \\\n"
17+    ,"#define MIN_VERSION_",pkgname,"(major1,major2,minor) (\\\n"
18     ,"  (major1) <  ",major1," || \\\n"
19     ,"  (major1) == ",major1," && (major2) <  ",major2," || \\\n"
20hunk ./Distribution/Simple/Build/Macros.hs 46
21-    ,"  (major1) == ",major1," && (major2) == ",major2," && (minor) <= ",minor
22+    ,"  (major1) == ",major1," && (major2) == ",major2," && (minor) <= ",minor,")"
23     ,"\n\n"
24     ]
25   | (_, pkgid@(PackageIdentifier name version)) <- externalPackageDeps lbi
26}
27
28Context:
29
30[Make the datadir follow the $prefix on Windows
31Duncan Coutts <duncan@haskell.org>**20091228165056
32 Ignore-this: ce33a328dbf2d1e419cf6e5047bff091
33 This is slightly experimental, we'll see how it goes. See ticket #466.
34]
35[Simplify getInstalledPackages and callers
36Duncan Coutts <duncan@haskell.org>**20091223234857
37 Ignore-this: 7927e992e0b040347dc24530219eb8eb
38 No longer returns Maybe, we can find installed packages for all
39 the compilers we support (and this feature is a requirement for
40 support for new compilers).
41 This is an API change so cannot merge to Cabal-1.8.x branch.
42]
43[Implement support for hugs and nhc98 package databases
44Duncan Coutts <duncan@haskell.org>**20091223233557
45 Ignore-this: aa12e2a278e89544ead82d7c8d3b325a
46 That is, work out which packages are installed for hugs and nhc98.
47 In both cases there is special support for the core packages.
48 In future both should use the standard method when they supply
49 proper installed package info files for the bundled libraries.
50]
51[Find the version of hugs
52Duncan Coutts <duncan@haskell.org>**20091222175415
53 This is really hard and rather nasty.
54]
55[Convert XXX comments to TODO or FIXME as appropriate
56Duncan Coutts <duncan@haskell.org>**20091222160247]
57[Fixes for compiling Cabal with hugs
58Duncan Coutts <duncan@haskell.org>**20091223103916
59 Ignore-this: f49c719d33e3909996f391e80911c51c
60]
61[Make lack of language extensions an error not a warning
62Duncan Coutts <duncan@haskell.org>**20091216204505
63 Also improve the error message somewhat
64]
65[Specify DOCTYPE when generating userguide html
66Duncan Coutts <duncan@haskell.org>**20091216035321
67 Ignore-this: 9d3b09e3c593a8d5f39b691ef2ceb377
68 Useless docbook tools.
69]
70[Registering packages needs all the package dbs listed
71Duncan Coutts <duncan@haskell.org>**20091211133233
72 Ignore-this: 249cc7ae1452bfa8e970f0ba24d4ff5f
73 Important for the case of registering inplace when we're using a
74 specific package db, e.g. when doing isolated builds.
75]
76[Switch a few distribution checks to build warnings
77Duncan Coutts <duncan@haskell.org>**20091202143549
78 Ignore-this: bbadf449113d009b51837bc1dd3488af
79 In particular the one about -prof since this leads to borked packages.
80]
81[Make it so cabal passes the dylib-install-name when building dynamic libraries on Mac OS/X.
82Ian Lynagh <igloo@earth.li>**20091204144142
83 This is a rerecord of
84     Stephen Blackheath <oversensitive.pastors.stephen@blacksapphire.com>**20091001053101
85 to avoid conflicts.
86]
87[Take line endings into account in IOEncodingUTF8 mode
88Duncan Coutts <duncan@haskell.org>**20091202002553
89 Ignore-this: 59a60d9adaf90e94b69336bbb5619d2f
90 When collecting the output from programs.
91]
92[Install shared libraries as executable files
93Ian Lynagh <igloo@earth.li>**20091201145349
94 Fixes GHC trac #3682. Patch from juhpetersen.
95]
96[Fix warnings
97Ian Lynagh <igloo@earth.li>**20091129164643]
98[Tweak layout to work with alternative layout rule
99Ian Lynagh <igloo@earth.li>**20091129163614]
100[Bump version in HEAD branch to 1.9.0
101Duncan Coutts <duncan@haskell.org>**20091129161734
102 Ignore-this: bbbc9fbb9abdee3f51bdcf972554d93d
103 The 1.8.x branch remains at 1.8.0.1
104]
105[Update changelog for 1.8.x release
106Duncan Coutts <duncan@haskell.org>**20091129161613
107 Ignore-this: 43b797ce87ba439869c080e0a8e20eab
108]
109[Package registration files are always UTF8
110Duncan Coutts <duncan@haskell.org>**20091129153341
111 Ignore-this: 7863e05c5514d1fee5165fda3815b116
112 As is the output from ghc-pkg dump.
113]
114[Add support for text encoding when invoking a program
115Duncan Coutts <duncan@haskell.org>**20091129153110
116 Ignore-this: c839875b970d31200d98ead9c8730215
117 Can be either locale text or specifically UTF8.
118 Also tidy up the rawSystemStd* variants and pass
119 a text/binary mode flag for the input and output.
120]
121[Change where we add a trailing newline when showing InstalledPackageInfo
122Duncan Coutts <duncan@haskell.org>**20091128171755
123 Ignore-this: 5e91f3e0988cf60572eefc374735727f
124 Do it in the pretty-printing rather than just before writing the file.
125]
126[Update docs on a couple util functions
127Duncan Coutts <duncan@haskell.org>**20091128171114
128 Ignore-this: f8df6d6f06dcc2f173180fa063aba091
129]
130[Update docs for class Package
131Duncan Coutts <duncan@haskell.org>**20091128170909
132 Ignore-this: 2b36ab0d8c422465d489ca2dc7010204
133]
134[Be less verbose when checking foreign deps
135Duncan Coutts <duncan@haskell.org>**20091128170810
136 Ignore-this: 576c714db6ac0dad7220f9824552c30c
137]
138[Add backwards compat version of findProgramOnPath
139Duncan Coutts <duncan@haskell.org>**20091128152444
140 Ignore-this: be475bbcbb539d2f2f834a2f0ca235f9
141 Break a couple fewer package's Setup.hs files
142]
143[Experimentally, change order of user-supplied program args
144Duncan Coutts <duncan@haskell.org>**20091120135619
145 Ignore-this: f9b8b4ecc68ee8b2294768c95a2ef774
146 Put them last rather than first.
147]
148[Fix building with base 3
149Duncan Coutts <duncan@haskell.org>**20091117141958
150 Ignore-this: 5ee71207064f5298bb40bafbf537d684
151]
152[Canonicalise the package deps returned by finalizePackageDescription
153Duncan Coutts <duncan@haskell.org>**20091109193556
154 Ignore-this: eb489503c4a9e27dd8d427cf707461f9
155 The guarantee is supposed to be that each package name appears at most
156 once with all the constraints for that dependency. The cabal-install
157 planner relies on this property.
158]
159[Improve the error message for missing sh.exe on Windows
160Duncan Coutts <duncan@haskell.org>**20091109182624
161 Ignore-this: 5801ce5598387ad238e61a075285ddf0
162 When ettempting to run ./configure scripts. Fixes ticket #403.
163]
164[Deprecated PatternSignatures in favor of ScopedTypeVariables
165Niklas Broberg <niklas.broberg@gmail.com>**20090603121321
166 Ignore-this: cc1cb044e3db25cb53e1830da34a317b
167]
168[JHC support requires jhc >= 0.7.2
169Duncan Coutts <duncan@haskell.org>**20091109113232
170 Ignore-this: 97e456357263977187c2768c957b8be7
171]
172[Remove some commented out code
173Duncan Coutts <duncan@haskell.org>**20091106133047
174 Ignore-this: f4a122d90207de861acc5af603cf55ea
175]
176[JHC.getInstalledPackages: remove check for --user flag, since JHC-0.7.2 supports local packages
177haskell@henning-thielemann.de**20091029103515]
178[JHC.buildLib: make this working for JHC-0.7.2
179haskell@henning-thielemann.de**20091028223004]
180[JHC.getInstalledPackages: adapt to package lists emitted by jhc-0.7.2
181haskell@henning-thielemann.de**20091028211802]
182[Bump minor version
183Duncan Coutts <duncan@haskell.org>**20091104180106
184 Ignore-this: 6ccbdc1bfa80f66cf74584ff66018582
185 A few changes since version 1.8.0 that was released with ghc-6.12rc1
186]
187[Tweak the assertion on overall package deps
188Duncan Coutts <duncan@haskell.org>**20091104175912
189 Ignore-this: abe2735469828829219938ee4275ebda
190]
191[Exclude non-buildable components when constructing the overall package deps
192Duncan Coutts <duncan@haskell.org>**20091104130435
193 Ignore-this: 60a11926991ce894da07f3e4c54ed257
194]
195[Pass profiling flag to ghc when compiling C files.
196Bertram Felgenhauer <int-e@gmx.de>**20091103165558
197 Ignore-this: 422eaeca8c7246170931adecc8556f15
198 The main effect of this change is that the PROFILING macro gets defined
199 when compiling C files and profiling is enabled. This is useful for code
200 that inspects closures.
201 
202 Caveat:
203   The change relies on the fact that Cabal does not track dependencies
204   of C files but recompiles them every time. If dependency tracking is
205   added, we'll need different extensions for profiling and non-profiling
206   object files.
207]
208[Build with ghc-6.6
209Duncan Coutts <duncan@haskell.org>**20091028161849
210 Ignore-this: 5042dc4f628b68d9d9e40d33837e9818
211]
212[Fix haddock markup
213Duncan Coutts <duncan@haskell.org>**20091021124111
214 Ignore-this: 7a301d4ede384f2256b02dbf179c0d9b
215]
216[Only pass -B... to gcc for GHC < 6.11
217Ian Lynagh <igloo@earth.li>**20091012144707
218 It is no longer needed in 6.12.
219]
220[Use -Wl,-R, for the gcc rpath flag.
221Duncan Coutts <duncan@haskell.org>**20091006211326
222 Ignore-this: 2323285313bad2ec91e4e27a0ae6177
223 Apparently it was only gcc on Solaris that groks -R directly,
224 so we have to use -Wl to pass it through to ld. Both GNU and
225 Solaris ld grok -R, only GNU ld accepts -rpath.
226]
227[Don't complain if there is no ghc rts package registered
228Duncan Coutts <duncan@haskell.org>**20091006172618
229 Ignore-this: 8634380cb75891a13988123bbbfd372b
230]
231[I was wrong, the test was correct before.
232Duncan Coutts <duncan@haskell.org>**20091006172046
233 Ignore-this: e1967271893b0d745d25a9ee09b624cb
234 
235 rolling back:
236 
237 Mon Oct  5 17:32:02 BST 2009  Stephen Blackheath <grossly.sensitive.stephen@blacksapphire.com>
238   * Fix test case InternalLibrary4 on account of a change in Cabal's behaviour.
239 
240     M ./tests/PackageTests/BuildDeps/InternalLibrary4/Check.hs -5 +4
241]
242[Unbreak configure for packages that depend on different versions of themselves
243Duncan Coutts <duncan@haskell.org>**20091006171845
244 Ignore-this: bce724e750b48ffa7e669c6573b49a8d
245]
246[Bump version number to 1.8.0
247Ian Lynagh <igloo@earth.li>**20091006160120]
248[Loosen the invariant, it was too strict
249Simon Marlow <marlowsd@gmail.com>**20091006133756
250 Ignore-this: 6087cfc11c19d4bac2fddcf007e9bb7c
251 The packages do not need to be in the same order when sorted by
252 package name as when sorted by InstalledPackageId.
253]
254[Fix test case InternalLibrary4 on account of a change in Cabal's behaviour.
255Stephen Blackheath <grossly.sensitive.stephen@blacksapphire.com>**20091005163202
256 Ignore-this: abc7f45e5fe6eb8e28dee5bfe406b16c
257]
258[Keep asserts for testing pre-releases
259Duncan Coutts <duncan@haskell.org>**20091005161425
260 Ignore-this: ca9406c17afcba272383eb3f66305a
261]
262[Fix configuring for packages with internal lib deps.
263Duncan Coutts <duncan@haskell.org>**20091005161235
264 Ignore-this: 31d508508230864d43e3df033dd687d1
265 Was using the wrong set of packages when doing the finalise.
266]
267[Bump minor version
268Duncan Coutts <duncan@haskell.org>**20091005114150
269 Ignore-this: 85fe7d55bac00035cd92c4ffc3f71c2
270]
271[Stop converting between installed package id and source package id
272Duncan Coutts <duncan@haskell.org>**20091005111806
273 Ignore-this: ed5b14ec4010ab1b8d5cde0ac5ac83e5
274 In the LocalBuildInfo, for each component, for the list of component
275 dependencies, keep both the InstalledPackageId and the PackageId.
276 That way we don't need to keep converting the InstalledPackageId
277 to the PackageId, via the package index (which is just horrible).
278]
279[Reduce the insanity in Configure
280Duncan Coutts <duncan@haskell.org>**20091005110957
281 Ignore-this: 93fa0d351701e6317afb46df94e64777
282 It was making so many different kinds of package index and converting
283 back and forth between package id and installed package id that it
284 made my brain hurt. Thou shalt not convert blithly between package Id
285 and installed package Id for thou know not what thy doest.
286]
287[Get and merge ghc's package dbs more sensibly
288Duncan Coutts <duncan@haskell.org>**20091005110714
289 Ignore-this: fc4b3c983dc7aa0ebc362e990c6a8a2b
290 Use the merge rather than just making a big list.
291]
292[Rewrite the PackageIndex again
293Duncan Coutts <duncan@haskell.org>**20091005110330
294 Ignore-this: ea36efcd3ee2bb5dae40de998b6b4de6
295 It's a unified index again, rather than one for looking up by an
296 InstalledPackageId and one for the source PackageId. The new one
297 lets you look up by either. It also maintains the order of
298 preference of different installed packages that share the same
299 source PackageId. In configure we just pick the first preference.
300]
301[Don't use -#include flag with ghc-6.12
302Duncan Coutts <duncan@haskell.org>**20091004154334
303 Ignore-this: b520998e5b5213155de0cba1680e1338
304]
305[Fix sdist for packages using .lhs-boot files
306Duncan Coutts <duncan@haskell.org>**20091002145221
307 Ignore-this: eaed8d1170bc81b9baa3825f8b662adc
308]
309[Fix deadlocks when calling waitForProcess; GHC trac #3542
310Ian Lynagh <igloo@earth.li>**20090928174553
311 We now wait on MVars indicating that stdout and stderr have been
312 closed before making the waitForProcess call.
313]
314[Update dependencies
315Ian Lynagh <igloo@earth.li>**20090920152411]
316[Simplify the use of simplifyVersionRange
317Duncan Coutts <duncan@haskell.org>**20090920153433
318 Ignore-this: fd41587284e064b185cd1db423ddf493
319 Use the simplifyDependency wrapper
320]
321[Fix Integer defaulting
322Duncan Coutts <duncan@haskell.org>**20090920153249
323 Ignore-this: a747789b708b34cf3589a4c5a9fdb9cd
324]
325[Don't simplify empty/inconsistent version ranges
326Duncan Coutts <duncan@haskell.org>**20090920151647
327 Ignore-this: aeddcb5625dd29963036c07be5a9c2da
328 They all get squashed to ">1 && <1" which while canonical is not helpful.
329]
330[Fix pretty printing of version ranges to use parens in the right places
331Duncan Coutts <duncan@haskell.org>**20090917042612
332 Ignore-this: 198737aa806fa92774494f6e33344a84
333]
334[Fix the depth calculation for the version range expression check
335Duncan Coutts <duncan@haskell.org>**20090917032748
336 Ignore-this: da1f0fefd17c1269f39e93e4623dc274
337 Previously it was complaining about expressions like
338  >= 2 && < 3
339 because internally >= is represented in terms of >, == and ||.
340 The fix is to use new fold that gives a view with the extra
341 syntactic sugar so that <= and <= can be counted as one.
342]
343[Modify foldVersionRange and add foldVersionRange'
344Duncan Coutts <duncan@haskell.org>**20090917032713
345 Ignore-this: cdb7ff28869dd8637cbc7d1a02620c5b
346 Now foldVersionRange gives a view with no syntactic sugar
347 while foldVersionRange' gives a view with the syntactic sugar.
348]
349[Fix the version-range parser to allow arbitrary expressions over constraints.
350Malcolm.Wallace@cs.york.ac.uk**20090911111643
351 Previously, only a single conjunction (&&) or disjunction (||) was
352 parseable, despite an internal representation that permits arbitrary
353 combinations.  Now, any sequence of (&&) and (||) combining forms is
354 parsed.  (&&) binds more tightly than (||).
355]
356[Use -package-id rather than -package with GHC 6.11+
357Simon Marlow <marlowsd@gmail.com>**20090906112416
358 Ignore-this: a9cb1e8684411ea3fa04e0d54826f76b
359]
360[Install dyn way hi files
361Duncan Coutts <duncan@haskell.org>**20090908142853
362 Ignore-this: 9de867381e500fda321a29e137e71414
363]
364[Use -R flags for hsc2hs wherever we use -L flags on ELF platforms.
365Duncan Coutts <duncan@haskell.org>**20090828233704
366 Ignore-this: 357aa0d1865a1fe6bf37fb6f41e2c93a
367 This fixes use of hsc2hs in cases where things like libgmp
368 is not on the system's dynamic linker path. It's ok to use
369 rpath in the case of hsc2hs because the linked programs are
370 run immediately and never installed.
371]
372[Add the ABI hash to the InstalledPackageId for inplace registrations too
373Simon Marlow <marlowsd@gmail.com>**20090826155157
374 Ignore-this: f10a1e90492a356a8ed8ed78fd056176
375 Previously, we just added a -inplace suffix, but this will cause
376 problems when developing multiple packages inplace, and then
377 installing them.
378 
379 Also, there was a round of refactoring: registerPackage now takes the
380 InstalledPackageId as an argument, and generateRegistrationInfo is
381 exposed for constructing it.  This means that callers of
382 registerPackage get to munge the InstalledPackageInfo before it is
383 registered.
384]
385[Bump minor version to 1.7.4
386Duncan Coutts <duncan@haskell.org>**20090824010433
387 Ignore-this: 360111493090f2cf86a65dfa2bd41da0
388 due to recent API changes
389]
390[Change finalizePackageDescription to take dep test function
391Duncan Coutts <duncan@haskell.org>**20090822234256
392 Ignore-this: 573c4d60e9c40f8814371a6c3a0b8c9
393 Ths is instead of taking a set of installed packages. This insulates
394 us from the representation of the installed package set which is good
395 since we now have several representations. It also opens the door to
396 generalising the kinds of constraints we can handle.
397]
398[Add a HACKING file
399Duncan Coutts <duncan@haskell.org>**20090822151636
400 Ignore-this: 222a83edbe3bf27574bfe51df7f109f0
401 Seems people do not know that the source guide exists.
402]
403[Add a bunch of TODOs and minor doc changes
404Duncan Coutts <duncan@haskell.org>**20090822134721
405 Most TODOs related to the new InstalledPackageId stuff.
406]
407[Refactor and simplify the fixup in "hc-pkg dump"
408Duncan Coutts <duncan@haskell.org>**20090822134408
409 We have to set the installedPackageId if it's missing.
410 There's no need for this to depend on the version of ghc which
411 is nice since this module is not supposed to be ghc specific.
412]
413[Rename the InstalledPackageInfo field package to sourcePackageId
414Duncan Coutts <duncan@haskell.org>**20090822134111
415 The old one was always too generic and it now contrasts
416 better with the new installedPackageId field.
417]
418[Add a unuque identifier for installed packages (part 9 of 9)
419Simon Marlow <marlowsd@gmail.com>**20090806132217
420 Ignore-this: 942731e2e26cfad6c53e728b911f1912
421 
422 When registering, choose the InstalledPackageId.
423 
424  - When registering inplace, use "foo-1.0-inplace"
425 
426  - If this isn't GHC, just use "foo-1.0-installed"
427 
428  - When installing a package with GHC, call
429    Distribution.Simple.GHC.libAbiHash to get the hash, and
430    use "foo-1.0-<hash>".
431]
432[Add a unuque identifier for installed packages (part 7 of 9)
433Simon Marlow <marlowsd@gmail.com>**20090806131728
434 Ignore-this: cf0e7da3e1e8e2b39336649c479c0938
435 
436 Follow changes in Distribution.Simple.LocalBuildInfo (installedPkgs is
437 now an InstalledPackageIndex).
438]
439[Add a unuque identifier for installed packages (part 8 of 9)
440Simon Marlow <marlowsd@gmail.com>**20090806131700
441 Ignore-this: 7cc5db4eb24ced8f3e8770fb8c19650f
442 
443 Distribution.Simple.Configure: follow changes to PackageIndex and
444 INstalledPackageInfo.
445]
446[Add a unuque identifier for installed packages (part 6 of 9)
447Simon Marlow <marlowsd@gmail.com>**20090806132002
448 Ignore-this: 80e560a4b659edd2ec9345aa57af862a
449 
450 Add libAbiHash, which extracts a String representing a hash of
451 the ABI of a built library.  It can fail if the library has not
452 yet been built.
453]
454[Add a unuque identifier for installed packages (part 5 of 9)
455Simon Marlow <marlowsd@gmail.com>**20090806131748
456 Ignore-this: 9e242223ca16314148bf92616c19838b
457 
458 Follow changes to Distribution.Simple.LocalBuildInfo.componentPackageDeps.
459]
460[Add a unuque identifier for installed packages (part 4 of 9)
461Simon Marlow <marlowsd@gmail.com>**20090806131829
462 Ignore-this: cd1f965c30d3dbd26dd184b3fd126163
463 
464 Distribution.Simple.LocalBuildInfo:
465 
466   - the LocalBuildInfo record contains an index of the installed
467     packages; this has changed from PackageIndex InstalledPackageInfo
468     to InstalledPackageIndex.
469 
470   - ComponentLocalBuildInfo stores the "external package dependencies"
471     of the component, which was
472       componentPackageDeps :: [PackageId]
473     and is now
474       componentInstalledPackageDeps :: [InstalledPackageId]
475 
476   - we now export
477       componentPackageDeps :: LocalBuildInfo -> [PackageId]
478     (since to get the PackageId for an InstalledPackageId, you need
479     to look it up in the InstalledPackageIndex, which is in the
480     LocalBuildInfo)
481 
482   - similarly, previously
483       externalPackageDeps :: LocalBuildInfo -> [PackageId]
484     is now
485       externalPackageDeps :: LocalBuildInfo -> [InstalledPackageId]
486]
487[Add a unuque identifier for installed packages (part 3 of 9)
488Simon Marlow <marlowsd@gmail.com>**20090806131810
489 Ignore-this: 455a736ea5a3241aa6040f4c684ab0b3
490 
491 This part adds the InstalledPackageIndex type to
492 Distribution.Simple.PackageIndex.  Now that packages have a unique
493 identifier within a package database, it makes sense to use this as
494 the key for looking up installed packages, so InstalledPackageIndex is
495 a mapping from InstalledPackageId to InstalledPackageInfo.
496 
497 Distribution.Simple.PackageIndex still supports other kinds of package
498 mappings: PackageIndex is a mapping from PackageName.
499 
500 All the functions in the section "Special Queries" now work on
501 InstalledPackageIndex rather than PackageFixedDeps pkg => PackageIndex
502 pkg:
503 
504   topologicalOrder,
505   reverseTopologicalOrder,
506   dependencyInconsistencies,
507   dependencyCycles,
508   brokenPackages,
509   dependencyClosure,
510   reverseDependencyClosure
511   dependencyGraph
512]
513[Add a unuque identifier for installed packages (part 2 of 9)
514Simon Marlow <marlowsd@gmail.com>**20090806131906
515 Ignore-this: f3fba4465373bd4b7397384f08ca189e
516 
517 Note: this patch doesn't build on its own, you also need the rest of
518 the patch series.
519 
520 Compatibility with older GHCs.  When reading a package database
521 created by an older version of GHC without installedPackageIds, we
522 have to fake an InstalledPackageId for the internal
523 InstalledPackageInfo.
524 
525 So, when reading in an InstalledPackageInfo from an older GHC, we set
526 the installedPackageId to be the textual representation of the
527 PackageIdentifier: i.e. <package>-<version>.  Now, previously the
528 depends field of InstalledPackageInfo was [PackageIdentifier], and is
529 now [InstalledPackageId], so we will read each PackageIdentifier as an
530 InstalledPackageId (a String).  The dependencies will still point to
531 the correct package, however, because we have chosen the
532 installedPackageId to be the textual representation of the
533 PackageIdentifier.
534]
535[Add a unuque identifier for installed packages (part 1 of 9)
536Simon Marlow <marlowsd@gmail.com>**20090806131928
537 Ignore-this: b774e5719e666baee504e1f52381cc8b
538   
539   NOTE: the patch has been split into 9 pieces for easy
540   reviewing, the individual pieces won't build on their own.
541   
542 Part 1 does the following:
543 
544 Distribution.Package:
545   - define the InstalledPackageId type as a newtype of String
546 
547 Distribution.InstalledPackageInfo:
548   - add an installedPackageId field to InstalledPackageInfo
549   - change the type of the depends field from [PackageIdentifier]
550     to [InstalledPackageId]
551 
552 
553 The idea behind this change is to add a way to uniquely identify
554 installed packages, letting us decouple the identity of an installed
555 package instance from its package name and version.  The benefits of
556 this are
557 
558   - We get to detect when a package is broken because its
559     dependencies have been recompiled, or because it is being
560     used with a different package than it was compiled against.
561 
562   - We have the possibility of having multiple instances of a
563     given <package>-<version> installed at the same time.  In the
564     future this might be used for "ways".  It might also be
565     useful during the process of upgrading/recompiling packages.
566]
567[Refactoring: fit into 80 columns
568Simon Marlow <marlowsd@gmail.com>**20090806115825
569 Ignore-this: e4e9bdea632814842121fcf7c7d6c3a
570]
571[Use a simpler method for the check on the base-upper-bound
572Duncan Coutts <duncan@haskell.org>**20090812133313
573 Ignore-this: 9234cc76670a135906c8b7d2e19e6199
574 The key point is that we do not complain for packages
575 that do not depend on base at all (like ghc-prim).
576]
577[Fix the base-upper-bound Cabal check error
578Ian Lynagh <igloo@earth.li>**20090811204455]
579[Fix "unused-do-bind" warnings properly
580Duncan Coutts <duncan@haskell.org>**20090727161125
581 Though I'm not at all sure I like the _ <- bind idiom.
582]
583[Undo incorrect fixes for "unused-do-bind" warnings.
584Duncan Coutts <duncan@haskell.org>**20090727160907
585 We capture (and discard) the program output because we do not
586 want it printed to the console. We do not currently have a
587 specific variant for redirecting the output to /dev/null so
588 we simply use the variant that captures the output.
589 
590 rolling back:
591 
592 Fri Jul 10 22:04:45 BST 2009  Ian Lynagh <igloo@earth.li>
593   * Don't ask for the output of running ld, as we ignore it anyway
594 
595     M ./Distribution/Simple/GHC.hs -2 +2
596     M ./Distribution/Simple/LHC.hs -2 +2
597 Fri Jul 10 22:08:02 BST 2009  Ian Lynagh <igloo@earth.li>
598   * Don't use the Stdout variant of rawSystemProgramConf to call gcc
599   We ignore the output anyway
600 
601     M ./Distribution/Simple/Configure.hs -2 +3
602]
603[Pass GHC >= 6.11 the -fbuilding-cabal-package flag
604Ian Lynagh <igloo@earth.li>**20090726181405]
605[Follow the change in GHC's split-objs directory naming
606Ian Lynagh <igloo@earth.li>**20090723234430]
607[Fix a "warn-unused-do-bind" warning
608Ian Lynagh <igloo@earth.li>**20090710212059]
609[Don't use the Stdout variant of rawSystemProgramConf to call gcc
610Ian Lynagh <igloo@earth.li>**20090710210802
611 We ignore the output anyway
612]
613[Don't ask for the output of running ld, as we ignore it anyway
614Ian Lynagh <igloo@earth.li>**20090710210445]
615[Fix some "warn-unused-do-bind" warnings where we want to ignore the value
616Ian Lynagh <igloo@earth.li>**20090710210407]
617[Fix unused import warnings
618Ian Lynagh <igloo@earth.li>**20090707133559]
619[Remove unused imports
620Ian Lynagh <igloo@earth.li>**20090707115824]
621[Bump version to 1.7.3 due to recent API changes
622Duncan Coutts <duncan@haskell.org>**20090707095901]
623[Simplify and generalise installDirsTemplateEnv
624Duncan Coutts <duncan@haskell.org>**20090705205411
625 Take a set of templates rather than file paths.
626]
627[Rename and export substituteInstallDirTemplates
628Duncan Coutts <duncan@haskell.org>**20090705205257
629 This does the mutual substituition of the installation
630 directory templates into each other.
631]
632[Follow changes in haddock
633Ian Lynagh <igloo@earth.li>**20090705193610
634 The --verbose flag is now called --verbosity
635]
636[TAG 2009-06-25
637Ian Lynagh <igloo@earth.li>**20090625160144]
638[Undo a simplification in the type of absoluteInstallDirs
639Duncan Coutts <duncan@haskell.org>**20090705154155
640 Existing Setup scripts use it so we can't change it. Fixes #563.
641]
642[Help Cabal find gcc/ld on Windows
643Simon Marlow <marlowsd@gmail.com>**20090626140250
644 Ignore-this: bad21fe3047bc6e23165160c88dd53d9
645 the layout changed in the new GHC build system
646]
647[clean up createTempDirectory, using System.Posix or System.Directory
648Simon Marlow <marlowsd@gmail.com>**20090625105648
649 Ignore-this: 732aac57116c308198a8aaa2f67ec475
650 rather than low-level System.Posix.Internals operations which are
651 about to go away.
652]
653[follow change in System.Posix.Internals.c_open
654Simon Marlow <marlowsd@gmail.com>**20090622133654
655 Ignore-this: d2c775473d6dfb1dcca40f51834a2d26
656]
657[update to work with the new GHC IO library internals (fdToHandle)
658Simon Marlow <marlowsd@gmail.com>**20090612095346
659 Ignore-this: 2697bd2b64b3231ab4d9bb13490c124f
660]
661[Describe the autoconfUserHooks option more accurately in the user guide
662Duncan Coutts <duncan@haskell.org>**20090614191400]
663[Fix && entity refs in doc xml
664Duncan Coutts <duncan@haskell.org>**20090614191230]
665[documentation update: add a description of the syntax for 'compiler' fields in .cabal files
666Brent Yorgey <byorgey@cis.upenn.edu>**20090610194550]
667[use Haskell 98 import syntax
668Ross Paterson <ross@soi.city.ac.uk>**20090610174619
669 Ignore-this: 26774087968e247b41d69350c015bc30
670]
671[fix typo of exitcode
672Ross Paterson <ross@soi.city.ac.uk>**20090610174541
673 Ignore-this: e21da0e6178e69694011e5286b382d72
674]
675[Put a "%expect 0" directive in the .y file of a test
676Ian Lynagh <igloo@earth.li>**20090608204035]
677[Rearrange the PathTemplateEnv stuff and export more pieces
678Duncan Coutts <duncan@haskell.org>**20090607224721]
679[Rewrite the Register module
680Duncan Coutts <duncan@haskell.org>**20090607182821
681 It was getting increasingly convoluted and incomprehensible.
682 Now uses the Program.HcPkg and Program.Scripts modules.
683]
684[Simplify OSX ranlib madness
685Duncan Coutts <duncan@haskell.org>**20090607180717]
686[Use new Program.Ld and Program.Ar in GHC module
687Duncan Coutts <duncan@haskell.org>**20090607180534]
688[Use the new HcPkg module in the GHC getInstalledPackages function
689Duncan Coutts <duncan@haskell.org>**20090607180442]
690[Add specialised modules for handling ar and ld
691Duncan Coutts <duncan@haskell.org>**20090607180257]
692[Add improved xargs style function
693Duncan Coutts <duncan@haskell.org>**20090607180214
694 More flexible and based on the ProgramInvocation stuff
695]
696[Pass verbosity to hc-pkg
697Duncan Coutts <duncan@haskell.org>**20090607180146]
698[Use a better api for registering libs in the internal package db
699Duncan Coutts <duncan@haskell.org>**20090607125436]
700[Add new Program modules
701Duncan Coutts <duncan@haskell.org>**20090607121301]
702[New module for handling calling the hc-pkg program
703Duncan Coutts <duncan@haskell.org>**20090607120650]
704[New module to write program invocations as shell scripts or batch files
705Duncan Coutts <duncan@haskell.org>**20090607120520
706 For tasks like registering where we call hc-pkg, this allows us to
707 produce a single program invocation and then either run it directly
708 or write it out as a script.
709]
710[Re-export the program invocation stuff from the Program module
711Duncan Coutts <duncan@haskell.org>**20090607120404]
712[Fix rawSystemStdin util function
713Duncan Coutts <duncan@haskell.org>**20090607120324
714 Close the input after pushing it. Return any error message.
715]
716[Split the Program module up a bit
717Duncan Coutts <duncan@haskell.org>**20090607101246
718 Add an explicit intermediate ProgramInvocation data type.
719]
720[Do not pass Maybe LocalBuildInfo to clean hook
721Duncan Coutts <duncan@haskell.org>**20090604203830
722 It is a bad idea for clean to do anything different depending
723 on whether the package was configured already or not. The
724 actual cleaning code did not use the LocalBuildInfo so this
725 only changes in the UserHooks interface. No Setup.hs scripts
726 actually make of this parameter for the clean hook.
727 Part of ticket #133.
728]
729[Simplify checkPackageProblems function
730Duncan Coutts <duncan@haskell.org>**20090604203709
731 Since we now always have a GenericPackageDescription
732]
733[Change UserHooks.confHook to use simply GenericPackageDescription
734Duncan Coutts <duncan@haskell.org>**20090604203400
735 Rather than Either GenericPackageDescription PackageDescription
736 In principle this is an interface change that could break Setup.hs
737 scripts but in practise the few scripts that use confHook just pass
738 the arguments through and so are not sensitve to the type change.
739]
740[Change UserHooks.readDesc to use GenericPackageDescription
741Duncan Coutts <duncan@haskell.org>**20090604202837
742 Also changes Simple.defaultMainNoRead to use GenericPackageDescription.
743 This is an API change that in principle could break Setup.hs scripts
744 but in practise there are no Setup.hs scripts that use either.
745]
746[Pass a verbosity flag to ghc-pkg
747Ian Lynagh <igloo@earth.li>**20090605143244]
748[When build calls register, pass the verbosity level too
749Ian Lynagh <igloo@earth.li>**20090605142718]
750[Fix unlit
751Ian Lynagh <igloo@earth.li>**20090605130801
752 The arguments to isPrefixOf were the wrong way round. We want to see if
753 the line starts "\\begin{code}", not if the line is a prefix of that string.
754]
755[Tweak a comment so that it doesn't confuse haddock
756Ian Lynagh <igloo@earth.li>**20090605130728]
757[Tweak new build system
758Ian Lynagh <igloo@earth.li>**20090404204426]
759[GHC new build system fixes
760Ian Lynagh <igloo@earth.li>**20090329153151]
761[Add ghc.mk for the new GHC build system
762Ian Lynagh <igloo@earth.li>**20090324211819]
763[Bump version due to recent changes
764Duncan Coutts <duncan@haskell.org>**20090603101833]
765[Ticket #89 final: Regression tests for new dependency behaviour.
766rubbernecking.trumpet.stephen@blacksapphire.com**20090601215651
767 Ignore-this: 52e04d50f1d045a14706096413c19a85
768]
769[Make message "refers to a library which is defined within the same.." more grammatical
770rubbernecking.trumpet.stephen@blacksapphire.com**20090601214918
771 Ignore-this: 3887c33ff39105f3483ca97a7f05f3eb
772]
773[Remove a couple unused imports.
774Duncan Coutts <duncan@haskell.org>**20090601192932]
775[Ban upwardly open version ranges in dependencies on base
776Duncan Coutts <duncan@haskell.org>**20090601191629
777 Fixes ticket #435. This is an approximation. It will ban most
778 but not all cases where a package specifies no upper bound.
779 There should be no false positives however, that is cases that
780 really are always bounded above that the check flags up.
781 Doing a fully precise test needs a little more work.
782]
783[Split requireProgram into two different functions
784Duncan Coutts <duncan@haskell.org>**20090601174846
785 Now requireProgram doesn't take a version range and does not check
786 the program version (indeed it doesn't need to have one). The new
787 function requireProgramVersion takes a required program version
788 range and returns the program version. Also update callers.
789 Also fixes the check that GHC has a version number.
790]
791[Ignore a byte order mark (BOM) when reading UTF8 text files
792Duncan Coutts <duncan@haskell.org>**20090531225008
793 Yes of course UTF8 text files should not use the BOM but
794 notepad.exe does anyway. Fixes ticket #533.
795]
796[executables can now depend on a library in the same package.
797Duncan Coutts <duncan@haskell.org>**20090531220720
798 Fixes ticket #89. The library gets registered into an inplace
799 package db file which is used when building the executables.
800 Based partly on an original patch by Stephen Blackheath.
801]
802[Always build ar files with indexes
803Duncan Coutts <duncan@haskell.org>**20090531193412
804 Since we have to be able to use these inplace we always need
805 the index it's not enough to just make the index on installing.
806 This particularly affects OSX.
807]
808[Make rendering the ghc package db stack more lenient
809Duncan Coutts <duncan@haskell.org>**20090531192545
810 Allow the user package db to appear after a specific one.
811 No reason not to and makes some things in cabal-install more convenient.
812]
813[Simplify version ranges in configure messages and errors
814Duncan Coutts <duncan@haskell.org>**20090531192426
815 Part of #369
816]
817[Add and export simplifyDependency
818Duncan Coutts <duncan@haskell.org>**20090531192332
819 Just uses simplifyVersionRange on the version range in the dep
820]
821[Use the PackageDbStack in the local build info and compiler modules
822Duncan Coutts <duncan@haskell.org>**20090531153124
823 This lets us pass a whole stack of package databases to the compiler.
824 This is more flexible than passing just one and working out what
825 other dbs that implies. This also lets us us more than one specific
826 package db, which we need for the inplace package db use case.
827]
828[Simplify version ranges before printing in configure error message
829Duncan Coutts <duncan@haskell.org>**20090530213922
830 Part of ticket #369. Now instead of:
831   setup: At least the following dependencies are missing:
832   base <3 && <4 && <3 && <3 && <4
833 we get:
834   setup: At least the following dependencies are missing:
835   base <3
836]
837[Bump version to 1.7.1 due to recent changes
838Duncan Coutts <duncan@haskell.org>**20090530211320]
839[Minor renaming
840Duncan Coutts <duncan@haskell.org>**20090530202312
841 Part of one of Stephen Blackheath's patches
842]
843[Improve an internal error message slightly
844Duncan Coutts <duncan@haskell.org>**20090530205540]
845[Detect intra-package build-depends
846Duncan Coutts <duncan@haskell.org>**20090530204447
847 Based on an original patch by Stephen Blackheath
848 With this change build-depends on a library within the same package
849 are detected. Such deps are not full handled yet so for the moment
850 they are explicitly banned, however this is another step towards
851 actually supporting such dependencies. In particular deps on
852 internal libs are resolved to the internal one in preference to any
853 existing external version of the same lib.
854]
855[Use accurate per-component package deps
856Duncan Coutts <duncan@haskell.org>**20090530202350
857 Based on an original patch by Stephen Blackheath
858 Previously each component got built using the union of all package
859 deps of all components in the entire package. Now we use exactly the
860 deps specified for that component. To prevent breaking old packages
861 that rely on the sloppy behaviour, package will only get the new
862 behaviour if they specify they need at least cabal-version: >= 1.7.1
863]
864[Add *LBI variants of withLib and withExe that give corresponding build info
865rubbernecking.trumpet.stephen@blacksapphire.com**20090528113232
866 Ignore-this: 6856385f1c210e33c352da4a0b6e876a
867]
868[Register XmlSyntax and RegularPatterns as known extensions in Language.Haskell.Extension
869Niklas Broberg <d00nibro@chalmers.se>**20090529102848
870 Ignore-this: 32aacd8aeef9402a1fdf3966a213db7d
871 
872 Concrete XML syntax is used in the Haskell Server Pages extension
873 language, and a description can be found in the paper "Haskell Server
874 Pages through Dynamic Loading" by Niklas Broberg, published in Haskell
875 Workshop '05.
876 
877 Regular expression pattern matching is described in the paper "Regular
878 Expression Patterns" by Niklas Broberg, Andreas Farre and Josef
879 Svenningsson, published in ICFP '04.
880]
881[Resolve merge conflict with dynlibPref patch
882Duncan Coutts <duncan@haskell.org>**20090528115249
883 The dynlibPref patch accidentally was only pushed to ghc's branch.
884]
885[Use dynlibdir = libdir for the moment
886Duncan Coutts <duncan@well-typed.com>**20090519134115
887 It will need more thought about how much control the user needs
888 and what the default shared libs management scheme should be.
889]
890[Use componentPackageDeps, remove packageDeps, add externalPackageDeps
891Duncan Coutts <duncan@haskell.org>**20090527225016
892 So now when building, we actually use per-component set of package deps.
893 There's no actual change in behaviour yet as we're still setting each of
894 the componentPackageDeps to the union of all the package deps.
895]
896[Pass ComponentLocalBuildInfo to the buildLib/Exe
897Duncan Coutts <duncan@haskell.org>**20090527210731
898 Not yet used
899]
900[Simplify writeInstalledConfig slightly
901Duncan Coutts <duncan@haskell.org>**20090527204755]
902[No need to drop dist/installed-pkg-config after every build
903Duncan Coutts <duncan@haskell.org>**20090527204500
904 We generate this file if necessary when registering.
905]
906[Make absoluteInstallDirs only take the package id
907Duncan Coutts <duncan@haskell.org>**20090527203112
908 It doesn't need the entire PackageDescription
909]
910[Rejig calls to per-compiler build functions
911Duncan Coutts <duncan@haskell.org>**20090527195146
912 So it's now a bit clearer what is going on in the generic build code
913 Also shift info calls up to generic code
914]
915[Split nhc and hugs's build action into buildLib and buildExe
916Duncan Coutts <duncan@haskell.org>**20090527194206]
917[Split JHC's build into buildLib and buildExe
918Duncan Coutts <duncan@haskell.org>**20090527192036]
919[Sync LHC module from GHC module
920Duncan Coutts <duncan@haskell.org>**20090527191615]
921[Give withLib and withExe sensible types
922Duncan Coutts <duncan@haskell.org>**20090527185634]
923[Fix types of libModules and exeModules
924Duncan Coutts <duncan@haskell.org>**20090527185108
925 Take a Library/Executable rather than a PackageDescription
926 Means we're more precise in using it, just passing the info we need.
927]
928[Split ghc's build action into buildLib and buildExe
929Duncan Coutts <duncan@haskell.org>**20090527183250]
930[Remove unused ghc-only executable wrapper feature
931Duncan Coutts <duncan@haskell.org>**20090527183245
932 Some kind of shell script wrapper feature might be useful,
933 but we should design it properly.
934]
935[Fixup .cabal file with the removed modules and files
936Duncan Coutts <duncan@haskell.org>**20090527182344]
937[Fix warnings about unused definitions and imports
938Duncan Coutts <duncan@haskell.org>**20090527175253]
939[Remove the makefile generation feature
940Duncan Coutts <duncan@haskell.org>**20090527175002
941 It was an ugly hack and ghc no longer uses it.
942]
943[Add new ComponentLocalBuildInfo
944Duncan Coutts <duncan@haskell.org>**20090527174418
945 We want to have each component have it's own dependencies,
946 rather than using the union of deps of the whole package.
947]
948[Ticket #89 part 2: Dependency-related test cases and a simple test harness
949rubbernecking.trumpet.stephen@blacksapphire.com**20090526133509
950 Ignore-this: 830dd56363c34d8edff65314cd8ccb2
951 The purpose of these tests is mostly to pin down some existing behaviour to
952 ensure it doesn't get broken by the ticket #89 changes.
953]
954[Ticket #89 part 1: add targetBuildDepends field to PackageDescription's target-specific BuildInfos
955rubbernecking.trumpet.stephen@blacksapphire.com**20090526133729
956 Ignore-this: 96572adfad12ef64a51dce2f7c5f738
957 This provides dependencies specifically for each library and executable target.
958 buildDepends is calculated as the union of the individual targetBuildDepends,
959 giving a result that's exactly equivalent to the old behaviour.
960]
961[LHC: register the external core files.
962Lemmih <lemmih@gmail.com>**20090521021511
963 Ignore-this: d4e484d7b8e541c3ec4cb35ba8aba4d0
964]
965[Update the support for LHC.
966Lemmih <lemmih@gmail.com>**20090515211659
967 Ignore-this: 2884d3eca0596a441e3b3c008e16fd6f
968]
969[Print a more helpful message when haddock's ghc version doesn't match
970Duncan Coutts <duncan@haskell.org>**20090422093240
971 Eg now says something like:
972 cabal: Haddock's internal GHC version must match the configured GHC version.
973 The GHC version is 6.8.2 but haddock is using GHC version 6.10.1
974]
975[use -D__HADDOCK__ only when preprocessing for haddock < 2
976Andrea Vezzosi <sanzhiyan@gmail.com>**20090302015137
977 Ignore-this: d186a5dbebe6d7fdc64e6414493c6271
978 haddock-2.x doesn't define any additional macros.
979]
980[Make die use an IOError that gets handled at the top level
981Duncan Coutts <duncan@haskell.org>**20090301195143
982 Rather than printing the error there and then and throwing an
983 exit exception. The top handler now catches IOErrors and
984 formats and prints them before throwing an exit exception.
985 Fixes ticket #512.
986]
987[rewrite of Distribution.Simple.Haddock
988Andrea Vezzosi <sanzhiyan@gmail.com>**20090219153738
989 Ignore-this: 5b465b2b0f5ee001caa0cb19355d6fce
990 In addition to (hopefully) making clear what's going on
991 we now do the additional preprocessing for all the versions of haddock
992 (but not for hscolour) and we run cpp before moving the files.
993]
994[Allow --with-ghc to be specified when running Cabal
995Ian Lynagh <igloo@earth.li>**20090225172249]
996[fix imports for non-GHC
997Ross Paterson <ross@soi.city.ac.uk>**20090221164939
998 Ignore-this: 12756e3863e312352d5f6c69bba63b92
999]
1000[Fix user guide docs about --disable-library-vanilla
1001Duncan Coutts <duncan@haskell.org>**20090219165539
1002 It is not default. Looks like it was a copy and paste error.
1003]
1004[Specify a temp output file for the header/lib checks
1005Duncan Coutts <duncan@haskell.org>**20090218233928
1006 Otherwise we litter the current dir with a.out and *.o files.
1007]
1008[Final changelog updates for 1.6.0.2
1009Duncan Coutts <duncan@haskell.org>**20090218222106]
1010[Use more cc options when checking for header files and libs
1011Duncan Coutts <duncan@haskell.org>**20090218110520
1012 Use -I. to simulate the search path that gets used when we tell ghc
1013 to -#include something. Also use the include dirs and cc options of
1014 dependent packages. These two changes fix about 3 packages each.
1015]
1016[Validate the docbook xml before processing.
1017Duncan Coutts <duncan@haskell.org>**20090213134136
1018 Apparently xsltproc does not validate against the dtd.
1019 This should stop errors creaping back in.
1020]
1021[Make documentation validate
1022Samuel Bronson <naesten@gmail.com>**20090212235057]
1023[Folly the directions for docbook-xsl
1024Samuel Bronson <naesten@gmail.com>**20090213022615
1025 As it says in http://docbook.sourceforge.net/release/xsl/current/README:
1026 
1027   - Use the base canonical URI in combination with one of the
1028     pathnames below. For example, for "chunked" HTML, output:
1029 
1030     http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl
1031 
1032]
1033[Fix compat functions for setting file permissions on windows
1034Duncan Coutts <duncan@haskell.org>**20090205224415
1035 Spotted by Dominic Steinitz
1036]
1037[Only print message about ignoring -threaded if its actually present
1038Duncan Coutts <duncan@haskell.org>**20090206174707]
1039[Don't build ghci lib if we're not making vanilla libs
1040Duncan Coutts <duncan@haskell.org>**20090206173914
1041 As the .o files will not exist.
1042]
1043[Correct docdir -> mandir in InstallDirs
1044Samuel Bronson <naesten@gmail.com>**20090203043338]
1045[Fix message suggesting the --executables flag
1046Samuel Bronson <naesten@gmail.com>**20090201010708]
1047[Remove #ifdefery for windows, renameFile now works properly
1048Duncan Coutts <duncan@haskell.org>**20090202004450
1049 It's even atomic on windows so we don't need the workaround.
1050]
1051[Make withTempDirectory create a new secure temp dir
1052Duncan Coutts <duncan@haskell.org>**20090201233318
1053 Rather than taking a specific dir to create.
1054 Update the one use of the function.
1055]
1056[Add createTempDirectory to Compat.TempFile module
1057Duncan Coutts <duncan@haskell.org>**20090201233213
1058 Also clean up imports
1059]
1060[Improve the error message for missing foreign libs and make it fatal
1061Duncan Coutts <duncan@haskell.org>**20090131184813
1062 The check should now be accurate enough that we can make it an
1063 error rather than just a warning.
1064]
1065[Use the cc, cpp and ld options when checking foreign headers and libs
1066Duncan Coutts <duncan@haskell.org>**20090131184016
1067 In partiular this is needed for packages that use ./configure
1068 scripts to write .buildinfo files since they typically do not
1069 split the cpp/cc/ldoptions into the more specific fields.
1070]
1071[Do the check for foreign libs after running configure
1072Duncan Coutts <duncan@haskell.org>**20090131182213
1073 This lets us pick up build info discovered by the ./configure script
1074]
1075[move imports outside ifdef GHC
1076Ross Paterson <ross@soi.city.ac.uk>**20090130153505]
1077[Document most of the new file utility functions
1078Duncan Coutts <duncan@haskell.org>**20090130151640]
1079[#262 iterative tests for foreign dependencies
1080Gleb Alexeyev <gleb.alexeev@gmail.com>**20090130120228
1081 Optimize for succesful case. First try all libs and includes in one command,
1082 proceed with further tests only if the first test fails. The same goes for libs
1083 and headers: look for an offending one only when overall test fails.
1084 
1085]
1086[Misc minor comment and help message changes
1087Duncan Coutts <duncan@haskell.org>**20090129233455]
1088[Deprecate smartCopySources and copyDirectoryRecursiveVerbose
1089Duncan Coutts <duncan@haskell.org>**20090129233234
1090 Also use simplified implementation in terms of recently added functions.
1091]
1092[Switch copyFileVerbose to use compat copyFile
1093Duncan Coutts <duncan@haskell.org>**20090129233125
1094 All remaining uses of it do not require copying permissions
1095]
1096[Let the setFileExecutable function work with hugs too
1097Duncan Coutts <duncan@haskell.org>**20090129232948]
1098[Switch hugs wrapper code to use setFileExecutable
1099Duncan Coutts <duncan@haskell.org>**20090129232542
1100 instead of get/setPermissions which don't really work properly.
1101]
1102[Switch last uses of copyFile to copyFileVerbose
1103Duncan Coutts <duncan@haskell.org>**20090129232429]
1104[Stop using smartCopySources or copyDirectoryRecursiveVerbose
1105Duncan Coutts <duncan@haskell.org>**20090129231656
1106 Instead if copyDirectoryRecursiveVerbose use installDirectoryContents
1107 and for smartCopySources use findModuleFiles and installExecutableFiles
1108 In both cases the point is so that we use functions for installing
1109 files rather than functions to copy files.
1110]
1111[Use installOrdinaryFile and installExecutableFile in various places
1112Duncan Coutts <duncan@haskell.org>**20090129231321
1113 instead of copyFileVerbose
1114]
1115[Make the Compat.CopyFile module with with old and new ghc
1116Duncan Coutts <duncan@haskell.org>**20090129225423]
1117[Add a bunch of utility functions for installing files
1118Duncan Coutts <duncan@haskell.org>**20090129180243
1119 We want to separate the functions that do ordinary file copies
1120 from the functions that install files because in the latter
1121 case we have to do funky things with file permissions.
1122]
1123[Use setFileExecutable instead of copyPermissions
1124Duncan Coutts <duncan@haskell.org>**20090129180130
1125 This lets us get rid of the Compat.Permissions module
1126]
1127[Export setFileOrdinary and setFileExecutable from Compat.CopyFile
1128Duncan Coutts <duncan@haskell.org>**20090129173413]
1129[Warn if C dependencies not found (kind of fixes #262)
1130gleb.alexeev@gmail.com**20090126185832
1131 
1132 This is just a basic check - generate a sample program and check if it compiles and links with relevant flags. Error messages (warning messages,
1133 actually) could use some improvement.
1134]
1135[Pass include directories to LHC
1136Samuel Bronson <naesten@gmail.com>**20090127220021]
1137[Add Distribution.Compat.CopyFile module
1138Duncan Coutts <duncan@haskell.org>**20090128181115
1139 This is to work around the file permissions problems with the
1140 standard System.Directory.copyFile function. When installing
1141 files we do not want to copy permissions or attributes from the
1142 source files. On unix we want to use specific permissions and
1143 on windows we want to inherit default permissions. On unix:
1144 copyOrdinaryFile   sets the permissions to -rw-r--r--
1145 copyExecutableFile sets the permissions to -rwxr-xr-x
1146]
1147[Remove unused support for installing dynamic exe files
1148Duncan Coutts <duncan@haskell.org>**20090128170421
1149 No idea why this was ever added, they've never been built.
1150]
1151[Check for ghc-options: -threaded in libraries
1152Duncan Coutts <duncan@haskell.org>**20090125161226
1153 It's totally unnecessary and messes up profiling in older ghc versions.
1154]
1155[Filter ghc-options -threaded for libs too
1156Duncan Coutts <duncan@haskell.org>**20090125145035]
1157[New changelog entries for 1.7.x
1158Duncan Coutts <duncan@haskell.org>**20090123175645]
1159[Update changelog for 1.6.0.2
1160Duncan Coutts <duncan@haskell.org>**20090123175629]
1161[Fix openNewBinaryFile on Windows with ghc-6.6
1162Duncan Coutts <duncan@haskell.org>**20090122172100
1163 fdToHandle calls fdGetMode which does not work with ghc-6.6 on
1164 windows, the workaround is not to call fdToHandle, but call
1165 openFd directly. Bug reported by Alistair Bayley, ticket #473.
1166]
1167[filter -threaded when profiling is on
1168Duncan Coutts <duncan@haskell.org>**20090122014425
1169 Fixes #317. Based on a patch by gleb.alexeev@gmail.com
1170]
1171[Move installDataFiles out of line to match installIncludeFiles
1172Duncan Coutts <duncan@haskell.org>**20090122005318]
1173[Fix installIncludeFiles to create target directories properly
1174Duncan Coutts <duncan@haskell.org>**20090122004836
1175 Previously for 'install-includes: subdir/blah.h' we would not
1176 create the subdir in the target location.
1177]
1178[Typo in docs for source-repository
1179Joachim Breitner <mail@joachim-breitner.de>**20090121220747]
1180[Make 'ghc-options: -O0' a warning rather than an error
1181Duncan Coutts <duncan@haskell.org>**20090118141949]
1182[Improve runE parse error message
1183Duncan Coutts <duncan@haskell.org>**20090116133214
1184 Only really used in parsing config files derived from command line flags.
1185]
1186[The Read instance for License and InstalledPackageInfo is authoritative
1187Duncan Coutts <duncan@haskell.org>**20090113234229
1188 It is ghc's optimised InstalledPackageInfo parser that needs updating.
1189 
1190 rolling back:
1191 
1192 Fri Dec 12 18:36:22 GMT 2008  Ian Lynagh <igloo@earth.li>
1193   * Fix Show/Read for License
1194   We were ending up with things like
1195       InstalledPackageInfo {
1196           ...
1197           license = LGPL Nothing,
1198           ...
1199       }
1200   i.e. "LGPL Nothing" rather than "LGPL", which we couldn't then read.
1201 
1202     M ./Distribution/License.hs -2 +14
1203]
1204[Swap the order of global usage messages
1205Duncan Coutts <duncan@haskell.org>**20090113191810
1206 Put the more important one first.
1207]
1208[Enable the global command usage to be set
1209Duncan Coutts <duncan@haskell.org>**20090113181303
1210 extend it rather than overriding it.
1211 Also rearrange slightly the default global --help output.
1212]
1213[On Windows, if gcc isn't where we expect it then keep looking
1214Ian Lynagh <igloo@earth.li>**20090109153507]
1215[Ban ghc-options: --make
1216Duncan Coutts <duncan@haskell.org>**20081223170621
1217 I dunno, some people...
1218]
1219[Update changelog for 1.6.0.2 release
1220Duncan Coutts <duncan@haskell.org>**20081211142202]
1221[Make the compiler PackageDB stuff more flexible
1222Duncan Coutts <duncan@haskell.org>**20081211141649
1223 We support using multiple package dbs, however the method for
1224 specifying them is very limited. We specify a single package db
1225 and that implicitly specifies any other needed dbs. For example
1226 the user or a specific db require the global db too. We now
1227 represent that stack explicitly. The user interface still uses
1228 the single value method and we convert internally.
1229]
1230[Fix Show/Read for License
1231Ian Lynagh <igloo@earth.li>**20081212183622
1232 We were ending up with things like
1233     InstalledPackageInfo {
1234         ...
1235         license = LGPL Nothing,
1236         ...
1237     }
1238 i.e. "LGPL Nothing" rather than "LGPL", which we couldn't then read.
1239]
1240[Un-deprecate Distribution.ModuleName.simple for now
1241Ian Lynagh <igloo@earth.li>**20081212164540
1242 Distribution/Simple/PreProcess.hs uses it, so this causes build failures
1243 with -Werror.
1244]
1245[Use the first three lhc version digits
1246Duncan Coutts <duncan@haskell.org>**20081211224048
1247 Rather than two, and do it in a simpler way.
1248]
1249[Remove obsolete test code
1250Duncan Coutts <duncan@haskell.org>**20081211142054]
1251[Update the VersionInterval properties which now all pass
1252Duncan Coutts <duncan@haskell.org>**20081210145653]
1253[Eliminate NoLowerBound, Versions do have a lower bound of 0.
1254Duncan Coutts <duncan@haskell.org>**20081210145433
1255 This eliminates the duplicate representation of ">= 0" vs "-any"
1256 and makes VersionIntervals properly canonical.
1257]
1258[Update and extend the Version quickcheck properties
1259Duncan Coutts <duncan@haskell.org>**20081210143251
1260 One property fails. The failure reveals that the VersionInterval type
1261 is not quite a canonical representation of the VersionRange semantics.
1262 This is because the lowest Version is [0] and not -infinity, so for
1263 example the intervals (.., 0] and [0,0] are equivalent.
1264]
1265[Add documentation for VersionRange functions
1266Duncan Coutts <duncan@haskell.org>**20081210140632
1267 With properties.
1268]
1269[Export withinVersion and deprecate betweenVersionsInclusive
1270Duncan Coutts <duncan@haskell.org>**20081210140411]
1271[Add checking of Version validity to the VersionIntervals invariant
1272Duncan Coutts <duncan@haskell.org>**20081210134100
1273 Version numbers have to be a non-empty sequence of non-negataive ints.
1274]
1275[Fix implementation of withinIntervals
1276Duncan Coutts <duncan@haskell.org>**20081210000141]
1277[Fix configCompilerAux to consider user-supplied program flags
1278Duncan Coutts <duncan@haskell.org>**20081209193320
1279 This fixes a bug in cabal-install
1280]
1281[Add ModuleName.fromString and deprecate ModuleName.simple
1282Duncan Coutts <duncan@haskell.org>**20081209151232
1283 Also document the functions in the ModuleName module.
1284]
1285[Check for absolute, outside-of-tree and dist/ paths
1286Duncan Coutts <duncan@haskell.org>**20081208234312]
1287[Export more VersionIntervals operations
1288Duncan Coutts <duncan@haskell.org>**20081208222420
1289 and check internal invariants
1290]
1291[Check for use of cc-options: -O
1292Duncan Coutts <duncan@haskell.org>**20081208182047]
1293[Fake support for NamedFieldPuns in ghc-6.8
1294Duncan Coutts <duncan@haskell.org>**20081208180018
1295 Implement it in terms of the -XRecordPuns which was accidentally
1296 added in ghc-6.8 and deprecates in 6.10 in favor of NamedFieldPuns
1297 So this is for compatability so we can tell package authors always
1298 to use NamedFieldPuns instead.
1299]
1300[Make getting ghc supported language extensions its own function
1301Duncan Coutts <duncan@haskell.org>**20081208175815]
1302[Check for use of deprecated extensions
1303Duncan Coutts <duncan@haskell.org>**20081208175441]
1304[Add a list of deprecated extenstions
1305Duncan Coutts <duncan@haskell.org>**20081208175337
1306 Along with possibly another extension that replaces it.
1307]
1308[Change the checking of new language extensions
1309Duncan Coutts <duncan@haskell.org>**20081207202315
1310 Check for new language extensions added in Cabal-1.2 and also 1.6.
1311 Simplify the checking of -X ghc flags. Now always suggest using
1312 the extensions field, as we separately warn about new extenssons.
1313]
1314[Tweak docs for VersionRange and VersionIntervals
1315Duncan Coutts <duncan@haskell.org>**20081207184749]
1316[Correct and simplify checkVersion
1317Duncan Coutts <duncan@haskell.org>**20081205232845]
1318[Make users of VersionIntervals use the new view function
1319Duncan Coutts <duncan@haskell.org>**20081205232707]
1320[Make VersionIntervals an abstract type
1321Duncan Coutts <duncan@haskell.org>**20081205232041
1322 Provide asVersionIntervals as the view function for a VersionRange
1323 This will let us enforce the internal data invariant
1324]
1325[Slight clarity improvement in compiler language extension handling
1326Duncan Coutts <duncan@haskell.org>**20081205210747]
1327[Slightly simplify the maintenance burden of adding new language extensions
1328Duncan Coutts <duncan@haskell.org>**20081205210543]
1329[Distributing a package with no synopsis and no description is inexcusable
1330Duncan Coutts <duncan@haskell.org>**20081205160719
1331 Previously if one or the other or both were missing we only warned.
1332 Now if neither are given it's an error. We still warn about either
1333 missing.
1334]
1335[Add Test.Laws module for checking class laws
1336Duncan Coutts <duncan@haskell.org>**20081204144238
1337 For Functor, Monoid and Traversable.
1338]
1339[Add QC Arbitrary instances for Version and VersionRange
1340Duncan Coutts <duncan@haskell.org>**20081204144204]
1341[Remove accidentally added bianry file
1342Duncan Coutts <duncan@haskell.org>**20081203000824]
1343[Fix #396 and add let .Haddock find autogen modules
1344Andrea Vezzosi <sanzhiyan@gmail.com>**20081201114853]
1345[Add checks for new and unknown licenses
1346Duncan Coutts <duncan@haskell.org>**20081202172742]
1347[Add MIT and versioned GPL and LGPL licenses
1348Duncan Coutts <duncan@haskell.org>**20081202171033
1349 Since Cabal-1.4 we've been able to parse versioned licenses
1350 and unknown licenses without the parser falling over.
1351]
1352[Don't nub lists of dependencies
1353Duncan Coutts <duncan@haskell.org>**20081202162259
1354 It's pretty meaningless since it's only a syntactic check.
1355 The proper thing is to maintain a dependency set or to
1356 simplify dependencies before printing them.
1357]
1358[Fix the date in the LICENSE file
1359Duncan Coutts <duncan@haskell.org>**20081202161457]
1360[Fix the version number in the makefile
1361Duncan Coutts <duncan@haskell.org>**20081202161441]
1362[Use VersionRange abstractly
1363Duncan Coutts <duncan@haskell.org>**20081202160321]
1364[Do the cabal version check properly.
1365Duncan Coutts <duncan@haskell.org>**20081202155410
1366 Instead of matching on the actual expression ">= x.y" we use the
1367 sematic view of the version range so we can do it precisely.
1368 Also use foldVersionRange to simplify a couple functions.
1369]
1370[Drop support for ghc-6.4 era OPTIONS pragmas
1371Duncan Coutts <duncan@haskell.org>**20081202154744
1372 It's still possible to build with ghc-6.4 but you have to pass
1373 extra flags like "ghc --make -cpp -fffi Setup.hs" We could not
1374 keep those OPTIONS pragmas and make it warning-free with ghc-6.10.
1375 See http://hackage.haskell.org/trac/ghc/ticket/2800 for details.
1376]
1377[Almost make the VersionRange type abstract
1378Duncan Coutts <duncan@haskell.org>**20081202154307
1379 Export constructor functions and deprecate all the real constructors
1380 We should not be pattern matching on this type because it's just
1381 syntax. For meaningful questions we should be matching on the
1382 VersionIntervals type which represents the semantics.
1383]
1384[Change isAnyVersion to be a semantic rather than syntactic test
1385Duncan Coutts <duncan@haskell.org>**20081202142123
1386 Also add simplify and isNoVersion.
1387]
1388[Add VersionIntervals, a view of VersionRange
1389Duncan Coutts <duncan@haskell.org>**20081202141040
1390 as a sequence of non-overlapping intervals. This provides a canonical
1391 representation for the semantics of a VersionRange. This makes several
1392 operations easier.
1393]
1394[Fix pretty-printing of version wildcards, was missing leading ==
1395Duncan Coutts <duncan@haskell.org>**20081202135949]
1396[Add a fold function for the VersionRange
1397Duncan Coutts <duncan@haskell.org>**20081202135845
1398 Use it to simplify the eval / withinRange function
1399]
1400[Improve the error on invalid file globs slightly
1401Duncan Coutts <duncan@haskell.org>**20081202135335]
1402[Use commaSep everywhere in the Check module
1403Duncan Coutts <duncan@haskell.org>**20081202135208]
1404[Fix message in the extra-source-files field check
1405Duncan Coutts <duncan@haskell.org>**20081202135000]
1406[Add checks for file glob syntax
1407Duncan Coutts <duncan@haskell.org>**20081202133954
1408 It requires cabal-version: >= 1.6 to be specified
1409]
1410[Add check for use of "build-depends: foo == 1.*" syntax
1411Duncan Coutts <duncan@haskell.org>**20081202131459
1412 It requires Cabal-1.6 or later.
1413]
1414[Distinguish version wild cards in the VersionRange AST
1415Duncan Coutts <duncan@haskell.org>**20081128170513
1416 Rather than encoding them in existing constructors.
1417 This will enable us to check that uses of the new syntax
1418 are flagged in .cabal files with cabal-version: >= 1.6
1419]
1420[Fix comment in LHC module
1421Duncan Coutts <duncan@haskell.org>**20081123100710
1422 Yes, LHC really does use ghc-pkg (with a different package.conf)
1423]
1424[Use the new bug-reports and source-repository info in the .cabal file
1425Duncan Coutts <duncan@haskell.org>**20081123100041]
1426[Simplify build-depends and base3/4 flags
1427Duncan Coutts <duncan@haskell.org>**20081123100003]
1428[Simplify default global libdir for LHC
1429Duncan Coutts <duncan@haskell.org>**20081123095802
1430 So it uses libdir=$prefix/lib rather than libdir=/usr/local/lib
1431]
1432[Simplify the compat exceptions stuff
1433Duncan Coutts <duncan@haskell.org>**20081123095737]
1434[Fix warnings in the LHC module
1435Duncan Coutts <duncan@haskell.org>**20081122224011]
1436[Distribution/Simple/GHC.hs: remove tabs for whitespace to eliminate warnings in cabal-install
1437gwern0@gmail.com**20081122190011
1438 Ignore-this: 2fd54090af86e67e25e51ade42992b53
1439]
1440[Warn about use of tabs
1441Duncan Coutts <duncan@haskell.org>**20081122154134]
1442[Bump Cabal HEAD version to 1.7.x development series
1443Duncan Coutts <duncan@haskell.org>**20081122145817
1444 Support for LHC is the first divergence between 1.7
1445 and the stable 1.6.x series.
1446]
1447[Update changelog for 1.6.0.x fixes
1448Duncan Coutts <duncan@haskell.org>**20081122145758]
1449[LHC: Don't use --no-user-package-conf. It doesn't work with ghc-6.8.
1450Lemmih <lemmih@gmail.com>**20081122012341
1451 Ignore-this: 88a837b38cf3e897cc5ed4bb22046cee
1452]
1453[Semi-decent lhc support.
1454Lemmih <lemmih@gmail.com>**20081121034138]
1455[Make auto-generated *_paths.hs module warning-free.
1456Thomas Schilling <nominolo@googlemail.com>**20081106142734
1457 
1458 On newer GHCs using {-# OPTIONS_GHC -fffi #-} gives a warning which
1459 can lead to a compile failure when -Werror is activated.  We therefore
1460 emit this option if we know that the LANGUAGE pragma is supported
1461 (ghc >= 6.6.1).
1462]
1463[Escape ld-options with the -optl prefix when passing them to ghc
1464Duncan Coutts <duncan@haskell.org>**20081103151931
1465 Fixes ticket #389
1466]
1467[Simplify previous pkg-config fix
1468Duncan Coutts <duncan@haskell.org>**20081101200309]
1469[Fix bug where we'd try to configure an empty set of pkg-config packages
1470Duncan Coutts <duncan@haskell.org>**20081101195512
1471 This happened when the lib used pkg-config but the exe did not.
1472 It cropped up in hsSqlite3-0.0.5.
1473]
1474[Add GHC 6.10.1's extensions to the list in Language.Haskell.Extension
1475Ian Lynagh <igloo@earth.li>**20081019141408]
1476[Ensure that the lib target directory is present when installing
1477Duncan Coutts <duncan@haskell.org>**20081017004437
1478 Variant on a patch from Bryan O'Sullivan
1479]
1480[Release kind is now rc
1481Duncan Coutts <duncan@haskell.org>**20081011183201]
1482[TAG 1.6.0.1
1483Duncan Coutts <duncan@haskell.org>**20081011182516]
1484Patch bundle hash:
1485267482dcf90131d034c4816f7a675ec6a2d06c1a