Ticket #344: document-all-the-language-extensions.dpatch

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