Ticket #4964: ScaleCCSReportColumns.dpatch

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