Ticket #4902: arraysizeof.dpatch

File arraysizeof.dpatch, 72.1 KB (added by pumpkin, 2 years ago)
Line 
12 patches for repository http://darcs.haskell.org/ghc:
2
3Wed Jan 26 00:15:54 EST 2011  Daniel Peebles <pumpkingod@gmail.com>
4  * Add sizeof(Mutable)Array# primitives
5
6Tue Feb  1 01:30:17 EST 2011  Daniel Peebles <pumpkingod@gmail.com>
7  * Fix Array sizeof primops to use the correct offset (which happens to be 0, so it worked before anyway). Makes us more future-proof, at least
8
9
10New patches:
11
12[Add sizeof(Mutable)Array# primitives
13Daniel Peebles <pumpkingod@gmail.com>**20110126051554
14 Ignore-this: ae17d94dbb86d6e1ffa0a489da842f78
15] {
16hunk ./compiler/codeGen/CgPrimOp.hs 214
17 emitPrimOp [r] IndexArrayOp [obj,ix]   _  = doReadPtrArrayOp r obj ix
18 emitPrimOp []  WriteArrayOp [obj,ix,v] _  = doWritePtrArrayOp obj ix v
19 
20+emitPrimOp [res] SizeofArrayOp [arg] _
21+   = stmtC $ CmmAssign (CmmLocal res) (cmmLoadIndexW arg fixedHdrSize bWord)
22+emitPrimOp [res] SizeofMutableArrayOp [arg] live
23+   = emitPrimOp [res] SizeofArrayOp [arg] live
24+
25 -- IndexXXXoffAddr
26 
27 emitPrimOp res IndexOffAddrOp_Char      args _ = doIndexOffAddrOp (Just mo_u_8ToWord) b8 res args
28hunk ./compiler/codeGen/StgCmmPrim.hs 289
29 emitPrimOp [r] IndexArrayOp [obj,ix]    = doReadPtrArrayOp r obj ix
30 emitPrimOp []  WriteArrayOp [obj,ix,v]  = doWritePtrArrayOp obj ix v
31 
32+emitPrimOp [res] SizeofArrayOp [arg]
33+   = emit $    mkAssign (CmmLocal res) (cmmLoadIndexW arg fixedHdrSize bWord)
34+emitPrimOp [res] SizeofMutableArrayOp [arg]
35+   = emitPrimOp [res] SizeofArrayOp [arg]
36+
37 -- IndexXXXoffAddr
38 
39 emitPrimOp res IndexOffAddrOp_Char      args = doIndexOffAddrOp (Just mo_u_8ToWord) b8 res args
40hunk ./compiler/prelude/primops.txt.pp 603
41    with
42    has_side_effects = True
43 
44+primop  SizeofArrayOp "sizeofArray#" GenPrimOp
45+   Array# a -> Int#
46+   {Return the number of elements in the array.}
47+
48+primop  SizeofMutableArrayOp "sizeofMutableArray#" GenPrimOp
49+   MutableArray# s a -> Int#
50+   {Return the number of elements in the array.}
51+
52 primop  IndexArrayOp "indexArray#" GenPrimOp
53    Array# a -> Int# -> (# a #)
54    {Read from specified index of immutable array. Result is packaged into
55}
56[Fix Array sizeof primops to use the correct offset (which happens to be 0, so it worked before anyway). Makes us more future-proof, at least
57Daniel Peebles <pumpkingod@gmail.com>**20110201063017
58 Ignore-this: 8e79c3f6f80c81b4160a31e80e4ed29d
59] {
60hunk ./compiler/codeGen/CgPrimOp.hs 215
61 emitPrimOp []  WriteArrayOp [obj,ix,v] _  = doWritePtrArrayOp obj ix v
62 
63 emitPrimOp [res] SizeofArrayOp [arg] _
64-   = stmtC $ CmmAssign (CmmLocal res) (cmmLoadIndexW arg fixedHdrSize bWord)
65+   = stmtC $ CmmAssign (CmmLocal res) (cmmLoadIndexW arg (fixedHdrSize + oFFSET_StgMutArrPtrs_ptrs) bWord)
66 emitPrimOp [res] SizeofMutableArrayOp [arg] live
67    = emitPrimOp [res] SizeofArrayOp [arg] live
68 
69hunk ./compiler/codeGen/StgCmmPrim.hs 290
70 emitPrimOp []  WriteArrayOp [obj,ix,v]  = doWritePtrArrayOp obj ix v
71 
72 emitPrimOp [res] SizeofArrayOp [arg]
73-   = emit $    mkAssign (CmmLocal res) (cmmLoadIndexW arg fixedHdrSize bWord)
74+   = emit $    mkAssign (CmmLocal res) (cmmLoadIndexW arg (fixedHdrSize + oFFSET_StgMutArrPtrs_ptrs) bWord)
75 emitPrimOp [res] SizeofMutableArrayOp [arg]
76    = emitPrimOp [res] SizeofArrayOp [arg]
77 
78}
79
80Context:
81
82[Fix "make 1" etc following the build system changes
83Ian Lynagh <igloo@earth.li>**20110127001739
84 Ignore-this: 7ae0a41f2753d7740569f362a97ea5fb
85 The logic is now in mk/compiler-ghc.mk rather than being duplicated in
86 ghc/Makefile and compiler/Makefile.
87]
88[Fix vectorisation of recursive types
89Roman Leshchinskiy <rl@cse.unsw.edu.au>**20110126231843
90 Ignore-this: 983fc42a659be2e085da9b16f994aa2e
91]
92[Fix dependencies among specialisations for imported Ids
93simonpj@microsoft.com**20110126172112
94 Ignore-this: 364e09c11affe7bfe8f1b934ea28bbb6
95 
96 This was a subtle one (Trac #4903).  See
97   Note [Glom the bindings if imported functions are specialised]
98 in Speclialise.
99 
100 Fundamentally, a specialised binding for an imported Id was being
101 declared non-recursive, whereas in fact it can become recursive
102 via a RULE.  Once it's specified non-recurive the OccAnal pass
103 treats that as gospel -- and that in turn led to infinite inlining.
104 
105 Easily fixed by glomming all the specialised bindings in a Rec;
106 now the OccAnal will sort them out correctly.
107]
108[Fix bug in roughTopNames
109simonpj@microsoft.com**20110126171803
110 Ignore-this: eca8b144162f1bd94e2ccb433bca1e02
111 
112 roughTopNames was returning a name that in fact might be
113 "looked though" by the rule matcher. Result: a rule
114 that should match was being pre-emptively discarded.
115 
116 See Note [Care with roughTopName].
117 
118 Fixes a bug noticed by Pedro (Trac #4918).
119]
120[Comments only, plus a tiny bit of debug printing
121simonpj@microsoft.com**20110126171255
122 Ignore-this: f84364b2b90fc860e9289dd40d0395ac
123]
124[Comments only
125simonpj@microsoft.com**20110126171235
126 Ignore-this: 79059977f82aaac7f9714ad09e820ea9
127]
128[Look through type synonyms when computing orphans
129simonpj@microsoft.com**20110126171229
130 Ignore-this: 6dfc45dae3a94cdb0022b2d21d6e09f6
131 
132 I renamed functions tyClsNamesOfTypes to oprhNamesOfType,
133 because it's only used in that capacity, and we therefore
134 want to look through type synonyms.  Similarly exprOrphNames.
135 
136 This fixes Trac #4912.
137]
138[Bleat a bit more informatively in unionLists
139simonpj@microsoft.com**20110126171030
140 Ignore-this: 80b276aa3d7971c6d7802b5f6b522d2e
141]
142[Keep separate linker flags, for when we want to link with gcc or ld
143Ian Lynagh <igloo@earth.li>**20110124233121]
144[Fix validate on OS X 64
145Ian Lynagh <igloo@earth.li>**20110124183618]
146[Split main/GHC into GHC and GhcMake
147simonpj@microsoft.com**20110125161632
148 Ignore-this: 502ea034de77ecd81173161836d78287
149 
150 There are two things going on in main/GHC.hs.
151   * It's the root module of the GHC package
152   * It contains lots of stuff for --make
153 It is also gigantic (2.7k lines)
154 
155 This patch splits it into two
156   * GHC.hs is the root module for the GHC package
157       (1.3k lines)
158   * GhcMake.hs contains the stuff for --make
159       (1.4k lines)
160 
161 Happily the functional split divided it almost
162 exactly in half.
163 
164 This is a pure refactoring.  There should be no
165 behavioural change.
166]
167[Comments only
168simonpj@microsoft.com**20110125131115
169 Ignore-this: 7ec4e97a481d06894de940aba59c575d
170]
171[Fix Trac #3717 by making exprOkForSpeculation a bit cleverer
172simonpj@microsoft.com**20110125110525
173 Ignore-this: 13b606b05da69c29bf53aaf408fd602
174 
175 The main change here is to do with dropping redundant seqs.
176 See Note [exprOkForSpeculation: case expressions] in CoreUtils.
177]
178[Improve dataToTag# magic
179simonpj@microsoft.com**20110125110418
180 Ignore-this: 11fdb265e030dec4d5b13ed6b16c9761
181 
182 dataToTag# is a bit unsatisfactory because it requires
183 its argument to be evaluated, and we don't have a good
184 way to enforce that. This patch adds some comments, and
185 makes exprOkForSpeculation a bit less picky in the case
186 of dataToTag# (since the argument may, in fact, not be
187 eval'd).
188]
189[Fix Trac #4917: try a bit harder to unify on-the-fly
190simonpj@microsoft.com**20110125110112
191 Ignore-this: e96e0a19ab8517d4ba648efe91f6b379
192 
193 This is generally a modest improvement but, more important,
194 it fixes a "unify-under-forall" problem.  See Note [Avoid deferring].
195 
196 There's still a lurking unsatisfactory-ness in that we can't
197 defer arbitrary constraints that are trapped under a forall.
198]
199[DPH options updated
200Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20110124043617
201 Ignore-this: 6b7d2949b75f9c923f279c1178d2d042
202 - '-Odph' is now '-O2 -fsimplifier-phases=3 -fsimplifier-iterations=20'
203 - The new option '-fdph-none' is the default; it indicates that no DPH
204   backend is selected and is the only valid option if the DPH libraries
205   are not installed.  If vectorisation is attempted with -fdph-none a
206   suitable error message is generated.
207 - Hence, '-fdph-par' (or '-fdph-seq') needs to be explicitly selected
208   when using vectorisation and when linking vectorised code.  (There
209   seems to be no elegant way to avoid that.)
210]
211[Add build system profiling to build system
212Ian Lynagh <igloo@earth.li>**20110123151408
213 Ignore-this: 75717810be32d60323980f9fd1baa853
214]
215[Fix ghci in stage3
216Ian Lynagh <igloo@earth.li>**20110123120232]
217[Remove use of non-existent $$(dir) variable in the rts ghc.mk
218Ian Lynagh <igloo@earth.li>**20110123021815]
219[Add some missing dependencies
220Ian Lynagh <igloo@earth.li>**20110123004208]
221[Tweak some deps to avoid multiple $(wildcard ...)s
222Ian Lynagh <igloo@earth.li>**20110123001045
223 Ignore-this: 38e53cb6f6b4f27c771ae0ed341f8958
224 Note that some things depending on the rts/includes header files now
225 depend on more files: They used to include depend on includes/*.h, but
226 now they also depend on header files in subdirectories. As far as I can
227 see this was a bug.
228]
229[Use := when assigning the result of $(wildcard ...)
230Ian Lynagh <igloo@earth.li>**20110122224532
231 Ignore-this: 67e2ca2ffbcffb5b7f55bd60c17fc6cf
232 Avoids repeated evaluations of things that need system calls etc
233]
234[Simplify the build system, and remove 2 phases
235Ian Lynagh <igloo@earth.li>**20110122190928
236 Ignore-this: 7b6184088befcbc44ea47b2f4abf85a9
237 From
238     http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture/Idiom/PhaseOrdering
239 
240 Phase 0:
241     Includes: package-data.mk files for things built by the
242               bootstrapping compiler.
243     Builds:   the dependency files for hsc2hs and genprimopcode. We need
244               to do this now, as hsc2hs needs to be buildable in phase 1's
245               includes (so that we can make the hpc library's .hs source
246               files, which in turn is necessary for making its dependency
247               files), and genprimopcode needs to be buildable in phase 1's
248               includes (so that we can make the primop-*.hs-incl files,
249               which are sources for the stage1 compiler library, and thus
250               necessary for making its dependency files).
251 Phase 1:
252     Includes: dependency files for things built by the bootstrapping
253               compiler.
254     Builds:   package-data.mk files for everything else. Note that this
255               requires configuring the packages, which means telling cabal
256               which ghc to use, and thus the stage1 compiler gets built
257               during this phase.
258 Phase "":
259     Includes: dependency files for everything else.
260     Builds:   Everything else.
261]
262[Manually control more of the Cabal flags for the compiler and ghc packages
263Ian Lynagh <igloo@earth.li>**20110121230552
264 Ignore-this: 652b5f6327d246d7e2e47acbca614df2
265 For some reason the Windows HEAD builder has started thinking the ghci
266 flag should be on in stage 1. This should fix it, and generally make
267 things a little more resilient.
268]
269[Remove some hardcoded makefile settings
270Ian Lynagh <igloo@earth.li>**20110121230245
271 Ignore-this: 6b1b68aebdfbe02c15518985d2ea7559
272 Now that we used cabal to configure the ghc-bin package they are no
273 longer needed.
274]
275[tweak newArray# documentation again
276Simon Marlow <marlowsd@gmail.com>**20110119140633
277 Ignore-this: ceee33428dbad7e0f5eabfa0a2590466
278]
279[Fix OSTYPE test
280Ian Lynagh <igloo@earth.li>**20110120000308
281 Ignore-this: 8fa5d5c03297cb507a166bd85675145c
282]
283[Comments only
284simonpj@microsoft.com**20110119222247
285 Ignore-this: ea531428e9093ecedb895735ed537791
286]
287[Add OSTYPE build-system variable, and use it
288simonpj@microsoft.com**20110113155023
289 Ignore-this: c4a75f0bb27a680924e57ca7075ec116
290 
291 The use is in install.mk.in, where we need to know when
292 we're on Cygwin.
293 
294 This fixes the build on my Windows box, where I have
295 both Msys and Cygwin.
296]
297[Remove an extraneous comma that stopped ghc-cabal from building
298Ian Lynagh <igloo@earth.li>**20110119222359]
299[Move some make variables around
300Ian Lynagh <igloo@earth.li>**20110119221545
301 Ignore-this: c57c93f39d72c3baef7c5f466861dd5b
302]
303[Remove a debugging 'info'
304Ian Lynagh <igloo@earth.li>**20110119203305
305 Ignore-this: ea912ba205eaae1d2bcf0cce7c13628d
306]
307[Move the PACKAGE_MAGIC evaluation inside package-data.mk
308Ian Lynagh <igloo@earth.li>**20110119203229
309 Ignore-this: 497c4e83ae75089c24d6c794c4e2891f
310]
311[Fix libraries/index.html's haddock dependency on Windows
312Ian Lynagh <igloo@earth.li>**20110119172310]
313[Add configure phases for the stage 3 compiler
314Ian Lynagh <igloo@earth.li>**20110119130629]
315[Include kfreebsdgnu in the list of Target Platforms.
316Marco Silva <marcot@marcot.eti.br>**20110118222352
317 Ignore-this: 759482baf33903b98cd837636a3f5328
318]
319[Fix documentation bug: newArray# accepts word count, not byte count.
320Edward Z. Yang <ezyang@mit.edu>**20110118221834
321 Ignore-this: 8daab134bf72a740b89d273fb4e983d5
322]
323[Update the location of libffi.dll.a
324Ian Lynagh <igloo@earth.li>**20110118164225
325 As far as I can see this has been wrong for some time, but only bit
326 recently.
327]
328[Update the generics docs; pointed out by Christian Maeder
329Ian Lynagh <igloo@earth.li>**20110117214632]
330[ghc-cabal now adds the language flag being used
331Ian Lynagh <igloo@earth.li>**20110117184833
332 Ignore-this: 8198892ef7f8009561d3181425cde942
333 This means we get -XHaskell98 added to the list of flags, just like we
334 would if we were building with Cabal.
335]
336[Reinstate the OS X flags in the LDFLAGS etc variables
337Ian Lynagh <igloo@earth.li>**20110117200540
338 Ignore-this: 9261baa1843100f65b02fb91c1a0d225
339 I expect this will fix:
340 http://www.haskell.org/pipermail/cvs-ghc/2011-January/059098.html
341]
342[Add NondecreasingIndentation extension to ghc-bin
343Ian Lynagh <igloo@earth.li>**20110117200427
344 Ignore-this: b6b029ee6dfbda482c91d17e835f9000
345]
346[Change an "if ... else return ()" into a "when"
347Ian Lynagh <igloo@earth.li>**20110117191714
348 Ignore-this: 7de58b728e4fce7f86d7d24a3089e6c7
349]
350[Add NondecreasingIndentation to the list of extensions in ghc-pkg
351Ian Lynagh <igloo@earth.li>**20110117190610
352 Ignore-this: 20ce8144b7b64d1f67de2f6983717da3
353]
354[Add NondecreasingIndentation to the list of extensions in the ghc package
355Ian Lynagh <igloo@earth.li>**20110117190404
356 Ignore-this: 516b45e93c1b3bbb66da5414d9aabef1
357]
358[Fix deps on the ghc package
359Ian Lynagh <igloo@earth.li>**20110117173010
360 The standard libraries/$depname scheme doesn't apply, so we need to
361 handle it specially.
362]
363[Tidy up gmp cleaning
364Ian Lynagh <igloo@earth.li>**20110117121155
365 Ignore-this: 61d9a57d14b70732f62d6b2c8d6d197a
366]
367[Remove redundant libraries/cabal-bin.hs
368Ian Lynagh <igloo@earth.li>**20110116194919
369 Ignore-this: 13b4a8d26fa06ec952351603c3bb40ee
370]
371[Turn off dtrace unless you override USE_DTRACE
372Ian Lynagh <igloo@earth.li>**20110116180306
373 Ignore-this: beafc2002091fa7f0e66666004c870a5
374 There are problems with dtrace on 64bit 10.5. For now at least, we
375 just turn dtrace off unless you override USE_DTRACE
376]
377[Simplify a bit of makefile
378Ian Lynagh <igloo@earth.li>**20110116175218
379 Ignore-this: 18f02e40e36eca2e2cab79c152c72541
380]
381[Tweak Windows phase ordering
382Ian Lynagh <igloo@earth.li>**20110116173459
383 Ignore-this: bb8a70741be4574edc149349acd0f4be
384]
385[Handle dependencies of programs on libraries correctly
386Ian Lynagh <igloo@earth.li>**20110116155627]
387[It's not clear if LDFLAGS flags will be given to gcc or ld,
388Ian Lynagh <igloo@earth.li>**20110116151230
389 Ignore-this: a6a2d0b1f550c922c32f6f252e4e3285
390 and they accept different flags, so for now do nothing
391]
392[Fix cross-package dependency generation on Windows
393Ian Lynagh <igloo@earth.li>**20110116150901
394 Ignore-this: f78baaa7074ca36a6a4ff8a7e6f2e35
395]
396[Add some Windows-only CONFIGURE_PHASEs
397Ian Lynagh <igloo@earth.li>**20110116150826
398 Ignore-this: abf1bf498609107eb206b22d483613de
399]
400[Simplify, and future-proof, a dependency in the build system
401Ian Lynagh <igloo@earth.li>**20110116020035
402 Ignore-this: d089133430828d041b3601b1e9c8b22a
403]
404[Remove an unnecessary phase, and some unnecessary deps
405Ian Lynagh <igloo@earth.li>**20110116015943
406 Ignore-this: e649b072d006db5db97aee26d3753f65
407 now that cross-package deps are tracked correctly.
408]
409[We can now pass -include-pkg-deps to the bootstrapping compiler
410Ian Lynagh <igloo@earth.li>**20110116015714
411 Ignore-this: bdfed941124bb93111f117800be5f2d8
412]
413[Remove some flags that are redundant now GHC gets configured by Cabal
414Ian Lynagh <igloo@earth.li>**20110116003154
415 Ignore-this: 43a023c5103b72c91d53cf3bed7a4c50
416]
417[Change some HC_OPTS var handling
418Ian Lynagh <igloo@earth.li>**20110116003104
419 Ignore-this: 629f4a3d37028f71a477c22ed4e8591e
420 In particular, this means ghc gets built with -rtsopt, -threaded, etc again.
421]
422[Remove some unnecessary workarounds
423Ian Lynagh <igloo@earth.li>**20110116002803
424 Ignore-this: 5ecc62f765522c08c44aa0814c5b840e
425 We can now rely on cross-package deps working properly, as we require
426 GHC 6.12.
427]
428[Tidy up a bit
429Ian Lynagh <igloo@earth.li>**20110116001121
430 Ignore-this: a2baabc6da0cf2877507b7833d5b0fc7
431]
432[Build system improvements
433Ian Lynagh <igloo@earth.li>**20110115231927
434 Ignore-this: 92ea6514addc8aa8734d7e0eb61b50cb
435 We no longer use dummy-ghc; instead we don't configure most packages
436 until the stage1 compiler is available.
437   
438 We also now use Cabal for building the ghc-bin package.
439 
440 There are a couple more sanity checks too.
441]
442[Whitespace tweak
443Ian Lynagh <igloo@earth.li>**20110115214149
444 Ignore-this: 3e564566f311be473e94f6af609bdeaa
445]
446[Fix libffi build rules
447Ian Lynagh <igloo@earth.li>**20110115202104
448 Ignore-this: 57e1763d2079301b0165be7deba29c85
449 Fixes a rare race when both libHSffi.a and libHSffi_p.a were being built
450 at the same time:
451 
452 "cp" libffi/dist-install/build/libffi.a libffi/dist-install/build/libHSffi.a
453 "cp" libffi/dist-install/build/libffi.a libffi/dist-install/build/libHSffi.a
454 "cp" libffi/dist-install/build/libffi.so libffi/dist-install/build/libHSffi-ghc7.1.20110115.so
455 cp: cannot create regular file `libffi/dist-install/build/libHSffi.a': File exists
456]
457[Fix Trac #4874: specialisation of INLINABLE things
458simonpj@microsoft.com**20110114163227
459 Ignore-this: b90543117ebddaf3bbeeaf0af0c18699
460 
461 Johan discovered that when INLINABLE things are specialised
462 bad things can happen. This patch implements a hack -- but
463 it's a simple hack and it solves the problem.
464 
465 See Note [Inline specialisations].
466 
467 The hack part is that really INLINABLE should not cause *any* loss
468 optimisation, and it does; see Note [Don't w/w INLINABLE things] in
469 WorkWrap.
470]
471[Comments only
472simonpj@microsoft.com**20110114162959
473 Ignore-this: f76d4d8f527c3fcd2598ec8cc5fd3049
474]
475[Fix a buglet in postInlineUnconditionally
476simonpj@microsoft.com**20110114162927
477 Ignore-this: 7a7b8610ef863907843d4ae36a8a1a3c
478 
479 Under obscure circumstances (actually only shown up when fixing something
480 else) it was possible for a variable binding to be discarded although
481 it was still used.  See Note [Top level and postInlineUnconditionally]
482]
483[cope with empty libraries/stamp directory (in git repo)
484Simon Marlow <marlowsd@gmail.com>**20110114142406
485 Ignore-this: 6e95c44368d784f86a0c1c1d1e24d810
486]
487[add .gitignore
488Simon Marlow <marlowsd@gmail.com>**20110114142353
489 Ignore-this: 23d7cabd2b04eedfe4c33ad94a120474
490]
491[Fix longstanding bug in C-- inlining for functions calls.
492Edward Z. Yang <ezyang@mit.edu>**20110113130654
493 Ignore-this: 79001003b1f3cc5005207ccfed980c21
494]
495[fix for remote repos without -r
496Simon Marlow <marlowsd@gmail.com>**20110113131147
497 Ignore-this: 3ddd8a4c616cad01a2dbdb500fb54279
498]
499[add a version of packages that stores all the repos in git
500Simon Marlow <marlowsd@gmail.com>**20110113111733
501 Ignore-this: fcca2eb2e753ee20bb5abce7f30f5205
502]
503[add the -r flag from darcs-all
504Simon Marlow <marlowsd@gmail.com>**20110113111654
505 Ignore-this: ada88377bd95ebb9c668dd48954f321e
506]
507[Make Template Haskell classInstances function return [ClassInstance]
508simonpj@microsoft.com**20110113111421
509 Ignore-this: d14381f0a94170965414dd8724188356
510 
511 This is a recently-introduce function, which was returning
512 a [Name], being the names of the dfuns.  But what you really
513 want (obviously!) is the ClassInstances, and we have a TH type
514 for that.
515 
516 This is an API change, so don't merge into GHC 7.0.  But it's
517 a new part of TH which is still settling down.
518 
519 Fixes Trac #4863.
520]
521[Improve the finder's error messages
522simonpj@microsoft.com**20110113111233
523 Ignore-this: ec4819b0a44af9fd03dc0a8b8e13699d
524 
525 I'd done all the work to add fuzzy-match suggestions, but they
526 weren't really being used!  Here's what you get now
527 
528    module Foo where
529     import Data.Lst
530 
531 Foo.hs:3:1:
532     Failed to load interface for `Data.Lst'
533     Perhaps you meant
534       Data.List (from base)
535       Data.List (needs flag -package haskell2010-1.0.0.0)
536       Data.Int (needs flag -package haskell2010-1.0.0.0)
537     Use -v to see a list of the files searched for.
538]
539[White space only
540simonpj@microsoft.com**20110113093931
541 Ignore-this: 4e46acca5241615a3283996052a634a
542]
543[Produce an error message, not a crash, for HsOpApp with non-var operator
544simonpj@microsoft.com**20110112170719
545 Ignore-this: df0f6f2e3318f9c33a714609019b0262
546 
547 Fixes Trac #4877.
548]
549[update to work with current packages file format
550Simon Marlow <marlowsd@gmail.com>**20110112160224
551 Ignore-this: da73498734aadbfbf0a31389a9dc44d
552]
553[In configure, test that GHC generates code for the correct platform (#4819)
554Simon Marlow <marlowsd@gmail.com>**20110107163541
555 Ignore-this: 29541d3896f9c9bcf791510edae70254
556 Patch supplied by the bug reporter, tidied up by me.
557 
558 $ ./configure --with-ghc=$HOME/fp/bin/i386-unknown-linux/ghc --build=x86_64-unknown-linux
559 checking for gfind... no
560 checking for find... /usr/bin/find
561 checking for sort... /usr/bin/sort
562 checking for GHC version date... inferred 7.1.20110107
563 checking version of ghc... 7.0.1
564 checking build system type... x86_64-unknown-linux-gnu
565 checking host system type... x86_64-unknown-linux-gnu
566 checking target system type... x86_64-unknown-linux-gnu
567 Host platform inferred as: i386-unknown-linux
568 Target platform inferred as: i386-unknown-linux
569 This GHC (/home/simonmar/fp/bin/i386-unknown-linux/ghc) does not generate code for the build platform
570    GHC target platform    : i386-unknown-linux
571    Desired build platform : x86_64-unknown-linux
572]
573[Major refactoring of the type inference engine
574simonpj@microsoft.com**20110112145604
575 Ignore-this: 6a7fc90c9b798e89505606726cc8090e
576 
577 This patch embodies many, many changes to the contraint solver, which
578 make it simpler, more robust, and more beautiful.  But it has taken
579 me ages to get right. The forcing issue was some obscure programs
580 involving recursive dictionaries, but these eventually led to a
581 massive refactoring sweep.
582 
583 Main changes are:
584  * No more "frozen errors" in the monad.  Instead "insoluble
585    constraints" are now part of the WantedConstraints type.
586 
587  * The WantedConstraint type is a product of bags, instead of (as
588    before) a bag of sums.  This eliminates a good deal of tagging and
589    untagging.
590 
591  * This same WantedConstraints data type is used
592      - As the way that constraints are gathered
593      - As a field of an implication constraint
594      - As both argument and result of solveWanted
595      - As the argument to reportUnsolved
596 
597  * We do not generate any evidence for Derived constraints. They are
598    purely there to allow "impovement" by unifying unification
599    variables.
600 
601  * In consequence, nothing is ever *rewritten* by a Derived
602    constraint.  This removes, by construction, all the horrible
603    potential recursive-dictionary loops that were making us tear our
604    hair out.  No more isGoodRecEv search either. Hurrah!
605 
606  * We add the superclass Derived constraints during canonicalisation,
607    after checking for duplicates.  So fewer superclass constraints
608    are generated than before.
609 
610  * Skolem tc-tyvars no longer carry SkolemInfo.  Instead, the
611    SkolemInfo lives in the GivenLoc of the Implication, where it
612    can be tidied, zonked, and substituted nicely.  This alone is
613    a major improvement.
614 
615  * Tidying is improved, so that we tend to get t1, t2, t3, rather
616    than t1, t11, t111, etc
617 
618    Moreover, unification variables are always printed with a digit
619    (thus a0, a1, etc), so that plain 'a' is available for a skolem
620    arising from a type signature etc. In this way,
621      (a) We quietly say which variables are unification variables,
622          for those who know and care
623      (b) Types tend to get printed as the user expects.  If he writes
624              f :: a -> a
625              f = ...blah...
626          then types involving 'a' get printed with 'a', rather than
627          some tidied variant.
628 
629  * There are significant improvements in error messages, notably
630    in the "Cannot deduce X from Y" messages.
631]
632[Fix installation on cygwin
633Ian Lynagh <igloo@earth.li>**20110111194838
634 Ignore-this: fe923d0619da3bd3a34968106c92fdab
635]
636[Do dependency analysis when kind-checking type declarations
637simonpj@microsoft.com**20110110110351
638 Ignore-this: 17a8dee32694d3e1835cf7bb02d3abb5
639 
640 This patch fixes Trac #4875.  The main point is to do dependency
641 analysis on type and class declarations, and kind-check them in
642 dependency order, so as to improve error messages.
643 
644 This patch means that a few programs that would typecheck before won't
645 typecheck any more; but before we were (naughtily) going beyond
646 Haskell 98 without any language-extension flags, and Trac #4875
647 convinces me that doing so is a Bad Idea.
648 
649 Here's an example that won't typecheck any more
650        data T a b = MkT (a b)
651        type F k = T k Maybe
652 
653 If you look at T on its own you'd default 'a' to kind *->*;
654 and then kind-checking would fail on F.
655 
656 But GHC currently accepts this program beause it looks at
657 the *occurrences* of T.
658]
659[Move imports around (no change in behaviour)
660simonpj@microsoft.com**20110110105647
661 Ignore-this: d618cabbc52be7d7968de1e0bdd44082
662]
663[Make fuzzy matching a little less eager for short identifiers
664simonpj@microsoft.com**20110107102855
665 Ignore-this: a753643e88433d74b44a480cc0f4170c
666 
667 For single-character identifiers we now don't make any suggestions
668 See comments in Util.fuzzyLookup
669]
670[Fix Trac #4870: get the inlining for an imported INLINABLE Id
671simonpj@microsoft.com**20110105002712
672 Ignore-this: 60c0192eb48590c2e6868d15ba8f84ce
673 
674 We need the unfolding even for a *recursive* function (indeed
675 that's the point) and I was using the wrong function to get it
676 (idUnfolding rather than realIdUnfolding).
677]
678[Rejig the includes/ installation rules
679Ian Lynagh <igloo@earth.li>**20110109181158
680 They're a little nicer now, and a regression in the cygwin build is
681 fixed (the $i in the destination wasn't surviving being passed through
682 cygpath).
683]
684[Make DESTDIR an absolute path when installing; fixes #4883
685Ian Lynagh <igloo@earth.li>**20110108171635]
686[Add utils/ghc-cabal/Makefile
687Ian Lynagh <igloo@earth.li>**20110108144049]
688[Remove redundant import
689Ian Lynagh <igloo@earth.li>**20110108130047
690 Ignore-this: 1c7fdec77b48319c845c9593b5fb94af
691]
692[Improve error message of :set in ghci (ticket #4190).
693Michal Terepeta <michal.terepeta@gmail.com>**20101130211505
694 Ignore-this: ccc8a0816a900ba8c4a966285a465b23
695]
696[Improve error message when importing data constructors (ticket #4058).
697Michal Terepeta <michal.terepeta@gmail.com>**20101127211338
698 Ignore-this: 3289a08f0391dd90dfef2e0403a04ccd
699]
700[catch SIGTSTP and save/restore terminal settings (#4460)
701Simon Marlow <marlowsd@gmail.com>**20110107124042
702 Ignore-this: 38f7f27bf75178899f466404c048241d
703 As far as I can tell, it is the responsibility of the program to save
704 and restore its own terminal settings across a suspend/foreground, the
705 shell doesn't do it (which seems odd).  So I've added a signal handler
706 for SIGTSTP to the RTS which will save and restore the terminal
707 settings iff we modified them with hSetBuffering or hSetEcho (we
708 already restore them at exit time in these cases).
709]
710[comment updates
711Simon Marlow <marlowsd@gmail.com>**20110107094236
712 Ignore-this: c2b30b0c98645e2847a2749c7fdc167f
713]
714[On Cygwin, use a Cygwin-style path for /bin/install's destination
715Ian Lynagh <igloo@earth.li>**20110106223030
716 
717 cygwin's /bin/install doesn't set file modes correctly if the
718 destination path is a C: style path:
719 
720 $ /bin/install -c -m 644 foo /cygdrive/c/cygwin/home/ian/foo2
721 $ /bin/install -c -m 644 foo c:/cygwin/home/ian/foo3
722 $ ls -l foo*
723 -rw-r--r-- 1 ian None 0 2011-01-06 18:28 foo
724 -rw-r--r-- 1 ian None 0 2011-01-06 18:29 foo2
725 -rwxrwxrwx 1 ian None 0 2011-01-06 18:29 foo3
726 
727 This causes problems for bindisttest/checkBinaries.sh which then
728 thinks that e.g. the userguide HTML files are binaries.
729 
730 We therefore use a /cygdrive path if we are on cygwin
731]
732[Fix mkUserGuidePart program name on Windows
733Ian Lynagh <igloo@earth.li>**20110106143707]
734[add comment to remind people to update driver/gcc/gcc.c
735Simon Marlow <marlowsd@gmail.com>**20110106152402
736 Ignore-this: c07d7ac11eb9221ef821f78aab1807cb
737]
738[use Win32 CreateProcess() rather than mingw spawnv() (#4531)
739Simon Marlow <marlowsd@gmail.com>**20110106133834
740 Ignore-this: 4c0947853549dad034622c044391af6c
741]
742[update paths now that we upgraded gcc to 4.5.0
743Simon Marlow <marlowsd@gmail.com>**20110106133729
744 Ignore-this: f8f9bcad984fdd472e0ae958b66bea9d
745]
746[fix markup
747Simon Marlow <marlowsd@gmail.com>**20110106093152
748 Ignore-this: 555b6e39ae6b5a177b03c5edffc169ab
749]
750[fix up multi-line GHCi patch (#4316)
751Simon Marlow <marlowsd@gmail.com>**20110105154548
752 Ignore-this: 53d5d489bd2a792c01f2cc56a11f3ce6
753]
754[multiline commands in GHCi #4316
755Vivian McPhail <haskell.vivian.mcphail@gmail.com>**20101105051308
756 This patch adds support for multiline commands in GHCi.
757 
758 The first line of input is lexed.  If there is an active
759 layout context once the lexer reaches the end of file, the
760 user is prompted for more input.
761 
762 Multiline input is exited by an empty line and can be escaped
763 with a user interrupt.
764 
765 Multiline mode is toggled with `:set +m`
766]
767[Replace a #if with a Haskell conditional
768Ian Lynagh <igloo@earth.li>**20110105183011
769 Ignore-this: f08f3a4356586efab2725ad8704b2eba
770]
771[Whitespace only in X86.Ppr
772Ian Lynagh <igloo@earth.li>**20110105171124]
773[Fix error compiling AsmCodeGen.lhs for PPC Mac (unused makeFar addr)
774naur@post11.tele.dk**20101219213555
775 Ignore-this: ab25d5f2e2ebe163547d5babaf4b1dbf
776]
777[Define cTargetArch and start to use it rather than ifdefs
778Ian Lynagh <igloo@earth.li>**20110104220013
779 Using Haskell conditionals means the compiler sees all the code, so
780 there should be less rot of code specific to uncommon arches. Code
781 for other platforms should still be optimised away, although if we want
782 to support targetting other arches then we'll need to compile it
783 for-real anyway.
784]
785[Fix error compiling AsmCodeGen.lhs for PPC Mac (rtsPackageId)
786naur@post11.tele.dk**20101219212530
787 Ignore-this: 946f6d3e0d3c3ddf2dc07b85e1f82d85
788]
789[Rename the c*Platform variables to c*PlatformString
790Ian Lynagh <igloo@earth.li>**20110104210250]
791[Fix #4829 (build does not respect --with-gcc option)
792gwright@antiope.com**20101221133233
793 Ignore-this: 37918feb82f911c2beb75915b6e8b97b
794 
795 This patch fixes what seems to be the last problem with the --with-gcc
796 option.  On OS X, we need to pass the path to gcc to dtrace as the
797 preprocessor.  (Internally, dtrace on OS X sets the default preprocessor
798 to /usr/bin/gcc.)  ATM, dtrace is only supported on OS X, so we don't
799 need any conditionalization.  If dtrace is ported to other platforms,
800 we might need to change this. However, usage on other platforms will
801 probably be similar to OS X, since many of Apple's changes are to
802 use the gnu toolchain instead of the Sun toolchain.
803   
804]
805[Drop a seven years old workaround for happy
806Matthias Kilian <kili@outback.escape.de>**20101231192343
807 Ignore-this: a9348c91292c113bd967464fbe859f1f
808]
809[Add gcc and ld flags to --info output
810Ian Lynagh <igloo@earth.li>**20101220173520]
811[Fix Trac #4525: report type errors in terms of the immediate type synonym
812simonpj@microsoft.com**20101224082520
813 Ignore-this: a3bd076bfe0e1c6f575b106f77f326c6
814 
815 This small change means that if you have
816      type Age = Int
817 and you try to unify Age and Bool, you'll get a complaint about
818 not matching Age and Bool, rather than Int and Bool.  See the notes
819 with Trac #4525
820]
821[Comments only
822simonpj@microsoft.com**20101224082310
823 Ignore-this: 1f69fa3244663b653607093efcdf7b0
824]
825[Implement fuzzy matching for the Finder
826simonpj@microsoft.com**20101222175400
827 Ignore-this: 4dfbbc07bcb59c5f4cee9a902c89d63e
828 
829 ..so that you get a more helpful message when
830 you mis-spell a module name in an 'import'.
831 
832 Validates, but not fully tested.
833 
834 Based on Max's patch in Trac #2442, but heavily refactored.
835]
836[Implement fuzzy matching for the renamer
837simonpj@microsoft.com**20101222175306
838 Ignore-this: 66478736249de793a61612f184d484b0
839 
840 ...so that you get helpful suggestions when you mis-spell a name
841 Based on Max's patch in Trac #2442, but heavily refactored.
842]
843[Add fuzzyLookup, a variant of fuzzyMatch
844simonpj@microsoft.com**20101222175124
845 Ignore-this: f0eafaf275b9edffee176f2fb4effe2f
846 
847 Plus, I changed quite a bit of layout to make the lines shorter.
848]
849[White space only
850simonpj@microsoft.com**20101222175001
851 Ignore-this: ddabada2042f4529e83d1c1ecb052306
852]
853[Layout and white space only
854simonpj@microsoft.com**20101222174950
855 Ignore-this: bf4e4fd9d39714d0461ab799d6b8ed91
856]
857[Tidy up rebindable syntax for MDo
858simonpj@microsoft.com**20101222132210
859 Ignore-this: b40ae8709e5a39d75f2b2813169af215
860 
861 For a long time an 'mdo' expression has had a SyntaxTable
862 attached to it.  However, we're busy deprecating SyntaxTables
863 in favour of rebindable syntax attached to individual Stmts,
864 and MDoExpr was totally inconsistent with DoExpr in this
865 regard.
866 
867 This patch tidies it all up.  Now there's no SyntaxTable on
868 MDoExpr, and 'modo' is generally handled much more like 'do'.
869 
870 There is resulting small change in behaviour: now MonadFix is
871 required only if you actually *use* recursion in mdo. This
872 seems consistent with the implicit dependency analysis that
873 is done for mdo.
874 
875 Still to do:
876   * Deal with #4148 (this patch is on the way)
877   * Get rid of the last remaining SyntaxTable on HsCmdTop
878]
879[Make the occurrence analyser track preInlineUnconditionally
880simonpj@microsoft.com**20101222131156
881 Ignore-this: 82edb06bcca6106327c2cce9d78c4e61
882 
883 This fixes a somewhat obscure situation in which an
884 over-optimistic use of "occurs once" led to an infinite
885 sequence of simplifier iterations.  Se Note [Cascading inlines]
886 for the details.
887 
888 This showed up when compiling rather large DPH programs, which
889 run lots of iterations of the simplifier, which in turn made
890 compilation take much longer than necessary.
891]
892[Make mkDFunUnfolding more robust
893simonpj@microsoft.com**20101222130854
894 Ignore-this: 10bb4168a7080c843f6613043354151b
895 
896 It now uses tcSplitDFunTy, which is designed for the purpose and
897 allows arbitrary argument types to the dfun, rather than
898 tcSplitSigmaTy.  This generality is used in DPH, which has
899 internally-generated dfuns with impliciation-typed arguments.
900 
901 To do this I had to make tcSplitDFunTy return the number of
902 arguments, so there are some minor knock-on effects in other
903 modules.
904]
905[Count allocations more accurately
906Simon Marlow <marlowsd@gmail.com>**20101221152956
907 Ignore-this: 33a4ed3a77bf35f232aa5c9078e8e380
908 The allocation stats (+RTS -s etc.) used to count the slop at the end
909 of each nursery block (except the last) as allocated space, now we
910 count the allocated words accurately.  This should make allocation
911 figures more predictable, too.
912 
913 This has the side effect of reducing the apparent allocations by a
914 small amount (~1%), so remember to take this into account when looking
915 at nofib results.
916]
917[Add a simple arity analyser
918simonpj@microsoft.com**20101221165800
919 Ignore-this: d5f3a9f56404d61bb7f374c875b42c49
920 
921 I've wanted to do this for ages, but never gotten around to
922 it.  The main notes are in Note [Arity analysis] in SimplUtils.
923 
924 The motivating example for arity analysis is this:
925 
926   f = \x. let g = f (x+1)
927           in \y. ...g...
928 
929 What arity does f have?  Really it should have arity 2, but a naive
930 look at the RHS won't see that.  You need a fixpoint analysis which
931 says it has arity "infinity" the first time round.
932 
933 This makes things more robust to the way in which you write code.  For
934 example, see Trac #4474 which is fixed by this change.
935 
936 Not a huge difference, but worth while:
937 
938         Program           Size    Allocs   Runtime   Elapsed
939 --------------------------------------------------------------------------------
940             Min          -0.4%     -2.2%    -10.0%    -10.0%
941             Max          +2.7%     +0.3%     +7.1%     +6.9%
942  Geometric Mean          -0.3%     -0.2%     -2.1%     -2.2%
943 
944 I don't really believe the runtime numbers, because the machine was
945 busy, but the bottom line is that not much changes, and what does
946 change reliably (allocation and size) is in the right direction.
947]
948[Miscellaneous tidying up and refactoring
949simonpj@microsoft.com**20101221161931
950 Ignore-this: 7706d3065e6fc1defafe1cb8975b9969
951]
952[Comments only
953simonpj@microsoft.com**20101221161918
954 Ignore-this: 3e269a62da5cbec72d3e4b8328689628
955]
956[Single-method classes are implemented with a newtype
957simonpj@microsoft.com**20101221161911
958 Ignore-this: 4ca00f0b367fbeb8146146bc53116eb7
959 
960 This patch changes things so that such classes rely on the coercion
961 mechanism for inlining (since the constructor is really just a cast)
962 rather than on the dfun mechanism, therby removing some needless
963 runtime indirections.
964]
965[For single-method classes use newtypes
966simonpj@microsoft.com**20101101080736
967 Ignore-this: d3851f92eb2385501411da57066b775e
968 
969 This clears up an awkward hack for exprIsConApp_maybe, and
970 works better too.  See Note [Single-method classes] in
971 TcInstDcls.
972]
973[boundTaskExiting: don't set task->stopped unless this is the last call (#4850)
974Simon Marlow <marlowsd@gmail.com>**20101221115807
975 Ignore-this: 7e1b990aa08b3ea9cdaa9385d8e41e48
976 The bug in this case was that we had a worker thread making a foreign
977 call which invoked a callback (in this case it was performGC, I
978 think).  When the callback ended, boundTaskExiting() was setting
979 task->stopped, but the Task is now per-OS-thread, so it is shared by
980 the worker that made the original foreign call.  When the foreign call
981 returned, because task->stopped was set, the worker was not placed on
982 the queue of spare workers.  Somehow the worker woke up again, and
983 found the spare_workers queue empty, which lead to a crash.
984 
985 Two bugs here: task->stopped should not have been set by
986 boundTaskExiting (this broke when I split the Task and InCall structs,
987 in 6.12.2), and releaseCapabilityAndQueueWorker() should not be
988 testing task->stopped anyway, because it should only ever be called
989 when task->stopped is false (this is now an assertion).
990]
991[releaseCapabilityAndQueueWorker: task->stopped should be false (#4850)
992Simon Marlow <marlowsd@gmail.com>**20101221114911
993 Ignore-this: b9c430a4bc9d2e0c7f4140d6d6971eae
994]
995[Fix Windows build
996Simon Marlow <marlowsd@gmail.com>**20101221102101
997 Ignore-this: f4773e06d030a335c9ac721af193b8d2
998]
999[raiseExceptionHelper: update tso->stackobj->sp before calling threadStackOverflow (#4845)
1000Simon Marlow <marlowsd@gmail.com>**20101221101411
1001 Ignore-this: 48495131fcc8c548882a470c2509f9f5
1002]
1003[add 'make re2' for rebuilding stage2 (similarly re1 and re3)
1004Simon Marlow <marlowsd@gmail.com>**20101221100254
1005 Ignore-this: 5c0afe3810b66a5b6e53a3a0fe933945
1006]
1007[fix warning
1008Simon Marlow <marlowsd@gmail.com>**20101216160415
1009 Ignore-this: 54a0eedfa5b7fc15c31dffffb1b10aad
1010]
1011[Small improvement to CorePrep
1012simonpj@microsoft.com**20101220123715
1013 Ignore-this: d0490225ed1895a1a5b97d786ed44260
1014 
1015 This change avoids unnecessary bindings. Example
1016 
1017      foo (let fn = \x.blah in
1018           in fn)
1019 
1020 We were generating something stupid like
1021 
1022     let fn = \x.blah in
1023     let fn' = \eta. fn eta
1024     in foo fn
1025 
1026 Now we don't.  The change is quite small.
1027 
1028 Thanks to Ben for showing me an example of this happening.
1029]
1030[Fix warnings
1031Ian Lynagh <igloo@earth.li>**20101219202711
1032 Ignore-this: 898015b086f684de5371bf97a23b9e2e
1033]
1034[Small refactoring
1035Ian Lynagh <igloo@earth.li>**20101219194032]
1036[Drop GhcWithLlvmCodeGen configuration bits
1037Matthias Kilian <kili@outback.escape.de>**20101219180239
1038 Ignore-this: 815ed46be7650792f85807c232edfcc
1039 The LLVM code generator is always built unconditionally, so both the
1040 configuration variable in mk/config.mk.in as well as the string in
1041 compilerInfo can be removed.
1042]
1043[Pass --hoogle to haddock; fixes trac #4521
1044Ian Lynagh <igloo@earth.li>**20101219125243]
1045[vectoriser: don't always pass superclass dictionaries to PA dfuns
1046Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101218234838
1047 Ignore-this: 77c71976db8fc63aeb83f4abdba994d8
1048 
1049 This is just a guess at how this should work.
1050]
1051[vectoriser: delete dead code
1052Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101218125350
1053 Ignore-this: 437eea71ad15ad5dc7902e596597c577
1054]
1055[vectoriser: adapt to new superclass story part I (dictionary construction)
1056Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101218114953
1057 Ignore-this: 29c9aa46a1622beaae1dcefc4c482a30
1058]
1059[Replace uses of the old try function with the new one
1060Ian Lynagh <igloo@earth.li>**20101218230827
1061 Ignore-this: 5dd6c1a4142405aa1aab3fc4ec07eea6
1062]
1063[Replace uses of the old catch function with the new one
1064Ian Lynagh <igloo@earth.li>**20101218213350]
1065[Create ~/.ghc/ if it doesn't already exist; fixes trac #4522
1066Ian Lynagh <igloo@earth.li>**20101218184925]
1067[Document GADTSyntax extension
1068Ian Lynagh <igloo@earth.li>**20101218150121]
1069[Implement GADTSyntax extension
1070Ian Lynagh <igloo@earth.li>**20101218144550]
1071[Whitespace-only in rts/Linker.c
1072Ian Lynagh <igloo@earth.li>**20101217234124]
1073[Add some casts to fix warnings; patch from Greg Wright
1074Ian Lynagh <igloo@earth.li>**20101217223811]
1075[Put an up-to-date Makefile in docs/Makefile
1076Ian Lynagh <igloo@earth.li>**20101217223707
1077 It doesn't do anything useful yet, but it works with the new build system
1078]
1079[do not compile part of shared lib RTS with -fno-PIC on Solaris
1080Karel Gardas <karel.gardas@centrum.cz>**20101217085133
1081 Ignore-this: 8c8dbb45cac0578a58a3557f1e03c66
1082]
1083[provide shared libraries support on i386-unknown-solaris2 platform
1084Karel Gardas <karel.gardas@centrum.cz>**20101217084617
1085 Ignore-this: b6079c6a39a71200a1ee863573e40828
1086]
1087[fix CPP detection of Solaris in NCG
1088Karel Gardas <karel.gardas@centrum.cz>**20101217084510
1089 Ignore-this: 9d1ce59d469294eab1f0cbc697e48d69
1090]
1091[Fix checkBinaries on OS X
1092Ian Lynagh <igloo@earth.li>**20101216201121]
1093[Remove redundant HpcMap and HpcSet wrappers around Data.{Map,Set}
1094Ian Lynagh <igloo@earth.li>**20101216190605]
1095[Use "-perm -u+x" rather than "-executable" to find executables
1096Ian Lynagh <igloo@earth.li>**20101216145235
1097 On Windows, -executable is matching the html docs.
1098]
1099[Remove a debugging print
1100Ian Lynagh <igloo@earth.li>**20101216011459]
1101[__GLASGOW_HASKELL__ >= 604 is now always true
1102Ian Lynagh <igloo@earth.li>**20101215214656]
1103[Remove more dead code now we require GHC >= 6.12
1104Ian Lynagh <igloo@earth.li>**20101215213715]
1105[refactor and tidy up the section on RTS options
1106Simon Marlow <marlowsd@gmail.com>**20101216123151
1107 Ignore-this: 9cdafd687351d8a3ff879b64347f85d3
1108]
1109[Related to #4826: Some minor tweaks to the wording of the User Guide, section 4.16
1110Orphi <MathematicalOrchid@hotmail.com>**20101209170440
1111 Ignore-this: c3d942d58594be7d4c2eb4dc3a22f19
1112]
1113[FIX #4826 partial: Add -rtsopts and -with-rtsopts to User Guide section 4.11.6
1114Orphi <MathematicalOrchid@hotmail.com>**20101209165152
1115 Ignore-this: 2fc1c0abbb783695773ab0f9c013bbaa
1116]
1117[FIX #4826 partially: Change -f to -? in User Guide section F4.16
1118Orphi <MathematicalOrchid@hotmail.com>**20101209144148
1119 Ignore-this: 73410b350e80c8943ae722dec8dea44b
1120]
1121[fix #3910
1122Simon Marlow <marlowsd@gmail.com>**20101216114452
1123 Ignore-this: 410e95e188344a523520e192a3fb58ea
1124]
1125[remove an optimisation that wasn't
1126Simon Marlow <marlowsd@gmail.com>**20101215152656
1127 Ignore-this: e8413f58e8292c6e7463087d885b3a7d
1128]
1129[fix a warning
1130Simon Marlow <marlowsd@gmail.com>**20101216105723
1131 Ignore-this: ed6024378021a698ce638267ed3e21ab
1132]
1133[use EXTERN_INLINE instead of STATIC_INLINE to avoid some gcc warnings
1134Simon Marlow <marlowsd@gmail.com>**20101216105709
1135 Ignore-this: d4e1586cf318883a8e611b55df7fbf10
1136]
1137[remove dead code
1138Simon Marlow <marlowsd@gmail.com>**20101216104944
1139 Ignore-this: 97a04a3e37c1b28abc222a28bab3d17d
1140]
1141[fix retainer profiling: add missing case for TSO
1142Simon Marlow <marlowsd@gmail.com>**20101216103900
1143 Ignore-this: 11bda81ac159f638d719c1f6177702fb
1144]
1145[add a missing STACK case
1146Simon Marlow <marlowsd@gmail.com>**20101216102100
1147 Ignore-this: ac1c036b5cbf4209b1d10b6ab1c83f27
1148]
1149[Remove code that is dead now that we need >= 6.12 to build
1150Ian Lynagh <igloo@earth.li>**20101215201006]
1151[fix for large stack allocations
1152Simon Marlow <marlowsd@gmail.com>**20101215152419
1153 Ignore-this: d9aca17d68bd99214c126989a2318e79
1154]
1155[Implement stack chunks and separate TSO/STACK objects
1156Simon Marlow <marlowsd@gmail.com>**20101215120843
1157 Ignore-this: 73fa9460314d4a4e54456af12bef7960
1158 
1159 This patch makes two changes to the way stacks are managed:
1160 
1161 1. The stack is now stored in a separate object from the TSO.
1162 
1163 This means that it is easier to replace the stack object for a thread
1164 when the stack overflows or underflows; we don't have to leave behind
1165 the old TSO as an indirection any more.  Consequently, we can remove
1166 ThreadRelocated and deRefTSO(), which were a pain.
1167 
1168 This is obviously the right thing, but the last time I tried to do it
1169 it made performance worse.  This time I seem to have cracked it.
1170 
1171 2. Stacks are now represented as a chain of chunks, rather than
1172    a single monolithic object.
1173 
1174 The big advantage here is that individual chunks are marked clean or
1175 dirty according to whether they contain pointers to the young
1176 generation, and the GC can avoid traversing clean stack chunks during
1177 a young-generation collection.  This means that programs with deep
1178 stacks will see a big saving in GC overhead when using the default GC
1179 settings.
1180 
1181 A secondary advantage is that there is much less copying involved as
1182 the stack grows.  Programs that quickly grow a deep stack will see big
1183 improvements.
1184 
1185 In some ways the implementation is simpler, as nothing special needs
1186 to be done to reclaim stack as the stack shrinks (the GC just recovers
1187 the dead stack chunks).  On the other hand, we have to manage stack
1188 underflow between chunks, so there's a new stack frame
1189 (UNDERFLOW_FRAME), and we now have separate TSO and STACK objects.
1190 The total amount of code is probably about the same as before.
1191 
1192 There are new RTS flags:
1193 
1194    -ki<size> Sets the initial thread stack size (default 1k)  Egs: -ki4k -ki2m
1195    -kc<size> Sets the stack chunk size (default 32k)
1196    -kb<size> Sets the stack chunk buffer size (default 1k)
1197 
1198 -ki was previously called just -k, and the old name is still accepted
1199 for backwards compatibility.  These new options are documented.
1200]
1201[comments on SRC_HC_OPTS (#4829)
1202Simon Marlow <marlowsd@gmail.com>**20101214101340
1203 Ignore-this: e2bdec00f07b68e82837e77a4faf6514
1204]
1205[fix another sanity error, and refactor/tidy up
1206Simon Marlow <marlowsd@gmail.com>**20101209163919
1207 Ignore-this: d5ce953ac78e90fc0e22cd9848d26e2e
1208]
1209[Fix a bug in functorLikeTraverse, which was giving wrong answer for tuples
1210simonpj@microsoft.com**20101215123725
1211 Ignore-this: 560220e92429b5b1a6197a62f94a4ff2
1212 
1213 This bug led to Trac #4816, which is hereby fixed
1214]
1215[Improve printing for -ddump-deriv
1216simonpj@microsoft.com**20101215121955
1217 Ignore-this: 3181c948c4c2471bd99b32c5ee487a1e
1218]
1219[Tighten up what it means to be an "enumeration data constructor"
1220simonpj@microsoft.com**20101215121927
1221 Ignore-this: 459b3f9f7994a13094ed87b0768b33a8
1222 
1223 See Note [Enumeration types] in TyCon, and comments in Trac #4528
1224]
1225[Allow enumerations to have phantom arguments.
1226simonpj@microsoft.com**20101215121817
1227 Ignore-this: 32ef8cb869e6e38c2e43b3ae87b1b9a8
1228 
1229 The bytecode generator was being too eager.
1230 Fixes Trac #4528, or rather, a near variant.
1231]
1232[Instance declaration overlap allowed if *either* has -XOverlappingInstances
1233simonpj@microsoft.com**20101214180500
1234 Ignore-this: f1b1492541a7e0464ebc6adb45510a2e
1235 
1236 This satisfies Trac #3877.  Documentation is changed too.
1237 I'm not sure if this should go in 7.0.2.
1238]
1239[Fix Trac #4841: behave right with TypeSynonymInstances and NoFlexibleInstances
1240simonpj@microsoft.com**20101214174755
1241 Ignore-this: dccd707fdca84904b7885170a296ecb6
1242 
1243 When we have TypeSynonymInstances without FlexibleInstances we should still
1244 insist on a H98-style instance head, after looking through the synonym.
1245 
1246 This patch also make FlexibleInstances imply TypeSynonymInstances.  Anything
1247 else is a bit awkward, and not very useful.
1248 
1249]
1250[Fix Trac #3731: more superclass subtlety (sigh)
1251simonpj@microsoft.com**20101214180344
1252 Ignore-this: f4168e59f3164303ba7be022ba19c37b
1253 
1254 I will add more comments, but I want to commit this tonight,
1255 so the overnight builds get it.
1256]
1257[Less verbose debug print
1258simonpj@microsoft.com**20101214180248
1259 Ignore-this: e405e8545763e913155abe43daf7e36c
1260]
1261[Wibble to InstEnv.instanceHead
1262simonpj@microsoft.com**20101214082939
1263 Ignore-this: 851db517f8638a0aeb7ad461298f7e9f
1264 
1265 Fixes an accidental glitch in T1835
1266]
1267[Remove dead code now that we require the bootstrapping compiler be >= 6.12
1268Ian Lynagh <igloo@earth.li>**20101214011011]
1269[GHC 6.12 is now needed to build the HEAD
1270Ian Lynagh <igloo@earth.li>**20101214010923]
1271[Add libstdc++-4.5.0-1-mingw32-dll-6.tar.lzma to mingw tarballs
1272Ian Lynagh <igloo@earth.li>**20101213223153]
1273[Fix recursive superclasses (again).  Fixes Trac #4809.
1274simonpj@microsoft.com**20101213171511
1275 Ignore-this: b91651397918fd8f0183812f9a070073
1276 
1277 This patch finally deals with the super-delicate question of
1278 superclases in possibly-recursive dictionaries.  The key idea
1279 is the DFun Superclass Invariant (see TcInstDcls):
1280 
1281      In the body of a DFun, every superclass argument to the
1282      returned dictionary is
1283        either   * one of the arguments of the DFun,
1284        or       * constant, bound at top level
1285 
1286 To establish the invariant, we add new "silent" superclass
1287 argument(s) to each dfun, so that the dfun does not do superclass
1288 selection internally.  There's a bit of hoo-ha to make sure that
1289 we don't print those silent arguments in error messages; a knock
1290 on effect was a change in interface-file format.
1291 
1292 A second change is that instead of the complex and fragile
1293 "self dictionary binding" in TcInstDcls and TcClassDcl,
1294 using the same mechanism for existential pattern bindings.
1295 See Note [Subtle interaction of recursion and overlap] in TcInstDcls
1296 and Note [Binding when looking up instances] in InstEnv.
1297 
1298 Main notes are here:
1299 
1300   * Note [Silent Superclass Arguments] in TcInstDcls,
1301     including the DFun Superclass Invariant
1302 
1303 Main code changes are:
1304 
1305   * The code for MkId.mkDictFunId and mkDictFunTy
1306 
1307   * DFunUnfoldings get a little more complicated;
1308     their arguments are a new type DFunArg (in CoreSyn)
1309 
1310   * No "self" argument in tcInstanceMethod
1311   * No special tcSimplifySuperClasss
1312   * No "dependents" argument to EvDFunApp
1313 
1314 IMPORTANT
1315    It turns out that it's quite tricky to generate the right
1316    DFunUnfolding for a specialised dfun, when you use SPECIALISE
1317    INSTANCE.  For now I've just commented it out (in DsBinds) but
1318    that'll lose some optimisation, and I need to get back to
1319    this.
1320]
1321[Doing the smart canonicalization only if we are not simplifying a Rule LHS.
1322dimitris@microsoft.com**20101210132221
1323 Also, same thing now applies for adding superclasses.
1324 
1325]
1326[Moved canonicalisation inside solveInteract
1327dimitris@microsoft.com**20101209141215
1328 
1329 Moreover canonicalisation now is "clever", i.e. it never canonicalizes a class
1330 constraint if it can already discharge it from some other inert or previously
1331 encountered constraints. See Note [Avoiding the superclass explosion]
1332 
1333]
1334[GHCi linker: Assume non-Haskell libraries are dynamic libs
1335Ian Lynagh <igloo@earth.li>**20101213124930
1336 Ignore-this: aa153a8f6e309c7b3dae7e46bb7a9583
1337 This works around a segfault we get when trying to load libiconv.a on
1338 some platforms.
1339]
1340[Add --version support to ghc-cabal
1341Ian Lynagh <igloo@earth.li>**20101212213600
1342 Ignore-this: ef696dcb1b96a23765f9f18e75a56f5
1343]
1344[Don't link the GHC RTS into our C-only programs
1345Ian Lynagh <igloo@earth.li>**20101210185402
1346 Ignore-this: 56f620f7eb16a03e7497a161bc48458e
1347]
1348[Build a copy of ghc-cabal with the in-tree compiler, for the bindist
1349Ian Lynagh <igloo@earth.li>**20101210181123]
1350[Add a test that all programs in the bindist were built with the right GHC
1351Ian Lynagh <igloo@earth.li>**20101210161218
1352 They should use the GHC from the build tree, not the bootstrapping compiler.
1353]
1354[Fix Trac #4534: renamer bug
1355simonpj@microsoft.com**20101210084530
1356 Ignore-this: 8163bfa3a56344cfe89ad17c62e9655d
1357   
1358 The renamer wasn't attaching the right used-variables to a
1359 TransformStmt constructor.
1360 
1361 The real modification is in RnExpr; the rest is just
1362 pretty-printing and white space.
1363]
1364[White space only
1365simonpj@microsoft.com**20101210084255
1366 Ignore-this: 3fcf8a4fc8c15052c379a135951d53ea
1367]
1368[Comments only
1369simonpj@microsoft.com**20101210084116
1370 Ignore-this: 55bb1de129b1c9513751885eaa84b884
1371]
1372[Make the case-to-let transformation a little less eager
1373simonpj@microsoft.com**20101208172251
1374 Ignore-this: 55eaa1b5753af31aeb32ec792cb6b662
1375 
1376 See Note [Case elimination: lifted case].
1377 Thanks to Roman for identifying this case.
1378]
1379[warning fix: don't redefine BLOCKS_PER_MBLOCK
1380Simon Marlow <marlowsd@gmail.com>**20101210094002
1381 Ignore-this: cadba57f1c38f5e2af1de37d0a79c7ee
1382]
1383[Only reset the event log if logging is turned on (addendum to #4512)
1384Simon Marlow <marlowsd@gmail.com>**20101210093951
1385 Ignore-this: c9f85f0de2b11a37337672fba59aecc6
1386]
1387[allocate enough room for the longer filename (addendum to #4512)
1388Simon Marlow <marlowsd@gmail.com>**20101210093906
1389 Ignore-this: 270dc0219d98f1e0f9e006102ade7087
1390]
1391[Fix Windows build: move rtsTimerSignal to the POSIX-only section
1392Simon Marlow <marlowsd@gmail.com>**20101210090045
1393 Ignore-this: aa1844b70b9f1a44447787c4bbe10d44
1394]
1395[Default the value of -dppr-cols when the static flags aren't initialised yet
1396Ben Lippmeier <benl@ouroborus.net>**20101210060154
1397 Ignore-this: 4cea29085ef904f379a8829714c9e180
1398 If GHC's command line options are bad then the options parser uses the
1399 pretty printer before the -dppr-cols flag has been read.
1400]
1401[Defensify naked read in LLVM mangler
1402Ben Lippmeier <benl@ouroborus.net>**20101210045922
1403 Ignore-this: 1373f597863851bd03e7a7254558ed04
1404]
1405[Formatting only
1406Ben Lippmeier <benl@ouroborus.net>**20101210042600
1407 Ignore-this: 20bbcd95c70b59094d0bb8a63e459103
1408]
1409[Always ppr case alts on separate lines
1410Ben Lippmeier <benl@ouroborus.net>**20101208070508
1411 Ignore-this: 7e2edd57a61427621aeb254aef84f0f7
1412]
1413[Add -dppr-colsN to set width of dumps
1414Ben Lippmeier <benl@ouroborus.net>**20101208070245
1415 Ignore-this: edc64fee6c373b895bb80b83b549ce1a
1416]
1417[Add -dppr-case-as-let to print "strict lets" as actual lets
1418Ben Lippmeier <benl@ouroborus.net>**20101208065548
1419 Ignore-this: eb1d122dbd73b5263cae3a9f8259a838
1420]
1421[Suppress more info with -dsuppress-idinfo
1422Ben Lippmeier <benl@ouroborus.net>**20101208063037
1423 Ignore-this: 5e8213d7b8d2905e245917aa3e83efc5
1424]
1425[Implement -dsuppress-type-signatures
1426Ben Lippmeier <benl@ouroborus.net>**20101208062814
1427 Ignore-this: 34dbefe5f8d7fe58ecb26d6a748d1c71
1428]
1429[Add more suppression flags
1430Ben Lippmeier <benl@ouroborus.net>**20101208020723
1431 Ignore-this: b010ba9789a2fde6b815f33494fcc23c
1432  -dsuppress-all
1433  -dsuppress-type-applications
1434  -dsuppress-idinfo
1435]
1436[fix ticket number (#4505)
1437Simon Marlow <marlowsd@gmail.com>**20101209120404
1438 Ignore-this: 5769c5ce2a8d69d62d977a9ae138ec23
1439]
1440[fix warnings
1441Simon Marlow <marlowsd@gmail.com>**20101209115844
1442 Ignore-this: ffff37feb2abbfc5bd12940c7007c208
1443]
1444[Catch too-large allocations and emit an error message (#4505)
1445Simon Marlow <marlowsd@gmail.com>**20101209114005
1446 Ignore-this: c9013ab63dd0bd62ea045060528550c6
1447 
1448 This is a temporary measure until we fix the bug properly (which is
1449 somewhat tricky, and we think might be easier in the new code
1450 generator).
1451 
1452 For now we get:
1453 
1454 ghc-stage2: sorry! (unimplemented feature or known bug)
1455   (GHC version 7.1 for i386-unknown-linux):
1456         Trying to allocate more than 1040384 bytes.
1457 
1458 See: http://hackage.haskell.org/trac/ghc/ticket/4550
1459 Suggestion: read data from a file instead of having large static data
1460 structures in the code.
1461]
1462[Export the value of the signal used by scheduler (#4504)
1463Dmitry Astapov <dastapov@gmail.com>**20101208183755
1464 Ignore-this: 427bf8c2469283fc7a6f759440d07d87
1465]
1466[Tweak the "sorry" message a bit
1467Simon Marlow <marlowsd@gmail.com>**20101208163212
1468 Ignore-this: aa1ce5bc3c27111548204b740572efbe
1469 
1470 -              "sorry! (this is work in progress)\n"
1471 +              "sorry! (unimplemented feature or known bug)\n"
1472]
1473[:unset settings support
1474Boris Lykah <lykahb@gmail.com>**20101123190132
1475 Ignore-this: 5e97c99238f5d2394592858c34c004d
1476 Added support for settings [args, prog, prompt, editor and stop].
1477 Now :unset supports the same set of options as :set.
1478]
1479[Fix Windows memory freeing: add a check for fb == NULL; fixes trac #4506
1480Ian Lynagh <igloo@earth.li>**20101208152349
1481 Also added a few comments, and a load of code got indented 1 level deeper.
1482]
1483[Fixes for #4512: EventLog.c - provides ability to terminate event logging, Schedule.c - uses them in forkProcess.
1484Dmitry Astapov <dastapov@gmail.com>**20101203133950
1485 Ignore-this: 2da7f215d6c22708a18291a416ba8881
1486]
1487[Make CPPFLAGS variables, as well as CFLAGS and LDFLAGS
1488Ian Lynagh <igloo@earth.li>**20101207010033
1489 Ignore-this: 2fc1ca1422aae1988d0fe1d29a8485d9
1490 This fixes the "does unsetenv return void" test in the unix package on
1491 OS X, if I tell it to make 10.4-compatible binaries. The test uses
1492 CPPFLAGS but not CFLAGS, so it thought it returned int (as it was
1493 in 10.5-mode), but the C compiler (using CFLAGS, so in 10.4 mode)
1494 thought it returned void.
1495 
1496 I also added CONF_LD_OPTS_STAGE$3 to the list of things in LDFLAGS,
1497 which looks like an accidental ommission.
1498]
1499[Add a configure message
1500Ian Lynagh <igloo@earth.li>**20101206215201]
1501[Link even programs containing no Haskell modules with GHC
1502Ian Lynagh <igloo@earth.li>**20101206203329
1503 I don't remember why we made it use gcc instead, but going back to
1504 using ghc doesn't seem to break anything, and should fix the build
1505 on OS X 10.6.
1506]
1507[Correct the stage that the includes/ tools are built in
1508Ian Lynagh <igloo@earth.li>**20101206203125]
1509[Tweak the cleaning of inplace/; fixes trac #4320
1510Ian Lynagh <igloo@earth.li>**20101205212048]
1511[Close .ghci files after reading them; fixes trac #4487
1512Ian Lynagh <igloo@earth.li>**20101205205301]
1513[Fix the behaviour of :history for ticks surrounding top level functions
1514pepeiborra@gmail.com**20101203202346
1515 Ignore-this: 8059d4859c52c0c9a235b937cb8cde1d
1516]
1517[Don't warn of duplicate exports in case of module exports.
1518Michal Terepeta <michal.terepeta@gmail.com>**20101127212116
1519 Ignore-this: ea225d517826f971c400bbb68d1405b8
1520 
1521 But only when the module exports refer to different modules.
1522 See ticket #4478.
1523]
1524[Fix whitespace/layout in RnNames.
1525Michal Terepeta <michal.terepeta@gmail.com>**20101030171303
1526 Ignore-this: 707a7955fc4fc51683cc5a1dfe57f93
1527]
1528[Tell gcc to support back to OS X 10.5
1529Ian Lynagh <igloo@earth.li>**20101203201558
1530 Ignore-this: f02d70e5b9cce50137981c6cb2b62a18
1531]
1532[Make RelaxedLayout off by default
1533Ian Lynagh <igloo@earth.li>**20101202140808
1534 I suspect this is a vary rarely used extension to the official layout
1535 rule.
1536]
1537[Fix up TcInstDcls
1538simonpj@microsoft.com**20101203180758
1539 Ignore-this: 9311aeb4ee67c799704afec90b5982d0
1540 
1541 I really don't know how this module got left out of my last
1542 patch, namely
1543   Thu Dec  2 12:35:47 GMT 2010  simonpj@microsoft.com
1544   * Re-jig simplifySuperClass (again)
1545 
1546 I suggest you don't pull either the patch above, or this
1547 one, unless you really have to.  I'm not fully confident
1548 that it works properly yet.  Ran out of time. Sigh.
1549]
1550[throwTo: report the why_blocked value in the barf()
1551Simon Marlow <marlowsd@gmail.com>**20101203094840
1552 Ignore-this: 3b167c581be1c51dfe3586cc6359e1d0
1553]
1554[handle ThreadMigrating in throwTo() (#4811)
1555Simon Marlow <marlowsd@gmail.com>**20101203094818
1556 Ignore-this: 8ef8cb7fd3b50a27f83c29968131d461
1557 If a throwTo targets a thread that has just been created with
1558 forkOnIO, then it is possible the exception strikes while the thread
1559 is still in the process of migrating.  throwTo() didn't handle this
1560 case, but it's fairly straightforward.
1561]
1562[removeThreadFromQueue: stub out the link field before returning (#4813)
1563Simon Marlow <marlowsd@gmail.com>**20101202160838
1564 Ignore-this: 653ae17bc1120d7f4130da94665002a1
1565]
1566[small tidyup
1567Simon Marlow <marlowsd@gmail.com>**20101126140620
1568 Ignore-this: 70b1d5ed4c81a7b29dd5980a2d84aae1
1569]
1570[Fix a recomp bug: make classes/datatypes depend directly on DFuns (#4469)
1571Simon Marlow <marlowsd@gmail.com>**20101202122349
1572 Ignore-this: 61c765583bb1d97caa88cf9b4f45b87c
1573 And remove the old mechanism of recording dfun uses separately,
1574 because it didn't work.
1575 
1576 This wiki page describes recompilation avoidance and fingerprinting.
1577 I'll update it to describe the new method and what went wrong with the
1578 old method:
1579 
1580 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/RecompilationAvoidance
1581]
1582[make a panic message more informative and suggest -dcore-lint (see #4534)
1583Simon Marlow <marlowsd@gmail.com>**20101201151706
1584 Ignore-this: 2a10761925d6f9f52675948baa30f7a
1585]
1586[Re-jig simplifySuperClass (again)
1587simonpj@microsoft.com**20101202123547
1588 Ignore-this: fe4062b8988258f6748ebd8fbd6515b5
1589 
1590 This fixes the current loop in T3731, and will fix other
1591 reported loops.  The loops show up when we are generating
1592 evidence for superclasses in an instance declaration.
1593 
1594 The trick is to make the "self" dictionary simplifySuperClass
1595 depend *explicitly* on the superclass we are currently trying
1596 to build.  See Note [Dependencies in self dictionaries] in TcSimplify.
1597 
1598 That in turn means that EvDFunApp needs a dependency-list, used
1599 when chasing dependencies in isGoodRecEv.
1600]
1601[A little refactoring (remove redundant argument passed to isGoodRecEv)
1602simonpj@microsoft.com**20101202123110
1603 Ignore-this: e517c5c12109a230f08dafb4d1e386df
1604]
1605[Make rebindable if-then-else a little more permissive
1606simonpj@microsoft.com**20101202122540
1607 Ignore-this: ddb552cfe307607b42d1e4baf4e3bf21
1608 
1609 See Note [Rebindable syntax for if].  Fixes Trac #4798.
1610 Thanks to Nils Schweinsberg <mail@n-sch.de>
1611]
1612[Improve error message (Trac #4799)
1613simonpj@microsoft.com**20101202102706
1614 Ignore-this: d9896e4d182936de1f256c820b96a8cf
1615]
1616[Fix a nasty bug in RULE matching: Trac #4814
1617simonpj@microsoft.com**20101202102618
1618 Ignore-this: ba058ad46a02bd2faf3a14de93fd19c6
1619 
1620 See Note [Matching lets], which explains it all in detail.
1621 It took me a day to think of a nice way to fix the bug,
1622 but I think the result is quite respectable. Subtle, though.
1623]
1624[Rename -XPArr to -XParallelArrays
1625Ben Lippmeier <benl@ouroborus.net>**20101130075415
1626 Ignore-this: 21b37680a7f25800d1200b59ad0b6b39
1627]
1628[FIX #1845 (unconditional relative branch out of range)
1629pho@cielonegro.org**20101130143014
1630 Ignore-this: df234bd8ad937104c455656fe3c33732
1631 
1632 Don't use mmap on powerpc-apple-darwin as mmap doesn't support
1633 reallocating but we need to allocate jump islands just after each
1634 object images. Otherwise relative branches to jump islands can fail
1635 due to 24-bits displacement overflow.
1636]
1637[rts/Linker.c (loadArchive):
1638pho@cielonegro.org**20101130142700
1639 Ignore-this: bc84f9369ce5c2d289440701b7a3a2ab
1640 
1641 This routine should be aware of Mach-O misalignment of malloc'ed memory regions.
1642]
1643[rts/Linker.c (machoGetMisalignment):
1644pho@cielonegro.org**20101130123355
1645 Ignore-this: 75425600049efd587e9873578e26392f
1646 
1647 Use fseek(3) instead of rewind(3) to move the file position indicator back to the initial position. Otherwise we can't use this function in loadArchive().
1648]
1649[rts/Linker.c (ocFlushInstructionCache):
1650pho@cielonegro.org**20101130121425
1651 Ignore-this: 1e2c207e4b1d17387617ec5d645204b7
1652 
1653 I found this function causes a segfault when ocAllocateSymbolExtras() has allocated a separate memory region for jump islands.
1654]
1655[Remove NewQualifiedOperators
1656Ian Lynagh <igloo@earth.li>**20101201181117
1657 The extension was rejected by Haskell', and deprecated in 7.0.
1658]
1659[fix ref to utils/ext-core, which moved to Hackage (extcore package)
1660Simon Marlow <marlowsd@gmail.com>**20101201092147
1661 Ignore-this: 272a7daaa335ef60bcc645db70b4d68b
1662]
1663[fix floating-point/FFI section: fenv is C99, not POSIX
1664Simon Marlow <marlowsd@gmail.com>**20101201092119
1665 Ignore-this: ce8b3edd428e4f77691dd739b5b4ae73
1666]
1667[Fixed some 'unused vars' warnings
1668keller@cse.unsw.edu.au**20101130013425
1669 Ignore-this: 35790d443faa23b87e4ba442e62376a3
1670]
1671[vectScalarLam handles int, float, and double now
1672keller@cse.unsw.edu.au**20101129231043
1673 Ignore-this: 6d67bdc8dd8577184040e791e6f3d0
1674]
1675[Handling of lets, letrec and case when checking if a lambda expr needs to be vectorised
1676keller@cse.unsw.edu.au**20101115051225
1677 Ignore-this: 1db6ed63d7b3f6d093e019322b407ff7
1678]
1679[Document the behaviour of fenv.h functions with GHC (#4391)
1680Simon Marlow <marlowsd@gmail.com>**20101126125336
1681 Ignore-this: bc4eab49428d567505a28add6fed90f1
1682]
1683[Remove the no-ghci-lib warning in ghc-pkg
1684Ian Lynagh <igloo@earth.li>**20101127235805
1685 GHCi libs are no longer necessary, as we can use the .a or .so versions
1686 instead.
1687]
1688[Add GNU-variant support to the .a parser, and other improvements/tidyups
1689Ian Lynagh <igloo@earth.li>**20101127223945]
1690[Re-indent only
1691Ian Lynagh <igloo@earth.li>**20101127191646]
1692[Improve linker debugging for archive files
1693Ian Lynagh <igloo@earth.li>**20101127190907]
1694[Always enable the archive-loading code
1695Ian Lynagh <igloo@earth.li>**20101127173000
1696 If the GHCi .o lib doesn't exist, load the .a instead
1697]
1698[Inherit the ForceSpecConstr flag in non-recursive nested bindings
1699Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101127125025
1700 Ignore-this: 401391eae25cefcb4afaba2e357decc1
1701 
1702 This makes sure that join points are fully specialised in loops which are
1703 marked as ForceSpecConstr.
1704]
1705[Document -ddump-rule-firings and -ddump-rule-rewrites
1706Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101127123528
1707 Ignore-this: beade2efe0cd767c0ce9d4f45a3380ba
1708]
1709[New flag -dddump-rule-rewrites
1710Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101127122022
1711 Ignore-this: c0ef5b8a199fbd1ef020258d2cde85a3
1712 
1713 Now, -ddump-rule-firings only shows the names of the rules that fired (it would
1714 show "before" and "after" with -dverbose-core2core previously) and
1715 -ddump-rule-rewrites always shows the "before" and "after" bits, even without
1716 -dverbose-core2core.
1717]
1718[Acutally, wild-card variables *can* have occurrences
1719simonpj@microsoft.com**20101126162409
1720 Ignore-this: 544bffed75eeccef03a1097f98524eea
1721 
1722 This patch removes the Lint test, and comments why
1723]
1724[Tidy up the handling of wild-card binders, and make Lint check it
1725simonpj@microsoft.com**20101126133210
1726 Ignore-this: 9e0be9f7867d53046ee5b0e478a0f433
1727 
1728 See Note [WildCard binders] in SimplEnv.  Spotted by Roman.
1729]
1730[Substitution should just substitute, not optimise
1731simonpj@microsoft.com**20101125172356
1732 Ignore-this: 657628d9b6796ceb5f915c43d56e4a06
1733 
1734 This was causing Trac #4524, by optimising
1735      (e |> co)  to   e
1736 on the LHS of a rule.  Result, the template variable
1737 'co' wasn't bound any more.
1738 
1739 Now that substition doesn't optimise, it seems sensible to call
1740 simpleOptExpr rather than substExpr when substituting in the
1741 RHS of rules.  Not a big deal either way.
1742]
1743[Make SpecConstr "look through" identity coercions
1744simonpj@microsoft.com**20101125172138
1745 Ignore-this: c1cc585ed890a7702c33987e971e0af6
1746]
1747[Comment only
1748simonpj@microsoft.com**20101125172011
1749 Ignore-this: 3c7be8791badd00dcca9610ebb8981d1
1750]
1751[White space only
1752simonpj@microsoft.com**20101101080748
1753 Ignore-this: f7133fc6b22ae263c6672543a8534a6f
1754]
1755[Keep a maximum of 6 spare worker threads per Capability (#4262)
1756Simon Marlow <marlowsd@gmail.com>**20101125135729
1757 Ignore-this: a020786569656bf2f3a1717b65d463bd
1758]
1759[Unicide OtherNumber category should be allowed in identifiers (#4373)
1760Simon Marlow <marlowsd@gmail.com>**20101115095444
1761 Ignore-this: e331b6ddb17550163ee91bd283348800
1762]
1763[vectoriser: fix warning
1764Ben Lippmeier <benl@ouroborus.net>**20101126044036
1765 Ignore-this: e1a66bb405bf2f3f56b42c3b13fd4bf3
1766]
1767[vectoriser: fix warning
1768Ben Lippmeier <benl@ouroborus.net>**20101126042950
1769 Ignore-this: df8dd25bcfb3946c2974b13953a2f2c7
1770]
1771[vectoriser: take class directly from the instance tycon
1772Ben Lippmeier <benl@ouroborus.net>**20101126042900
1773 Ignore-this: 626a416717a5a059f39e53f4ec95fc66
1774]
1775[vectoriser: comments only
1776Ben Lippmeier <benl@ouroborus.net>**20101125073201
1777 Ignore-this: 8846ea8895307083bd1ebbc5d7fb1c5
1778]
1779[vectoriser: follow changes in mkClass
1780Ben Lippmeier <benl@ouroborus.net>**20101125062349
1781 Ignore-this: d5018cc022686d4272e126ca9a12283a
1782]
1783[vectoriser: tracing wibbles
1784Ben Lippmeier <benl@ouroborus.net>**20101125062332
1785 Ignore-this: c2024d8f03bc03bee2851f4f1c139fd5
1786]
1787[mkDFunUnfolding wants the type of the dfun to be a PredTy
1788benl@ouroborus.net**20100914062939
1789 Ignore-this: 7aa6e6b140746184cf00355b50c83b66
1790]
1791[vectoriser: fix conflicts
1792Ben Lippmeier <benl@ouroborus.net>**20101125060904
1793 Ignore-this: cc3decab1affada8629ca3818b76b3bf
1794]
1795[Comments and formatting only
1796benl@ouroborus.net**20100914062903
1797 Ignore-this: b0fc25f0952cafd56cc25353936327d4
1798]
1799[Comments and formatting to type environment vectoriser
1800benl@ouroborus.net**20100909080405
1801 Ignore-this: ab8549d53f845c9d82ed9a525fda3906
1802]
1803[Don't mix implicit and explicit layout
1804Ian Lynagh <igloo@earth.li>**20101124231514]
1805[Whitespace only
1806Ian Lynagh <igloo@earth.li>**20101124230655]
1807[Separate NondecreasingIndentation out into its own extension
1808Ian Lynagh <igloo@earth.li>**20101124220507]
1809[Add another GHC layout rule relaxation to RelaxedLayout
1810Ian Lynagh <igloo@earth.li>**20101124205957]
1811[Remove an unused build system variable: GhcDir
1812Ian Lynagh <igloo@earth.li>**20101124140455]
1813[Remove unused build system variable: GhcHasEditline
1814Ian Lynagh <igloo@earth.li>**20101124140415]
1815[Remove unused variables from the build system: HBC, NHC, MKDEPENDHS
1816Ian Lynagh <igloo@earth.li>**20101124140052]
1817[Remove references to Haskell 98
1818Ian Lynagh <igloo@earth.li>**20101123233536
1819 They are no longer right, as we have Haskell' generating new Haskell
1820 standards.
1821]
1822[Tweak a configure test
1823Ian Lynagh <igloo@earth.li>**20101123170621]
1824[Add a configure test for the visibility hidden attribute
1825Ian Lynagh <igloo@earth.li>**20101123170541]
1826[sanity: fix places where we weren't filling fresh memory with 0xaa
1827Simon Marlow <marlowsd@gmail.com>**20101029092843
1828 Ignore-this: 2cb18f7f5afcaf33371aeffce67e218f
1829]
1830[Just some alpha renaming
1831Ian Lynagh <igloo@earth.li>**20101121144455
1832 Ignore-this: d5e807c5470840efc199e29f7d50804c
1833]
1834[Fix bug #3165 (:history throws irrefutable pattern failed)
1835pepeiborra@gmail.com**20101115223623
1836 Ignore-this: 73edf56e502b4d0385bc044133b27946
1837 
1838 I ran across this bug and took the time to fix it, closing
1839 a long time due TODO in InteractiveEval.hs
1840 
1841 Instead of looking around to find the enclosing declaration
1842 of a tick, this patch makes use of the information already collected during the
1843 coverage desugaring phase
1844]
1845[For bindists, build ghc-pwd with stage 1
1846Ian Lynagh <igloo@earth.li>**20101121183520
1847 Ignore-this: a3b5c8b78c81ec1b6d5fbf23da346ff5
1848 rather then the bootstrapping compiler. This fixes problems where the
1849 bootstrapping compiler dynamically links against libraries not on the
1850 target machine.
1851]
1852[Makefile tweak
1853Ian Lynagh <igloo@earth.li>**20101121183342
1854 Ignore-this: cd55a2819c1a5fd36da1bc7a75d2ded1
1855]
1856[Fix a makefile include ordering sanity check
1857Ian Lynagh <igloo@earth.li>**20101121174916
1858 Ignore-this: d0bdd41c4b618944d04ecb4f54fdd0f1
1859]
1860[Add an extension for GHC's layout-rule relaxations
1861Ian Lynagh <igloo@earth.li>**20101120215340
1862 Still TODO: Add the other relaxation (#1060) and update the alternative
1863 layout rule to use the extension.
1864]
1865[Tweak the bindist configure.ac.in
1866Ian Lynagh <igloo@earth.li>**20101120173735]
1867[configure.ac tweaks
1868Ian Lynagh <igloo@earth.li>**20101120170245]
1869[When testing the bindist, tell it where gcc is
1870Ian Lynagh <igloo@earth.li>**20101120155920
1871 The location isn't baked into the bindist, as it may differ from
1872 machine to machine.
1873]
1874[Comments only
1875simonpj@microsoft.com**20101119100153
1876 Ignore-this: 7abd5d965ea805770449d6f8dadbb921
1877]
1878[ForceSpecConstr now forces specialisation even for arguments which aren't scrutinised
1879Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101118212839
1880 Ignore-this: db45721d29a694e53746f8b76513efa4
1881]
1882[Move the superclass generation to the canonicaliser
1883simonpj@microsoft.com**20101118120533
1884 Ignore-this: 5e0e525402a240b709f2b8104c1682b2
1885 
1886 Doing superclass generation in the canonicaliser (rather than
1887 TcInteract) uses less code, and is generally more efficient.
1888 
1889 See Note [Adding superclasses] in TcCanonical.
1890 
1891 Fixes Trac #4497.
1892]
1893[Fix the generation of in-scope variables for IfaceLint check
1894simonpj@microsoft.com**20101118090057
1895 Ignore-this: bbcdba61ddf89d07fe69ca99c2017e3f
1896]
1897[Comments only
1898simonpj@microsoft.com**20101118090034
1899 Ignore-this: fa2936d35a0f7be4e4535ea9e2b7bf7b
1900]
1901[Omit bogus test for -XDeriveFunctor
1902simonpj@microsoft.com**20101118090028
1903 Ignore-this: a534243011809ebbb788b910961601c5
1904 
1905 It was duplicated in the case of 'deriving( Functor )'
1906 and wrong for 'deriving( Foldable )'
1907]
1908[Improve error message on advice from a user
1909simonpj@microsoft.com**20101118085306
1910 Ignore-this: bd4f3858ff24e602e985288f27d536f3
1911 
1912 See Trac #4499
1913]
1914[TAG 2010-11-18
1915Ian Lynagh <igloo@earth.li>**20101118011554
1916 Ignore-this: ccadbe7fadd1148d2ee3caa8c8821ec5
1917]
1918Patch bundle hash:
1919cb380086217d595578141d59f01c7c30f9250d00