Ticket #2050: ghci-history-2.patch

File ghci-history-2.patch, 114.3 KB (added by judah, 6 years ago)
Line 
1
2New patches:
3
4[#2050: Use a history file in ghci (~/.ghci_history).
5judah.jacobson@gmail.com**20080226232458] {
6hunk ./compiler/ghci/InteractiveUI.hs 319
7+
8+            either_home <- IO.try getHomeDirectory
9+            case either_home of
10+                Right home -> Readline.readHistory $ (home </> ".ghci_history")
11+                _ -> return True
12+            stifleHistory 100
13+           
14hunk ./compiler/ghci/InteractiveUI.hs 359
15+   either_home <- IO.try getHomeDirectory
16+   case either_home of
17+       Right home -> Readline.writeHistory $ (home </> ".ghci_history")
18+       _ -> return True
19+
20}
21
22Context:
23
24[Fix typo
25Ian Lynagh <igloo@earth.li>**20080302151339]
26[In bindists, look in the right place to see if we have provided docs
27Ian Lynagh <igloo@earth.li>**20080302140408
28 Fixes trac #1971: unjustified warning about documentation
29]
30[Remove GADT refinements, part 3
31Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080229035740]
32[MacOS installer: Uninstaller must be able to deal with ATiger receipts
33Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080228050707]
34[Add and use seqBitmap when constructing SRTs
35Ian Lynagh <igloo@earth.li>**20080227144505
36 This roughly halves memory usage when compiling
37     module Foo where
38 
39     foo :: Double -> Int
40     foo x | x == 1 = 1
41     ...
42     foo x | x == 500 = 500
43 without optimisation.
44]
45[Whitespace
46Ian Lynagh <igloo@earth.li>**20080220191230]
47[Remove GADT refinements, part 2
48Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080228055326]
49[Fix Trac #2130: improve derived Ord for primmitive types
50simonpj@microsoft.com**20080228121106
51 
52 This patch does two things:
53 
54 * (Minor): in TcGenDeriv.careful_compare_Case, test for less-than before
55   equality. This should reduce the number of dynamic tests, and also gives
56   more scope for optimisation, since less-than tells us more than equality.
57 
58 * (More important): add special-case derived code for data types that are
59   simple wrappers of primitive types. See
60        Note [Comparision of primitive types]
61   This fixes Trac 2130.
62 
63 However see also Trac #2132, which is not addressed here.
64 
65]
66[Comments only
67simonpj@microsoft.com**20080228111301]
68[add a note about SMP execution not being supported with profiling
69Simon Marlow <simonmar@microsoft.com>**20080228112209]
70[Enable -prof -threaded (#886)
71Simon Marlow <simonmar@microsoft.com>**20080228111631
72 It turns out that -prof -threaded works (modulo some small changes),
73 because all the data structures used in profiling are only accessed by
74 one thread at a time, at long as we don't use +RTS -N2 or higher.  So
75 this patch enables the use of -prof -threaded, but an error is given
76 if you ask for more than one CPU with +RTS -N.
77]
78[Wibble to error message (stmt of do block or comprehension)
79simonpj@microsoft.com**20080228083104]
80[Make explicit lists more fusable
81Max Bolingbroke <batterseapower@hotmail.com>**20080228083050]
82[Add comments explaining flags
83simonpj@microsoft.com**20080228082935]
84[Remove GADT refinements, part 1
85Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080228045351
86 - A while ago, I changed the type checker to use equality constraints together
87   with implication constraints to track local type refinement due to GADT
88   pattern matching.  This patch is the first of a number of surgical strikes
89   to remove the resulting dead code of the previous GADT refinement machinery.
90 
91   Hurray to code simplification!
92]
93[Eliminate SkolemOccurs skolems only after checkLoop reached a fixed point
94Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080228001957
95 - See test case indexed-types/should_fail/SkolemOccursLoop, which sends the
96   type checker into an endless loop without this fix
97]
98[Fix Trac #2126: re-order tests (easy)
99simonpj@microsoft.com**20080227163202]
100[Fix Trac #2111: improve error handling for 'rec' in do-notation
101simonpj@microsoft.com**20080226175635
102 
103 We were not dealing correctly with all the combinations of
104        do notation
105        mdo notation
106        arrow notation
107 in combination with 'rec' Stmts.
108 
109 I think this patch sorts it out.
110 
111]
112[Remove gaw comment
113simonpj@microsoft.com**20080226175305]
114[Fix Trac #1899; missing equality check in typechecker's constraint simplifier
115simonpj@microsoft.com**20080226174743
116 
117 This patch fixes a missing equality check (uifying type variable b=b) in
118 the new constraint simplifier in TcTyFuns.  As it stands, we were making
119 'b' point to itself, which subsequently led to an infinite loop when
120 zonking.  Test is T1899.hs
121 
122 
123 
124]
125[FIX #2122: file locking bug
126Simon Marlow <simonmar@microsoft.com>**20080226104650
127 Second and subsequent readers weren't being inserted into the
128 fd->lock hash table, which meant that the file wasn't correctly
129 unlocked when the Handles were closed.
130]
131[documentation improvements from Frederik Eaton
132Simon Marlow <simonmar@microsoft.com>**20080226102612]
133[markup fix
134Simon Marlow <simonmar@microsoft.com>**20080226102558]
135[Mac installer: cross-compile for 10.4
136Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080225093734]
137[Make UniqFM non-strict again while we work out what we're doing.
138Ian Lynagh <igloo@earth.li>**20080225171305
139 This "fixes" the very-slow problem we have when compiling dictionaries.
140]
141[Fix Trac #2082
142simonpj@microsoft.com**20080219173410]
143[Fix Trac #2114: error reporting for 'forall' without appropriate flags
144simonpj@microsoft.com**20080222182646]
145[Improve error messages from type-checking data constructors
146simonpj@microsoft.com**20080222182514
147 
148 This addresses Trac #2112
149 
150]
151[Add type sigs and minor refactoring
152simonpj@microsoft.com**20080222182305]
153[FIX #2073: Don't add empty lines to GHCI's history
154Ian Lynagh <igloo@earth.li>**20080224143256]
155[FIX #1977: Check to see if $(bindir) is in the path
156Ian Lynagh <igloo@earth.li>**20080224134334
157 Before telling the user to add it, when installing a bindist, check to
158 see if $(bindir) is already in the path.
159]
160[Fix warnings in Simplify
161Ian Lynagh <igloo@earth.li>**20080222150318]
162[Whitespace
163Ian Lynagh <igloo@earth.li>**20080222140755]
164[Add a comment
165Ian Lynagh <igloo@earth.li>**20080220205844]
166[Fix most of the warnings in StgLint
167Ian Lynagh <igloo@earth.li>**20080220171858]
168[Whitespace
169Ian Lynagh <igloo@earth.li>**20080220171140]
170[CprAnalyse is warning-free
171Ian Lynagh <igloo@earth.li>**20080220170843]
172[Whitespace
173Ian Lynagh <igloo@earth.li>**20080220170650]
174[Fix #1984: missing context switches
175Simon Marlow <simonmar@microsoft.com>**20080219102212]
176[fix unregisterised stage 2 build
177Simon Marlow <simonmar@microsoft.com>**20080219093407]
178[Mac OS X deployment target: piping opts through Makefiles
179Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080221224449]
180[Rewrite fixTvSubstEnv so it iteratively applies its substition
181Ian Lynagh <igloo@earth.li>**20080220153752
182 This fixes a stack overflow when using strict UniqFMs. It might be
183 possible to rewrite it more efficiently, or to avoid needing it in the
184 first place.
185]
186[Typo
187Ian Lynagh <igloo@earth.li>**20080219204117]
188[Make some more modules use LazyUniqFM instead of UniqFM
189Ian Lynagh <igloo@earth.li>*-20080207015714
190 If these modules use UniqFM then we get a stack overflow when compiling
191 modules that use fundeps. I haven't tracked down the actual cause.
192]
193[Add configure option --with-macos-deployment-target
194Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080219031755]
195[Fix warning in SCCfinal
196Ian Lynagh <igloo@earth.li>**20080219020429]
197[Whitespace only
198Ian Lynagh <igloo@earth.li>**20080219015259]
199[Fix warnings in UniqSupply
200Ian Lynagh <igloo@earth.li>**20080219013233]
201[Whitespace only
202Ian Lynagh <igloo@earth.li>**20080219012417]
203[Fix non-missing-signature warnings in MkId
204Ian Lynagh <igloo@earth.li>**20080219010917]
205[Whitespace only
206Ian Lynagh <igloo@earth.li>**20080219005042]
207[Whitespace only
208Ian Lynagh <igloo@earth.li>**20080218234559]
209[Make literals in the syntax tree strict
210Ian Lynagh <igloo@earth.li>**20080218183424]
211[Make the parser a bit stricter
212Ian Lynagh <igloo@earth.li>**20080218175514]
213[seq what we actually want to seq, not the seq'ing function
214Ian Lynagh <igloo@earth.li>**20080213131857]
215[attempt to fix #2098 (PPC pepple please test & fix)
216Simon Marlow <simonmar@microsoft.com>**20080218115748]
217[FIX #2023: substitute for $topdir in haddockInterfaces and haddockHTMLs
218Simon Marlow <simonmar@microsoft.com>**20080209143648]
219[All installed Haskell prgms have an inplace and an installed version
220Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080218061809
221 - GHC installs a range of compiled Haskell programs in addition to the actual
222   compiler.  To ensure that they all run on the platform targeted by the build
223   (which may have different libraries installed than the build host), we need
224   to make sure that all compiled Haskell code going into an install is build
225   with the stage 1 compiler, not the bootstrap compiler.  Getting this right
226   is especially important on the Mac to enable builds that work on Mac OS X
227   versions that are older than the one performing the build.
228 - For all installed utils implemented in Haskell (i.e., ghc-pkg, hasktags,
229   hsc2hs, runghc, hpc, and pwd) we compile two versions, an inplace version
230   and a version for installation.  The former is build by the bootstrap
231   compiler during the stage 1 build and the latter is build by the stage 1
232   compiler during the stage 2 build.
233 - This is really very much as the setup for ghc itself, only that we don't use
234   separate stage1/ and stage2/ build directories.  Instead, we clean before
235   each build.  CAVEAT: This only works properly if invoked from the
236   toplevel Makefile.
237 - Instead of UseStage1=YES (as used by the previous binary-dist-specific
238   recompilation), we now use the same $(stage) variables as used for the
239   compiler proper - to increase uniformity and to avoid extra conditionals for
240   the install target.
241]
242[Fix warnings in Pretty
243Ian Lynagh <igloo@earth.li>**20080218214151]
244[Fix warnings in FiniteMap
245Ian Lynagh <igloo@earth.li>**20080218200408]
246[Fix warnings in Binary
247Ian Lynagh <igloo@earth.li>**20080218193645]
248[Fix warnings in StringBuffer
249Ian Lynagh <igloo@earth.li>**20080218191846]
250[Fix warnings in IOEnv
251Ian Lynagh <igloo@earth.li>**20080218190849]
252[Fix warnings in FastString, and check for empty case in head/tail
253Ian Lynagh <igloo@earth.li>**20080218144707]
254[Whitespace only
255Ian Lynagh <igloo@earth.li>**20080218112232]
256[Whitespace only
257Ian Lynagh <igloo@earth.li>**20080218112101]
258[Whitespace only
259Ian Lynagh <igloo@earth.li>**20080218111941]
260[Whitespace only
261Ian Lynagh <igloo@earth.li>**20080218110241]
262[Whitespace only
263Ian Lynagh <igloo@earth.li>**20080218105909]
264[Whitespace only
265Ian Lynagh <igloo@earth.li>**20080218105343]
266[Tweak whitespace
267Ian Lynagh <igloo@earth.li>**20080217175133]
268[Fix typo
269Ian Lynagh <igloo@earth.li>**20080217175021]
270[Print better error message for reading External Core
271Tim Chevalier <chevalier@alum.wellesley.edu>**20080217223844
272 
273 GHC panicked with a "Prelude.undefined" error message if you tried to
274 compile a .hcr file. Since support for reading ExternalCore simply does
275 not exist, I added an error message to say that.
276 
277 Please merge to 6.8. Thanks.
278 
279]
280[Documentation only: update External Core section of user guide
281Tim Chevalier <chevalier@alum.wellesley.edu>**20080217213206
282 
283 I updated the External Core section of the user guide, mostly to reflect
284 that the input path is broken and there are no firm plans to fix it.
285]
286[Generate foo(void) rather than foo() in FFI stub files
287Ian Lynagh <igloo@earth.li>**20080216141031
288 -Wstrict-prototypes warns about the latter.
289 Patch from pcc in trac #2100.
290]
291[Make hasktags -Wall clean
292Ian Lynagh <igloo@earth.li>**20080215160309]
293[Whitespace only
294Ian Lynagh <igloo@earth.li>**20080215155122]
295[Fix building hasktags
296Ian Lynagh <igloo@earth.li>**20080215154415]
297[Revert an accidental comment change
298Ian Lynagh <igloo@earth.li>**20080215153558]
299[find module names, fix for get constructor names, find class names as well, sort ctag files
300marco-oweber@gmx.de**20080212232157]
301[added TODO item and link to alternatives on wiki
302marco-oweber@gmx.de**20080212231853]
303[Make more arch-specific #if's exclusive with #else #error cases
304Duncan Coutts <duncan@haskell.org>**20080207170020
305 So when the next person compiles the Sparc NCG it should fail more
306 obviously at compile time rather than panicing at runtime.
307 Plus one obvious fix for LocalReg gaining an extra param
308 Missing bits of Sparc NCG:
309   * genSwitch for generating jump tables. This is the most tricky one.
310   * ALLOCATABLE_REGS_INTEGER and ALLOCATABLE_REGS_DOUBLE just requires
311     finding and verifying the values. The nearby comment describes how.
312   * isRegRegMove and mkRegRegMoveInstr. Sparc uses Or for int move, check
313     what this is supposed to do for single and double float types.
314   * regDotColor. Probably just copy the ppc impl.
315]
316[Document code a bit better
317Ian Lynagh <igloo@earth.li>**20080213161106]
318[Add a necessary [] error case
319Ian Lynagh <igloo@earth.li>**20080213154232]
320[\e -> f e   ===>    f
321Ian Lynagh <igloo@earth.li>**20080213153835]
322[Fixed warnings in parser/Lexer.x
323Twan van Laarhoven <twanvl@gmail.com>**20080204021131
324 
325 The -w flag can not be removed, because alex also generates code with lots of warnings.
326]
327[Monadification and Fixed warnings in parser/RdrHsSyn, except for incomplete pattern matches
328Twan van Laarhoven <twanvl@gmail.com>**20080204015053]
329[Fixed warnings in vectorise/VectMonad
330Twan van Laarhoven <twanvl@gmail.com>**20080203223932]
331[Fix typo in message
332Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080212052219]
333[Remove old code to get TMPDIR, use System.Directory.getTemporaryDirectory
334Simon Marlow <simonmar@microsoft.com>**20080207143915]
335[Mac installer: Added XCODE_EXTRA_CONFIGURE_ARGS
336Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080211115201]
337[Mac installer: make Uninstaller a bit more robust
338Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080211091119]
339[Mac installer: add comprehensive licencing information
340Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080211061450]
341[Force -s on ar in xcode builds
342Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080211022329]
343[Fix warning (FIX validate)
344Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080211040211]
345[Symbolic tags for simplifier phases
346Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080211032350
347 
348 Every simplifier phase can have an arbitrary number of tags and multiple
349 phases can share the same tags. The tags can be used as arguments to
350 -ddump-simpl-phases to specify which phases are to be dumped.
351 For instance, -ddump-simpl-phases=main will dump the output of phases 2, 1 and
352 0 of the initial simplifier run (they all share the "main" tag) while
353 -ddump-simpl-phases=main:0 will dump only the output of phase 0 of that run.
354 
355 At the moment, the supported tags are:
356 
357   main                 The main, staged simplifier run (before strictness)
358   post-worker-wrapper  After the w/w split
359   post-liberate-case   After LiberateCase
360   final                Final clean-up run
361 
362 The names are somewhat arbitrary and will change in the future.
363]
364[Allow -ddump-simpl-phases to specify which phases to dump
365Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080211020630
366 
367 We can now say -ddump-simpl-phases=1,2 to dump only these two phases and
368 nothing else.
369]
370[Fixed warnings in parser/ParserCoreUtils
371Twan van Laarhoven <twanvl@gmail.com>**20080204022226]
372[Fixed warnings in hsSyn/Convert, except for incomplete pattern matches
373Twan van Laarhoven <twanvl@gmail.com>**20080204000510]
374[Fixed warnings in types/Unify
375Twan van Laarhoven <twanvl@gmail.com>**20080203224228]
376[Fixed warnings in ndpFlatten/FlattenInfo
377Twan van Laarhoven <twanvl@gmail.com>**20080203224159]
378[Fixed warnings in vectorise/VectBuiltIn
379Twan van Laarhoven <twanvl@gmail.com>**20080203224043]
380[Fixed warnings in vectorise/VectCore
381Twan van Laarhoven <twanvl@gmail.com>**20080203224003]
382[Fixed warnings in deSugar/DsExpr, except for incomplete pattern matches
383Twan van Laarhoven <twanvl@gmail.com>**20080203214848]
384[Fixed warnings in deSugar/DsGRHSs, except for incomplete pattern matches
385Twan van Laarhoven <twanvl@gmail.com>**20080203214602]
386[Fixed warnings in deSugar/DsListComp, except for incomplete pattern matches
387Twan van Laarhoven <twanvl@gmail.com>**20080203211253]
388[Fixed warnings in deSugar/Check, except for incomplete pattern matches
389Twan van Laarhoven <twanvl@gmail.com>**20080203210814]
390[Fixed warnings in deSugar/Match, except for incomplete pattern matches
391Twan van Laarhoven <twanvl@gmail.com>**20080203210533]
392[Fixed warnings in deSugar/MatchCon, except for incomplete pattern matches
393Twan van Laarhoven <twanvl@gmail.com>**20080203210402]
394[Fixed warnings in deSugar/DsMonad
395Twan van Laarhoven <twanvl@gmail.com>**20080203210339]
396[Wibble the Makefile: DQ, \" and '"'
397Ian Lynagh <igloo@earth.li>**20080210171104]
398[Don't use -w when compiling Config.hs
399Ian Lynagh <igloo@earth.li>**20080210171050]
400[Add typesigs to Config.hs
401Ian Lynagh <igloo@earth.li>**20080210170925]
402[Allow skipping "make clean" or only re-running the testsuite in validate
403Ian Lynagh <igloo@earth.li>**20080210162842]
404[Mac installer: added support for full docs
405Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080209110727]
406[Fixed permissions and other cleanup in Mac installer package
407Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080207030528]
408[Adjust error message (Trac #2079)
409simonpj@microsoft.com**20080207171622]
410[Redo inlining patch, plus some tidying up
411simonpj@microsoft.com**20080207155102
412 
413 This adds back in the patch
414   * UNDO: Be a little keener to inline
415 
416 It originally broke the compiler because it tickled a Cmm optimisation bug,
417 now fixed. 
418 
419 In revisiting this I have also make inlining a bit cleverer, in response to
420 more examples from Roman. In particular
421 
422   * CoreUnfold.CallCtxt is a data type that tells something about
423     the context of a call.  The new feature is that if the context is
424     the argument position of a function call, we record both
425        - whether the function (or some higher up function) has rules
426        - what the argument discount in that position is
427     Either of these make functions keener to inline, even if it's
428     in a lazy position
429 
430   * There was conseqential tidying up on the data type of CallCont.
431     In particular I got rid of the now-unused LetRhsFlag
432 
433 
434 
435]
436[Comments, and a type signature
437simonpj@microsoft.com**20080125174203]
438[FIX #2080: an optimisation to remove a widening was wrong
439Simon Marlow <simonmar@microsoft.com>**20080208124219]
440[Remove some of the old compat stuff now that we assume GHC 6.4
441Simon Marlow <simonmar@microsoft.com>**20080208124132]
442[Allow runghc to take input from stdin, just like Ruby & Python
443Simon Marlow <simonmar@microsoft.com>**20080207145830]
444[remove a bogus assertion
445Simon Marlow <simonmar@microsoft.com>**20080207143805]
446[Convert more UniqFM's back to LazyUniqFM's
447Ian Lynagh <igloo@earth.li>**20080207144736
448 These fix these failures:
449    break008(ghci)
450    break009(ghci)
451    break026(ghci)
452    ghci.prog009(ghci)
453    ghci025(ghci)
454    print007(ghci)
455    prog001(ghci)
456    prog002(ghci)
457    prog003(ghci)
458 at least some of which have this symptom:
459     Exception: expectJust prune
460]
461[Be a bit more consistent about what's a set and what's a map
462Ian Lynagh <igloo@earth.li>**20080205211909]
463[Make some more modules use LazyUniqFM instead of UniqFM
464Ian Lynagh <igloo@earth.li>**20080207015714
465 If these modules use UniqFM then we get a stack overflow when compiling
466 modules that use fundeps. I haven't tracked down the actual cause.
467]
468[Remove unused import
469Ian Lynagh <igloo@earth.li>**20080207002544]
470[Make UniqFM strict in its elements
471Ian Lynagh <igloo@earth.li>**20080206141620]
472[Use uniqSetToList rather than eltsUFM
473Ian Lynagh <igloo@earth.li>**20080206000043]
474[Use isEmptyUniqSet rather than isNullUFM
475Ian Lynagh <igloo@earth.li>**20080205205336]
476[Added Uninstaller
477Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080206073054]
478[FIX BUILD on x86_64
479Simon Marlow <simonmar@microsoft.com>**20080206113936]
480[matchesPkg: match against the pkg Id (foo-1.0) not just the package name (foo)
481Simon Marlow <simonmar@microsoft.com>**20080205090429
482 Fixes the ghcpkg01 test.
483]
484[Teach cheapEqExpr about casts
485Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080206035007
486 
487 Previously, cheapEqExpr would always return False if it encountered a cast.
488 This was bad for two reasons. Firstly, CSE (which uses cheapEqExpr to compare
489 expressions) never eliminated expressions which contained casts and secondly,
490 it was inconsistent with exprIsBig. This patch fixes this.
491]
492[Inject implicit bindings before the simplifier (Trac #2070)
493simonpj@microsoft.com**20080205165507
494 
495 With constructor unpacking, it's possible for constructors and record
496 selectors to have non-trivial code, which should be optimised before
497 being fed to the code generator.  Example:
498 
499   data Foo = Foo { get :: {-# UNPACK #-} !Int }
500 
501 Then we do not want to get this:
502   T2070.get =
503     \ (tpl_B1 :: T2070.Foo) ->
504     case tpl_B1 of tpl1_B2 { T2070.Foo rb_B4 ->
505         let {
506           ipv_B3 [Just S] :: GHC.Base.Int
507           [Str: DmdType m]
508           ipv_B3 = GHC.Base.I# rb_B4
509         } in  ipv_B3 }
510 
511 If this goes through to codegen, we'll generate bad code.  Admittedly,
512 this only matters when the selector is used in a curried way (e.g
513 map get xs), but nevertheless it's silly.
514 
515 This patch injects the implicit bindings in SimplCore, before the
516 simplifier runs.  That slows the simplifier a little, because it has
517 to look at some extra bindings; but it's probably a slight effect.
518 If it turns out to matter I suppose we can always inject them later,
519 e.g. just before the final simplification.
520 
521 An unexpected (to me) consequence is that we get some specialisation rules
522 for class-method selectors.  E.g. we get a rule
523        RULE  (==) Int dInt = eqInt
524 There's no harm in this, but not much benefit either, because the
525 same result will happen when we inline (==) and dInt, but it's perhaps
526 more direct.
527 
528 
529]
530[Make do-notation a bit more flexible (Trac #1537)
531simonpj@microsoft.com**20080205164816
532 
533 This is a second attempt to fix #1537: to make the static typechecking
534 of do-notation behave just like the desugared version of the same thing.
535 This should allow parameterised monads to work properly (see Oleg's comment
536 in the above ticket).
537 
538 We can probably merge to 6.8.3 if it goes smoothly.
539 
540 Incidentally, the resulting setup suffers from greater type ambiguity
541 if (>>=) has a very general type.  So test rebindable6 no longer works
542 (at least not without more type signatures), and rebindable5 requires
543 extra functional dependencies.  But they are weird tests.
544 
545]
546[White space only
547simonpj@microsoft.com**20080205163702]
548[FIX #2047: Windows (and older Unixes): align info tables to 4 bytes, not 2
549Simon Marlow <simonmar@microsoft.com>**20080205101425
550 Perhaps in the past '.align 2' meant align to 4 bytes, but nowadays it
551 means align to 2 bytes.  The compacting collector requires info tables
552 to be aligned to 4 bytes, because it stores tag bits in the low 2
553 bits.
554 
555 This only affects -fvia-C - the native code generator was already
556 emitting the correct alignment.  The incorrect alignment might well
557 have been adversely affecting performance with -fvia-C on Windows.
558]
559[Most of installer for framework on system volume
560Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080205073738]
561[Split into two types of Mac installer specs
562Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080205052504]
563[Lambda logo for packages
564Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080205052017
565 - This image is in the public domain, cf
566   http://en.wikipedia.org/wiki/Image:Greek_lc_lamda_thin.svg
567]
568[xcode build target for fixed /Library/Frameworks inst
569Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080205030047
570 - Also moving all MacOS-specific Makefile components into
571   distrib/MacOS/Makefile
572]
573[First stab at an installer package for the Mac
574Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080202134853
575 - GHC as a Mac framework
576 - I tried to make a package where the user could choose whether to install
577   in /Library/Frameworks or ~/Library/Frameworks (to allow installation for
578   non-admins).  However, that doesn't work well without including the whole
579   distribution twice as the decision as to whether the admin password needs
580   to be entered is made at packaging time (not at install time).
581]
582[Support for using libffi to implement FFI calls in GHCi (#631)
583Simon Marlow <simonmar@microsoft.com>**20080204161053
584 This means that an unregisterised build on a platform not directly
585 supported by GHC can now have full FFI support using libffi.
586 
587 Also in this commit:
588 
589  - use PrimRep rather than CgRep to describe FFI args in the byte
590    code generator.  No functional changes, but PrimRep is more correct.
591 
592  - change TyCon.sizeofPrimRep to primRepSizeW, which is more useful
593]
594[Use the correct libffi type for pointers
595Simon Marlow <simonmar@microsoft.com>**20080104131936]
596[Fix DEBUG build
597simonpj@microsoft.com**20080204160514]
598[Make seqAlts actually seq everything
599Ian Lynagh <igloo@earth.li>**20080203134321]
600[Strictness tweaks
601Ian Lynagh <igloo@earth.li>**20080203024836]
602[Whitespace
603Ian Lynagh <igloo@earth.li>**20080203003929]
604[Whitespace only
605Ian Lynagh <igloo@earth.li>**20080202213936]
606[Tweak strictness
607Ian Lynagh <igloo@earth.li>**20080202213542]
608[Fix warnings in deSugar/DsBinds
609Ian Lynagh <igloo@earth.li>**20080130144014]
610[UNDO: Be a little keener to inline
611Simon Marlow <simonmar@microsoft.com>**20080201144810
612 
613 This patch caused at least the following test failures:
614    1744(normal)
615    ghci028(ghci)
616    unicode001(normal)
617 and additionally made the stage3 build fail. 
618 
619 A little more validation please!
620 
621 I didn't find the exact cause of the failure yet, but it appears that
622 the Lexer is miscompiled in some strange way.  If any of {Encoding,
623 StringBuffer, or Lexer} are compiled without -O, the problem goes
624 away.
625]
626[FIX BUILD with GHC 6.4.x
627Simon Marlow <simonmar@microsoft.com>**20080201122753]
628[FIX BUILD with ghc-6.4.x
629Simon Marlow <simonmar@microsoft.com>**20080201114302]
630[Some tweaks to the building from source section
631Simon Marlow <simonmar@microsoft.com>**20080129091132]
632[Warning clean up
633Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080131024845]
634[Move spiltDmdTy within module (no change in code)
635simonpj@microsoft.com**20080129011438]
636[Fix typo where I forgot the new substitution
637simonpj@microsoft.com**20080128213856]
638[Add missing (error) case in isIrrefutablePat
639simonpj@microsoft.com**20080128213429]
640[Add missing (error) case in pprConDecl
641simonpj@microsoft.com**20080128213409]
642[Fix warnings on non-Windows
643Ian Lynagh <igloo@earth.li>**20080130114640]
644[Fixed warnings in main/ErrUtils
645Twan van Laarhoven <twanvl@gmail.com>**20080127015419]
646[Fixed warnings in main/HeaderInfo, except for incomplete pattern matches
647Twan van Laarhoven <twanvl@gmail.com>**20080127014118]
648[Fixed warnings in main/DynFlags
649Twan van Laarhoven <twanvl@gmail.com>**20080127012443]
650[Fixed warnings in hsSyn/HsSyn
651Twan van Laarhoven <twanvl@gmail.com>**20080127004626]
652[Fixed warnings in hsSyn/HsUtils
653Twan van Laarhoven <twanvl@gmail.com>**20080127004506]
654[Fixed warnings in hsSyn/HsTypes
655Twan van Laarhoven <twanvl@gmail.com>**20080127004419]
656[Fixed warnings in hsSyn/HsDoc
657Twan van Laarhoven <twanvl@gmail.com>**20080127004359]
658[Fixed warnings in hsSyn/HsLit
659Twan van Laarhoven <twanvl@gmail.com>**20080127004330]
660[Fixed warnings in hsSyn/HsImpExp, except for incomplete pattern matches
661Twan van Laarhoven <twanvl@gmail.com>**20080127004254]
662[Fixed warnings in hsSyn/HsPat, except for incomplete pattern matches
663Twan van Laarhoven <twanvl@gmail.com>**20080127004209]
664[Fixed warnings in hsSyn/HsBinds, except for incomplete pattern matches
665Twan van Laarhoven <twanvl@gmail.com>**20080127004119]
666[Fixed warnings in hsSyn/HsDecls, except for incomplete pattern matches
667Twan van Laarhoven <twanvl@gmail.com>**20080127004046]
668[Fixed warnings in simplCore/CSE
669Twan van Laarhoven <twanvl@gmail.com>**20080126233918]
670[Fixed warnings in profiling/CostCentre, except for incomplete pattern matches
671Twan van Laarhoven <twanvl@gmail.com>**20080126232841]
672[Fixed warnings in types/InstEnv
673Twan van Laarhoven <twanvl@gmail.com>**20080126231732]
674[Fixed warnings in types/FamInstEnv
675Twan van Laarhoven <twanvl@gmail.com>**20080126231426]
676[Fixed warnings in simplStg/SRT, except for incomplete pattern matches
677Twan van Laarhoven <twanvl@gmail.com>**20080126230900]
678[Fixed warnings in simplStg/StgStats, except for incomplete pattern matches
679Twan van Laarhoven <twanvl@gmail.com>**20080126230830]
680[Fixed warnings in simplStg/SimplStg
681Twan van Laarhoven <twanvl@gmail.com>**20080126230805]
682[Fixed warnings in vectorise/VectUtils
683Twan van Laarhoven <twanvl@gmail.com>**20080126223033]
684[Fixed warnings in types/Generics
685Twan van Laarhoven <twanvl@gmail.com>**20080126222817]
686[Fixed warnings in stgSyn/StgSyn
687Twan van Laarhoven <twanvl@gmail.com>**20080126221010]
688[Fixed warnings in types/TyCon
689Twan van Laarhoven <twanvl@gmail.com>**20080126215800]
690[Fixed warnings in types/Type, except for incomplete pattern matches
691Twan van Laarhoven <twanvl@gmail.com>**20080126214126]
692[Fixed warnings in types/TypeRep
693Twan van Laarhoven <twanvl@gmail.com>**20080126211722]
694[Fixed warnings in types/FunDeps
695Twan van Laarhoven <twanvl@gmail.com>**20080126203050]
696[Fixed warnings in basicTypes/OccName
697Twan van Laarhoven <twanvl@gmail.com>**20080126202737]
698[Fixed warnings in basicTypes/RdrName
699Twan van Laarhoven <twanvl@gmail.com>**20080126202104]
700[Fixed warnings in utils/Encoding
701Twan van Laarhoven <twanvl@gmail.com>**20080126201235]
702[Fixed warnings in utils/Digraph
703Twan van Laarhoven <twanvl@gmail.com>**20080126200754]
704[Fixed warnings in basicTypes/Demand
705Twan van Laarhoven <twanvl@gmail.com>**20080126195929]
706[Fixed warnings in basicTypes/Unique
707Twan van Laarhoven <twanvl@gmail.com>**20080126195459]
708[Fixed warnings in coreSyn/ExternalCore
709Twan van Laarhoven <twanvl@gmail.com>**20080126194759]
710[Fixed warnings in simplCore/OccurAnal
711Twan van Laarhoven <twanvl@gmail.com>**20080126194426]
712[Fixed warnings in basicTypes/BasicTypes
713Twan van Laarhoven <twanvl@gmail.com>**20080126194255]
714[Fixed warnings in basicTypes/Literal, except for incomplete pattern matches
715Twan van Laarhoven <twanvl@gmail.com>**20080126193209]
716[Fixed warnings in basicTypes/Id
717Twan van Laarhoven <twanvl@gmail.com>**20080126192817]
718[Fixed warnings in basicTypes/Var
719Twan van Laarhoven <twanvl@gmail.com>**20080126191939]
720[Fixed warnings in basicTypes/Name
721Twan van Laarhoven <twanvl@gmail.com>**20080126191501]
722[Fixed warnings in types/Coercion, except for incomplete pattern matches
723Twan van Laarhoven <twanvl@gmail.com>**20080126190735]
724[Fixed warnings in coreSyn/MkExternalCore, except for incomplete pattern matches
725Twan van Laarhoven <twanvl@gmail.com>**20080126012807]
726[Fixed warnings in coreSyn/PprExternalCore
727Twan van Laarhoven <twanvl@gmail.com>**20080125162418]
728[Fixed warnings in coreSyn/CoreUtils, except for incomplete pattern matches
729Twan van Laarhoven <twanvl@gmail.com>**20080125161800]
730[Fixed warnings in coreSyn/CoreUnfold
731Twan van Laarhoven <twanvl@gmail.com>**20080125161308]
732[Fixed warnings in coreSyn/CorePrep
733Twan van Laarhoven <twanvl@gmail.com>**20080125161051]
734[Fixed warnings in coreSyn/CoreSubst
735Twan van Laarhoven <twanvl@gmail.com>**20080125161002]
736[Fixed warnings in coreSyn/CoreLint
737Twan van Laarhoven <twanvl@gmail.com>**20080125160809]
738[Fixed warnings in coreSyn/CoreFVs, except for incomplete pattern matches
739Twan van Laarhoven <twanvl@gmail.com>**20080125160716]
740[Fixed warnings in types/Class
741Twan van Laarhoven <twanvl@gmail.com>**20080125160438]
742[Fix warnings in coreSyn/CoreTidy
743Twan van Laarhoven <twanvl@gmail.com>**20080118165559]
744[Fix warnings in coreSyn/CoreSyn
745Twan van Laarhoven <twanvl@gmail.com>**20080118165506]
746[Strictness tweaks
747Ian Lynagh <igloo@earth.li>**20080125174347]
748[Parser tweak
749Ian Lynagh <igloo@earth.li>**20080125145847]
750[A couple more parser tweaks
751Ian Lynagh <igloo@earth.li>**20080125143421]
752[Make comb[234] strict
753Ian Lynagh <igloo@earth.li>**20080124183149]
754[Strictness tweaks
755Ian Lynagh <igloo@earth.li>**20080124183142]
756[Tell happy to be strict
757Ian Lynagh <igloo@earth.li>**20080124165214]
758[Make the Parser Monad's return strict
759Ian Lynagh <igloo@earth.li>**20080124155827]
760[Get a bit of sharing
761Ian Lynagh <igloo@earth.li>**20080124152000]
762[Make sL strict in /both/ arguments to L
763Ian Lynagh <igloo@earth.li>**20080124151223]
764[A touch more strictness in the parser
765Ian Lynagh <igloo@earth.li>**20080124150137]
766[Add a bit of strictness to the parser
767Ian Lynagh <igloo@earth.li>**20080124145311]
768[Use nilFS
769Ian Lynagh <igloo@earth.li>**20080123211917]
770[Whitespace only
771Ian Lynagh <igloo@earth.li>**20080123174153]
772[Fix #2062: foldr1 problem in hpc tool
773andy@galois.com**20080126210607]
774[Fix do-notation so that it works with -DDEBUG
775simonpj@microsoft.com**20080125163101]
776[Be a little keener to inline
777simonpj@microsoft.com**20080125104616
778 
779 This is really a bug.  A saturated call in an "interesting" context
780 should inline, but there was a strange "n_val_args > 0" condition, which
781 was stopping it.  Reported by Roman.
782 
783 
784]
785[Fix the build
786Ian Lynagh <igloo@earth.li>**20080124141800
787 Work around various problems caused by some of the monadification patches
788 not being applied.
789]
790[Replace ioToTcRn with liftIO
791Twan van Laarhoven <twanvl@gmail.com>**20080117220553]
792[Remove unused custom versions of monad combinators from IOEnv
793Twan van Laarhoven <twanvl@gmail.com>**20080117215835]
794[Remove unused custom versions of monad combinators from UniqSupply
795Twan van Laarhoven <twanvl@gmail.com>**20080117215752]
796[Replace remaining uses of ioToIOEnv by liftIO, remove ioToIOEnv
797Twan van Laarhoven <twanvl@gmail.com>**20080117215233]
798[Monadify iface/BuildTyCl: use return
799Twan van Laarhoven <twanvl@gmail.com>**20080117215036]
800[Monadify iface/TcIface: use do, return, applicative, standard monad functions
801Twan van Laarhoven <twanvl@gmail.com>**20080117214938]
802[Monadify iface/MkIface: use do, return and standard monad functions
803Twan van Laarhoven <twanvl@gmail.com>**20080117214441]
804[Monadify iface/LoadIface: use return and liftIO
805Twan van Laarhoven <twanvl@gmail.com>**20080117214233]
806[Monadify iface/IfaceEnv: use do, return and standard monad functions
807Twan van Laarhoven <twanvl@gmail.com>**20080117214041]
808[Monadify typecheck/TcRnMonad: use return, standard monad functions and liftIO
809Twan van Laarhoven <twanvl@gmail.com>**20080117213850]
810[Monadify typecheck/TcEnv: use do, return, applicative, standard monad functions
811Twan van Laarhoven <twanvl@gmail.com>**20080117213636]
812[Monadify typecheck/TcRnDriver: use return and standard monad functions
813Twan van Laarhoven <twanvl@gmail.com>**20080117213352]
814[Monadify typecheck/TcMatches: use return and standard monad functions
815Twan van Laarhoven <twanvl@gmail.com>**20080117213307]
816[Monadify typecheck/TcMType: use do, return, applicative, standard monad functions
817Twan van Laarhoven <twanvl@gmail.com>**20080117213242]
818[Monadify typecheck/TcInstDcls: use do, return and standard monad functions
819Twan van Laarhoven <twanvl@gmail.com>**20080117213040]
820[Monadify typecheck/TcHsType: use do, return and standard monad functions
821Twan van Laarhoven <twanvl@gmail.com>**20080117212822]
822[Monadify typecheck/TcSimplify: use do, return and standard monad functions
823Twan van Laarhoven <twanvl@gmail.com>**20080117212200]
824[Monadify typecheck/TcSplice: use do and return
825Twan van Laarhoven <twanvl@gmail.com>**20080117211911]
826[Monadify typecheck/TcTyClsDecls: use return and standard monad functions
827Twan van Laarhoven <twanvl@gmail.com>**20080117211746]
828[Monadify typecheck/TcDefaults: use return and standard monad functions
829Twan van Laarhoven <twanvl@gmail.com>**20080117211558]
830[Monadify typecheck/TcDeriv: use return
831Twan van Laarhoven <twanvl@gmail.com>**20080117211507]
832[Monadify typecheck/TcClassDcl: use do, return and standard monad functions
833Twan van Laarhoven <twanvl@gmail.com>**20080117211439]
834[Monadify typecheck/TcBinds: use do, return and standard monad functions
835Twan van Laarhoven <twanvl@gmail.com>**20080117211035]
836[Monadify typecheck/TcArrows: use do and return
837Twan van Laarhoven <twanvl@gmail.com>**20080117210818]
838[Monadify typecheck/Inst: use do, return and standard monad functions
839Twan van Laarhoven <twanvl@gmail.com>**20080117210655]
840[Monadify typecheck/TcUnify: use do, return and standard monad functions
841Twan van Laarhoven <twanvl@gmail.com>**20080117210213
842   there may be some accidental tab->space conversion
843]
844[Monadify typecheck/TcTyFuns: use standard monad functions
845Twan van Laarhoven <twanvl@gmail.com>**20080117205505]
846[Monadify typecheck/TcPat: use return and standard monad functions
847Twan van Laarhoven <twanvl@gmail.com>**20080117205423]
848[Monadify typecheck/TcRules: use do, return and standard monad functions
849Twan van Laarhoven <twanvl@gmail.com>**20080117205307]
850[Monadify typecheck/TcForeign: use do, return and standard monad functions
851Twan van Laarhoven <twanvl@gmail.com>**20080117204934]
852[Monadify typecheck/TcExpr: use do, return and standard monad functions
853Twan van Laarhoven <twanvl@gmail.com>**20080117204603]
854[Monadify specialise/Specialise: use do, return, standard monad functions and MonadUnique
855Twan van Laarhoven <twanvl@gmail.com>**20080117204330]
856[Monadify specialise/SpecConstr: use do, return and standard monad functions
857Twan van Laarhoven <twanvl@gmail.com>**20080117203842]
858[Monadify stgSyn/StgLint
859Twan van Laarhoven <twanvl@gmail.com>**20080117203042
860  - made LintM a newtype instead of a type synonym
861  - use do, return and standard monad functions
862  - use MaybeT where `thenMaybeL` was used
863  - removed custom versions of monad functions
864 
865]
866[Monadify stgSyn/CoreToStg
867Twan van Laarhoven <twanvl@gmail.com>**20080117202619
868  - made LneM a newtype instead of a type synonym
869  - use do, return and standard monad functions
870  - removed custom versions of monad functions
871]
872[Remove generic monad function from State, it was moved to MonadUtils
873Twan van Laarhoven <twanvl@gmail.com>**20080117202144]
874[Added MaybeT monad transformer to utils/Maybes
875Twan van Laarhoven <twanvl@gmail.com>**20080117202051]
876[Removed unused Maybe functions, use the standard Maybe monad instead
877Twan van Laarhoven <twanvl@gmail.com>**20080117201953]
878[MonadIO instance for IOEnv
879Twan van Laarhoven <twanvl@gmail.com>**20080117201812]
880[Monadify simplCore/SimplMonad: custom monad functions are no longer needed
881Twan van Laarhoven <twanvl@gmail.com>**20080117200354]
882[Monadify simplCore/SimplMonad: use MonadUnique instance instead of custom functions
883Twan van Laarhoven <twanvl@gmail.com>**20080117200228]
884[Monadify simplCore/SetLevels: use do, return, standard monad functions and MonadUnique
885Twan van Laarhoven <twanvl@gmail.com>**20080117195958]
886[Monadify simplCore/SimplUtils: use do, return, standard monad functions and MonadUnique
887Twan van Laarhoven <twanvl@gmail.com>**20080117195625]
888[Monadify simplCore/Simplify: use do and return
889Twan van Laarhoven <twanvl@gmail.com>**20080117195408]
890[Monadify simplCore/SimplEnv: use standard monad functions
891Twan van Laarhoven <twanvl@gmail.com>**20080117195255]
892[Monadify simplCore/SimplCore: use do, return and standard monad functions
893Twan van Laarhoven <twanvl@gmail.com>**20080117195149]
894[Monadify profiling/SCCfinal
895Twan van Laarhoven <twanvl@gmail.com>**20080117194417
896   - change monad type synonym into a newtype
897   - use do, return and standard monad functions
898]
899[Monadify coreSyn/CorePrep: use do, return, applicative, standard monad functions
900Twan van Laarhoven <twanvl@gmail.com>**20080117193154]
901[Monadify rename/RnTypes: use do, return and standard monad functions
902Twan van Laarhoven <twanvl@gmail.com>**20080117190823]
903[Monadify rename/RnPat: use do, return and standard monad functions
904Twan van Laarhoven <twanvl@gmail.com>**20080117190033]
905[Monadify rename/RnNames: use return and standard monad functions
906Twan van Laarhoven <twanvl@gmail.com>**20080117185837]
907[seqMaybe is more commonly known as mplus
908Twan van Laarhoven <twanvl@gmail.com>**20080117185330]
909[Monadify rename/RnBinds: use do, return and standard monad functions
910Twan van Laarhoven <twanvl@gmail.com>**20080117184354]
911[Monadify stranal/StrictAnal: use the State monad instead of a custom thing
912Twan van Laarhoven <twanvl@gmail.com>**20080117180449]
913[Monadify stranal/WwLib: use do, return, applicative, standard monad functions
914Twan van Laarhoven <twanvl@gmail.com>**20080117180022]
915[Added MonadUnique class for monads that have a unique supply
916Twan van Laarhoven <twanvl@gmail.com>**20080117175616]
917[Monadify stranal/WorkWrap: use do, return, applicative, standard monad functions
918Twan van Laarhoven <twanvl@gmail.com>**20080117175007]
919[Added Applicative and Functor instances for State monad
920Twan van Laarhoven <twanvl@gmail.com>**20080117174656]
921[Monadify deSugar/DsMonad: use do, return, applicative, standard monad functions
922Twan van Laarhoven <twanvl@gmail.com>**20080117174432]
923[Monadify deSugar/Desugar: use do, return, applicative, standard monad functions
924Twan van Laarhoven <twanvl@gmail.com>**20080117174130]
925[Monadify deSugar/DsUtils: use do, return, applicative, standard monad functions
926Twan van Laarhoven <twanvl@gmail.com>**20080117173856]
927[Monadify deSugar/DsListComp: use do, return, applicative, standard monad functions
928Twan van Laarhoven <twanvl@gmail.com>**20080117173205]
929[Monadify deSugar/DsForeign: use do, return, applicative, standard monad functions
930Twan van Laarhoven <twanvl@gmail.com>**20080117172843]
931[Monadify deSugar/DsGRHSs: use do, return, applicative, standard monad functions
932Twan van Laarhoven <twanvl@gmail.com>**20080117172228]
933[Monadify deSugar/DsExpr: use do, return, applicative, standard monad functions
934Twan van Laarhoven <twanvl@gmail.com>**20080117164055]
935[Added Applicative instance for IOEnv
936Twan van Laarhoven <twanvl@gmail.com>**20080117162644]
937[Add 'util/MonadUtils.hs' with common monad (and applicative) combinators
938Twan van Laarhoven <twanvl@gmail.com>**20080117161939]
939[Monadify deSugar/MatchLit: use do, return, applicative, standard monad functions
940Twan van Laarhoven <twanvl@gmail.com>**20080117173439]
941[Monadify deSugar/Match: use do, return, applicative, standard monad functions
942Twan van Laarhoven <twanvl@gmail.com>**20080117173336]
943[Monadify deSugar/DsCCall: use do, return, applicative, standard monad functions
944Twan van Laarhoven <twanvl@gmail.com>**20080117165334]
945[Monadify deSugar/DsArrows: use do, return, applicative, standard monad functions
946Twan van Laarhoven <twanvl@gmail.com>**20080117165114]
947[Monadify deSugar/DsBinds: use do, return, applicative, standard monad functions
948Twan van Laarhoven <twanvl@gmail.com>**20080117164746]
949[Added MASSERT macro for assertions in do notation
950Twan van Laarhoven <twanvl@gmail.com>**20080117163112]
951[FIX BUILD wrong imports on non-Windows
952Simon Marlow <simonmar@microsoft.com>**20080124092935]
953[Show CmdLineError exceptions as "<command line>: ..."
954Simon Marlow <simonmar@microsoft.com>**20080123163145
955 instead of something like "ghc-6.8.2: ...", which causes problems in
956 the test suite.  In any case, "<command line>" seems a more
957 appropriate context for these errors, the only question is whether
958 we're using CmdLineError incorrectly anywhere.
959]
960[FIX #1750: in isBrokenPackage, don't loop if the deps are recursive
961Simon Marlow <simonmar@microsoft.com>**20080123160703]
962[FIX #1750: throw out mutually recursive groups of packages
963Simon Marlow <simonmar@microsoft.com>**20080123160635]
964[Windows now doesn't need different values for DQ in the build system
965Ian Lynagh <igloo@earth.li>**20080123173933]
966[Fix setting argv[0] in shell-utils.c on Windows
967Ian Lynagh <igloo@earth.li>**20080123160139]
968[Escape arguments for Windows in shell-tools.c
969Ian Lynagh <igloo@earth.li>**20080123151724]
970[Attach the INLINE Activation pragma to any automatically-generated specialisations
971simonpj@microsoft.com**20080123134012
972 
973 Another idea suggested by Roman, happily involving a one-line change.  Here's
974 the new Note in Specialise:
975 
976 Note [Auto-specialisation and RULES]
977 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
978 Consider:
979    g :: Num a => a -> a
980    g = ...
981 
982    f :: (Int -> Int) -> Int
983    f w = ...
984    {-# RULE f g = 0 #-}
985 
986 Suppose that auto-specialisation makes a specialised version of
987 g::Int->Int That version won't appear in the LHS of the RULE for f.
988 So if the specialisation rule fires too early, the rule for f may
989 never fire.
990 
991 It might be possible to add new rules, to "complete" the rewrite system.
992 Thus when adding
993        RULE forall d. g Int d = g_spec
994 also add
995        RULE f g_spec = 0
996 
997 But that's a bit complicated.  For now we ask the programmer's help,
998 by *copying the INLINE activation pragma* to the auto-specialised rule.
999 So if g says {-# NOINLINE[2] g #-}, then the auto-spec rule will also
1000 not be active until phase 2.
1001 
1002]
1003[Tidy up the treatment of SPECIALISE pragmas
1004simonpj@microsoft.com**20080122122613
1005 
1006 Remove the now-redundant "const-dicts" field in SpecPrag
1007 
1008 In dsBinds, abstract over constant dictionaries in the RULE.
1009 This avoids the creation of a redundant, duplicate, rule later
1010 in the Specialise pass, which was happening before.
1011 
1012 There should be no effect on performance either way, just less
1013 duplicated code, and the compiler gets a little simpler.
1014 
1015]
1016[Comments only
1017simonpj@microsoft.com**20080122122547]
1018[FIX #1838, #1987: change where GHCi searches for config files
1019Simon Marlow <simonmar@microsoft.com>**20080123143207
1020 
1021 6.6 behaviour:
1022   - ./.ghci
1023   - $HOME/.ghci
1024 
1025 6.8.[12] behaviour:
1026   - ./.ghci
1027   - Windows: c:/Documents and Settings/<user>/.ghci
1028   - Unix: $HOME/.ghci
1029 
1030 6.10 (and 6.8.3 when this is merged):
1031   - ./.ghci
1032   - Windows: c:/Documents and Settings/<user>/Application Data/ghc/ghci.conf
1033   - Unix: $HOME/.ghc/ghci.conf
1034   - $HOME/.ghci
1035 
1036 We will need to document this in the 6.8.3 release notes because it
1037 may affect Windows users who have adapted their setup to 6.8.[12].
1038]
1039[FIX #1767 :show documentation claimed too much
1040Simon Marlow <simonmar@microsoft.com>**20080122152943
1041 Also put the :help docs back within 80 columns
1042]
1043[fix syntax-error output for :show
1044Simon Marlow <simonmar@microsoft.com>**20080122144923]
1045[This goes with the patch for #1839, #1463
1046Simon Marlow <simonmar@microsoft.com>**20080122161811]
1047[use pathSeparator instead of '/'
1048Simon Marlow <simonmar@microsoft.com>**20080122140957]
1049[cleanup only
1050Simon Marlow <simonmar@microsoft.com>**20080122132047]
1051[FIX #1839, #1463, by supporting ghc-pkg bulk queries with substring matching
1052claus.reinke@talk21.com**20080121161744
1053 
1054    - #1839 asks for a ghc-pkg dump feature, #1463 for the ability
1055      to query the same fields in several packages at once.
1056 
1057    - this patch enables substring matching for packages in 'list',
1058      'describe', and 'field', and for modules in find-module. it
1059      also allows for comma-separated multiple fields in 'field'.
1060      substring matching can optionally ignore cases to avoid the
1061      rather unpredictable capitalisation of packages.
1062 
1063    - the patch is not quite as full-featured as the one attached
1064      to #1839, but avoids the additional dependency on regexps.
1065      open ended substrings are indicated by '*' (only the three
1066      forms prefix*, *suffix, *infix* are supported)
1067 
1068    - on windows, the use of '*' for package/module name globbing
1069      leads to conflicts with filename globbing: by default, windows
1070      programs are self-globbing, and bash adds another level of
1071      globbing on top of that. it seems impossible to escape '*'
1072      from both levels of globbing, so we disable default globbing
1073      for ghc-pkg and ghc-pkg-inplace. users of bash will still
1074      have filename globbing available, users of cmd won't.
1075 
1076    - if it is considered necessary to reenable filename globbing
1077      for cmd users, it should be done selectively, only for
1078      filename parameters. to this end, the patch includes a
1079      glob.hs program which simply echoes its parameters after
1080      filename globbing. see the commented out glob command in
1081      Main.hs for usage or testing.
1082 
1083    - this covers both tickets, and permits for the most common
1084      query patterns (finding all packages contributing to the
1085      System. hierarchy, finding all regex or string packages,
1086      listing all package maintainers or haddock directories,
1087      ..), which not only i have wanted to have for a long time.
1088 
1089      examples (the quotes are needed to escape shell-based
1090      filename globbing and should be omitted in cmd.exe):
1091 
1092        ghc-pkg list '*regex*' --ignore-case
1093        ghc-pkg list '*string*' --ignore-case
1094        ghc-pkg list '*gl*' --ignore-case
1095        ghc-pkg find-module 'Data.*'
1096        ghc-pkg find-module '*Monad*'
1097        ghc-pkg field '*' name,maintainer
1098        ghc-pkg field '*' haddock-html
1099        ghc-pkg describe '*'
1100 
1101 
1102]
1103[Wibble to the OccurAnal fix for RULEs and loop-breakers
1104simonpj@microsoft.com**20080121165529]
1105[FIX #2049, another problem with the module context on :reload
1106Simon Marlow <simonmar@microsoft.com>**20080121145935
1107 The previous attempt to fix this (#1873, #1360) left a problem that
1108 occurred when the first :load of the program failed (#2049). 
1109 
1110 Now I've implemented a different strategy: between :loads, we remember
1111 all the :module commands, and just replay them after a :reload.  This
1112 is in addition to remembering all the package modules added with
1113 :module, which is orthogonal.
1114 
1115 This approach is simpler than the previous one, and seems to do the
1116 right thing in all the cases I could think of.  Let's hope this is the
1117 last bug in this series...
1118]
1119[Increase the bar for bootstrapping GHC to 6.4 (HEAD only)
1120Simon Marlow <simonmar@microsoft.com>**20080121111835
1121  - remove $(ghc_ge_601), $(ghc_ge_602), $(ghc_ge_603)
1122  - configure now checks the GHC version number
1123  - there are probably various cleanups that we can now do in compat/
1124    and compiler/, but I haven't done those yet.
1125]
1126[Do not worker/wrapper INLINE things, even if they are in a recursive group
1127simonpj@microsoft.com**20080121135909
1128 
1129 This patch stops the worker/wrapper transform working on an INLINE thing,
1130 even if it's in a recursive group.  It might not be the loop breaker.  Indeed
1131 a recursive group might have no loop breaker, if the only recursion is
1132 through rules.
1133 
1134 Again, this change was provoked by one of Roman's NDP libraries.
1135 Specifically the Rec { splitD, splitJoinD } group in
1136        Data.Array.Parallel.Unlifted.Distributed.Arrays
1137 
1138 Simon
1139 
1140]
1141[Make the loop-breaking algorithm a bit more liberal, where RULES are involved
1142simonpj@microsoft.com**20080121135654
1143 
1144 This is another gloss on the now-quite-subtle and heavily-documented algorithm
1145 for choosing loop breakers.
1146 
1147 This fix, provoked by Roman's NDP library, makes sure that when we are choosing
1148 a loop breaker we only take into account variables free on the *rhs* of a rule
1149 not the *lhs*.
1150 
1151 Most of the new lines are comments!
1152 
1153]
1154[Fix Trac #2055
1155simonpj@microsoft.com**20080121124244
1156 
1157 Sorry, this was my fault, a consequence of the quasi-quoting patch. 
1158 
1159 I've added rn062 as a test.
1160 
1161 
1162]
1163[Fix exception message with ghc -e
1164Ian Lynagh <igloo@earth.li>**20080121104142
1165 When running with ghc -e, exceptions should claim to be from the program
1166 that we are running, not ghc.
1167]
1168[Fix warnings in main/CmdLineParser
1169Ian Lynagh <igloo@earth.li>**20080121103158]
1170[Normalise FilePaths before printing them
1171Ian Lynagh <igloo@earth.li>**20080120193002]
1172[Tweak runghc
1173Ian Lynagh <igloo@earth.li>**20080120184639]
1174[Fix catching exit exceptions in ghc -e
1175Ian Lynagh <igloo@earth.li>**20080120170236]
1176[Typo in phase-control documentation
1177simonpj@microsoft.com**20080121113620]
1178[Fix warnings in main/Main
1179Ian Lynagh <igloo@earth.li>**20080119235914]
1180[Support multiple -e flags
1181Ian Lynagh <igloo@earth.li>**20080119223036]
1182[Fix ghc -e :main (it was enqueuing the main function, but not running it)
1183Ian Lynagh <igloo@earth.li>**20080119220044]
1184[Fix whitespace
1185Ian Lynagh <igloo@earth.li>**20080119212830]
1186[Fix giving an error if we are given conflicting mode flags
1187Ian Lynagh <igloo@earth.li>**20080119212602]
1188[Add :run and tweak :main
1189Ian Lynagh <igloo@earth.li>**20080119164923
1190 You can now give :main a Haskell [String] as an argument, e.g.
1191 :main ["foo", "bar"]
1192 and :run is a variant that takes the name of the function to run.
1193 Also, :main now obeys the -main-is flag.
1194]
1195[FIX #1821 (Parser or lexer mess-up)
1196df@dfranke.us**20071210230649]
1197[Improve the error when :list can't find any code to show
1198Ian Lynagh <igloo@earth.li>**20080118225655]
1199[Fix imports when !DEBUG
1200Ian Lynagh <igloo@earth.li>**20080118180126]
1201[Tweak the splitter
1202Ian Lynagh <igloo@earth.li>**20080116195612
1203 We were generating a label ".LnLC7", which the splitter was confusing
1204 with a literal constant (LC). The end result was the assembler tripping
1205 up on ".Ln.text".
1206]
1207[Wibble to SetLevels.abstractVars
1208simonpj@microsoft.com**20080118171754
1209 
1210 I've gotten this wrong more than once.  Hopefully this has it nailed.
1211 The issue is that in float-out we must abstract over the correct
1212 variables.
1213 
1214 
1215]
1216[Add quasi-quotation, courtesy of Geoffrey Mainland
1217simonpj@microsoft.com**20080118145503
1218 
1219 This patch adds quasi-quotation, as described in
1220   "Nice to be Quoted: Quasiquoting for Haskell"
1221        (Geoffrey Mainland, Haskell Workshop 2007)
1222 Implemented by Geoffrey and polished by Simon.
1223 
1224 Overview
1225 ~~~~~~~~
1226 The syntax for quasiquotation is very similar to the existing
1227 Template haskell syntax:
1228        [$q| stuff |]
1229 where 'q' is the "quoter".  This syntax differs from the paper, by using
1230 a '$' rather than ':', to avoid clashing with parallel array comprehensions.
1231 
1232 The "quoter" is a value of type Language.Haskell.TH.Quote.QuasiQuoter, which
1233 contains two functions for quoting expressions and patterns, respectively.
1234 
1235      quote = Language.Haskell.TH.Quote.QuasiQuoter quoteExp quotePat
1236 
1237      quoteExp :: String -> Language.Haskell.TH.ExpQ
1238      quotePat :: String -> Language.Haskell.TH.PatQ
1239 
1240 TEXT is passed unmodified to the quoter. The context of the
1241 quasiquotation statement determines which of the two quoters is
1242 called: if the quasiquotation occurs in an expression context,
1243 quoteExp is called, and if it occurs in a pattern context, quotePat
1244 is called.
1245 
1246 The result of running the quoter on its arguments is spliced into
1247 the program using Template Haskell's existing mechanisms for
1248 splicing in code. Note that although Template Haskell does not
1249 support pattern brackets, with this patch binding occurrences of
1250 variables in patterns are supported. Quoters must also obey the same
1251 stage restrictions as Template Haskell; in particular, in this
1252 example quote may not be defined in the module where it is used as a
1253 quasiquoter, but must be imported from another module.
1254 
1255 Points to notice
1256 ~~~~~~~~~~~~~~~~
1257 * The whole thing is enabled with the flag -XQuasiQuotes
1258 
1259 * There is an accompanying patch to the template-haskell library. This
1260   involves one interface change:
1261        currentModule :: Q String
1262   is replaced by
1263        location :: Q Loc
1264   where Loc is a data type defined in TH.Syntax thus:
1265       data Loc
1266         = Loc { loc_filename :: String
1267              , loc_package  :: String
1268              , loc_module   :: String
1269              , loc_start    :: CharPos
1270              , loc_end      :: CharPos }
1271 
1272       type CharPos = (Int, Int)        -- Line and character position
1273 
1274   So you get a lot more info from 'location' than from 'currentModule'.
1275   The location you get is the location of the splice.
1276   
1277   This works in Template Haskell too of course, and lets a TH program
1278   generate much better error messages.
1279 
1280 * There's also a new module in the template-haskell package called
1281   Language.Haskell.TH.Quote, which contains support code for the
1282   quasi-quoting feature.
1283 
1284 * Quasi-quote splices are run *in the renamer* because they can build
1285   *patterns* and hence the renamer needs to see the output of running the
1286   splice.  This involved a bit of rejigging in the renamer, especially
1287   concerning the reporting of duplicate or shadowed names.
1288 
1289   (In fact I found and removed a few calls to checkDupNames in RnSource
1290   that are redundant, becuase top-level duplicate decls are handled in
1291   RnNames.)
1292 
1293 
1294 
1295]
1296[lots of portability changes (#1405)
1297Isaac Dupree <id@isaac.cedarswampstudios.org>**20080117011312
1298 
1299 re-recording to avoid new conflicts was too hard, so I just put it
1300 all in one big patch :-(  (besides, some of the changes depended on
1301 each other.)  Here are what the component patches were:
1302 
1303 Fri Dec 28 11:02:55 EST 2007  Isaac Dupree <id@isaac.cedarswampstudios.org>
1304   * document BreakArray better
1305 
1306 Fri Dec 28 11:39:22 EST 2007  Isaac Dupree <id@isaac.cedarswampstudios.org>
1307   * properly ifdef BreakArray for GHCI
1308 
1309 Fri Jan  4 13:50:41 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
1310   * change ifs on __GLASGOW_HASKELL__ to account for... (#1405)
1311   for it not being defined. I assume it being undefined implies
1312   a compiler with relatively modern libraries but without most
1313   unportable glasgow extensions.
1314 
1315 Fri Jan  4 14:21:21 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
1316   * MyEither-->EitherString to allow Haskell98 instance
1317 
1318 Fri Jan  4 16:13:29 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
1319   * re-portabilize Pretty, and corresponding changes
1320 
1321 Fri Jan  4 17:19:55 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
1322   * Augment FastTypes to be much more complete
1323 
1324 Fri Jan  4 20:14:19 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
1325   * use FastFunctions, cleanup FastString slightly
1326 
1327 Fri Jan  4 21:00:22 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
1328   * Massive de-"#", mostly Int# --> FastInt (#1405)
1329 
1330 Fri Jan  4 21:02:49 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
1331   * miscellaneous unnecessary-extension-removal
1332 
1333 Sat Jan  5 19:30:13 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
1334   * add FastFunctions
1335 
1336]
1337[Add missing extendSubst
1338simonpj@microsoft.com**20080117180227
1339 
1340 Oops -- missed this from previous commit; sorry
1341 
1342]
1343[Add -fspec-inline-join-points to SpecConstr
1344simonpj@microsoft.com**20080117150325
1345 
1346 This patch addresses a problem that Roman found in SpecConstr.  Consider:
1347 
1348 foo :: Maybe Int -> Maybe Int -> Int
1349 foo a b = let j b = foo a b
1350            in
1351            case b of
1352              Nothing -> ...
1353              Just n  -> case a of
1354                           Just m  -> ... j (Just (n+1)) ...
1355                           Nothing -> ... j (Just (n-1)) ...
1356 
1357 We want to make specialised versions for 'foo' for the patterns
1358        Nothing  (Just v)
1359        (Just a) (Just b)
1360 
1361 Two problems, caused by the join point j.  First, j does not
1362 scrutinise b, so j won't be specialised f for the (Just v) pattern.
1363 Second, j is defined where the free var 'a' is not evaluated.
1364 
1365 Both are solved by brutally inlining j at its call sites.  This risks
1366 major code bloat, but it's relatively quick to implement.  The flag
1367        -fspec-inline-join-points
1368 causes brutal inlining for a
1369        non-recursive binding
1370        of a function
1371        whose RHS contains calls
1372        of a recursive function
1373 
1374 The (experimental) flag is static for now, and I have not even
1375 documented it properly.
1376 
1377 
1378]
1379[Fix references to Filepath
1380Clemens Fruhwirth <clemens@endorphin.org>**20080117134139]
1381[Fix egregious error in earlier "Record evaluated-ness" patch
1382simonpj@microsoft.com**20080117134057]
1383[Eliminate warnings with -DDEBUG
1384simonpj@microsoft.com**20080117124921]
1385[Record evaluated-ness information correctly for strict constructors
1386simonpj@microsoft.com**20080117105256
1387 
1388 The add_evals code in Simplify.simplAlt had bit-rotted.  Example:
1389 
1390   data T a = T !a
1391   data U a = U !a
1392 
1393   foo :: T a -> U a
1394   foo (T x) = U x
1395 
1396 Here we should not evaluate x before building the U result, because
1397 the x argument of T is already evaluated.
1398 
1399 Thanks to Roman for finding this.
1400 
1401 
1402]
1403[In float-out, make sure we abstract over the type variables in the kind of a coercion
1404simonpj@microsoft.com**20080116153908
1405 
1406 I can't remember where this bug showed up, but we were abstracting over a
1407 coercion variable (co :: a ~ T), without also abstracting over 'a'.
1408 
1409 The fix is simple.
1410 
1411]
1412[Fix broken debug warning
1413simonpj@microsoft.com**20080116151818]
1414[Complain sensibly if you try to use scoped type variables in Template Haskell
1415simonpj@microsoft.com**20080116151612
1416 
1417 This fixes Trac #2024; worth merging onto 6.8 branch.
1418 
1419]
1420[Comments only
1421simonpj@microsoft.com**20080116150554]
1422[Extra instance for Outputable on 5-tuples
1423simonpj@microsoft.com**20080116150525]
1424[Fix the -frule-check pass
1425simonpj@microsoft.com**20080116141156
1426 
1427 Rules for imported things are now kept in the global rule base, not
1428 attached to the global Id.  The rule-check pass hadn't kept up.
1429 
1430 This should fix it.
1431 
1432]
1433[Add dyn-wrapper.c used as cross-plattform launch wrapper for executables using dynamic libraries in non-standard places
1434Clemens Fruhwirth <clemens@endorphin.org>**20080116220603]
1435[Use runPhase_MoveBinary also for generating a dynamic library wrapper
1436Clemens Fruhwirth <clemens@endorphin.org>**20080116220420]
1437[Remove -fhardwire-lib-paths in favour of -dynload sysdep
1438Clemens Fruhwirth <clemens@endorphin.org>**20080110121736]
1439[ghc-inplace defaults to -fhardwire-lib-paths. Change that to -dynload wrapped
1440Clemens Fruhwirth <clemens@endorphin.org>**20080110090839]
1441[Add -dynload flag as dynamic flag.
1442Clemens Fruhwirth <clemens@endorphin.org>**20080116205710]
1443[Add a missing import
1444Ian Lynagh <igloo@earth.li>**20080116174149]
1445[Fix Makefile generatin on Windows
1446Ian Lynagh <igloo@earth.li>**20080116162752]
1447[Fix slash direction on Windows with the new filePath code
1448Ian Lynagh <igloo@earth.li>**20080116154317]
1449[Fix typo
1450Ian Lynagh <igloo@earth.li>**20080116011953]
1451[The Core type-matcher should look through PredTypes
1452simonpj@microsoft.com**20080116145939
1453 
1454 The core type-matcher Unify.match was previouly using tcView to expand
1455 types, because it must treat newtypes as distinct from their representation.
1456 But that meant that it also treated the PredType {C Int} as distinct from
1457 its representation type (:TC Int).  And that in turn was causing a rule
1458 not to fire, because the argument types didn't match up.
1459 
1460 For this to happen we need to get a situation where we have
1461 
1462   a = :DC blah blah    -- Dictionary
1463   ....(f a).....
1464 
1465 Now a has type (:TC Int), bu the RULE for f expects an argument
1466 of type {C Int}.  Roman found that just this was happening.
1467 
1468 
1469 
1470 
1471]
1472[A bottoming function should have infinite arity
1473simonpj@microsoft.com**20080116145722
1474 
1475 I can't think how this one escaped for so long, but
1476        (error "foo")
1477 should have arityType ABot, just as 'error' itself does.
1478 
1479 This improves eta expansion.  I spotted it when looking at the function
1480 
1481   Data.Array.Parallel.Arr.BBArr.writeMBB
1482 
1483 in the ndp package.
1484 
1485 
1486]
1487[Add Main.dyn_o deployed into the RTS library dir to linking (see DLLNOTES for rational)
1488Clemens Fruhwirth <clemens@endorphin.org>**20080110091217]
1489[Refactor cross-plattform process spawning from ghc-inplace into shell-tools.c
1490Clemens Fruhwirth <clemens@endorphin.org>**20080110090721]
1491[More verbose error reporting in mk/target.mk
1492Clemens Fruhwirth <clemens@endorphin.org>**20071231170715]
1493[Fix generating dependencies for different ways now we use FilePath
1494Ian Lynagh <igloo@earth.li>**20080115204716
1495 We were making filenames like
1496 dist/build/GHC/Base.p_.o
1497 rather than
1498 dist/build/GHC/Base.p_o
1499]
1500[Fix utils/Util for debug build
1501mainland@eecs.harvard.edu**20080114190530]
1502[Give an error if view pattern syntax is used in an expression; fixes #2033
1503Ian Lynagh <igloo@earth.li>**20080114115031]
1504[FIX BUILD (Solaris): include fcntl.h for file operations
1505Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080115051844]
1506[Fix warning when USE_READLINE is unset
1507Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080115015014]
1508[Remove an extra ) that was breaking the build on Windows
1509Ian Lynagh <igloo@earth.li>**20080114103953]
1510[Fix warnings in utils/ListSetOps
1511Ian Lynagh <igloo@earth.li>**20080113150017]
1512[Fix warnings in utils/Panic
1513Ian Lynagh <igloo@earth.li>**20080113142939]
1514[Fix warnings in utils/UniqSet
1515Ian Lynagh <igloo@earth.li>**20080113142604]
1516[Fix warnings in utils/Maybes
1517Ian Lynagh <igloo@earth.li>**20080113142347]
1518[Fix warnings in utils/BufWrite
1519Ian Lynagh <igloo@earth.li>**20080113141630]
1520[Fix warnings in utils/FastTypes
1521Ian Lynagh <igloo@earth.li>**20080113141612
1522 Split off a FastBool module, to avoid a circular import with Panic
1523]
1524[Fix warnings in utils/OrdList
1525Ian Lynagh <igloo@earth.li>**20080113132042]
1526[Fix warnings in utils/FastMutInt
1527Ian Lynagh <igloo@earth.li>**20080113131830]
1528[Fix warnings in utils/State
1529Ian Lynagh <igloo@earth.li>**20080113131658]
1530[Only initialise readline if we are connected to a terminal
1531Ian Lynagh <igloo@earth.li>**20080113124107
1532 Patch from Bertram Felgenhauer <int-e@gmx.de>
1533]
1534[Fix warnings in utils/Util
1535Ian Lynagh <igloo@earth.li>**20080113005832]
1536[Fix warnings in utils/Bag.lhs
1537Ian Lynagh <igloo@earth.li>**20080113002037]
1538[Add GMP_INCLUDE_DIRS in a couple of places
1539Ian Lynagh <igloo@earth.li>**20080112234215
1540 Fixes the build on OpenBSD (trac #2009). Based on a patch from kili.
1541]
1542[Tweak whitespace in HsExpr
1543Ian Lynagh <igloo@earth.li>**20080112185753]
1544[Fix warnings in HsExpr
1545Ian Lynagh <igloo@earth.li>**20080112181444]
1546[FilePath fixes
1547Ian Lynagh <igloo@earth.li>**20080112172837]
1548[don't initialize readline needlessly
1549Ian Lynagh <igloo@earth.li>**20080112155413
1550 Readline.initialize spills some escape sequences to stdout for some terminal
1551 types, potentially spoiling  ghc -e  output. So don't initialize readline
1552 unless we're working interactively on a terminal.
1553 Patch from Bertram Felgenhauer <int-e@gmx.de>
1554]
1555[Fix whitespace
1556Ian Lynagh <igloo@earth.li>**20080112155214]
1557[Use System.FilePath
1558Ian Lynagh <igloo@earth.li>**20080112154459]
1559[Fix 2030: make -XScopedTypeVariables imply -XRelaxedPolyRec
1560simonpj@microsoft.com**20080110113133
1561 
1562 The type checker doesn't support lexically scoped type variables
1563 unless we are using the RelaxedPolyRec option.  Reasons: see
1564 Note [Scoped tyvars] in TcBinds.
1565 
1566 So I've changed DynFlags to add this implication, improved the
1567 documentation, and simplified the code in TcBinds somewhat.
1568 (It's longer but only because of comments!)
1569 
1570 
1571]
1572[Fix filename completion by adding trailing spaces/slashes manually.
1573judah.jacobson@gmail.com**20080110221928]
1574[More refactoring in getCoreToDo
1575Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109023747]
1576[Document -fsimplifier-phases
1577Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109022822]
1578[Add -fsimplifier-phases option
1579Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109022449
1580 
1581 It controls the number of simplifier phases run during optimisation. These are
1582 numbered from n to 1 (by default, n=2). Phase 0 is always run regardless of
1583 this flag. The flag is ignored with -O0 since (practically) no optimisation is
1584 performed in that case.
1585]
1586[Refactor getCoreToDo slightly
1587Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109014359]
1588[Fix Trac #2018: float-out was ignoring the kind of a coercion variable
1589simonpj@microsoft.com**20080107142601
1590 
1591 The float-out transformation must handle the case where a coercion
1592 variable is free, which in turn mentions type variables in its kind.
1593 Just like a term variable really.
1594 
1595 I did a bit of refactoring at the same time.
1596 
1597 Test is tc241
1598 
1599 MERGE to stable branch
1600 
1601]
1602[Make the treatment of equalities more uniform
1603simonpj@microsoft.com**20080107142306
1604 
1605 This patch (which is part of the fix for Trac #2018) makes coercion variables
1606 be handled more uniformly.  Generally, they are treated like dictionaries
1607 in the type checker, not like type variables, but in a couple of places we
1608 were treating them like type variables.  Also when zonking we should use
1609 zonkDictBndr not zonkIdBndr.
1610 
1611]
1612[Fix Trac #2017
1613simonpj@microsoft.com**20080107125819]
1614[Add -XImpredicativeTypes, and tighten up type-validity checking (cf Trac 2019)
1615simonpj@microsoft.com**20080107115451
1616 
1617 Somehow we didn't have a separate flag for impredicativity; now we do.
1618 
1619 Furthermore, Trac #2019 showed up a missing test for monotypes in data
1620 constructor return types.  And I realised that we were even allowing
1621 things like
1622        Num (forall a. a) => ...
1623 which we definitely should not. 
1624 
1625 This patch insists on monotypes in several places where we were (wrongly)
1626 too liberal before.
1627 
1628 Could be merged to 6.8 but no big deal.
1629 
1630 
1631]
1632[pass -no-user-package-conf to ghc-inplace
1633Simon Marlow <simonmar@microsoft.com>**20080104162840]
1634[Fix build: Recent instance shuffling left us with overlapping instances
1635Ian Lynagh <igloo@earth.li>**20080106221547]
1636[Add instructions for building docs to README
1637Ian Lynagh <igloo@earth.li>**20080106215723]
1638[A little refactoring of GenIfaceEq to make the Outputable instance into H98
1639simonpj@microsoft.com**20080104105450]
1640[Make the instance of DebugNodes more H98-like
1641simonpj@microsoft.com**20080104105409]
1642[change CmmActual, CmmFormal to use a data CmmHinted rather than tuple (#1405)
1643Isaac Dupree <id@isaac.cedarswampstudios.org>**20080104105339
1644 This allows the instance of UserOfLocalRegs to be within Haskell98, and IMHO
1645  makes the code a little cleaner generally.
1646 This is one small (though tedious) step towards making GHC's code more
1647  portable...
1648]
1649[generalize instance Outputable GenCmm to H98 (#1405)
1650Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226175915]
1651[move and generalize another instance (#1405)
1652Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226174904
1653 was instance Outputable CmmGraph
1654 type CmmGraph = LGraph Middle Last
1655 now instance (ctx) => Outputable (LGraph m l),
1656 in module with LGraph where it belongs
1657 This also let us reduce the context of DebugNodes to Haskell98,
1658 leaving that class's only extension being multi-parameter.
1659 (also Outputable (LGraph M Last) with M = ExtendWithSpills Middle
1660 was another redundant instance that was then removed)
1661]
1662[move and generalize an instance (#1405)
1663Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226171913
1664 UserOfLocalRegs (ZLast Last) isn't Haskell98, but it was just as
1665 good an instance to be UserOfLocalRegs a => UserOfLocalRegs (ZLast a)
1666]
1667[Do not consult -XGADTs flag when pattern matching on GADTs
1668simonpj@microsoft.com**20080104125814
1669 
1670 See Trac #2004, and Note [Flags and equational constraints] in TcPat.
1671 
1672]
1673[Add a note about primop wrappers (cf Trac #1509)
1674simonpj@microsoft.com**20080104125305]
1675[Document SOURCE pragma; clarify TH behavior for mutually-recurive modules (Trac #1012)
1676simonpj@microsoft.com**20080104121939]
1677[White space and comments only
1678simonpj@microsoft.com**20080104102236]
1679[Optionally use libffi to implement 'foreign import "wrapper"' (#793)
1680Simon Marlow <simonmar@microsoft.com>**20080103170236
1681 To enable this, set UseLibFFI=YES in mk/build.mk. 
1682 
1683 The main advantage here is that this reduces the porting effort for
1684 new platforms: libffi works on more architectures than our current
1685 adjustor code, and it is probably more heavily tested.  We could
1686 potentially replace our existing code, but since it is probably faster
1687 than libffi (just a guess, I'll measure later) and is already working,
1688 it doesn't seem worthwhile.
1689 
1690 Right now, you must have libffi installed on your system.  I used the
1691 one supplied by Debian/Ubuntu.
1692]
1693[remove trace apparently left in by accident
1694Simon Marlow <simonmar@microsoft.com>**20080103163805]
1695[Remove -funfolding-update-in-place flag documentation
1696simonpj@microsoft.com**20080103160036
1697 
1698 This flag does nothing, and should have been removed ages ago. (GHC
1699 no longer does update-in-place.)
1700 
1701 MERGE to 6.8 branch
1702 
1703]
1704[Fix warnings with newer gcc versions (I hope)
1705Simon Marlow <simonmar@microsoft.com>**20080103140338]
1706[FIX #1898: add a missing UNTAG_CLOSURE() in checkBlackHoles
1707Simon Marlow <simonmar@microsoft.com>**20080103112717]
1708[fix validation failure on non-i386
1709Simon Marlow <simonmar@microsoft.com>**20080102151740]
1710[expand "out of stack slots" panic to suggest using -fregs-graph, see #1993
1711Simon Marlow <simonmar@microsoft.com>**20080102150737]
1712[Warning clean, and fix compilation with GHC 6.2.x
1713Simon Marlow <simonmar@microsoft.com>**20080102114529]
1714[Add dead code elimination in cmmMiniInline
1715Simon Marlow <simonmar@microsoft.com>**20071220151734
1716 cmmMiniInline counts the uses of local variables, so it can easily
1717 eliminate assigments to unused locals.  This almost never gets
1718 triggered, as we don't generate any dead assignments, but it will be
1719 needed by a forthcoming cleanup in CgUtils.emitSwitch.
1720]
1721[implement prefix unboxed tuples (part of #1509)
1722Isaac Dupree <id@isaac.cedarswampstudios.org>**20080102124001]
1723[Link libgmp.a statically into libHSrts.dll on Windows
1724Clemens Fruhwirth <clemens@endorphin.org>**20080101154017]
1725[Embedd DLL name into its import library, so client libs reference them properly in .idata
1726Clemens Fruhwirth <clemens@endorphin.org>**20080101152157]
1727[Add package dependencies to link pass when building ghc package (required for windows DLL build)
1728Clemens Fruhwirth <clemens@endorphin.org>**20080101152101]
1729[Fix building libHSrts.dll by using ghc-pkg instead of grepping in base.cabal
1730Clemens Fruhwirth <clemens@endorphin.org>**20071230193952]
1731[Add installPackage to dependencies of make.library.* as it's used by the rule
1732Clemens Fruhwirth <clemens@endorphin.org>**20071229162707]
1733[Install dynlibs correctly
1734Clemens Fruhwirth <clemens@endorphin.org>**20071228184024
1735 
1736 Add dynlibdir target to config.mk.in, setting it to @libdir@.
1737 Invoke installPackage with dynlibdir at libraries/Makefile
1738 Make installPackage.hs hand dynlibdir to Cabal.
1739]
1740[import ord that alex secretly imported
1741Isaac Dupree <id@isaac.cedarswampstudios.org>**20071228175727]
1742[add missing import that happy -agc secretly provided
1743Isaac Dupree <id@isaac.cedarswampstudios.org>**20071227171335]
1744[correct type mistake, hidden by happy -agc coercions!
1745Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226140743]
1746[API changes for cabal-HEAD
1747Clemens Fruhwirth <clemens@endorphin.org>**20071227143114
1748 
1749 Rename interfacedir to haddockdir
1750 Change empty(Copy|Register)Flags to default(Copy|Register)Flags
1751 Wrap content of RegisterFlags with toFlag (the Flag type is actually just Maybe)
1752]
1753[Extend API for compiling to and from Core
1754Tim Chevalier <chevalier@alum.wellesley.edu>**20071225200411
1755 
1756 Added API support for compiling Haskell to simplified Core, and for
1757 compiling Core to machine code. The latter, especially, should be
1758 considered experimental and has only been given cursory testing. Also
1759 fixed warnings in DriverPipeline. Merry Christmas.
1760]
1761[When complaining about non-rigid context, give suggestion of adding a signature
1762simonpj@microsoft.com**20071224122217]
1763[Use command-dependent word break characters for tab completion in ghci.  Fixes bug #998.
1764judah.jacobson@gmail.com**20080109003606]
1765[Improve handling of newtypes (fixes Trac 1495)
1766simonpj@microsoft.com**20071221090406
1767 
1768 In a few places we want to "look through" newtypes to get to the
1769 representation type.  But we need to be careful that  we don't fall
1770 into an ininite loop with e.g.
1771        newtype T = MkT T
1772 
1773 The old mechansim for doing this was to have a field nt_rep, inside
1774 a newtype TyCon, that gave the "ultimate representation" of the type.
1775 But that failed for Trac 1495, which looked like this:
1776    newtype Fix a = Fix (a (Fix a))
1777    data I a = I a
1778 Then, expanding the type (Fix I) went on for ever.
1779 
1780 The right thing to do seems to be to check for loops when epxanding
1781 the *type*, rather than in the *tycon*.  This patch does that,
1782        - Removes nt_rep from TyCon
1783        - Make Type.repType check for loops
1784 See Note [Expanding newtypes] in Type.lhs.
1785 
1786 At the same time I also fixed a bug for Roman, where newtypes were not
1787 being expanded properly in FamInstEnv.topNormaliseType.  This function
1788 and Type.repType share a common structure.
1789 
1790 
1791        Ian, see if this merges easily to the branch
1792        If not, I don't think it's essential to fix 6.8
1793 
1794]
1795[Fix Trac #1981: seq on a type-family-typed expression
1796simonpj@microsoft.com**20071221085542
1797 
1798 We were crashing when we saw
1799        case x of DEFAULT -> rhs
1800 where x had a type-family type.  This patch fixes it.
1801 
1802 MERGE to the 6.8 branch.
1803 
1804 
1805]
1806[Comment only
1807simonpj@microsoft.com**20071220164621]
1808[Fix nasty recompilation bug in MkIface.computeChangedOccs
1809simonpj@microsoft.com**20071220164307
1810 
1811        MERGE to 6.8 branch
1812 
1813 In computeChangedOccs we look up the old version of a Name.
1814 But a WiredIn Name doesn't have an old version, because WiredIn things
1815 don't appear in interface files at all.
1816 
1817 Result: ghc-6.9: panic! (the 'impossible' happened)
1818   (GHC version 6.9 for x86_64-unknown-linux):
1819        lookupVers1 base:GHC.Prim chr#{v}
1820 
1821 This fixes the problem.  The patch should merge easily onto the branch.
1822 
1823 
1824]
1825[Fix Trac #1988; keep the ru_fn field of a RULE up to date
1826simonpj@microsoft.com**20071220131912
1827 
1828 The ru_fn field was wrong when we moved RULES from one Id to another.
1829 The fix is simple enough.
1830 
1831 However, looking at this makes me realise that the worker/wrapper stuff
1832 for recursive newtypes isn't very clever: we generate demand info but
1833 then don't properly exploit it. 
1834 
1835 This patch fixes the crash though.
1836 
1837]
1838[Add better panic message in getSRTInfo (Trac #1973)
1839simonpj@microsoft.com**20071220180335]
1840[Remove obselete code for update-in-place (which we no longer do)
1841simonpj@microsoft.com**20071220173432]
1842[Implement generalised list comprehensions
1843simonpj@microsoft.com**20071220111300
1844 
1845   This patch implements generalised list comprehensions, as described in
1846   the paper "Comprehensive comprehensions" (Peyton Jones & Wadler, Haskell
1847   Workshop 2007).  If you don't use the new comprehensions, nothing
1848   should change.
1849   
1850   The syntax is not exactly as in the paper; see the user manual entry
1851   for details.
1852   
1853   You need an accompanying patch to the base library for this stuff
1854   to work.
1855   
1856   The patch is the work of Max Bolingbroke [batterseapower@hotmail.com],
1857   with some advice from Simon PJ.
1858   
1859   The related GHC Wiki page is
1860     http://hackage.haskell.org/trac/ghc/wiki/SQLLikeComprehensions
1861 
1862]
1863[More bindist-publishing fixes and refactoring
1864Ian Lynagh <igloo@earth.li>**20071218144505]
1865[Fix publishing the docs
1866Ian Lynagh <igloo@earth.li>**20071216122544]
1867[FIX #1980: must check for ThreadRelocated in killThread#
1868Simon Marlow <simonmar@microsoft.com>**20071217164610]
1869[Eliminate external GMP dependencies
1870Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071217093839
1871 - Ensure the stage1 compiler uses ghc's own GMP library on Mac OS
1872 - Need to rebuild installPackage and ifBuildable with stage1 compiler as they
1873   go into bindists
1874]
1875[Include ~/Library/Frameworks in the framework searchpath
1876Ian Lynagh <igloo@earth.li>**20071217233457
1877 Patch from Christian Maeder
1878]
1879[Make ghcii.sh executable
1880Ian Lynagh <igloo@earth.li>**20071217195734]
1881[Don't rely on distrib/prep-bin-dist-mingw being executable
1882Ian Lynagh <igloo@earth.li>**20071217195554]
1883[Make MacFrameworks a subdirectory of distrib, since it isn't used in the normal building process.
1884judah.jacobson@gmail.com**20071217235735]
1885[always try to remove the new file before restoring the old one (#1963)
1886Simon Marlow <simonmar@microsoft.com>**20071214123345]
1887[Fix a bug in gen_contents_index
1888Ian Lynagh <igloo@earth.li>**20071212121154
1889 The library doc index thought that the docs were in $module.html, rather
1890 than $package/$module.html.
1891]
1892[Fix lifting of case expressions
1893Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071215000837
1894 
1895 We have to explicity check for empty arrays in each alternative as recursive
1896 algorithms wouldn't terminate otherwise.
1897]
1898[Use (UArr Int) instead of PArray_Int# in vectorisation
1899Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071215000739]
1900[Fix bug in VectInfo loading
1901Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214230914]
1902[Remove unused vectorisation built-in
1903Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214011015]
1904[Treat some standard data cons specially during vectorisation
1905Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213034855
1906 
1907 This is a temporary hack which allows us to vectorise literals.
1908]
1909[More vectorisation-related built ins
1910Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213034839]
1911[Track changes to package ndp
1912Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071212062714]
1913[Add vectorisation built-ins
1914Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071212040521]
1915[FIX #1963: catch Ctrl-C and clean up properly
1916Simon Marlow <simonmar@microsoft.com>**20071213154056]
1917[Document the new threshold flags
1918Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214003003]
1919[Separate and optional size thresholds for SpecConstr and LiberateCase
1920Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214002719
1921 
1922 This patch replaces -fspec-threshold by -fspec-constr-threshold and
1923 -fliberate-case-threshold. The thresholds can be disabled by
1924 -fno-spec-constr-threshold and -fno-liberate-case-threshold.
1925]
1926[Make HscTypes.tyThingId respond not panic on ADataCon
1927simonpj@microsoft.com**20071204152903]
1928[Use Unix format for RnPat (no other change)
1929simonpj@microsoft.com**20071213140532]
1930[Improve free-variable handling for rnPat and friends (fixes Trac #1972)
1931simonpj@microsoft.com**20071213140213
1932 
1933 As well as fixing the immediate problem (Trac #1972) this patch does
1934 a signficant simplification and refactoring of pattern renaming.
1935 
1936 Fewer functions, fewer parameters passed....it's all good.  But it
1937 took much longer than I expected to figure out.
1938 
1939 The most significant change is that the NameMaker type does *binding*
1940 as well as *making* and, in the matchNameMaker case, checks for unused
1941 bindings as well.  This is much tider.
1942 
1943 (No need to merge to the 6.8 branch, but no harm either.)
1944 
1945 
1946]
1947[Allow more than 3 simplifier iterations to be run in phase 0
1948Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213040835
1949 
1950 The number of iterations during the first run of phase 0 was erroneously
1951 hardcoded to 3. It should be *at least* 3 (see comments in code) but can be
1952 more.
1953]
1954[Document -ddump-simpl-phases
1955Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213040822]
1956[New flag: -ddump-simpl-phases
1957Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213040644
1958 
1959 This outputs the core after each simplifier phase (i.e., it produces less
1960 information that -ddump-simpl-iterations).
1961]
1962[Don't dump simplifier iterations with -dverbose-core2core
1963Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213034635
1964 
1965 SimonPJ says this is the correct behaviour. We still have
1966 -ddump-simpl-iterations.
1967]
1968["list --simple-output" should be quiet when there are no packages to list
1969Simon Marlow <simonmar@microsoft.com>**20071212102230
1970 
1971 Previously:
1972 
1973 $ ghc-pkg list --user --simple-output
1974 ghc-pkg: no matches
1975 $
1976 
1977 Now:
1978 
1979 $ ghc-pkg list --user --simple-output
1980 $
1981]
1982[Fix vectorisation bug
1983Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071206233015]
1984[Vectorisation-related built ins
1985Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071206040829]
1986[Teach vectorisation about some temporary conversion functions
1987Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071206032547]
1988[Vectorise case of unit correctly
1989Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205221305]
1990[Teach vectorisation about singletonP
1991Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205221240]
1992[Optimise desugaring of parallel array comprehensions
1993Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205221213]
1994[Teach vectorisation about tuple datacons
1995Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205050221]
1996[Track additions to package ndp
1997Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205042649]
1998[Track changes to package ndp
1999Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205033859]
2000[Use -framework-path flags during the cc phase.  Fixes trac #1975.
2001judah.jacobson@gmail.com**20071212201245]
2002[Improve pretty-printing of InstDecl
2003simonpj@microsoft.com**20071210083053
2004 
2005 Fixes Trac #1966.
2006 
2007]
2008[Comments only
2009Pepe Iborra <mnislaih@gmail.com>**20071208204815]
2010[Refactoring only
2011Pepe Iborra <mnislaih@gmail.com>**20071208195222
2012 
2013 Suspensions in the Term datatype used for RTTI
2014 always get assigned a Type, so there is no reason
2015 to juggle around with a (Maybe Type) anymore.
2016 
2017]
2018[Change the format used by :print to show the content of references
2019Pepe Iborra <mnislaih@gmail.com>**20071208193013
2020     
2021     This comes as result of the short discussion linked below.
2022     
2023     http://www.haskell.org/pipermail/cvs-ghc/2007-December/040049.html
2024 
2025]
2026[Help the user when she tries to do :history without :trace
2027Pepe Iborra <mnislaih@gmail.com>**20071208180918
2028 
2029 Teach GHCi to show a "perhaps you forgot to use :trace?" when
2030 it finds that the user is trying to retrieve an empty :history
2031 
2032]
2033[Prevent the binding of unboxed things by :print
2034Pepe Iborra <mnislaih@gmail.com>**20071208181830]
2035[Coercions from boxy splitters must be sym'ed in pattern matches
2036Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071208105018]
2037[Properly keep track of whether normalising given or wanted dicts
2038Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071207071302
2039 - The information of whether given or wanted class dictionaries where
2040   normalised by rewriting wasn't always correctly propagated in TcTyFuns,
2041   which lead to malformed dictionary bindings.
2042 - Also fixes a bug in TcPat.tcConPat where GADT equalities where emitted in
2043   the wrong position in case bindings (which led to CoreLint failures).
2044]
2045[TcPat.tcConPat uses equalities instead of GADT refinement
2046Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071120071208
2047 * This patch implements the use of equality constraints instead of GADT
2048   refinements that we have been discussing for a while.
2049 * It just changes TcPat.tcConPat.  It doesn't have any of the simplification
2050   and dead code removal that is possible due to this change.
2051 * At the moment, this patch breaks a fair number of GADT regression tests.
2052]
2053[Use installPackage for register --inplace as well as installing
2054Ian Lynagh <igloo@earth.li>**20071207234652
2055 We also need to do the GHC.Prim hack when registering inplace or the
2056 tests that use it fail.
2057]
2058[Fix the libraries Makefile
2059Ian Lynagh <igloo@earth.li>**20071205125015
2060     x && y
2061 is not the same as
2062     if x; then y; fi
2063 as the latter doesn't fail when x fails
2064]
2065[Copy hscolour.css into dist/... so it gets installed with the library docs
2066Ian Lynagh <igloo@earth.li>**20071205013703]
2067[Add the hscolour.css from hscolour 1.8
2068Ian Lynagh <igloo@earth.li>**20071205011733]
2069[BIN_DIST_INST_SUBDIR Needs to be defined in config.mk so ./Makefile can see it
2070Ian Lynagh <igloo@earth.li>**20071207121317]
2071[#include ../includes/MachRegs.h rather than just MachRegs.h
2072Ian Lynagh <igloo@earth.li>**20071205170335
2073 This fixes building on NixOS. I'm not sure why it worked everywhere else,
2074 but not on NixOS, before.
2075]
2076[Fix bindist creation: readline/config.mk is gone
2077Ian Lynagh <igloo@earth.li>**20071203123031]
2078[FIX #1843: Generate different instructions on PPC
2079Ian Lynagh <igloo@earth.li>**20071203123237
2080 The old ones caused lots of
2081     unknown scattered relocation type 4
2082 errors. Patch from Chris Kuklewicz.
2083]
2084[Refactor gen_contents_index
2085Ian Lynagh <igloo@earth.li>**20071207183538
2086 Also fixes it with Solaris's sh, spotted by Christian Maeder
2087]
2088[Use GHC.Exts rather than GHC.Prim
2089Ian Lynagh <igloo@earth.li>**20071202234222]
2090[Alter the base:GHC.Prim hack in installPackage, following changes in base
2091Ian Lynagh <igloo@earth.li>**20071202215719]
2092[Remove debug warning, and explain why
2093simonpj@microsoft.com**20071207170507]
2094[comment only
2095Simon Marlow <simonmar@microsoft.com>**20071206092422]
2096[comment typo
2097Simon Marlow <simonmar@microsoft.com>**20071206092412]
2098[add Outputable instance for OccIfaceEq
2099Simon Marlow <simonmar@microsoft.com>**20071206092403]
2100[Workaround for #1959: assume untracked names have changed
2101Simon Marlow <simonmar@microsoft.com>**20071206092349
2102 This fixes the 1959 test, but will do more recompilation than is
2103 strictly necessary (but only when -O is on).  Still, more
2104 recompilation is better than segfaults, link errors or other random
2105 breakage.
2106]
2107[FIX part of #1959: declaration versions were not being incremented correctly
2108Simon Marlow <simonmar@microsoft.com>**20071206084556
2109 We were building a mapping from ModuleName to [Occ] from the usage
2110 list, using the usg_mod field as the key.  Unfortunately, due to a
2111 very poor naming decision, usg_mod is actually the module version, not
2112 the ModuleName.  usg_name is the ModuleName.  Since Version is also an
2113 instance of Uniquable, there was no type error: all that happened was
2114 lookups in the map never succeeded.  I shall rename the fields of
2115 Usage in a separate patch.
2116 
2117 This doesn't completely fix #1959, but it gets part of the way there.
2118 
2119 I have to take partial blame as the person who wrote this fragment of
2120 code in late 2006 (patch "Interface file optimisation and removal of
2121 nameParent").
2122]
2123[move FP_FIND_ROOT after the "GHC is required" check
2124Simon Marlow <simonmar@microsoft.com>**20071205101814]
2125[FIX #1110: hackery also needed when running gcc for CPP
2126Simon Marlow <simonmar@microsoft.com>**20071205150230]
2127[Teach :print to follow references (STRefs and IORefs)
2128Pepe Iborra <mnislaih@gmail.com>**20071204105511
2129 
2130 Prelude Data.IORef> :p l
2131 l = (_t4::Maybe Integer) : (_t5::[Maybe Integer])
2132 Prelude Data.IORef> p <- newIORef l
2133 Prelude Data.IORef> :p p
2134 p = GHC.IOBase.IORef (GHC.STRef.STRef {((_t6::Maybe Integer) :
2135                                         (_t7::[Maybe Integer]))})
2136 Prelude Data.IORef> :sp p
2137 p = GHC.IOBase.IORef (GHC.STRef.STRef {(_ : _)})
2138 
2139 
2140 I used braces to denote the contents of a reference.
2141 Perhaps there is a more appropriate notation?
2142]
2143[refactoring only
2144Pepe Iborra <mnislaih@gmail.com>**20071202125400]
2145[Change --shared to -shared in Win32 DLL docs
2146simonpj@microsoft.com**20071204154023]
2147[protect console handler against concurrent access (#1922)
2148Simon Marlow <simonmar@microsoft.com>**20071204153918]
2149[Make eta reduction check more carefully for bottoms (fix Trac #1947)
2150simonpj@microsoft.com**20071204145803
2151 
2152 Eta reduction was wrongly transforming
2153        f = \x. f x
2154 to
2155        f = f
2156 
2157 Solution: don't trust f's arity information; instead look at its
2158 unfolding.  See Note [Eta reduction conditions]
2159 
2160 Almost all the new lines are comments!
2161 
2162 
2163]
2164[Improve inlining for INLINE non-functions
2165simonpj@microsoft.com**20071204114955
2166       
2167 (No need to merge to 6.8, but no harm if a subsequent patch needs it.)
2168 
2169 The proximate cause for this patch is to improve the inlining for INLINE
2170 things that are not functions; this came up in the NDP project.  See
2171 Note [Lone variables] in CoreUnfold.
2172 
2173 This caused some refactoring that actually made things simpler.  In
2174 particular, more of the inlining logic has moved from SimplUtils to
2175 CoreUnfold, where it belongs.
2176 
2177 
2178]
2179[fix race conditions in sandboxIO (#1583, #1922, #1946)
2180Simon Marlow <simonmar@microsoft.com>**20071204114444
2181 using the new block-inheriting forkIO (#1048)
2182]
2183[:cd with no argument goes to the user's home directory
2184Simon Marlow <simonmar@microsoft.com>**20071204113945
2185 Seems better than getting a confusing 'cannot find directory' exception.
2186]
2187[forkIO starts the new thread blocked if the parent is blocked (#1048)
2188Simon Marlow <simonmar@microsoft.com>**20071204110947]
2189[Improve eta reduction, to reduce Simplifier iterations
2190simonpj@microsoft.com**20071203150039
2191 
2192 I finally got around to investigating why the Simplifier was sometimes
2193 iterating so often.  There's a nice example in Text.ParserCombinators.ReadPrec,
2194 which produced:
2195 
2196 NOTE: Simplifier still going after 3 iterations; bailing out.  Size = 339
2197 NOTE: Simplifier still going after 3 iterations; bailing out.  Size = 339
2198 NOTE: Simplifier still going after 3 iterations; bailing out.  Size = 339
2199 
2200 No progress is being made.  It turned out that an interaction between
2201 eta-expansion, casts, and eta reduction was responsible. The change is
2202 small and simple, in SimplUtils.mkLam: do not require the body to be
2203 a Lam when floating the cast outwards. 
2204 
2205 I also discovered a missing side condition in the same equation, so fixing
2206 that is good too.  Now there is no loop when compiling ReadPrec.
2207 
2208 Should do a full nofib run though.
2209 
2210]
2211[Don't default to stripping binaries when installing
2212Ian Lynagh <igloo@earth.li>**20071202195817]
2213[Improve pretty-printing for Insts
2214simonpj@microsoft.com**20071128173125]
2215[Reorganise TcSimplify (again); FIX Trac #1919
2216simonpj@microsoft.com**20071128173146
2217 
2218 This was a bit tricky.  We had a "given" dict like (d7:Eq a); then it got
2219 supplied to reduceImplication, which did some zonking, and emerged with
2220 a "needed given" (d7:Eq Int). That got everything confused.
2221 
2222 I found a way to simplify matters significantly.  Now reduceContext
2223        - first deals with methods/literals/dictionaries
2224        - then deals with implications
2225 Separating things in this way not only made the bug go away, but
2226 eliminated the need for the recently-added "needed-givens" results returned
2227 by checkLoop.  Hurrah.
2228 
2229 It's still a swamp.  But it's a bit better.
2230 
2231]
2232[FIX #1914: GHCi forgot all the modules that were loaded before an error
2233Simon Marlow <simonmar@microsoft.com>**20071130130734]
2234[FIX #1744: ignore the byte-order mark at the beginning of a file
2235Simon Marlow <simonmar@microsoft.com>**20071130101100]
2236[FIX Trac #1935: generate superclass constraints for derived classes
2237simonpj@microsoft.com**20071128150541
2238 
2239 This bug only reports a problem with phantom types, but actually
2240 there was quite a long-standing and significant omission in the
2241 constraint generation for derived classes.  See
2242 Note [Superclasses of derived instance] in TcDeriv.
2243 
2244 The test deriving-1935 tests both cases.
2245 
2246 
2247]
2248[Print a bit more info in VarBinds (no need to merge)
2249simonpj@microsoft.com**20071128150354]
2250[Check for duplicate bindings in CoreLint
2251simonpj@microsoft.com**20071128150214]
2252[add comment
2253Simon Marlow <simonmar@microsoft.com>**20071128111417]
2254[FIX #1916: don't try to convert float constants to int in CMM optimizer
2255Bertram Felgenhauer <int-e@gmx.de>**20071122095513]
2256[give a more useful message when the static flags have not been initialised (#1938)
2257Simon Marlow <simonmar@microsoft.com>**20071127135435]
2258[Rebuild utils with the stage1 compiler when making a bindist; fixes trac #1860
2259Ian Lynagh <igloo@earth.li>**20071127203959
2260 This is a bit unpleasant, as "make binary-dist" really shouldn't actually
2261 build anything, but it works.
2262]
2263[Remove the --print-docdir flag
2264Ian Lynagh <igloo@earth.li>**20071127195605
2265 It wasn't doing the right thing for bindists. Let's rethink...
2266]
2267[FIX #1925: the interpreter was not maintaining tag bits correctly
2268Simon Marlow <simonmar@microsoft.com>**20071127122614
2269 See comment for details
2270]
2271[add missing instruction: ALLOC_AP_NOUPD
2272Simon Marlow <simonmar@microsoft.com>**20071127122604]
2273[Check tag bits on the fun pointer of a PAP
2274Simon Marlow <simonmar@microsoft.com>**20071126160420]
2275[canonicalise the path to HsColour
2276Simon Marlow <simonmar@microsoft.com>**20071126141614]
2277[Consistently put www. on the front of haskell.org in URLs
2278Ian Lynagh <igloo@earth.li>**20071126215256]
2279[Fix some more URLs
2280Ian Lynagh <igloo@earth.li>**20071126214147]
2281[Tweak some URLs
2282Ian Lynagh <igloo@earth.li>**20071126194148]
2283[Fix some links
2284Ian Lynagh <igloo@earth.li>**20071126184406]
2285[Add scripts for building GMP.framework and GNUreadline.framework (OS X).
2286judah.jacobson@gmail.com**20071127072951]
2287[Copy gmp stamps into bindists, so we don't try and rebuild gmp
2288Ian Lynagh <igloo@earth.li>**20071125211919]
2289[On Windows, Delete the CriticalSection's we Initialize
2290Ian Lynagh <igloo@earth.li>**20071125125845]
2291[On Windows, add a start menu link to the flag reference
2292Ian Lynagh <igloo@earth.li>**20071125124429]
2293[Remove html/ from the paths we put in the start menu on Windows
2294Ian Lynagh <igloo@earth.li>**20071125124150]
2295[MERGED: Make ":" in GHCi repeat the last command
2296Ian Lynagh <igloo@earth.li>**20071125122020
2297 Ian Lynagh <igloo@earth.li>**20071124231857
2298  It used to be a synonym for ":r" in 6.6.1, but this wasn't documented or
2299  known about by the developers. In 6.8.1 it was accidentally broken.
2300  This patch brings it back, but as "repeat the last command", similar to
2301  pressing enter in gdb. This is almost as good for people who want it to
2302  reload, and means that it can also be used to repeat commands like :step.
2303]
2304[MERGED: Put library docs in a $pkg, rather than $pkgid, directory; fixes trac #1864
2305Ian Lynagh <igloo@earth.li>**20071124212305
2306 Ian Lynagh <igloo@earth.li>**20071124171220
2307]
2308[Don't make a library documentation prologue
2309Ian Lynagh <igloo@earth.li>**20071124211943
2310 It's far too large now, and no-one complained when 6.8.1 didn't have one.
2311]
2312[Don't put package version numbers in links in index.html
2313Ian Lynagh <igloo@earth.li>**20071124211629]
2314[Define install-strip in Makefile
2315Ian Lynagh <igloo@earth.li>**20071124205037]
2316[Define install-strip in distrib/Makefile
2317Ian Lynagh <igloo@earth.li>**20071124204803]
2318[Install gmp from bindists; fixes trac #1848
2319Ian Lynagh <igloo@earth.li>**20071124185240]
2320[(native gen) fix code generated for GDTOI on x86_32
2321Bertram Felgenhauer <int-e@gmx.de>**20071121063942
2322 See trac #1910.
2323]
2324[Copy the INSTALL hack from mk/config.mk.in into distrib/Makefile-bin-vars.in
2325Ian Lynagh <igloo@earth.li>**20071124163028
2326 configure will set INSTALL to ./install-sh if it can't find it in the path,
2327 so we need to replace the . with the path to our root.
2328]
2329[Make install-sh executable /before/ we try to find it
2330Ian Lynagh <igloo@earth.li>**20071124162450]
2331[Document --info in the +RTS -? help
2332Ian Lynagh <igloo@earth.li>**20071123204352]
2333[MERGED: If we have hscolour then make source code links in teh haddock docs
2334Ian Lynagh <igloo@earth.li>**20071123233113
2335 Fri Nov 23 13:15:59 PST 2007  Ian Lynagh <igloo@earth.li>
2336]
2337[Tidy and trim the type environment in mkBootModDetails
2338simonpj@microsoft.com**20071123153519
2339 
2340 Should fix Trac #1833
2341 
2342 We were failing to trim the type envt in mkBootModDetails, so several
2343 functions all called (*), for example, were getting into the interface.
2344 Result chaos.  It only actually bites when we do the retyping-loop thing,
2345 which is why it's gone so long without a fix.
2346 
2347 
2348]
2349[refactor: HscNothing and boot modules do not need desugaring
2350Simon Marlow <simonmar@microsoft.com>**20071123135237]
2351[FIX #1910: fix code generated for GDTOI on x86_32
2352Bertram Felgenhauer <int-e@gmx.de>*-20071121102627]
2353[Properly ppr InstEqs in wanteds of implication constraints
2354Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071122093002]
2355[FIX #1910: fix code generated for GDTOI on x86_32
2356Bertram Felgenhauer <int-e@gmx.de>**20071121102627]
2357[Add built-in Double operations to vectorisation
2358Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071122002517]
2359[Teach vectorisation about Double
2360Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071121054932]
2361[Vectorise polyexprs with notes
2362Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071121053102]
2363[Make rebindable do-notation behave as advertised
2364simonpj@microsoft.com**20071121174914
2365 
2366 Adopt Trac #1537.  The patch ended up a bit bigger than I expected,
2367 so I suggest we do not merge this into the 6.8 branch.  But there
2368 is no funadamental reason why not.
2369 
2370 With this patch, rebindable do-notation really does type as if you
2371 had written the original (>>) and (>>=) operations in desguared form.
2372 
2373 I ended up refactoring some of the (rather complicated) error-context
2374 stuff in TcUnify, by pushing an InstOrigin into tcSubExp and its
2375 various calls. That means we could get rid of tcFunResTy, and the
2376 SubCtxt type.  This should improve error messages slightly
2377 in complicated situations, because we have an Origin to hand
2378 to instCall (in the (isSigmaTy actual_ty) case of tc_sub1).
2379 
2380 Thanks to Pepe for the first draft of the patch.
2381 
2382]
2383[Add DEBUG-only flag -dsuppress-uniques to suppress printing of uniques
2384simonpj@microsoft.com**20071116152446
2385 
2386 This is intended only for debugging use: it makes it easier to
2387 compare two variants without the variations between uniques mattering.
2388 
2389 (Of course, you can't actually feed the output to the C compiler
2390 or assembler and expect anything sensible to happen!)
2391 
2392]
2393[Add -dcore-lint when validating libraries
2394simonpj@microsoft.com**20071105164733]
2395[Fix Trac #1913: check data const for derived types are in scope
2396simonpj@microsoft.com**20071121151428
2397 
2398 When deriving an instance, the data constructors should all be in scope.
2399 This patch checks the condition.
2400 
2401 
2402]
2403[Fix Trac #1909: type of map in docs
2404simonpj@microsoft.com**20071120160152]
2405[Move file locking into the RTS, fixing #629, #1109
2406Simon Marlow <simonmar@microsoft.com>**20071120140859
2407 File locking (of the Haskell 98 variety) was previously done using a
2408 static table with linear search, which had two problems: the array had
2409 a fixed size and was sometimes too small (#1109), and performance of
2410 lockFile/unlockFile was suboptimal due to the linear search.
2411 Also the algorithm failed to count readers as required by Haskell 98
2412 (#629).
2413 
2414 Now it's done using a hash table (provided by the RTS).  Furthermore I
2415 avoided the extra fstat() for every open file by passing the dev_t and
2416 ino_t into lockFile.  This and the improvements to the locking
2417 algorithm result in a healthy 20% or so performance increase for
2418 opening/closing files (see openFile008 test).
2419]
2420[FIX Trac #1825: standalone deriving Typeable
2421simonpj@microsoft.com**20071120125732
2422 
2423 Standalone deriving of typeable now requires you to say
2424        instance Typeable1 Maybe
2425 which is exactly the shape of instance decl that is generated
2426 by a 'deriving( Typeable )' clause on the data type decl.
2427 
2428 This is a bit horrid, but it's the only consistent way, at least
2429 for now.  If you say something else, the error messages are helpful.
2430 
2431 MERGE to 6.8 branch
2432 
2433]
2434[FIX #1715: egregious bug in ifaceDeclSubBndrs
2435simonpj@microsoft.com**20071120111723
2436 
2437 ifaceDeclSubBndrs didn't have an IfaceSyn case; but with type
2438 families an IfaceSyn can introduce subordinate binders.  Result:
2439 chaos.
2440 
2441 The fix is easy though.  Merge to 6.8 branch.
2442 
2443 
2444]
2445[Always do 'setup makefile' before building each library
2446Simon Marlow <simonmar@microsoft.com>**20071120103329
2447 This forces preprocessing to happen, which is necessary if any of the
2448 .hsc files have been modified.  Without this change, a 'setup
2449 makefile' would be required by hand after a .hsc file changed.
2450 Fortunately 'setup makefile' isn't much extra work, and I've made it
2451 not overwrite GNUmakefile if it hasn't changed, which avoids
2452 recalculating the dependencies each time.
2453]
2454[FIX #1847 (improve :browse! docs, fix unqual)
2455claus.reinke@talk21.com**20071108013147
2456 
2457 - add example to docs, explain how to interpret
2458   output of `:browse! Data.Maybe`
2459 - print unqualified names according to current
2460   context, not the context of the target module
2461 
2462]
2463[Track changes to package ndp
2464Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071120033716]
2465[Temporary hack for passing PArrays from unvectorised to vectorised code
2466Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071120024545]
2467[Bind NDP stuff to [:.:] arrays
2468Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119020302]
2469[Don't treat enumerations specially during vectorisation for the moment
2470Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119013729]
2471[Fix bugs in vectorisation of case expressions
2472Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119013714]
2473[More built-in NDP combinators
2474Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119012205]
2475[New vectorisation built-ins
2476Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118051940]
2477[Fix bug in conversion unvect/vect
2478Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118051926]
2479[Extend built-in vectorisation environments
2480Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118045219]
2481[Fix bug in generation of environments for vectorisation
2482Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118045203]
2483[Add builtin var->var mapping to vectorisation
2484Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118042605]
2485[Extend vectorisation built-in mappings with datacons
2486Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118034351]
2487[Change representation of parallel arrays of enumerations
2488Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118033355]
2489[Add vectorisation-related builtin
2490Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118031513]
2491[Teach vectorisation about Bool
2492Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117042714]
2493[Incomplete support for boxing during vectorisation
2494Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117040739]
2495[Make sure some TyCons always vectorise to themselves
2496Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117040537]
2497[Simple conversion vectorised -> unvectorised
2498Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117023029]
2499[Fix bug in case vectorisation
2500Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117015014]
2501[Vectorisation of algebraic case expressions
2502Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116074814]
2503[More vectorisation-related built-ins
2504Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116061831]
2505[Vectorisation utilities
2506Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116051037]
2507[Add vectorisation built-ins
2508Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116050959]
2509[Fix vectorisation of binders in case expressions
2510Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116021833]
2511[Two small typos in the flags summary (merge to 6.8 branch)
2512simonpj@microsoft.com**20071119134639]
2513[Improve the situation for Trac #959: civilised warning instead of a trace msg
2514simonpj@microsoft.com**20071119122938
2515 
2516 This doesn't fix the root cause of the bug, but it makes the report
2517 more civilised, and points to further info.
2518 
2519]
2520[FIX Trac #1806: test for correct arity for datacon in infix pattern patch
2521simonpj@microsoft.com**20071119114301
2522 
2523 Happily the fix is easy; pls merge
2524 
2525]
2526[Accept x86_64-*-freebsd* as well as amd64-*-freebsd* in configure.ac
2527Ian Lynagh <igloo@earth.li>**20071117154502
2528 Patch from Brian P. O'Hanlon
2529]
2530[Attempt at fixing #1873, #1360
2531Simon Marlow <simonmar@microsoft.com>**20071116152148
2532 
2533 I think I figured out a reasonable way to manage the GHCi context,
2534 comments welcome.
2535 
2536 Rule 1: external package modules in the context are persistent.  That
2537 is, when you say 'import Data.Maybe' it survives over :load, :add,
2538 :reload and :cd.
2539 
2540 Rule 2: :load and :add remove all home-package modules from the
2541 context and add the rightmost target, as a *-module if possible.  This
2542 is as before, and makes sense for :load because we're starting a new
2543 program; the old home-package modules don't make sense any more.  For
2544 :add, it usually does what you want, because the new target will
2545 become the context.
2546 
2547 Rule 3: any modules from the context that fail to load during a
2548 :reload are remembered, and re-added to the context at the next
2549 successful :reload.
2550 
2551 Claus' suggestion about adding the "remembered" modules to the prompt
2552 prefixed with a ! is implemented but commented out.  I couldn't
2553 decide whether it was useful or confusing.
2554 
2555 One difference that people might notice is that after a :reload where
2556 there were errors, GHCi would previously dump you in the most recent
2557 module that it loaded.  Now it dumps you in whatever subset of the
2558 current context still makes sense, and in the common case that will
2559 probably be {Prelude}.
2560]
2561[Wibble to fix Trac #1901 (shorten messsage slightly)
2562simonpj@microsoft.com**20071116150341]
2563[Improve links from flag reference to the relevant section; and improve doc of RankN flags
2564simonpj@microsoft.com**20071116145816]
2565[FIX Trac #1901: check no existential context in H98 mode
2566simonpj@microsoft.com**20071116145609]
2567[Improve documentation of data type declarations (Trac #1901)
2568simonpj@microsoft.com**20071116081841]
2569[Change the command-line semantics for query commands
2570Simon Marlow <simonmar@microsoft.com>**20071116132046
2571 
2572 From the help text:
2573 
2574   Commands that query the package database (list, latest, describe,
2575   field) operate on the list of databases specified by the flags
2576   --user, --global, and --package-conf.  If none of these flags are
2577   given, the default is --global --user.
2578 
2579 This makes it possible to query just a single database (e.g. the
2580 global one without the user one), which needed tricks to accomplish
2581 before.
2582]
2583[use "ghc-pkg latest --global" instead of "ghc-pkg list --simple-output"
2584Simon Marlow <simonmar@microsoft.com>**20071116122018
2585 The former now does the right thing: it uses the global database only,
2586 and picks the most recent package with the given name.
2587]
2588[Disallow installing packages whose names  differ in case only.
2589Simon Marlow <simonmar@microsoft.com>**20071116121153
2590 --force overrides.  Requested by Duncan Coutts, with a view to
2591 treating package names as case-insensitive in the future.
2592]
2593[FIX BUILD (with GHC 6.2.x): update .hi-boot file
2594Simon Marlow <simonmar@microsoft.com>**20071116101227]
2595[FIX #1828: installing to a patch with spaces in
2596Simon Marlow <simonmar@microsoft.com>**20071115155747
2597 We have to pass the path to gcc when calling windres, which itself
2598 might have spaces in.  Furthermore, we have to pass the path to gcc's
2599 tools to gcc.  This means getting the quoting right, and after much
2600 experimentation and reading of the windres sources I found something
2601 that works: passing --use-temp-files to windres makes it use its own
2602 implementation of quoting instead of popen(), and this does what we
2603 want.  Sigh.
2604]
2605[on Windows, install to a directory with spaces (test for #1828)
2606Simon Marlow <simonmar@microsoft.com>**20071115155327]
2607[FIX #1679: crash on returning from a foreign call
2608Simon Marlow <simonmar@microsoft.com>**20071115131635
2609 We forgot to save a pointer to the BCO over the foreign call.  Doing
2610 enough allocation and GC during the call could provoke a crash.
2611]
2612[Avoid the use of unversioned package dependencies
2613Simon Marlow <simonmar@microsoft.com>**20071115103249
2614 Fortunately "ghc-pkg list $pkg --simple-output" is a good way to add
2615 the version number.
2616]
2617[FIX #1596 (remove deprecated --define-name)
2618Simon Marlow <simonmar@microsoft.com>**20071114165323
2619 Also remove the old command-line syntax for ghc-pkg, which was not
2620 documented.  Do not merge.
2621]
2622[FIX #1837: remove deprecated support for unversioned dependencies (do not merge)
2623Simon Marlow <simonmar@microsoft.com>**20071114161044
2624 
2625]
2626[wibble
2627Pepe Iborra <mnislaih@gmail.com>**20071114233356]
2628[Make pprNameLoc more robust in absence of loc information
2629Pepe Iborra <mnislaih@gmail.com>**20071114233343]
2630[Try to manage the size of the text rendered for ':show bindings'
2631Pepe Iborra <mnislaih@gmail.com>**20071114231601]
2632[Make the Term ppr depth aware
2633Pepe Iborra <mnislaih@gmail.com>**20071114183417]
2634[Use paragraph fill sep where possible
2635Pepe Iborra <mnislaih@gmail.com>**20071114181233]
2636[Make SpecConstr work again
2637simonpj@microsoft.com**20071115084242
2638 
2639 In a typo I'd written env instead of env', and as a result RULES are
2640 practically guaranteed not to work in a recursive group.  This pretty
2641 much kills SpecConstr in its tracks!
2642 
2643 Well done Kenny Lu for spotting this.  The fix is easy.
2644 
2645 Merge into 6.8 please.
2646 
2647 
2648 
2649]
2650[Documentation only - fix typo in flags reference
2651Tim Chevalier <chevalier@alum.wellesley.edu>**20071115055748]
2652[Avoid making Either String an instance of Monad in the Haddock parser
2653David Waern <david.waern@gmail.com>**20071114204050]
2654[FIX 1463 (implement 'ghc-pkg find-module')
2655claus.reinke@talk21.com**20071109162652
2656 
2657 - the ticket asks for a module2package lookup in ghc-pkg
2658   (this would be useful to have in cabal, as well)
2659 
2660 - we can now ask which packages expose a module we need,
2661   eg, when preparing a cabal file or when getting errors
2662   after package reorganisations:
2663 
2664   $ ./ghc-pkg-inplace find-module Var
2665   c:/fptools/ghc/driver/package.conf.inplace:
2666       (ghc-6.9.20071106)
2667   
2668   $ ./ghc-pkg-inplace find-module Data.Sequence
2669   c:/fptools/ghc/driver/package.conf.inplace:
2670       containers-0.1
2671 
2672 - implemented as a minor variation on listPackages
2673 
2674 (as usual, it would be useful if one could combine
2675 multiple queries into one)
2676 
2677]
2678[remove --define-name from the --help usage message (#1596)
2679Simon Marlow <simonmar@microsoft.com>**20071114153417
2680 
2681]
2682[FIX #1837: emit deprecated message for unversioned dependencies
2683Simon Marlow <simonmar@microsoft.com>**20071114153010]
2684[Fix #782, #1483, #1649: Unicode GHCi input
2685Simon Marlow <simonmar@microsoft.com>**20071114151411
2686 GHCi input is now treated universally as UTF-8, except for the Windows
2687 console where we do the correct conversion from the current code
2688 page (see System.Win32.stringToUnicode).
2689 
2690 That leaves non-UTF-8 locales on Unix as unsupported, but (a) we only
2691 accept source files in UTF-8 anyway, and (b) UTF-8 is quite ubiquitous
2692 as the default locale.
2693 
2694]
2695[Fix build
2696David Waern <david.waern@gmail.com>**20071114125842
2697 I had forgot to update HaddockLex.hi-boot-6, so the build with 6.2.2
2698 failed. This fixes that.
2699]
2700[FIX Trac 1662: actually check for existentials in proc patterns
2701simonpj@microsoft.com**20071114112930
2702 
2703 I'd fixed the bug for code that should be OK, but had forgotten to
2704 make the test for code that should be rejected!
2705 
2706 Test is arrowfail004
2707 
2708]
2709[FIX Trac 1888; duplicate INLINE pragmas
2710simonpj@microsoft.com**20071114104701
2711 
2712 There are actually three things here
2713 - INLINE pragmas weren't being pretty-printed properly
2714 - They were being classified into too-narrow boxes by eqHsSig
2715 - They were being printed in to much detail by hsSigDoc
2716 
2717 All easy.  Test is rnfail048.
2718 
2719]
2720[Run the -frule-check pass more often (when asked)
2721simonpj@microsoft.com**20071114104632]
2722[GHCi debugger: added a new flag, -fno-print-binding-contents
2723Pepe Iborra <mnislaih@gmail.com>**20071113174539
2724 
2725 The contents of bindings show at breakpoints and by :show bindings
2726 is rendered using the same printer that :print uses.
2727 But sometimes the output it gives spans over too many lines and the
2728 user may want to be able to disable it.
2729]
2730[Fix Trac 1865: GHCi debugger crashes with :print
2731Pepe Iborra <mnislaih@gmail.com>**20071113170113]
2732[Replaced two uses of head b explicit pattern matching
2733Pepe Iborra <mnislaih@gmail.com>**20071013113136]
2734[Print binding contents in :show bindings
2735Pepe Iborra <mnislaih@gmail.com>**20071006123952]
2736[ Leftovers from the 1st GHCi debugger prototype
2737Pepe Iborra <mnislaih@gmail.com>**20071004204718]
2738[Following an indirection doesn't count as a RTTI step
2739Pepe Iborra <mnislaih@gmail.com>**20070928091941]
2740[FIX #1653 (partially): add -X flags to completion for :set
2741Simon Marlow <simonmar@microsoft.com>**20071113153257]
2742[Merge from Haddock: Add <<url>> for images
2743David Waern <david.waern@gmail.com>**20071112220537
2744 A merge of this patch:
2745 
2746   Mon Aug  7 16:22:14 CEST 2006  Simon Marlow <simonmar@microsoft.com>
2747     * Add <<url>> for images
2748     Submitted by: Lennart Augustsson
2749 
2750 Please merge to the 6.8.2 branch.
2751]
2752[Improve documentation of INLINE, esp its interactions with other transformations
2753simonpj@microsoft.com**20071112160240]
2754[Comment re Trac #1220
2755simonpj@microsoft.com**20071112154109]
2756[Merge from Haddock: Modify lexing of /../
2757David Waern <david.waern@gmail.com>**20071112023856
2758 
2759   Tue Aug 28 11:19:54 CEST 2007  Simon Marlow <simonmar@microsoft.com>
2760     * Modify lexing of /../
2761     This makes /../ more like '..', so that a single / on a line doesn't
2762     trigger a parse error.  This should reduce the causes of accidental
2763     parse errors in Haddock comments; apparently stray / characters are
2764     a common source of failures.
2765 
2766 Please merge this to the 6.8.2 branch.
2767]
2768[Merge from Haddock: allow blank lines inside code blocks
2769David Waern <david.waern@gmail.com>**20071112013439
2770 
2771   Tue Jan  9 14:14:34 CET 2007  Simon Marlow <simonmar@microsoft.com>
2772     * allow blank lines inside a @...@ code block
2773 
2774 Please merge this to the 6.8.2 branch
2775]
2776[Merge of a patch from the old Haddock branch:
2777David Waern <david.waern@gmail.com>**20071112013143
2778 
2779   Fri Jan  5 12:13:41 CET 2007  Simon Marlow <simonmar@microsoft.com>
2780     * Fix up a case of extra vertical space after a code block
2781 
2782 Please merge this to the 6.8.2 branch
2783]
2784[Remove ex-extralibs from libraries/Makefile
2785Ian Lynagh <igloo@earth.li>**20071111213618]
2786[Remove the X11 and HGL libraries from extralibs
2787Ian Lynagh <igloo@earth.li>**20071111213447
2788 Don Stewart, X11 maintainer, requested we remove X11, and HGL depends on it
2789 on Linux (and we don't try to build HGL on Windows).
2790]
2791[arrows is no longer an extralib
2792Ian Lynagh <igloo@earth.li>**20071027123656]
2793[Turn -fprint-bind-result off by default
2794Ian Lynagh <igloo@earth.li>**20071111001126]
2795[TAG 2007-11-11
2796Ian Lynagh <igloo@earth.li>**20071111161540]
2797Patch bundle hash:
27987a73ae6d871efc7290fd3531e7cc98bd9521c522