Ticket #4152: papi-native.dpatch

File papi-native.dpatch, 68.9 KB (added by dmp, 3 years ago)
Line 
1Tue Jun 22 14:59:53 CDT 2010  dmp@rice.edu
2  * Add support for collecting PAPI native events
3 
4  This patch extends the PAPI support in the RTS to allow collection of native
5  events. PAPI can collect data for native events that are exposed by the
6  hardware beyond the PAPI present events. The native events supported on your
7  hardware can found by using the papi_native_avail tool.
8 
9  The RTS already allows users to specify PAPI preset events from the command
10  line. This patch extends that support to allow users to specify native events.
11  The changes needed are:
12 
13  1) New option (#) for the RTS PAPI flag for native events. For example, to
14     collect the native event 0x40000000, use ./a.out +RTS -a#0x40000000 -sstderr
15 
16  2) Update the PAPI_FLAGS struct to store whether the user specified event is a
17     papi preset or a native event
18 
19  3) Update init_countable_events function to add the native events after parsing
20     the event code and decoding the name using PAPI_event_code_to_name
21 
22
23New patches:
24
25[Add support for collecting PAPI native events
26dmp@rice.edu**20100622195953
27 Ignore-this: 7269f9c4dfb2912a024eb632200fcd1
28 
29 This patch extends the PAPI support in the RTS to allow collection of native
30 events. PAPI can collect data for native events that are exposed by the
31 hardware beyond the PAPI present events. The native events supported on your
32 hardware can found by using the papi_native_avail tool.
33 
34 The RTS already allows users to specify PAPI preset events from the command
35 line. This patch extends that support to allow users to specify native events.
36 The changes needed are:
37 
38 1) New option (#) for the RTS PAPI flag for native events. For example, to
39    collect the native event 0x40000000, use ./a.out +RTS -a#0x40000000 -sstderr
40 
41 2) Update the PAPI_FLAGS struct to store whether the user specified event is a
42    papi preset or a native event
43 
44 3) Update init_countable_events function to add the native events after parsing
45    the event code and decoding the name using PAPI_event_code_to_name
46 
47] {
48hunk ./includes/rts/Flags.h 176
49     nat     eventType;          /* The type of events to count */
50     nat     numUserEvents;
51     char *  userEvents[MAX_PAPI_USER_EVENTS];
52+    /* Allow user to enter either PAPI preset or native events */
53+    nat     userEventsKind[MAX_PAPI_USER_EVENTS];
54 };
55 
56 #define PAPI_FLAG_CACHE_L1 1
57hunk ./includes/rts/Flags.h 186
58 #define PAPI_FLAG_STALLS 4
59 #define PAPI_FLAG_CB_EVENTS 5
60 #define PAPI_USER_EVENTS 6
61+#define PAPI_PRESET_EVENT_KIND 0
62+#define PAPI_NATIVE_EVENT_KIND 1
63 
64 #endif
65 
66hunk ./rts/Papi.c 77
67 
68 /* Arbitrary, to avoid using malloc */
69 #define MAX_PAPI_EVENTS 10
70+static char papiNativeEventNames[MAX_PAPI_EVENTS][PAPI_MAX_STR_LEN];
71 
72 static nat n_papi_events = 0;
73 
74hunk ./rts/Papi.c 90
75 long_long GC1Counters[MAX_PAPI_EVENTS];
76 
77 long_long start_mutator_cycles;
78-long_long mutator_cycles;
79+long_long mutator_cycles = 0;
80 long_long start_gc_cycles;
81hunk ./rts/Papi.c 92
82-long_long gc0_cycles;
83-long_long gc1_cycles;
84+long_long gc0_cycles = 0;
85+long_long gc1_cycles = 0;
86 
87 
88 
89hunk ./rts/Papi.c 149
90     } else if (RtsFlags.PapiFlags.eventType==PAPI_USER_EVENTS) {
91         nat i;
92         char *name;
93+        char *asciiEventCode;
94         int code;
95         for (i = 0; i < RtsFlags.PapiFlags.numUserEvents; i++) {
96hunk ./rts/Papi.c 152
97+          if(RtsFlags.PapiFlags.userEventsKind[i] == PAPI_PRESET_EVENT_KIND) {
98             name = RtsFlags.PapiFlags.userEvents[i];
99             PAPI_CHECK(PAPI_event_name_to_code(name, &code))
100hunk ./rts/Papi.c 155
101-            papi_add_event(name, code);
102+          }
103+          else { // PAPI_NATIVE_EVENT_KIND
104+            asciiEventCode = RtsFlags.PapiFlags.userEvents[i];
105+            name = papiNativeEventNames[i];
106+            code = strtol(asciiEventCode, NULL, 16 /* hex number expected */);
107+            PAPI_CHECK(PAPI_event_code_to_name(code, name))
108+          }
109+          papi_add_event(name, code);
110         }
111     } else {
112        // PAPI_ADD_EVENT(PAPI_L1_DCA); // L1 data cache accesses
113hunk ./rts/RtsFlags.c 343
114 "            b - branch mispredictions",
115 "            s - stalled cycles",
116 "            e - cache miss and branch misprediction events",
117+"            +PAPI_EVENT   - collect papi preset event PAPI_EVENT",
118+"            #NATIVE_EVENT - collect native event NATIVE_EVENT (in hex)",
119 #endif
120 "",
121 "RTS options may also be specified using the GHCRTS environment variable.",
122hunk ./rts/RtsFlags.c 582
123                  RtsFlags.PapiFlags.eventType = PAPI_FLAG_CB_EVENTS;
124                  break;
125                 case '+':
126+                case '#':
127                   if (RtsFlags.PapiFlags.numUserEvents >= MAX_PAPI_USER_EVENTS) {
128                       errorBelch("maximum number of PAPI events reached");
129                       stg_exit(EXIT_FAILURE);
130hunk ./rts/RtsFlags.c 587
131                   }
132+                  nat eventNum  = RtsFlags.PapiFlags.numUserEvents++;
133+                  char kind     = rts_argv[arg][2];
134+                  nat eventKind = kind == '+' ? PAPI_PRESET_EVENT_KIND : PAPI_NATIVE_EVENT_KIND;
135+
136+                  RtsFlags.PapiFlags.userEvents[eventNum] = rts_argv[arg] + 3;
137                   RtsFlags.PapiFlags.eventType = PAPI_USER_EVENTS;
138hunk ./rts/RtsFlags.c 593
139-                  RtsFlags.PapiFlags.userEvents[RtsFlags.PapiFlags.numUserEvents++] = rts_argv[arg] + 3;
140+                  RtsFlags.PapiFlags.userEventsKind[eventNum] = eventKind;
141                   break;
142                default:
143                  bad_option( rts_argv[arg] );
144}
145
146Context:
147
148[Reduce the number of passes over the cmm in llvm BE
149David Terei <davidterei@gmail.com>**20100621125220
150 Ignore-this: cb2f4e54e8d0f982d5087fbeee35c73c
151]
152[Fix negate op not working for -0 in llvm backend
153David Terei <davidterei@gmail.com>**20100621123606
154 Ignore-this: c5d76e5cffa781fed074137851b1347f
155]
156[ROLLBACK: picCCOpts: -dynamic should not entail -optc-fPIC
157Simon Marlow <marlowsd@gmail.com>**20100621100409
158 Ignore-this: f2fac7df33d3919199befc59bd455414
159 and add a comment to explain why it was wrong.  This fixes the dyn
160 test failures that sprang up recently.
161]
162[Check files are really created in libffi
163Ian Lynagh <igloo@earth.li>**20100620163724
164 when we think that the libffi build creates them, so they just depend
165 on the libffi build stamp.
166]
167[Improve the missing-import-list warning
168Ian Lynagh <igloo@earth.li>**20100620124320
169 Ignore-this: 551e5fdf2dfb56b49d249e0cebaa6115
170]
171[Tweak missing-import-list warning
172Ian Lynagh <igloo@earth.li>**20100620122622
173 Ignore-this: 360cdf59ae13d66ded181129325506c4
174]
175[trac #1789 (warnings for missing import lists)
176amsay@amsay.net**20100618150649
177 Ignore-this: b0b0b1e048fbca0817c1e6fade1153fa
178]
179[Refix docs for sizeofByteArray#/sizeofMutableByteArray# (#3800)
180Ian Lynagh <igloo@earth.li>**20100620103749]
181[Remove some old commented out code
182Ian Lynagh <igloo@earth.li>**20100620000459]
183[SET_ARR_HDR's last argument is now a number of bytes, rather than words
184Ian Lynagh <igloo@earth.li>**20100619235214
185 This avoids unnecessary work and potential loss of information
186]
187[Replace an (incorrect) bytes-to-words calculation with ROUNDUP_BYTES_TO_WDS
188Ian Lynagh <igloo@earth.li>**20100619234310]
189[FIX #38000 Store StgArrWords payload size in bytes
190Antoine Latter <aslatter@gmail.com>**20100101183346
191 Ignore-this: 7bf3ab4fc080c46311fc10b179361bb6
192]
193[Add win32 datalayout support to llvm backend
194David Terei <davidterei@gmail.com>**20100618131733
195 Ignore-this: 4b7bffaa8ef38c628ab852c1a6c1c009
196]
197[Remove unused 'ddump-opt-llvm' flag
198David Terei <davidterei@gmail.com>**20100618101237
199 Ignore-this: f78467496d986897e49d82646ee2907e
200]
201[generate "movl lbl(%reg1), %reg2" instructions, better codegen for -fPIC
202Simon Marlow <marlowsd@gmail.com>**20100618082258
203 Ignore-this: a25567ebff9f575303ddc8f2deafebbf
204]
205[joinToTargets: fix a case of panic "handleComponent cyclic"
206Simon Marlow <marlowsd@gmail.com>**20100618082147
207 Ignore-this: 765baeefbb5a41724004acd92405cecc
208]
209[comment typo
210Simon Marlow <marlowsd@gmail.com>**20100618082102
211 Ignore-this: e495610b7dd5ec30b02938638b56cb7
212]
213[Add support of TNTC to llvm backend
214David Terei <davidterei@gmail.com>**20100618093205
215 Ignore-this: 2c27d21668374a5b0d5e844882c69439
216 
217 We do this through a gnu as feature called subsections,
218 where you can put data/code into a numbered subsection
219 and those subsections will be joined together in descending
220 order by gas at compile time.
221]
222[Don't automatically insert a -fvia-C flag in an unregisterised compiler
223Ian Lynagh <igloo@earth.li>**20100617190901
224 Ignore-this: eb25a9a338fade9e17c153da7c5f27e9
225 The default object mode is already HscC, so it's unnecessary, and
226 -fvia-C generates a deprecated flag warning now.
227]
228[In PosixSource.h, conditionally define things based on platform
229Ian Lynagh <igloo@earth.li>**20100617174912
230 This may not be ideal, but it should get GHC building on all platforms
231 again.
232]
233[disable -fPIC for the GC for performance reasons
234Simon Marlow <marlowsd@gmail.com>**20100617140025
235 Ignore-this: c7c152bbff71ef7891eaee8ff39fc281
236 see comment for details
237]
238[picCCOpts: -dynamic should not entail -optc-fPIC
239Simon Marlow <marlowsd@gmail.com>**20100617115259
240 Ignore-this: d71e42bd56e4bd107d2c431b801855e5
241]
242[Make getAllocations() visible
243Simon Marlow <marlowsd@gmail.com>**20100617113259
244 Ignore-this: 1b7fb38a01358c0acbe8987df07d23f2
245]
246[Fix the symbol visibility pragmas
247Simon Marlow <marlowsd@gmail.com>**20100617105758
248 Ignore-this: 76552500865473a1dbebbc1cc2def9f0
249]
250[pick up changes to $(GhcStage1HcOpts) without re-configuring the ghc package
251Simon Marlow <marlowsd@gmail.com>**20100616124718
252 Ignore-this: afb56d5560c813051285607fefb15493
253]
254[Fix bindisttest Makefile
255Ian Lynagh <igloo@earth.li>**20100616205611
256 Ignore-this: 39cd352152422f378572fc3859c5a377
257]
258[Remove some more unused make variables
259Ian Lynagh <igloo@earth.li>**20100616180519]
260[Convert some more variable names to FOO_CMD, for consistency
261Ian Lynagh <igloo@earth.li>**20100616175916]
262[Rename some variables from FOO to FOO_CMD
263Ian Lynagh <igloo@earth.li>**20100616161108
264 This fixes a problem with commands like gzip, where if $GZIP is exported
265 in the environment, then when make runs a command it'll put the Makefile
266 variable's value in the environment. But gzip treats $GZIP as arguments
267 for itself, so when we run gzip it thinks we're giving it "gzip" as an
268 argument.
269]
270[Make the "show" target work anywhere in the build tree
271Ian Lynagh <igloo@earth.li>**20100616122910
272 Ignore-this: 299d40cbe16112accd9f14e56fa12158
273]
274[Change ghc-pwd's license to a string Cabal recognises
275Ian Lynagh <igloo@earth.li>**20100615204015
276 Ignore-this: c935b6ad7f605aab0168997a90b40fc6
277]
278[fix warning
279Simon Marlow <marlowsd@gmail.com>**20100604205933
280 Ignore-this: 2aaa4ed6a8b9ae1e39adc4696aaf14a3
281]
282[--install-signal-handles=no does not affect the timer signal (#1908)
283Simon Marlow <marlowsd@gmail.com>**20100527214627
284 Ignore-this: b0c51f1abdb159dc360662485095a11a
285]
286[Small optimisation: allocate nursery blocks contiguously
287Simon Marlow <marlowsd@gmail.com>**20100509194928
288 Ignore-this: e650e99e9ea9493d2efb245d565beef4
289 This lets automatic prefetching work better, for a tiny performance boost
290]
291[fix -fforce-recomp setting: module is PrimOp, not PrimOps
292Simon Marlow <marlowsd@gmail.com>**20100507084507
293 Ignore-this: f76e0d9b643682ec0e8fb7d91afdea68
294]
295[it should be an error to use relative directories (#4134)
296Simon Marlow <marlowsd@gmail.com>**20100615151740
297 Ignore-this: 2068021701832e018ca41b22877921d5
298]
299[missing include-dirs or library-dirs is only a warning now (#4104)
300Simon Marlow <marlowsd@gmail.com>**20100615151702
301 Ignore-this: e3114123cef147bbd28ccb64581a1afb
302]
303[fix #3822: desugaring case command in arrow notation
304Ross Paterson <ross@soi.city.ac.uk>**20100615225110
305 Ignore-this: 477d6c460b4174b94b4cd113fa5b9d19
306 
307 Get the set of free variables from the generated case expression:
308 includes variables in the guards and decls that were missed before,
309 and is also a bit simpler.
310]
311[Deprecate the -fvia-C flag; trac #3232
312Ian Lynagh <igloo@earth.li>**20100615151836
313 Ignore-this: c2452b2648bf7e44546465c1b964fce
314]
315[Avoid using the new ~~ perl operator in the mangler
316Ian Lynagh <igloo@earth.li>**20100615151236
317 Ignore-this: 709a7ba4e514b1596841b3ba7e5c6cc
318]
319[stmAddInvariantToCheck: add missing init of invariant->lock (#4057)
320Simon Marlow <marlowsd@gmail.com>**20100615123643
321 Ignore-this: 3b132547fa934cecf71a846db2a5f70e
322]
323[Add new LLVM code generator to GHC. (Version 2)
324David Terei <davidterei@gmail.com>**20100615094714
325 Ignore-this: 4dd2fe5854b64a3f0339d484fd5c238
326 
327 This was done as part of an honours thesis at UNSW, the paper describing the
328 work and results can be found at:
329 
330 http://www.cse.unsw.edu.au/~pls/thesis/davidt-thesis.pdf
331 
332 A Homepage for the backend can be found at:
333 
334 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM
335 
336 Quick summary of performance is that for the 'nofib' benchmark suite, runtimes
337 are within 5% slower than the NCG and generally better than the C code
338 generator.  For some code though, such as the DPH projects benchmark, the LLVM
339 code generator outperforms the NCG and C code generator by about a 25%
340 reduction in run times.
341 
342]
343[Fix Trac #4127: build GlobalRdrEnv in GHCi correctly
344simonpj@microsoft.com**20100615070626
345 Ignore-this: d907e3bfa7882878cea0af172aaf6e84
346 
347 GHCi was building its GlobalRdrEnv wrongly, so that the
348 gre_par field was bogus.  That in turn fooled the renamer.
349 The fix is easy: use the right function!  Namely, call
350 RnNames.gresFromAvail rather than availsToNameSet.
351]
352[Comments, and improvement to pretty-printing of HsGroup
353simonpj@microsoft.com**20100615070409
354 Ignore-this: ec8358f2485370b20226a97ec84e9024
355]
356[Don't reverse bindings in rnMethodBinds (fix Trac #4126)
357simonpj@microsoft.com**20100614163935
358 Ignore-this: a6ffbb5af6f51b142ed0aeae8ee5e3a9
359]
360[Fix Trac #4120: generate a proper coercion when unifying forall types
361simonpj@microsoft.com**20100614134311
362 Ignore-this: 601592bb505305f1954cbe730f168da4
363 
364 This was just a blatant omission, which hasn't come up before.
365 Easily fixed, happily.
366]
367[Use mkFunTy to ensure that invariants are respected
368simonpj@microsoft.com**20100614134159
369 Ignore-this: 67dcada7a4e8d9927581cd77af71b6f
370]
371[Remove redundant debug code
372simonpj@microsoft.com**20100601154151
373 Ignore-this: e6ff11c04c631cf6aac73788cbcf02b5
374]
375[Fix Trac #4099: better error message for type functions
376simonpj@microsoft.com**20100531140413
377 Ignore-this: 3f53ca98cf770577818b9c0937482577
378 
379 Now we only want about "T is a type function and might not be
380 injective" when matchin (T x) against (T y), which is the case
381 that is really confusing.
382]
383[Gruesome fix in CorePrep to fix embarassing Trac #4121
384simonpj@microsoft.com**20100614132726
385 Ignore-this: fe82d15474afaac3e6133adfd7a7e055
386 
387 This is a long-lurking bug that has been flushed into
388 the open by other arity-related changes.  There's a
389 long comment
390 
391      Note [CafInfo and floating]
392 
393 to explain. 
394 
395 I really hate the contortions we have to do through to keep correct
396 CafRef information on top-level binders.  The Right Thing, I believe,
397 is to compute CAF and arity information later, and merge it into the
398 interface-file information when the latter is generated.
399 
400 But for now, this hackily fixes the problem.
401]
402[Fix a bug in CorePrep that meant output invariants not satisfied
403simonpj@microsoft.com**20100531150013
404 Ignore-this: d34eb36d8877d3caf1cf2b20de426abd
405 
406 In cpePair I did things in the wrong order so that something that
407 should have been a CprRhs wasn't.  Result: a crash in CoreToStg.
408 Fix is easy, and I added more informative type signatures too.
409]
410[Robustify the treatement of DFunUnfolding
411simonpj@microsoft.com**20100531145332
412 Ignore-this: 8f5506ada4d89f6ab8ad1e8c3ffb09ba
413 
414 See Note [DFun unfoldings] in CoreSyn.  The issue here is that
415 you can't tell how many dictionary arguments a DFun needs just
416 from looking at the Arity of the DFun Id: if the dictionary is
417 represented by a newtype the arity might include the dictionary
418 and value arguments of the (single) method.
419 
420 So we need to record the number of arguments need by the DFun
421 in the DFunUnfolding itself.  Details in
422    Note [DFun unfoldings] in CoreSyn
423]
424[Fix spelling in comment
425simonpj@microsoft.com**20100614132259
426 Ignore-this: bbf0d55f2e5f10ef9c74592c12f9201c
427]
428[Update docs on view patterns
429simonpj@microsoft.com**20100614074801
430 Ignore-this: 8617b9078800d4942d71f142a5b6c831
431]
432[Fix printing of splices; part of #4124
433Ian Lynagh <igloo@earth.li>**20100613154838
434 Just putting parens around non-atomic expressions isn't sufficient
435 for splices, as only the $x and $(e) forms are valid input.
436]
437[In ghci, catch IO exceptions when calling canonicalizePath
438Ian Lynagh <igloo@earth.li>**20100613134627
439 We now get an exception if the path doesn't exist
440]
441[Whitespace only
442Ian Lynagh <igloo@earth.li>**20100612213119]
443[Whitespace only
444Ian Lynagh <igloo@earth.li>**20100612165450]
445[Update ghci example output in user guide; patch from YitzGale in #4111
446Ian Lynagh <igloo@earth.li>**20100612162250]
447[Fix #4131 missing UNTAG_CLOSURE in messageBlackHole()
448benl@ouroborus.net**20100611044614]
449[messageBlackHole: fix deadlock bug caused by a missing 'volatile'
450Simon Marlow <marlowsd@gmail.com>**20100610080636
451 Ignore-this: 3cda3054bb45408aa9bd2d794b69c938
452]
453[Pass --no-tmp-comp-dir to Haddock (see comment)
454Simon Marlow <marlowsd@gmail.com>**20100604083214
455 Ignore-this: bfa4d74038637bd149f4d878b4eb8a87
456]
457[Track changes to DPH libs
458Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100607052903
459 Ignore-this: 4dbc3f8418af3e74b3fc4f9a9dfe7764
460]
461[Track changes to DPH libs
462Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100607012642
463 Ignore-this: 5d4e498171a3c57ab02621bfaea82cff
464]
465[In ghc-pkg, send warnings to stderr
466Ian Lynagh <igloo@earth.li>**20100606161726
467 Ignore-this: 56927d13b5e1c1ce2752734f0f9b665b
468]
469[Re-add newlines to enable layout for multi-line input.
470Ian Lynagh <igloo@earth.li>**20100602180737
471 Patch from Adam Vogt <vogt.adam@gmail.com>
472 Partial fix for #3984
473]
474[Don't use unnecessary parens when printing types (Fix Trac 4107)
475simonpj@microsoft.com**20100604110143
476 Ignore-this: a833714ab13013c4345b222f4e87db1d
477 
478    f :: Eq a => a -> a
479 rather than
480    f :: (Eq a) => a -> a
481]
482[Track DPH library changes
483Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100604005728
484 Ignore-this: 32bc2fbea6ad975e89545d4c42fd7c30
485]
486[fix --source-entity option passed to Haddock: we needed to escape a #
487Simon Marlow <marlowsd@gmail.com>**20100603125459
488 Ignore-this: d52ae6188b510c482bcebb23f0e553ae
489]
490[__stg_EAGER_BLACKHOLE_INFO -> __stg_EAGER_BLACKHOLE_info (#4106)
491Simon Marlow <marlowsd@gmail.com>**20100602091419
492 Ignore-this: 293315ac8f86fd366b8d61992ecc7961
493]
494[Add xhtml package (a new dependency of Haddock; not installed/shipped)
495Simon Marlow <marlowsd@gmail.com>**20100602090101
496 Ignore-this: af0ac8b91abe98f7fdb624ea0a4dee20
497]
498[Use UserInterrupt rather than our own Interrupted exception (#4100)
499Simon Marlow <marlowsd@gmail.com>**20100602082345
500 Ignore-this: 1909acf2f452593138b9f85024711714
501]
502[Add the global package DB to ghc --info (#4103)
503Simon Marlow <marlowsd@gmail.com>**20100602082233
504 Ignore-this: fd5c0e207e70eb0f62606c45dc5b8124
505]
506[rts/sm/GC.c: resize_generations(): Remove unneeded check of number of generations.
507Marco Túlio Gontijo e Silva <marcot@debian.org>**20100528115612
508 Ignore-this: 6f1bea62917c01c7adac636146132c97
509 
510 This "if" is inside another "if" which checks for RtsFlags.GcFlags.generations
511 > 1, so testing this again is redundant, assuming the number of generations
512 won't change during program execution.
513]
514[rts/sm/BlockAlloc.c: Small comment correction.
515Marco Túlio Gontijo e Silva <marcot@debian.org>**20100526205839
516 Ignore-this: bd2fcd4597cc872d80b0e2eeb1c3998a
517]
518[rts/sm/GC.c: Annotate constants.
519Marco Túlio Gontijo e Silva <marcot@debian.org>**20100526205707
520 Ignore-this: f232edb89383564d759ed890a18f602f
521]
522[includes/rts/storage/GC.h: generation_: n_words: Improve comment.
523Marco Túlio Gontijo e Silva <marcot@debian.org>**20100526204615
524 Ignore-this: f5d5feefa8f7b552303978f1804fea23
525]
526[Add PPC_RELOC_LOCAL_SECTDIFF support; patch from PHO in #3654
527Ian Lynagh <igloo@earth.li>**20100601204211
528 Ignore-this: 51293b7041cdce3ce7619ef11cf7ceb
529]
530[powerpc-apple-darwin now supports shared libs
531Ian Lynagh <igloo@earth.li>**20100601173325]
532[PIC support for PowerPC
533pho@cielonegro.org**20100508143900
534 Ignore-this: 3673859a305398c4acae3f4d7c997615
535 
536 PPC.CodeGen.getRegister was not properly handling PicBaseReg.
537 It seems working with this patch, but I'm not sure this change is correct.
538]
539[Vectoriser: only treat a function as scalar if it actually computes something
540Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100601045630
541 Ignore-this: e5d99a6ddb62052e3520094a5af47552
542]
543[Add a release notes file for 6.14.1
544Ian Lynagh <igloo@earth.li>**20100530171117
545 Ignore-this: 1941e6d3d1f4051b69ca2f17a1cf84d6
546]
547[Check dblatex actually creates the files we tell it to
548Ian Lynagh <igloo@earth.li>**20100530171043
549 Ignore-this: ccc72caea2313be05cbac59bb54c0603
550 If it fails, it still exits successfully.
551]
552[Add darwin to the list of OSes for which we use mmap
553Ian Lynagh <igloo@earth.li>**20100529145016
554 Ignore-this: a86d12a3334aaaafc86f7af9dbb0a7ae
555 Patch from Barney Stratford
556]
557[Simplify the CPP logic in rts/Linker.c
558Ian Lynagh <igloo@earth.li>**20100529144929
559 Ignore-this: 1288f5b752cc1ab8b1c90cfd0ecfdf68
560]
561[Fix validate on OS X
562Ian Lynagh <igloo@earth.li>**20100529154726]
563[OS X x86_64 fix from Barney Stratford
564Ian Lynagh <igloo@earth.li>**20100529122440]
565[OS X 64 installer fixes from Barney Stratford
566Ian Lynagh <igloo@earth.li>**20100528234935]
567[fix warning
568Simon Marlow <marlowsd@gmail.com>**20100525155812
569 Ignore-this: f34eee3fe3d89579fd8d381c91ced750
570]
571[Fix doc bugs (#4071)
572Simon Marlow <marlowsd@gmail.com>**20100525155728
573 Ignore-this: aa25be196de567de360075022a1942f7
574]
575[Make sparks into weak pointers (#2185)
576Simon Marlow <marlowsd@gmail.com>**20100525150435
577 Ignore-this: feea0bb5006007b82c932bc3006124d7
578 The new strategies library (parallel-2.0+, preferably 2.2+) is now
579 required for parallel programming, otherwise parallelism will be lost.
580]
581[If you say 'make' or 'make stage=2' here, pretend we're in the ghc dir
582Simon Marlow <marlowsd@gmail.com>**20100525085301
583 Ignore-this: 78b740337aa460915c812cbbcdae5321
584]
585[Another attempt to get these #defines right
586Simon Marlow <marlowsd@gmail.com>**20100525154313
587 Ignore-this: 460ca0c47d81cd25eae6542114f67899
588 Apparently on Solaris it is an error to omit _ISOC99_SOURCE when using
589 _POSIX_C_SOURCE==200112L.
590]
591[Add configure flags for the location of GMP includes/library; fixes #4022
592Ian Lynagh <igloo@earth.li>**20100525221616
593 Ignore-this: fc3060caf995d07274ec975eeefbdf3e
594]
595[Refactor pretty printing of TyThings to fix Trac #4015
596simonpj@microsoft.com**20100525153126
597 Ignore-this: 8f15053b7554f62caa84201d2e4976d2
598]
599[When haddocking, we need the dependencies to have been built
600Ian Lynagh <igloo@earth.li>**20100525145830
601 as haddock loads the .hi files with the GHC API.
602]
603[Fix profiling output; spotted by jlouis
604Ian Lynagh <igloo@earth.li>**20100525111217
605 We were outputing the number of words allocated in a column titled "bytes".
606]
607[Improve printing of TyThings; fixes Trac #4087
608simonpj@microsoft.com**20100525114045
609 Ignore-this: da2a757a533454bba80b9b77cc5a771
610]
611[Spelling in comments
612simonpj@microsoft.com**20100525114001
613 Ignore-this: 270f3da655e526cf04e27db7a01e29c0
614]
615[Refactor (again) the handling of default methods
616simonpj@microsoft.com**20100525113910
617 Ignore-this: 6686f6cdb878d57abf6b49fec64fcbb1
618 
619 This patch fixes Trac #4056, by
620 
621  a) tidying up the treatment of default method names
622  b) removing the 'module' argument to newTopSrcBinder
623 
624 The details aren't that interesting, but the result
625 is much tidier. The original bug was a 'nameModule' panic,
626 caused by trying to find the module of a top-level name.
627 But TH quotes generate Internal top-level names that don't
628 have a module, and that is generally a good thing. 
629 
630 Fixing that in turn led to the default-method refactoring,
631 which also makes the Name for a default method be handled
632 in the same way as other derived names, generated in BuildTyCl
633 via a call newImplicitBinder.  Hurrah.
634]
635[Don't do SpecConstr on NOINLINE things (Trac #4064)
636simonpj@microsoft.com**20100525112807
637 Ignore-this: 452be0a2cef0042fb67275c2827b5f72
638 
639 Since the RULE from specialising gets the same Activation as
640 the inlining for the Id itself there's no point in specialising
641 a NOINLINE thing, because the rule will be permanently switched
642 off.
643 
644 See Note [Transfer activation] in SpecConstr
645 and Note [Auto-specialisation and RULES] in Specialise.
646]
647[Change our #defines to work on FreeBSD too
648Simon Marlow <marlowsd@gmail.com>**20100524105828
649 Ignore-this: b23ede46211e67859206c0ec57d6a86f
650 With glibc, things like _POSIX_C_SOURCE and _ISOC99_SOURCE are
651 additive, but on FreeBSD they are mutually exclusive.  However, it
652 turns out we only need to define _POSIX_C_SOURCE and _XOPEN_SOURCE to
653 get all the C99 stuff we need too, so there's no need for any #ifdefs.
654 
655 Submitted by: Gabor PALI <pgj@FreeBSD.org>
656]
657[Add a missing UNTAG_CLOSURE, causing bus errors on Sparc
658Simon Marlow <marlowsd@gmail.com>**20100524105547
659 Ignore-this: a590b5391d6f05d50c8c088456c3c166
660 We just about got away with this on x86 which isn't
661 alignment-sensitive.  The result of the memory load is compared
662 against a few different values, but there is a fallback case that
663 happened to be the right thing when the pointer was tagged.  A good
664 bug to find, nonetheless.
665]
666[Add wiki links
667Simon Marlow <marlowsd@gmail.com>**20100520095953
668 Ignore-this: c22f126cde166e6207922b2eb51d29e3
669]
670[the 'stage=0' trick to disable all compiler builds stopped working; fix it
671Simon Marlow <marlowsd@gmail.com>**20100520104455
672 Ignore-this: bb6fae9056471612c8dbf06916188c33
673]
674[Comments and formatting only
675benl@ouroborus.net**20100524014021
676 Ignore-this: 64579c38154728b632e358bec751cc0b
677]
678[Core prettyprinter fixes. Patch from Tim Chevalier. Fixes #4085
679Ian Lynagh <igloo@earth.li>**20100522225048]
680[Correct install-name for dynamic Darwin rts
681pho@cielonegro.org**20100508151155
682 Ignore-this: 6d31716c8c113dcb46e9cb925c4201df
683]
684[Fix the RTS debug_p build
685Ian Lynagh <igloo@earth.li>**20100522163127]
686[Unset $CFLAGS for "GNU non-executable stack" configure test; fixes #3889
687Ian Lynagh <igloo@earth.li>**20100521165005
688 With gcc 4.4 we get
689     Error: can't resolve `.note.GNU-stack' {.note.GNU-stack section} - `.Ltext0' {.text section}
690 when running gcc with the -g flag. To work around this we unset
691 CFLAGS when running the test.
692]
693[Don't run "set -o igncr" before configuring libffi
694Ian Lynagh <igloo@earth.li>**20100520162918
695 Ignore-this: 489fa94df23f2adf4ff63c8ede2c0794
696 It used to make the build work on cygwin, but now it breaks it instead:
697     config.status: creating include/Makefile
698     gawk: ./confLqjohp/subs.awk:1: BEGIN {\r
699     gawk: ./confLqjohp/subs.awk:1: ^ backslash not last character on line
700     config.status: error: could not create include/Makefile
701     make[2]: *** [libffi/stamp.ffi.configure-shared] Error 1
702     make[1]: *** [all] Error 2
703]
704[Stop passing -Wl,-macosx_version_min to gcc
705Ian Lynagh <igloo@earth.li>**20100520154003
706 Fixes a build failure on OS X 10.6. When linking
707     rts/dist/build/libHSrts-ghc6.13.20100519.dylib
708 we got
709     ld: symbol dyld_stub_binding_helper not defined (usually in crt1.o/dylib1.o/bundle1.o)
710     collect2: ld returned 1 exit status
711]
712[Fix build on FreeBSD; patch from Gabor PALI
713Ian Lynagh <igloo@earth.li>**20100519140552]
714[Fix package shadowing order (#4072)
715Simon Marlow <marlowsd@gmail.com>**20100519104617
716 Ignore-this: 26ea5e4bb5dff18618b807a54c7d6ebb
717 
718 Later packages are supposed to shadow earlier ones in the stack,
719 unless the ordering is overriden with -package-id flags.
720 Unfortunately an earlier fix for something else had sorted the list of
721 packages so that it was in lexicographic order by installedPackageId,
722 and sadly our test (cabal/shadow) didn't pick this up because the
723 lexicographic ordering happened to work for the test.  I've now fixed
724 the test so it tries both orderings.
725]
726[Set more env variables when configuring libffi
727Ian Lynagh <igloo@earth.li>**20100518185014
728 We now tell it where to find ld, nm and ar
729]
730[Set the location of ar to be the in-tree ar on Windows
731Ian Lynagh <igloo@earth.li>**20100518181556]
732[Change another / to </> to avoid building paths containing \/
733Ian Lynagh <igloo@earth.li>**20100518172015
734 This will hopefully fix #2889.
735]
736[Fix #4074 (I hope).
737Simon Marlow <marlowsd@gmail.com>**20100518113214
738 Ignore-this: 73cd70f5bc6f5add5247b61985c03fc1
739 
740 1. allow multiple threads to call startTimer()/stopTimer() pairs
741 2. disable the timer around fork() in forkProcess()
742 
743 A corresponding change to the process package is required.
744]
745[we don't have a gcc-lib in LIB_DIR any more
746Simon Marlow <marlowsd@gmail.com>**20100401102351
747 Ignore-this: f41acd2d8f8e6763aa8bd57a0b44a7e4
748]
749[In validate, use gmake if available; based on a patch from Gabor PALI
750Ian Lynagh <igloo@earth.li>**20100517200654]
751[Remove duplicate "./configure --help" output; fixes #4075
752Ian Lynagh <igloo@earth.li>**20100516141206]
753[Update various 'sh boot's to 'perl boot'
754Ian Lynagh <igloo@earth.li>**20100516122609
755 Spotted by Marco Túlio Gontijo e Silva
756]
757[add missing initialisation for eventBufMutex
758Simon Marlow <marlowsd@gmail.com>**20100514094943
759 Ignore-this: 7f75594a8cb54fbec5aebd46bb959f45
760]
761[Undo part of #4003 patch
762Simon Marlow <marlowsd@gmail.com>**20100513142017
763 Ignore-this: cb65db86a38a7e5ccee9f779e489d104
764 We still need the workaround for when compiling HEAD with 6.12.2
765 
766]
767[Fix makefile loop (#4050)
768pho@cielonegro.org**20100507140707
769 Ignore-this: 3a1cb13d0600977e74d17ac26cbef83d
770 
771 The libtool creates "libffi.dylib" and "libffi.5.dylib" but not "libffi.5.0.9.dylib". Having it in libffi_DYNAMIC_LIBS causes an infinite makefile loop.
772]
773[fix !TABLES_NEXT_TO_CODE
774Simon Marlow <marlowsd@gmail.com>**20100510151934
775 Ignore-this: fccb859b114bef1c3122c98e60af51
776]
777[looksLikeModuleName: allow apostrophe in module names (#4051)
778Simon Marlow <marlowsd@gmail.com>**20100510094741
779 Ignore-this: df9348f3ba90608bec57257b47672985
780]
781[add the proper library dependencies for GhcProfiled=YES
782Simon Marlow <marlowsd@gmail.com>**20100506122118
783 Ignore-this: 6236993aa308ab5b5e1e5ea5f65982a
784]
785[Fix Trac #4003: fix the knot-tying in checkHiBootIface
786simonpj@microsoft.com**20100511075026
787 Ignore-this: a9ce2a318386fdc8782848df84592002
788 
789 I had incorrectly "optimised" checkHiBootIface so that it forgot
790 to update the "knot-tied" type environment.
791 
792 This patch fixes the HEAD
793]
794[Re-engineer the derived Ord instance generation code (fix Trac #4019)
795simonpj@microsoft.com**20100510133333
796 Ignore-this: 8fe46e4dad27fbee211a7928acf372c2
797   
798 As well as fixing #4019, I rejigged the way that Ord instances are
799 generated, which should make them faster in general.  See the
800 Note [Generating Ord instances].
801 
802 I tried to measure the performance difference from this change, but
803 the #4019 fix only removes one conditional branch per iteration, and
804 I couldn't measure a consistent improvement.  But still, tihs is
805 better than before.
806]
807[Make arity of INLINE things consistent
808simonpj@microsoft.com**20100510133005
809 Ignore-this: 15e7abf803d1dcb3f4ca760d2d939d0d
810 
811 We eta-expand things with INLINE pragmas;
812 see Note [Eta-expanding INLINE things].
813 
814 But I eta-expanded it the wrong amount when the function
815 was overloaded.  Ooops.
816]
817[Compacting GC fix, we forgot to thread the new bq field of StgTSO.
818Simon Marlow <marlowsd@gmail.com>**20100510082325
819 Ignore-this: a079c8446e2ad53efff6fd95d0f3ac80
820]
821[Add version constraints for the boot packages; fixes trac #3852
822Ian Lynagh <igloo@earth.li>**20100509175051
823 When using the bootstrapping compiler, we now explicitly constrain
824 the version of boot packages (Cabal, extensible-exceptions, etc) to the
825 in-tree version, so that the build system is less fragile should the
826 user have a newer version installed for the bootstrapping compiler.
827]
828[Don't include inter-package dependencies when compiling with stage 0; #4031
829Ian Lynagh <igloo@earth.li>**20100509130511
830 This fixes a problem when building with GHC 6.12 on Windows, where
831 dependencies on stage 0 (bootstrapping compiler) packages have absolute
832 paths c:/ghc/..., and make gets confused by the colon.
833]
834[Add a ghc.mk for bindisttest/
835Ian Lynagh <igloo@earth.li>**20100508223911]
836[Move some make variables around so they are available when cleaning
837Ian Lynagh <igloo@earth.li>**20100508212405]
838[Optimise checkremove a bit
839Ian Lynagh <igloo@earth.li>**20100508202006]
840[Improve the bindisttest Makefile
841Ian Lynagh <igloo@earth.li>**20100508195450]
842[Add tools to test that cleaning works properly
843Ian Lynagh <igloo@earth.li>**20100508194105]
844[Tweak the ghc-pkg finding code
845Ian Lynagh <igloo@earth.li>**20100508125815
846 It now understand the ghc-stage[123] names we use in-tree, and it won't
847 go looking for any old ghc-pkg if it can't find the one that matches
848 ghc.
849]
850[Add a way to show what cleaning would be done, without actually doing it
851Ian Lynagh <igloo@earth.li>**20100508122438]
852[Tidy up the "rm" flags in the build system
853Ian Lynagh <igloo@earth.li>**20100508115745]
854[Fix crash in nested callbacks (#4038)
855Simon Marlow <marlowsd@gmail.com>**20100507093222
856 Ignore-this: cade85e361534ce711865a4820276388
857 Broken by "Split part of the Task struct into a separate struct
858 InCall".
859]
860[Add $(GhcDynamic) knob, set to YES to get stage2 linked with -dynamic
861Simon Marlow <marlowsd@gmail.com>**20100428205241
862 Ignore-this: 1db8bccf92099785ecac39aebd27c92d
863 Default currently NO.
864 
865 Validate passed with GhcDynamic=YES on x86/Linux here.
866 
867 The compiler is currently slower on x86 when linked -dynamic,
868 because the GC inner loop has been adversely affected by -fPIC, I'm
869 looking into how to fix it.
870]
871[omit "dyn" from the way appended to the __stginit label
872Simon Marlow <marlowsd@gmail.com>**20100428204914
873 Ignore-this: 14183f3defa9f2bde68fda6729b740bc
874 When GHCi is linked dynamically, we still want to be able to load
875 non-dynamic object files.
876]
877[improvements to findPtr(), a neat hack for browsing the heap in gdb
878Simon Marlow <marlowsd@gmail.com>**20100506115427
879 Ignore-this: ac57785bb3e13b97a5945f753f068738
880]
881[Fix +RTS -G1
882Simon Marlow <marlowsd@gmail.com>**20100506110739
883 Ignore-this: 86a5de39a94d3331a4ee1213f82be497
884]
885[Enable the "redundant specialise pragmas" warning; fixes trac #3855
886Ian Lynagh <igloo@earth.li>**20100506175351]
887[Find the correct external ids when there's a wrapper
888simonpj@microsoft.com**20100506164135
889 Ignore-this: 636266407b174b05b2b8646cc73062c0
890 
891 We were failing to externalise the wrapper id for a function
892 that had one.
893]
894[Add a comment about pattern coercions
895simonpj@microsoft.com**20100506164027
896 Ignore-this: 17428089f3df439f65d892e23e8ed61a
897]
898[Comments only
899simonpj@microsoft.com**20100506163829
900 Ignore-this: 169167b6463873ab173cc5750c5be469
901]
902[Make a missing name in mkUsageInfo into a panic
903simonpj@microsoft.com**20100506163813
904 Ignore-this: b82ff1b8bf89f74f146db7cb5cc4c4d7
905 
906 We really want to know about this!
907]
908[Refactoring of hsXxxBinders
909simonpj@microsoft.com**20100506163737
910 Ignore-this: 97c6667625262b160f9746f7bea1c980
911 
912 This patch moves various functions that extract the binders
913 from a HsTyClDecl, HsForeignDecl etc into HsUtils, and gives
914 them consistent names.
915]
916[Fix Trac #3966: warn about useless UNPACK pragmas
917simonpj@microsoft.com**20100506163337
918 Ignore-this: 5beb24b686eda6113b614dfac8490df1
919 
920 Warning about useless UNPACK pragmas wasn't as easy as I thought.
921 I did quite a bit of refactoring, which improved the code by refining
922 the types somewhat.  In particular notice that in DataCon, we have
923 
924     dcStrictMarks   :: [HsBang]
925     dcRepStrictness :: [StrictnessMarks]
926 
927 The former relates to the *source-code* annotation, the latter to
928 GHC's representation choice.
929]
930[Make tcg_dus behave more sanely; fixes a mkUsageInfo panic
931simonpj@microsoft.com**20100506162719
932 Ignore-this: d000bca15b0e127e297378ded1bfb81b
933 
934 The tcg_dus field used to contain *uses* of type and class decls,
935 but not *defs*.  That was inconsistent, and it really went wrong
936 for Template Haskell bracket.  What happened was that
937  foo = [d| data A = A
938                   f :: A -> A
939                   f x = x |]
940 would find a "use" of A when processing the top level of the module,
941 which in turn led to a mkUsageInfo panic in MkIface.  The cause was
942 the fact that the tcg_dus for the nested quote didn't have defs for
943 A.
944]
945[Add a HsExplicitFlag to SpliceDecl, to improve Trac #4042
946simonpj@microsoft.com**20100506161523
947 Ignore-this: e4e563bac2fd831cc9e94612f5b4fa9d
948 
949 The issue here is that
950 
951     g :: A -> A
952     f
953     data A = A
954 
955 is treated as if you'd written $(f); that is the call of
956 f is a top-level Template Haskell splice.  This patch
957 makes sure that we *first* check the -XTemplateHaskellFlag
958 and bleat about a parse error if it's off.  Othewise we
959 get strange seeing "A is out of scope" errors.
960]
961[Change an assert to a warn
962simonpj@microsoft.com**20100506161111
963 Ignore-this: 739a4fb4c7940376b0f2c8ad52a1966c
964 
965 This is in the constraint simplifier which I'm about
966 to rewrite, so I'm hoping the assert isn't fatal!
967]
968[Tidy up debug print a little
969simonpj@microsoft.com**20100506161027
970 Ignore-this: bd5492878e06bee1cddcbb3fc4df66d8
971]
972[Remove useless UNPACK pragmas
973simonpj@microsoft.com**20100506161012
974 Ignore-this: 3e5ab1a7cf58107034412a798bc214e5
975]
976[Add WARNM2 macro, plus some refactoring
977simonpj@microsoft.com**20100506160808
978 Ignore-this: 2ab4f1f0b5d94be683036e77aec09255
979]
980[Use -Wwarn for the binary package, becuase it has redundant UNPACK pragmas
981simonpj@microsoft.com**20100506160750
982 Ignore-this: cf0d3a11473e28bfce9602e716e69a5f
983]
984[Fix Trac #3966: warn about unused UNPACK pragmas
985simonpj@microsoft.com**20100409201812
986 Ignore-this: c96412596b39c918b5fb9b3c39ce2119
987]
988[Fix Trac #3953: fail earlier when using a bogus quasiquoter
989simonpj@microsoft.com**20100409201748
990 Ignore-this: ef48e39aa932caed538643985234f043
991]
992[Fix Trac #3965: tighten conditions when deriving Data
993simonpj@microsoft.com**20100409184420
994 Ignore-this: 96f7d7d2da11565d26b465d7d0497ac9
995 
996 It's tricky to set up the context for a Data instance.  I got it wrong
997 once, and fixed it -- hence the "extra_constraints" in
998 TcDeriv.inferConstraints. 
999 
1000 But it still wasn't right!  The tricky bit is that dataCast1 is only
1001 generated when T :: *->*, and dataCast2 when T :: *->*->*. (See
1002 the code in TcGenDeriv for dataCastX.
1003]
1004[Fix Trac #3964: view patterns in DsArrows
1005simonpj@microsoft.com**20100409165557
1006 Ignore-this: d823c182831d5e2e592e995b16180e2f
1007 
1008 Just a missing case; I've eliminated the catch-all so
1009 that we get a warning next time we extend HsPat
1010]
1011[Fix Trac #3955: renamer and type variables
1012simonpj@microsoft.com**20100409163710
1013 Ignore-this: bd5ec64d76c0f583bf5f224792bf294c
1014 
1015 The renamer wasn't computing the free variables of a type declaration
1016 properly.  This patch refactors a bit, and makes it more robust,
1017 fixing #3955 and several other closely-related bugs.  (We were
1018 omitting some free variables and that could just possibly lead to a
1019 usage-version tracking error.
1020]
1021[Layout only
1022simonpj@microsoft.com**20100409163506
1023 Ignore-this: 1f14990b5aa0b9821b84452fb34e9f41
1024]
1025[Give a better deprecated message for INCLUDE pragmas; fixes #3933
1026Ian Lynagh <igloo@earth.li>**20100506130910
1027 We now have a DeprecatedFullText constructor, so we can override the
1028 "-#include is deprecated: " part of the warning.
1029]
1030[De-haddock a comment that confuses haddock
1031Ian Lynagh <igloo@earth.li>**20100506123607]
1032[Fix comment to not confuse haddock
1033Ian Lynagh <igloo@earth.li>**20100506113642]
1034[Detect EOF when trying to parse a string in hp2ps
1035Ian Lynagh <igloo@earth.li>**20100506000830]
1036[Make the demand analyser sdd demands for strict constructors
1037simonpj@microsoft.com**20100505200936
1038 Ignore-this: eb32632adbc354eb7a5cf884c263e0d3
1039 
1040 This opportunity was spotted by Roman, and is documented in
1041 Note [Add demands for strict constructors] in DmdAnal.
1042]
1043[Fix interaction of exprIsCheap and the lone-variable inlining check
1044simonpj@microsoft.com**20100505200723
1045 Ignore-this: f3cb65085c5673a99153d5d7b6559ab1
1046 
1047 See Note [Interaction of exprIsCheap and lone variables] in CoreUnfold
1048 
1049 This buglet meant that a nullary definition with an INLINE pragma
1050 counter-intuitively didn't get inlined at all.  Roman identified
1051 the bug.
1052]
1053[Matching cases in SpecConstr and Rules
1054simonpj@microsoft.com**20100505200543
1055 Ignore-this: f5c28c780fbf8badce84c6fdc9aa1779
1056 
1057 This patch has zero effect.  It includes comments,
1058 a bit of refactoring, and a tiny bit of commment-out
1059 code go implement the "matching cases" idea below.
1060 
1061 In the end I've left it disabled because while I think
1062 it does no harm I don't think it'll do any good either.
1063 But I didn't want to lose the idea totally. There's
1064 a thread called "Storable and constant memory" on
1065 the libraries@haskell.org list (Apr 2010) about it.
1066 
1067 Note [Matching cases]
1068 ~~~~~~~~~~~~~~~~~~~~~
1069 {- NOTE: This idea is currently disabled.  It really only works if
1070          the primops involved are OkForSpeculation, and, since
1071         they have side effects readIntOfAddr and touch are not.
1072         Maybe we'll get back to this later .  -}
1073   
1074 Consider
1075    f (case readIntOffAddr# p# i# realWorld# of { (# s#, n# #) ->
1076       case touch# fp s# of { _ ->
1077       I# n# } } )
1078 This happened in a tight loop generated by stream fusion that
1079 Roman encountered.  We'd like to treat this just like the let
1080 case, because the primops concerned are ok-for-speculation.
1081 That is, we'd like to behave as if it had been
1082    case readIntOffAddr# p# i# realWorld# of { (# s#, n# #) ->
1083    case touch# fp s# of { _ ->
1084    f (I# n# } } )
1085]
1086[Comments only
1087simonpj@microsoft.com**20100504163629
1088 Ignore-this: 3be12df04714aa820bce706b5dc8a9cb
1089]
1090[Comments only
1091simonpj@microsoft.com**20100504163529
1092 Ignore-this: 791e2fd39c7d880ce1dc80ebdf3a5398
1093]
1094[Comments only
1095simonpj@microsoft.com**20100504163457
1096 Ignore-this: f19e9ffeb3d65770b1595bca5f97a59d
1097]
1098[Comments only (about type families)
1099simonpj@microsoft.com**20100417145032
1100 Ignore-this: dd39425ef2155d52dbf55a4d5fd97cb8
1101]
1102[Fix hp2ps when the .hp file has large string literals
1103Ian Lynagh <igloo@earth.li>**20100505191921]
1104[In build system, call package-config after including package data
1105Ian Lynagh <igloo@earth.li>**20100504225035
1106 Otherwise the $1_$2_HC_OPTS variable gets clobbered.
1107]
1108[runghc: flush stdout/stderr on an exception (#3890)
1109Simon Marlow <marlowsd@gmail.com>**20100505133848
1110 Ignore-this: 224c1898cec64cb1c94e0d7033e7590e
1111]
1112[Remove the Unicode alternative for ".." (#3894)
1113Simon Marlow <marlowsd@gmail.com>**20100505121202
1114 Ignore-this: 2452cd67281667106f9169747b6d784f
1115]
1116[tidyup; no functional changes
1117Simon Marlow <marlowsd@gmail.com>**20100505115015
1118 Ignore-this: d0787e5cdeef1dee628682fa0a46019
1119]
1120[Make the running_finalizers flag task-local
1121Simon Marlow <marlowsd@gmail.com>**20100505114947
1122 Ignore-this: 345925d00f1dca203941b3c5d84c90e1
1123 Fixes a bug reported by Lennart Augustsson, whereby we could get an
1124 incorrect error from the RTS about re-entry from a finalizer,
1125]
1126[add a MAYBE_GC() in killThread#, fixes throwto003(threaded2) looping
1127Simon Marlow <marlowsd@gmail.com>**20100505114746
1128 Ignore-this: efea04991d6feed04683a42232fc85da
1129]
1130[Allow filepath-1.2.*
1131Simon Marlow <marlowsd@gmail.com>**20100505101139
1132 Ignore-this: 1b5580cd9cd041ec48f40cd37603326a
1133]
1134[BlockedOnMsgThrowTo is possible in resurrectThreads (#4030)
1135Simon Marlow <marlowsd@gmail.com>**20100505094534
1136 Ignore-this: ac24a22f95ffeaf480187a1620fdddb2
1137]
1138[Don't raise a throwTo when the target is masking and BlockedOnBlackHole
1139Simon Marlow <marlowsd@gmail.com>**20100505094506
1140 Ignore-this: 302616931f61667030d77ddfbb02374e
1141]
1142[Fix build with GHC 6.10
1143Ian Lynagh <igloo@earth.li>**20100504180302
1144 In GHC 6.10, intersectionWith is (a -> b -> a) instead of (a -> b -> c),
1145 so we need to jump through some hoops to get the more general type.
1146]
1147[The libffi patches are no longer needed
1148Ian Lynagh <igloo@earth.li>**20100504171603]
1149[Use the in-tree windres; fixes trac #4032
1150Ian Lynagh <igloo@earth.li>**20100504170941]
1151[Print unfoldings on lambda-bound variables
1152Simon PJ <simonpj@microsoft.com>**20100503181822
1153 Ignore-this: 2fd5a7502cc6273d96258e0914f0f8cd
1154 
1155 ...in the unusual case where they have one;
1156 see Note [Case binders and join points] in Simplify.lhs
1157]
1158[Replace FiniteMap and UniqFM with counterparts from containers.
1159Milan Straka <fox@ucw.cz>**20100503171315
1160 Ignore-this: a021972239163dbf728284b19928cebb
1161 
1162 The original interfaces are kept. There is small performance improvement:
1163 - when compiling for five nofib, we get following speedups:
1164     Average                -----           -2.5%
1165     Average                -----           -0.6%
1166     Average                -----           -0.5%
1167     Average                -----           -5.5%
1168     Average                -----          -10.3%
1169 - when compiling HPC ten times, we get:
1170     switches                          oldmaps   newmaps
1171     -O -fasm                          117.402s  116.081s (98.87%)
1172     -O -fasm -fregs-graph             119.993s  118.735s (98.95%)
1173     -O -fasm -fregs-iterative         120.191s  118.607s (98.68%)
1174]
1175[Make the demand analyser take account of lambda-bound unfoldings
1176Simon PJ <simonpj@microsoft.com>**20100503151630
1177 Ignore-this: 2ee8e27d4df2debfc79e6b8a17c32bc1
1178 
1179 This is a long-standing lurking bug. See Note [Lamba-bound unfoldings]
1180 in DmdAnal.
1181 
1182 I'm still not really happy with this lambda-bound-unfolding stuff.
1183]
1184[Fix dynamic libs on OS X, and enable them by default
1185Ian Lynagh <igloo@earth.li>**20100503150302]
1186[Switch back to using bytestring from the darcs repo; partially fixes #3855
1187Ian Lynagh <igloo@earth.li>**20100502113458]
1188[Fix some cpp warnings when building on FreeBSD; patch from Gabor PALI
1189Ian Lynagh <igloo@earth.li>**20100428150700]
1190[Fix "make 2"
1191Ian Lynagh <igloo@earth.li>**20100427162212
1192 The new Makefile logic was enabling the stage 1 rules when stage=2,
1193 so "make 2" was rebuilding stage 1.
1194]
1195[Inplace programs depend on their shell wrappers
1196Ian Lynagh <igloo@earth.li>**20100427160038]
1197[--make is now the default (#3515), and -fno-code works with --make (#3783)
1198Simon Marlow <marlowsd@gmail.com>**20100427122851
1199 Ignore-this: 33330474fa4703f32bf9997462b4bf3c
1200 If the command line contains any Haskell source files, then we behave
1201 as if --make had been given.
1202 
1203 The meaning of the -c flag has changed (back): -c now selects one-shot
1204 compilation, but stops before linking.  However, to retain backwards
1205 compatibility, -c is still allowed with --make, and means the same as
1206 --make -no-link.  The -no-link flag has been un-deprecated.
1207 
1208 -fno-code is now allowed with --make (#3783); the fact that it was
1209 disabled before was largely accidental, it seems.  We also had some
1210 regressions in this area: it seems that -fno-code was causing a .hc
1211 file to be emitted in certain cases.  I've tidied up the code, there
1212 was no need for -fno-code to be a "mode" flag, as far as I can tell.
1213 
1214 -fno-code does not emit interface files, nor does it do recompilation
1215 checking, as suggested in #3783.  This would make Haddock emit
1216 interface files, for example, and I'm fairly sure we don't want to do
1217 that.  Compiling with -fno-code is pretty quick anyway, perhaps we can
1218 get away without recompilation checking.
1219]
1220[remove duplicate docs for -e in --help output (#4010)
1221Simon Marlow <marlowsd@gmail.com>**20100426140642
1222 Ignore-this: 187ff893ba8ffa0ec127867a7590e38d
1223]
1224[workaround for #4003, fixes HEAD build with 6.12.2
1225Simon Marlow <marlowsd@gmail.com>**20100426103428
1226 Ignore-this: c4bc445dc8052d4e6efef3f1daf63562
1227]
1228[Make sure all the clean rules are always included
1229Ian Lynagh <igloo@earth.li>**20100424181823
1230 In particular, this fixes a problem where stage3 bits weren't being cleaned
1231]
1232[Correct the name of the amd64/FreeBSD platform in PlatformSupportsSharedLibs
1233Ian Lynagh <igloo@earth.li>**20100424132830
1234 We weren't getting sharedlibs on amd64/FreeBSD because of this
1235]
1236[Include DPH docs in bindists
1237Ian Lynagh <igloo@earth.li>**20100424123101]
1238[reinstate eta-expansion during SimplGently, to fix inlining of sequence_
1239Simon Marlow <marlowsd@gmail.com>**20100423124853
1240 Ignore-this: 4fa0fd5bafe0d6b58fc81076f50d5f8d
1241]
1242[fix 64-bit value for W_SHIFT, which thankfully appears to be not used
1243Simon Marlow <marlowsd@gmail.com>**20100422213605
1244 Ignore-this: 525c062d2456c224ec8d0e083edd3b55
1245]
1246[Add missing constant folding and optimisation for unsigned division
1247Simon Marlow <marlowsd@gmail.com>**20100422213443
1248 Ignore-this: fb10d1cda0852fab0cbcb47247498fb3
1249 Noticed by Denys Rtveliashvili <rtvd@mac.com>, see #4004
1250]
1251[Fix the GHC API link in the main doc index.html
1252Ian Lynagh <igloo@earth.li>**20100422213226]
1253[Give the right exit code in darcs-all
1254Ian Lynagh <igloo@earth.li>**20100421171339
1255 Our END block was calling system, which alters $?. So now we save and
1256 restore it.
1257]
1258[Use StgWord64 instead of ullong
1259Ian Lynagh <igloo@earth.li>**20100421162336
1260 This patch also fixes ullong_format_string (renamed to showStgWord64)
1261 so that it works with values outside the 32bit range (trac #3979), and
1262 simplifies the without-commas case.
1263]
1264[Implement try10Times in Makefile
1265Ian Lynagh <igloo@earth.li>**20100420165909
1266 Avoid using seq, as FreeBSD has jot instead.
1267]
1268[Fix crash in non-threaded RTS on Windows
1269Simon Marlow <marlowsd@gmail.com>**20100420122125
1270 Ignore-this: 28b0255a914a8955dce02d89a7dfaca
1271 The tso->block_info field is now overwritten by pushOnRunQueue(), but
1272 stg_block_async_info was assuming that it still held a pointer to the
1273 StgAsyncIOResult.  We must therefore save this value somewhere safe
1274 before putting the TSO on the run queue.
1275]
1276[Expand the scope of the event_buf_mutex to cover io_manager_event
1277Simon Marlow <marlowsd@gmail.com>**20100420122026
1278 Ignore-this: 185a6d84f7d4a35997f10803f6dacef1
1279 I once saw a failure that I think was due to a race on
1280 io_manager_event, this should fix it.
1281]
1282[Flags -auto and -auto-all operate only on functions not marked INLINE.
1283Milan Straka <fox@ucw.cz>**20100331191050
1284 Ignore-this: 3b63580cfcb3c33d62ad697c36d94d05
1285]
1286[Spelling correction for LANGUAGE pragmas
1287Max Bolingbroke <batterseapower@hotmail.com>**20100413192825
1288 Ignore-this: 311b51ba8d43f6c7fd32f48db9a88dee
1289]
1290[Update the user guide so it talks about the newer "do rec" notation everywhere
1291Ian Lynagh <igloo@earth.li>**20100416205416
1292 Some of the problems highlighted in trac #3968.
1293]
1294[Fix typo
1295Ian Lynagh <igloo@earth.li>**20100416205412]
1296[Fix Trac #3950: unifying types of different kinds
1297simonpj@microsoft.com**20100412151845
1298 Ignore-this: d145b9de5ced136ef2c39f3ea4a04f4a
1299 
1300 I was assuming that the unifer only unified types of the
1301 same kind, but now we can "defer" unsolved constraints that
1302 invariant no longer holds.  Or at least is's more complicated
1303 to ensure. 
1304 
1305 This patch takes the path of not assuming the invariant, which
1306 is simpler and more robust.  See
1307 Note [Mismatched type lists and application decomposition]
1308]
1309[Fix Trac #3943: incorrect unused-variable warning
1310simonpj@microsoft.com**20100412151630
1311 Ignore-this: 52459f2b8b02c3cb120abe674dc9a060
1312 
1313 In fixing this I did the usual little bit of refactoring
1314]
1315[Convert boot and boot-pkgs to perl
1316Ian Lynagh <igloo@earth.li>**20100415143919
1317 This stops us having to worry about sh/sed/... portability.
1318]
1319[Use $(MAKE), not make, when recursively calling make
1320Ian Lynagh <igloo@earth.li>**20100415121453]
1321[Remove the ghc_ge_609 makefile variables
1322Ian Lynagh <igloo@earth.li>**20100412235658
1323 They are now guaranteed to be YES
1324]
1325[Increase the minimum version number required to 6.10 in configure.ac
1326Ian Lynagh <igloo@earth.li>**20100412235313]
1327[The bootstrapping compiler is now required to be > 609
1328Ian Lynagh <igloo@earth.li>**20100409161046]
1329[Handle IND_STATIC in isRetainer
1330Ian Lynagh <igloo@earth.li>**20100409104207
1331 IND_STATIC used to be an error, but at the moment it can happen
1332 as isAlive doesn't look through IND_STATIC as it ignores static
1333 closures. See trac #3956 for a program that hit this error.
1334]
1335[Add Data and Typeable instances to HsSyn
1336David Waern <david.waern@gmail.com>**20100330011020
1337 Ignore-this: c3f2717207b15539fea267c36b686e6a
1338 
1339 The instances (and deriving declarations) have been taken from the ghc-syb
1340 package.
1341]
1342[Fix for derefing ThreadRelocated TSOs in MVar operations
1343Simon Marlow <marlowsd@gmail.com>**20100407092824
1344 Ignore-this: 94dd7c68a6094eda667e2375921a8b78
1345]
1346[sanity check fix
1347Simon Marlow <marlowsd@gmail.com>**20100407092746
1348 Ignore-this: 9c18cd5f5393e5049015ca52e62a1269
1349]
1350[get the reg liveness right in the putMVar# heap check
1351Simon Marlow <marlowsd@gmail.com>**20100407092724
1352 Ignore-this: b1ba07a59ecfae00e9a1f8391741abc
1353]
1354[initialise the headers of MSG_BLACKHOLE objects properly
1355Simon Marlow <marlowsd@gmail.com>**20100407081712
1356 Ignore-this: 183dcd0ca6a395d08db2be12b02bdd79
1357]
1358[initialise the headers of MVAR_TSO_QUEUE objects properly
1359Simon Marlow <marlowsd@gmail.com>**20100407081514
1360 Ignore-this: 4b4a2f30cf2fb69ca4128c41744687bb
1361]
1362[undo debugging code
1363Simon Marlow <marlowsd@gmail.com>**20100406142740
1364 Ignore-this: 323c2248f817b6717c19180482fc4b00
1365]
1366[putMVar#: fix reg liveness in the heap check
1367Simon Marlow <marlowsd@gmail.com>**20100406135832
1368 Ignore-this: cddd2c7807ac7612c9b2c4c0d384d284
1369]
1370[account for the new BLACKHOLEs in the GHCi debugger
1371Simon Marlow <marlowsd@gmail.com>**20100406133406
1372 Ignore-this: 4d4aeb4bbada3f50dc1fb0123f565e8f
1373]
1374[don't forget to deRefTSO() in tryWakeupThread()
1375Simon Marlow <marlowsd@gmail.com>**20100406130411
1376 Ignore-this: 171d57c4f8653835dec0b69f9be9881c
1377]
1378[Fix bug in popRunQueue
1379Simon Marlow <marlowsd@gmail.com>**20100406091453
1380 Ignore-this: 9d3cec8f18f5c5cbd51751797386eb6f
1381]
1382[fix bug in migrateThread()
1383Simon Marlow <marlowsd@gmail.com>**20100401105840
1384 Ignore-this: 299bcf0d1ea0f8865f3e845eb93d2ad3
1385]
1386[Remove the IND_OLDGEN and IND_OLDGEN_PERM closure types
1387Simon Marlow <marlowsd@gmail.com>**20100401093519
1388 Ignore-this: 95f2480c8a45139835eaf5610217780b
1389 These are no longer used: once upon a time they used to have different
1390 layout from IND and IND_PERM respectively, but that is no longer the
1391 case since we changed the remembered set to be an array of addresses
1392 instead of a linked list of closures.
1393]
1394[Change the representation of the MVar blocked queue
1395Simon Marlow <marlowsd@gmail.com>**20100401091605
1396 Ignore-this: 20a35bfabacef2674df362905d7834fa
1397 
1398 The list of threads blocked on an MVar is now represented as a list of
1399 separately allocated objects rather than being linked through the TSOs
1400 themselves.  This lets us remove a TSO from the list in O(1) time
1401 rather than O(n) time, by marking the list object.  Removing this
1402 linear component fixes some pathalogical performance cases where many
1403 threads were blocked on an MVar and became unreachable simultaneously
1404 (nofib/smp/threads007), or when sending an asynchronous exception to a
1405 TSO in a long list of thread blocked on an MVar.
1406 
1407 MVar performance has actually improved by a few percent as a result of
1408 this change, slightly to my surprise.
1409 
1410 This is the final cleanup in the sequence, which let me remove the old
1411 way of waking up threads (unblockOne(), MSG_WAKEUP) in favour of the
1412 new way (tryWakeupThread and MSG_TRY_WAKEUP, which is idempotent).  It
1413 is now the case that only the Capability that owns a TSO may modify
1414 its state (well, almost), and this simplifies various things.  More of
1415 the RTS is based on message-passing between Capabilities now.
1416]
1417[eliminate some duplication with a bit of CPP
1418Simon Marlow <marlowsd@gmail.com>**20100330154355
1419 Ignore-this: 838f7d341f096ca14c86ab9c81193e36
1420]
1421[Make ioManagerDie() idempotent
1422Simon Marlow <marlowsd@gmail.com>**20100401100705
1423 Ignore-this: a5996b43cdb2e2d72e6e971d7ea925fb
1424 Avoids screeds of "event buffer overflowed; event dropped" in
1425 conc059(threaded1).
1426]
1427[Move a thread to the front of the run queue when another thread blocks on it
1428Simon Marlow <marlowsd@gmail.com>**20100329144521
1429 Ignore-this: c518ff0d41154680edc811d891826a29
1430 This fixes #3838, and was made possible by the new BLACKHOLE
1431 infrastructure.  To allow reording of the run queue I had to make it
1432 doubly-linked, which entails some extra trickiness with regard to
1433 GC write barriers and suchlike.
1434]
1435[remove non-existent MUT_CONS symbols
1436Simon Marlow <marlowsd@gmail.com>**20100330152600
1437 Ignore-this: 885628257a9d03f2ece2a754d993014a
1438]
1439[change throwTo to use tryWakeupThread rather than unblockOne
1440Simon Marlow <marlowsd@gmail.com>**20100329144613
1441 Ignore-this: 10ad4965e6c940db71253f1c72218bbb
1442]
1443[tiny GC optimisation
1444Simon Marlow <marlowsd@gmail.com>**20100329144551
1445 Ignore-this: 9e095b9b73fff0aae726f9937846ba92
1446]
1447[New implementation of BLACKHOLEs
1448Simon Marlow <marlowsd@gmail.com>**20100329144456
1449 Ignore-this: 96cd26793b4e6ab9ddd0d59aae5c2f1d
1450 
1451 This replaces the global blackhole_queue with a clever scheme that
1452 enables us to queue up blocked threads on the closure that they are
1453 blocked on, while still avoiding atomic instructions in the common
1454 case.
1455 
1456 Advantages:
1457 
1458  - gets rid of a locked global data structure and some tricky GC code
1459    (replacing it with some per-thread data structures and different
1460    tricky GC code :)
1461 
1462  - wakeups are more prompt: parallel/concurrent performance should
1463    benefit.  I haven't seen anything dramatic in the parallel
1464    benchmarks so far, but a couple of threading benchmarks do improve
1465    a bit.
1466 
1467  - waking up a thread blocked on a blackhole is now O(1) (e.g. if
1468    it is the target of throwTo).
1469 
1470  - less sharing and better separation of Capabilities: communication
1471    is done with messages, the data structures are strictly owned by a
1472    Capability and cannot be modified except by sending messages.
1473 
1474  - this change will utlimately enable us to do more intelligent
1475    scheduling when threads block on each other.  This is what started
1476    off the whole thing, but it isn't done yet (#3838).
1477 
1478 I'll be documenting all this on the wiki in due course.
1479 
1480]
1481[Fix warnings (allow pushOnRunQueue() to not be inlined)
1482Simon Marlow <marlowsd@gmail.com>**20100401114559
1483 Ignore-this: f40bfbfad70a5165a946d11371605b7d
1484]
1485[remove out of date comment
1486Simon Marlow <marlowsd@gmail.com>**20100401105853
1487 Ignore-this: 26af88dd418ee0bcda7223b3b7e4e8d2
1488]
1489[tidy up spacing in stderr traces
1490Simon Marlow <marlowsd@gmail.com>**20100326163122
1491 Ignore-this: 16558b0433a274be217d4bf39aa4946
1492]
1493[Fix an assertion that was not safe when running in parallel
1494Simon Marlow <marlowsd@gmail.com>**20100325143656
1495 Ignore-this: cad08fb8900eb3a475547af0189fcc47
1496]
1497[Never jump directly to a thunk's entry code, even if it is single-entry
1498Simon Marlow <marlowsd@gmail.com>**20100325114847
1499 Ignore-this: 938da172c06a97762ef605c8fccfedf1
1500 I don't think this fixes any bugs as we don't have single-entry thunks
1501 at the moment, but it could cause problems for parallel execution if
1502 we ever did re-introduce update avoidance.
1503]
1504[Rename forgotten -dverbose-simpl to -dverbose-core2core in the docs.
1505Milan Straka <fox@ucw.cz>**20100331153626
1506 Ignore-this: 2da58477fb96e1cfb80f37dddd7c422c
1507]
1508[Add -pa and -V to the documentation of time profiling options.
1509Milan Straka <fox@ucw.cz>**20100329191121
1510 Ignore-this: be74d216481ec5a19e5f40f85e6e3d65
1511]
1512[Keep gcc 4.5 happy
1513Simon Marlow <marlowsd@gmail.com>**20100330120425
1514 Ignore-this: 7811878cc2bd1ce9cfbb5bf102fe3454
1515]
1516[Fix warning compiling Linker.c for PPC Mac
1517naur@post11.tele.dk**20100403182355
1518 Ignore-this: e2d2448770c9714ce17dd6cf3e297063
1519 The warning message eliminated is:
1520 > rts/Linker.c:4756:0:
1521 >      warning: nested extern declaration of 'symbolsWithoutUnderscore'
1522]
1523[Fix error compiling AsmCodeGen.lhs for PPC Mac (mkRtsCodeLabel)
1524naur@post11.tele.dk**20100403181656
1525 Ignore-this: deb7524ea7852a15a2ac0849c8c82f74
1526 The error messages eliminated are:
1527 > compiler/nativeGen/AsmCodeGen.lhs:875:31:
1528 >     Not in scope: `mkRtsCodeLabel'
1529 > compiler/nativeGen/AsmCodeGen.lhs:879:31:
1530 >     Not in scope: `mkRtsCodeLabel'
1531 > compiler/nativeGen/AsmCodeGen.lhs:883:31:
1532 >     Not in scope: `mkRtsCodeLabel'
1533]
1534[Fix error compiling AsmCodeGen.lhs for PPC Mac (DestBlockId)
1535naur@post11.tele.dk**20100403180643
1536 Ignore-this: 71e833e94ed8371b2ffabc2cf80bf585
1537 The error message eliminated is:
1538 > compiler/nativeGen/AsmCodeGen.lhs:637:16:
1539 >     Not in scope: data constructor `DestBlockId'
1540]
1541[Fix boot-pkgs's sed usage to work with Solaris's sed
1542Ian Lynagh <igloo@earth.li>**20100401153441]
1543[Pass "-i org.haskell.GHC" to packagemaker when building the OS X installer
1544Ian Lynagh <igloo@earth.li>**20100331144707
1545 This seems to fix this failure:
1546 [...]
1547 ** BUILD SUCCEEDED **
1548 rm -f -f GHC-system.pmdoc/*-contents.xml
1549 /Developer/usr/bin/packagemaker -v --doc GHC-system.pmdoc\
1550              -o /Users/ian/to_release/ghc-6.12.1.20100330/GHC-6.12.1.20100330-i386.pkg
1551 2010-03-31 15:08:15.695 packagemaker[13909:807] Setting to : 0 (null)
1552 2010-03-31 15:08:15.709 packagemaker[13909:807] Setting to : 0 org.haskell.glasgowHaskellCompiler.ghc.pkg
1553 2010-03-31 15:08:15.739 packagemaker[13909:807] relocate: (null) 0
1554 2010-03-31 15:08:15.740 packagemaker[13909:807] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSXMLDocument initWithXMLString:options:error:]: nil argument'
1555 2010-03-31 15:08:15.741 packagemaker[13909:807] Stack: (
1556     2511962091,
1557     2447007291,
1558     2511961547,
1559     2511961610,
1560     2432803204,
1561     453371,
1562     447720,
1563     436209,
1564     435510,
1565     9986,
1566     9918
1567 )
1568 make[1]: *** [framework-pkg] Trace/BPT trap
1569 make: *** [framework-pkg] Error 2
1570]
1571[Use machdepCCOpts when compiling the file to toggle -(no-)rtsopts
1572Ian Lynagh <igloo@earth.li>**20100331161302
1573 Should fix toggling on OS X "Snow Leopard". Diagnosed by Roman Leshchinskiy.
1574]
1575[Avoid a non-portable use of tar reported by Roman Leshchinskiy
1576Ian Lynagh <igloo@earth.li>**20100330145802]
1577[Don't install EXTRA_PACKAGES by default
1578Simon Marlow <marlowsd@gmail.com>**20100330142714
1579 Ignore-this: d4cc8f87a6de8d9d1d6dc9b77130b3
1580]
1581[fix a non-portable printf format
1582Simon Marlow <marlowsd@gmail.com>**20100330134437
1583 Ignore-this: d41c23c54ec29654cb2049de1e588570
1584]
1585[avoid single quote in #error
1586Simon Marlow <marlowsd@gmail.com>**20100330120346
1587 Ignore-this: 663f39e7a27fead2f648fbf22d345bb4
1588]
1589[use FMT_Word64 instead of locally-defined version
1590Simon Marlow <marlowsd@gmail.com>**20100330114650
1591 Ignore-this: 82697b8095dffb3a8e196c687006ece0
1592]
1593[remove old/unused DotnetSupport and GhcLibsWithUnix
1594Simon Marlow <marlowsd@gmail.com>**20100330123732
1595 Ignore-this: c68814868b3671abdc369105bbeafe6c
1596]
1597[fix return type cast in f.i.wrapper when using libffi (#3516)
1598Simon Marlow <marlowsd@gmail.com>**20100329154220
1599 Ignore-this: f898eb8c9ae2ca2009e539735b92c438
1600 
1601 Original fix submitted by
1602   Sergei Trofimovich <slyfox@community.haskell.org>
1603 modified by me:
1604  - exclude 64-bit types
1605  - compare uniques, not strings
1606  - #include "ffi.h" is conditional
1607]
1608[libffi: install 'ffitarget.h' header as sole 'ffi.h' is unusable
1609Simon Marlow <marlowsd@gmail.com>**20100329135734
1610 Ignore-this: f9b555ea289d8df1aa22cb6faa219a39
1611 Submitted by: Sergei Trofimovich <slyfox@community.haskell.org>
1612 Re-recorded against HEAD.
1613]
1614[avoid a fork deadlock (see comments)
1615Simon Marlow <marlowsd@gmail.com>**20100329132329
1616 Ignore-this: 3377f88b83bb3b21e42d7fc5f0d866f
1617]
1618[tidy up the end of the all_tasks list after forking
1619Simon Marlow <marlowsd@gmail.com>**20100329132253
1620 Ignore-this: 819d679875be5f344e816210274d1c29
1621]
1622[Add a 'setKeepCAFs' external function (#3900)
1623Simon Marlow <marlowsd@gmail.com>**20100329110036
1624 Ignore-this: ec532a18cad4259a09847b0b9ae2e1d2
1625]
1626[Explicitly check whether ar supports the @file syntax
1627Ian Lynagh <igloo@earth.li>**20100329123325
1628 rather than assuming that all GNU ar's do.
1629 Apparently OpenBSD's older version doesn't.
1630]
1631[Fix the format specifier for Int64/Word64 on Windows
1632Ian Lynagh <igloo@earth.li>**20100327182126
1633 mingw doesn't understand %llu/%lld - it treats them as 32-bit rather
1634 than 64-bit. We use %I64u/%I64d instead.
1635]
1636[Fix the ghci startmenu item
1637Ian Lynagh <igloo@earth.li>**20100326235934
1638 I'm not sure what changed, but it now doesn't work for me without
1639 the "Start in" field being set.
1640]
1641[Fix paths to docs in "Start Menu" entries in Windows installer; fixes #3847
1642Ian Lynagh <igloo@earth.li>**20100326155917]
1643[Add a licence file for the Windows installer to use
1644Ian Lynagh <igloo@earth.li>**20100326155130]
1645[Add gcc-g++ to the inplace mingw installation; fixes #3893
1646Ian Lynagh <igloo@earth.li>**20100326154714]
1647[Add the licence file to the Windows installer. Fixes #3934
1648Ian Lynagh <igloo@earth.li>**20100326152449]
1649[Quote the paths to alex and happy in configure
1650Ian Lynagh <igloo@earth.li>**20100325143449
1651 Ignore-this: d6d6e1a250f88985bbeea760e63a79db
1652]
1653[Use </> rather than ++ "/"
1654Ian Lynagh <igloo@earth.li>**20100325133237
1655 This stops us generating paths like
1656     c:\foo\/ghc460_0/ghc460_0.o
1657 which windres doesn't understand.
1658]
1659[Append $(exeext) to utils/ghc-pkg_dist_PROG
1660Ian Lynagh <igloo@earth.li>**20100324233447
1661 Fixes bindist creation
1662]
1663[A sanity check
1664Simon Marlow <marlowsd@gmail.com>**20100325110500
1665 Ignore-this: 3b3b76d898c822456857e506b7531e65
1666]
1667[do_checks: do not set HpAlloc if the stack check fails
1668Simon Marlow <marlowsd@gmail.com>**20100325110328
1669 Ignore-this: 899ac8c29ca975d03952dbf4608d758
1670 
1671 This fixes a very rare heap corruption bug, whereby
1672 
1673  - a context switch is requested, which sets HpLim to zero
1674    (contextSwitchCapability(), called by the timer signal or
1675    another Capability).
1676 
1677  - simultaneously a stack check fails, in a code fragment that has
1678    both a stack and a heap check.
1679 
1680 The RTS then assumes that a heap-check failure has occurred and
1681 subtracts HpAlloc from Hp, although in fact it was a stack-check
1682 failure and retreating Hp will overwrite valid heap objects.  The bug
1683 is that HpAlloc should only be set when Hp has been incremented by the
1684 heap check.  See comments in rts/HeapStackCheck.cmm for more details.
1685 
1686 This bug is probably incredibly rare in practice, but I happened to be
1687 working on a test that triggers it reliably:
1688 concurrent/should_run/throwto001, compiled with -O -threaded, args 30
1689 300 +RTS -N2, run repeatedly in a loop.
1690]
1691[comments and formatting only
1692Simon Marlow <marlowsd@gmail.com>**20100325104617
1693 Ignore-this: c0a211e15b5953bb4a84771bcddd1d06
1694]
1695[Change how perl scripts get installed; partially fixes #3863
1696Ian Lynagh <igloo@earth.li>**20100324171422
1697 We now regenerate them when installing, which means the path for perl
1698 doesn't get baked in
1699]
1700[Pass the location of gcc in the ghc wrapper script; partially fixes #3863
1701Ian Lynagh <igloo@earth.li>**20100324171408
1702 This means we don't rely on baking a path to gcc into the executable
1703]
1704[Quote the ar path in configure
1705Ian Lynagh <igloo@earth.li>**20100324162043]
1706[Remove unused cUSER_WAY_NAMES cUSER_WAY_OPTS
1707Ian Lynagh <igloo@earth.li>**20100324145048]
1708[Remove unused cCONTEXT_DIFF
1709Ian Lynagh <igloo@earth.li>**20100324145013]
1710[Remove unused cEnableWin32DLLs
1711Ian Lynagh <igloo@earth.li>**20100324144841]
1712[Remove unused cGHC_CP
1713Ian Lynagh <igloo@earth.li>**20100324144656]
1714[Fix the build for non-GNU-ar
1715Ian Lynagh <igloo@earth.li>**20100324132907]
1716[Tweak the Makefile code for making .a libs; fixes trac #3642
1717Ian Lynagh <igloo@earth.li>**20100323221325
1718 The main change is that, rather than using "xargs ar" we now put
1719 all the filenames into a file, and do "ar @file". This means that
1720 ar adds all the files at once, which works around a problem where
1721 files with the same basename in a later invocation were overwriting
1722 the existing file in the .a archive.
1723]
1724[Enable shared libraries on Windows; fixes trac #3879
1725Ian Lynagh <igloo@earth.li>**20100320231414
1726 Ignore-this: c93b35ec5b7a7fa6ddb286d17a616216
1727]
1728[Add the external core PDF to the new build system
1729Ian Lynagh <igloo@earth.li>**20100321161909]
1730[Allow specifying $threads directly when validating
1731Ian Lynagh <igloo@earth.li>**20100321112835]
1732[Remove LazyUniqFM; fixes trac #3880
1733Ian Lynagh <igloo@earth.li>**20100320213837]
1734[UNDO: slight improvement to scavenging ...
1735Simon Marlow <marlowsd@gmail.com>**20100319153413
1736 Ignore-this: f0ab581c07361f7b57eae02dd6ec893c
1737 
1738 Accidnetally pushed this patch which, while it validates, isn't
1739 correct.
1740 
1741 rolling back:
1742 
1743 Fri Mar 19 11:21:27 GMT 2010  Simon Marlow <marlowsd@gmail.com>
1744   * slight improvement to scavenging of update frames when a collision has occurred
1745 
1746     M ./rts/sm/Scav.c -19 +15
1747]
1748[slight improvement to scavenging of update frames when a collision has occurred
1749Simon Marlow <marlowsd@gmail.com>**20100319112127
1750 Ignore-this: 6de2bb9614978975f17764a0f259d9bf
1751]
1752[Don't install the utf8-string package
1753Ian Lynagh <igloo@earth.li>**20100317212709]
1754[Don't use -Bsymbolic when linking the RTS
1755Ian Lynagh <igloo@earth.li>**20100316233357
1756 This makes the RTS hooks work when doing dynamic linking
1757]
1758[Fix Trac #3920: Template Haskell kinds
1759simonpj@microsoft.com**20100317123519
1760 Ignore-this: 426cac7920446e04f3cc30bd1d9f76e2
1761 
1762 Fix two places where we were doing foldl instead of foldr
1763 after decomposing a Kind.  Strange that the same bug appears
1764 in two quite different places!
1765]
1766[copy_tag_nolock(): fix write ordering and add a write_barrier()
1767Simon Marlow <marlowsd@gmail.com>**20100316143103
1768 Ignore-this: ab7ca42904f59a0381ca24f3eb38d314
1769 
1770 Fixes a rare crash in the parallel GC.
1771 
1772 If we copy a closure non-atomically during GC, as we do for all
1773 immutable values, then before writing the forwarding pointer we better
1774 make sure that the closure itself is visible to other threads that
1775 might follow the forwarding pointer.  I imagine this doesn't happen
1776 very often, but I just found one case of it: in scavenge_stack, the
1777 RET_FUN case, after evacuating ret_fun->fun we then follow it and look
1778 up the info pointer.
1779]
1780[Add sliceP mapping to vectoriser builtins
1781benl@ouroborus.net**20100316060517
1782 Ignore-this: 54c3cafff584006b6fbfd98124330aa3
1783]
1784[Comments only
1785benl@ouroborus.net**20100311064518
1786 Ignore-this: d7dc718cc437d62aa5b1b673059a9b22
1787]
1788[TAG 2010-03-16
1789Ian Lynagh <igloo@earth.li>**20100316005137
1790 Ignore-this: 234e3bc29e2f26cc59d7b03d780cc352
1791]
1792Patch bundle hash:
17933ccf9bff95259e2c55ef54f49f13ad396221f60e