Ticket #3605: win32_dlls_documentation_bug_3605.patch

File win32_dlls_documentation_bug_3605.patch, 169.8 KB (added by NeilMitchell, 5 years ago)

Patch to the documentation

Line 
1Sun Oct 10 11:07:09 GMT Daylight Time 2010  Neil Mitchell
2  * Update the documentation on using DLL's from Windows, fixing several errors, in particular those relating to bug 3605
3
4New patches:
5
6[Update the documentation on using DLL's from Windows, fixing several errors, in particular those relating to bug 3605
7Neil Mitchell **20101010100709
8 Ignore-this: 13b44b074b123c21f1b2257c9b1d0585
9] {
10hunk ./docs/users_guide/win32-dlls.xml 406
11 <title>Making DLLs to be called from other languages</title>
12 
13 <para>
14-If you want to package up Haskell code to be called from other languages,
15-such as Visual Basic or C++, there are some extra things it is useful to
16-know.  This is a special case of <xref linkend="ffi-library" />; we'll deal with
17-          the DLL-specific issues that arise below.  Here's an example:
18+  This section describes how to create DLLs to be called from other languages,
19+  such as Visual Basic or C++. This is a special case of
20+  <xref linkend="ffi-library" />; we'll deal with the DLL-specific issues that
21+  arise below. Here's an example:
22 </para>
23hunk ./docs/users_guide/win32-dlls.xml 411
24-
25-<itemizedlist>
26-
27-<listitem>
28 <para>
29hunk ./docs/users_guide/win32-dlls.xml 412
30-Use <literal>foreign export</literal> declarations to export the Haskell
31-functions you want to call from the outside. For example,
32-
33+  Use foreign export declarations to export the Haskell functions you want to
34+  call from the outside. For example:
35+</para>
36 <programlisting>
37hunk ./docs/users_guide/win32-dlls.xml 416
38+-- Adder.hs
39+{-# LANGUAGE ForeignFunctionInterface #-}
40 module Adder where
41 
42hunk ./docs/users_guide/win32-dlls.xml 420
43-adder :: Int -> Int -> IO Int  &ndash;&ndash; gratuitous use of IO
44+adder :: Int -> Int -> IO Int  -- gratuitous use of IO
45 adder x y = return (x+y)
46 
47 foreign export stdcall adder :: Int -> Int -> IO Int
48hunk ./docs/users_guide/win32-dlls.xml 425
49 </programlisting>
50-</para>
51-</listitem>
52-
53-<listitem>
54 <para>
55hunk ./docs/users_guide/win32-dlls.xml 426
56-Compile it up:
57-
58-<screen>
59-ghc -c adder.hs -fglasgow-exts
60-</screen>
61
62-This will produce two files, adder.o and adder_stub.o
63+  Add some helper code that starts up and shuts down the Haskell RTS:
64 </para>
65hunk ./docs/users_guide/win32-dlls.xml 428
66-</listitem>
67-
68-<listitem>
69-<para>
70-compile up a <function>DllMain()</function> that starts up the Haskell
71-RTS-&ndash;&ndash;a possible implementation is:
72-
73 <programlisting>
74hunk ./docs/users_guide/win32-dlls.xml 429
75-#include &lt;windows.h&gt;
76-#include &lt;Rts.h&gt;
77+// StartEnd.c
78+#include <Rts.h>
79 
80 extern void __stginit_Adder(void);
81 
82hunk ./docs/users_guide/win32-dlls.xml 434
83-static char* args[] = { "ghcDll", NULL };
84-                       /* N.B. argv arrays must end with NULL */
85-BOOL
86-STDCALL
87-DllMain
88-   ( HANDLE hModule
89-   , DWORD reason
90-   , void* reserved
91-   )
92+void HsStart()
93 {
94hunk ./docs/users_guide/win32-dlls.xml 436
95-  if (reason == DLL_PROCESS_ATTACH) {
96-      /* By now, the RTS DLL should have been hoisted in, but we need to start it up. */
97-      startupHaskell(1, args, __stginit_Adder);
98-      return TRUE;
99-  }
100-  return TRUE;
101-}
102-</programlisting>
103+   int argc = 1;
104+   char* argv[] = {"ghcDll", NULL}; // argv must end with NULL
105 
106hunk ./docs/users_guide/win32-dlls.xml 439
107-Here, <literal>Adder</literal> is the name of the root module in the module
108-tree (as mentioned above, there must be a single root module, and hence a
109-single module tree in the DLL).
110-
111-Compile this up:
112+   // Initialize Haskell runtime
113+   char** args = argv;
114+   hs_init(&argc, &args);
115 
116hunk ./docs/users_guide/win32-dlls.xml 443
117-<screen>
118-ghc -c dllMain.c
119-</screen>
120-</para>
121-</listitem>
122+   // Tell Haskell about all root modules
123+   hs_add_root(__stginit_Adder);
124+}
125 
126hunk ./docs/users_guide/win32-dlls.xml 447
127-<listitem>
128+void HsEnd()
129+{
130+   hs_exit();
131+}
132+</programlisting>
133 <para>
134hunk ./docs/users_guide/win32-dlls.xml 453
135-Construct the DLL:
136-
137+  Here, <literal>Adder</literal> is the name of the root module in the module
138+  tree (as mentioned above, there must be a single root module, and hence a
139+  single module tree in the DLL). Compile everything up:
140+</para>
141 <screen>
142hunk ./docs/users_guide/win32-dlls.xml 458
143-ghc &ndash;shared -o adder.dll adder.o adder_stub.o dllMain.o
144+ghc -c Adder.hs
145+ghc -c StartEnd.c
146+ghc -shared -o Adder.dll Adder.o Adder_stub.o StartEnd.o
147 </screen>
148hunk ./docs/users_guide/win32-dlls.xml 462
149-
150-</para>
151-</listitem>
152-
153-<listitem>
154 <para>
155hunk ./docs/users_guide/win32-dlls.xml 463
156-Start using <function>adder</function> from VBA-&ndash;&ndash;here's how I would
157-<constant>Declare</constant> it:
158-
159-<programlisting>
160-Private Declare Function adder Lib "adder.dll" Alias "adder@8"
161-      (ByVal x As Long, ByVal y As Long) As Long
162-</programlisting>
163-
164-Since this Haskell DLL depends on a couple of the DLLs that come with GHC,
165-make sure that they are in scope/visible.
166+  Now the file <filename>Adder.dll</filename> can be used from other
167+  programming languages. Before calling any functions in Adder it is necessary
168+  to call <literal>HsStart</literal>, and at the very end call
169+  <literal>HsEnd</literal>.
170 </para>
171hunk ./docs/users_guide/win32-dlls.xml 468
172-
173 <para>
174hunk ./docs/users_guide/win32-dlls.xml 469
175-Building statically linked DLLs is the same as in the previous section: it
176-suffices to add <option>-static</option> to the commands used to compile up
177-the Haskell source and build the DLL.
178+  <emphasis>Warning:</emphasis> It may appear tempting to use
179+  <literal>DllMain</literal> to call
180+  <literal>hs_init</literal>/<literal>hs_exit</literal>, but this won't work
181+  (particularly if you compile with <literal>-threaded</literal>). There are
182+  severe restrictions on which actions can be performed during
183+  <literal>DllMain</literal>, and <literal>hs_init</literal> violates these
184+  restrictions, which can lead to your dll freezing during startup (see
185+  <ulink url="http://hackage.haskell.org/trac/ghc/ticket/3605">bug
186+  #3605</ulink>).
187 </para>
188 
189hunk ./docs/users_guide/win32-dlls.xml 480
190-</listitem>
191-
192-</itemizedlist>
193-
194-</sect2>
195-
196-<sect2>
197-<title>Beware of DllMain()!</title>
198-
199-<para>The body of a <literal>DllMain()</literal> function is an
200-extremely dangerous place! This is because the order in which DLLs are
201-unloaded when a process is terminating is unspecified. This means that
202-the <literal>DllMain()</literal> for your DLL may be called when other DLLs containing
203-functions that you call when de-initializing your DLL have already
204-been unloaded. In other words, you can't put shutdown code inside
205-<literal>DllMain()</literal>, unless your shutdown code only requires use of certain
206-functions which are guaranteed to be available (see the Platform SDK
207-docs for more info).</para>
208-
209-<para>In particular, if you are writing a DLL that's statically
210-linked with Haskell, it is not safe to call
211-<literal>hs_exit()</literal> from <literal>DllMain()</literal>, since
212-<literal>hs_exit()</literal> may make use of other DLLs (see also <xref
213-          linkend="hs-exit" />).  What's more, if you
214-wait until program shutdown to execute your deinitialisation code, Windows will have
215-terminated all the threads in your program except the one calling
216-<literal>DllMain()</literal>, which can cause even more
217-problems.</para>
218-
219-<para>A solution is to always export <literal>Begin()</literal> and <literal>End()</literal> functions from your
220-DLL, and call these from the application that uses the DLL, so that
221-you can be sure that all DLLs needed by any shutdown code in your
222-End() function are available when it is called.</para>
223-
224-<para>The following example is untested but illustrates the idea (please let us
225-        know if you find problems with this example or have a better one).  Suppose we have a DLL called Lewis which makes use of 2
226-Haskell modules <literal>Bar</literal> and <literal>Zap</literal>,
227-where <literal>Bar</literal> imports <literal>Zap</literal> and is
228-therefore the root module in the sense of <xref
229-linkend="using-own-main" />. Then the main C++ unit for the DLL would
230-look something like:</para>
231+<sect3 id="win32-dlls-vba">
232+<title>Using from VBA</title>
233 
234hunk ./docs/users_guide/win32-dlls.xml 483
235+<para>
236+  An example of using <filename>Adder.dll</filename> from VBA is:
237+</para>
238 <programlisting>
239hunk ./docs/users_guide/win32-dlls.xml 487
240- // Lewis.cpp -- compiled using GCC
241- #include &lt;Windows.h&gt;
242- #include "HsFFI.h"
243-
244- #define __LEWIS_DLL_EXPORT
245- #include "Lewis.h"
246-
247- #include "Bar_stub.h"  // generated by GHC
248- #include "Zap_stub.h"
249-
250- BOOL APIENTRY DllMain( HANDLE hModule,
251-                        DWORD  ul_reason_for_call,
252-                        LPVOID lpReserved
253-                       ){
254-   return TRUE;
255- }
256-
257- extern "C"{
258-
259- LEWIS_API HsBool lewis_Begin(){
260-   int argc = ...
261-   char *argv[] = ...
262-
263-   // Initialize Haskell runtime
264-   hs_init(&amp;argc, &amp;argv);
265-
266-   // Tell Haskell about all root modules
267-   hs_add_root(__stginit_Bar);
268+Private Declare Function Adder Lib "Adder.dll" Alias "adder@8" _
269+      (ByVal x As Long, ByVal y As Long) As Long
270 
271hunk ./docs/users_guide/win32-dlls.xml 490
272-   // do any other initialization here and
273-   // return false if there was a problem
274-   return HS_BOOL_TRUE;
275- }
276+Private Declare Sub HsStart Lib "Adder.dll" ()
277+Private Declare Sub HsEnd Lib "Adder.dll" ()
278 
279hunk ./docs/users_guide/win32-dlls.xml 493
280- LEWIS_API void lewis_End(){
281-   hs_exit();
282- }
283+Private Sub Document_Close()
284+HsEnd
285+End Sub
286 
287hunk ./docs/users_guide/win32-dlls.xml 497
288- LEWIS_API HsInt lewis_Test(HsInt x){
289-   // use Haskell functions exported by
290-   // modules Bar and/or Zap
291+Private Sub Document_Open()
292+HsStart
293+End Sub
294 
295hunk ./docs/users_guide/win32-dlls.xml 501
296-   return ...
297- }
298+Public Sub Test()
299+MsgBox "12 + 5 = " & Adder(12, 5)
300+End Sub
301+</programlisting>
302+<para>
303+  This example uses the
304+  <literal>Document_Open</literal>/<literal>Close</literal> functions of
305+  Microsoft Word, but provided <literal>HsStart</literal> is called before the
306+  first function, and <literal>HsEnd</literal> after the last, then it will
307+  work fine.
308+</para>
309+</sect3>
310 
311hunk ./docs/users_guide/win32-dlls.xml 514
312- } // extern "C"
313+<sect3 id="win32-dlls-c++">
314+<title>Using from C++</title>
315 
316hunk ./docs/users_guide/win32-dlls.xml 517
317-and some application which used the functions in the DLL would have a main() function like:
318+<para>
319+  An example of using <filename>Adder.dll</filename> from C++ is:
320+</para>
321 
322hunk ./docs/users_guide/win32-dlls.xml 521
323- // MyApp.cpp
324- #include "stdafx.h"
325- #include "Lewis.h"
326+<programlisting>
327+// Tester.cpp
328+#include "HsFFI.h"
329+#include "Adder_stub.h"
330+#include <stdio.h>
331 
332hunk ./docs/users_guide/win32-dlls.xml 527
333- int main(int argc, char *argv[]){
334-   if (lewis_Begin()){
335-      // can now safely call other functions
336-      // exported by Lewis DLL
337+extern "C" {
338+    void HsStart();
339+    void HsEnd();
340+}
341 
342hunk ./docs/users_guide/win32-dlls.xml 532
343-   }
344-   lewis_End();
345-   return 0;
346- }
347+int main()
348+{
349+    HsStart();
350+    // can now safely call functions from the DLL
351+    printf("12 + 5 = %i\n", adder(12,5))    ;
352+    HsEnd();
353+    return 0;
354+}
355 </programlisting>
356hunk ./docs/users_guide/win32-dlls.xml 541
357-
358-<para><literal>Lewis.h</literal> would have to have some appropriate <literal>#ifndef</literal> to ensure that the
359-Haskell FFI types were defined for external users of the DLL (who
360-wouldn't necessarily have GHC installed and therefore wouldn't have
361-the include files like <literal>HsFFI.h</literal> etc).
362+<para>
363+  This can be compiled and run with:
364 </para>
365hunk ./docs/users_guide/win32-dlls.xml 544
366+<screen>
367+$ ghc -o tester Tester.cpp Adder.dll.a
368+$ tester
369+12 + 5 = 17
370+</screen>
371+
372 </sect2>
373 
374 </sect1>
375}
376
377Context:
378
379[Fix Trac #4360: omitted case in combineCtLoc
380[email protected]**20101008135747
381 Ignore-this: 834636a97af6469862a822809253db41
382]
383[Beautiful new approach to the skolem-escape check and untouchable
384[email protected]**20101008133751
385 Ignore-this: 33517a772cfdfbf4aa4678609f3dcd71
386 
387 Instead of keeping a *set* of untouchable variables in each
388 implication contraints, we keep a *range* of uniques for the
389 *touchable* variables of an implication.  This are precisely
390 the ones we would call the "existentials" if we were French.
391 
392 It turns out that the code is more efficient, and vastly easier
393 to get right, than the set-based approach.
394 
395 Fixes Trac #4355 among others
396]
397[Do less simplification when doing let-generalisation
398[email protected]**20101008133542
399 Ignore-this: 71366d0de37f10ffba2edc9f3927ddbe
400 
401 This fixes Trac #4361.  In a rather delicate way, but
402 no more delicate than before.  A more remoseless typechecker
403 would reject #4361 altogether.
404 
405 See Note [Avoid unecessary constraint simplification]
406]
407[Suppress ambiguity errors if any other errors occur
408[email protected]**20101008111318
409 Ignore-this: 40f014265c1ab15fe172baaf76c23c87
410]
411[Fix Trac #4361: be more discerning when inferring types
412[email protected]**20101008111227
413 Ignore-this: 33656f9a151f494b26b6318b5fcffef
414 
415 Note [Avoid unecessary constraint simplification] in TcSimplify
416]
417[Float out partial applications
418Simon Marlow <[email protected]>**20101008092709
419 Ignore-this: 2dc9d10597c19d0598ef2fc3cf74156d
420 
421 This fixes at least one case of performance regression in 7.0, and
422 is nice win on nofib:
423 
424         Program           Size    Allocs   Runtime   Elapsed
425             Min          +0.3%    -63.0%    -38.5%    -38.7%
426             Max          +1.2%     +0.2%     +0.9%     +0.9%
427  Geometric Mean          +0.6%     -3.0%     -6.4%     -6.6%
428]
429[Suppress knock-on typechecker errors
430[email protected]**20101008094348
431 Ignore-this: 8d125926286a7614fa1ce998e3b26d04
432 
433 The error cascade caused puzzling errors in T4093b, and
434 suppressing some seems like a good plan.  Very few test
435 outputs change.
436]
437[Some refactoring and simplification in TcInteract.occurCheck
438[email protected]**20101007163500
439 Ignore-this: d43d09370ab27b8796062e2e98ce7e9
440]
441[Comments only
442[email protected]**20101007130301
443 Ignore-this: ab46592edd3d24786bbce42c50feb4fd
444]
445[Implement auto-specialisation of imported Ids
446[email protected]**20101007111051
447 Ignore-this: 45257ff6e9597e4fa4de10b0657e27d6
448 
449 This big-ish patch arranges that if an Id 'f' is
450   * Type-class overloaded
451        f :: Ord a => [a] -> [a]
452   * Defined with an INLINABLE pragma
453        {-# INLINABLE f #-}
454   * Exported from its defining module 'D'
455 
456 then in any module 'U' that imports D
457 
458 1. Any call of 'f' at a fixed type will generate
459    (a) a specialised version of f in U
460    (b) a RULE that rewrites unspecialised calls to the
461        specialised on
462 
463   e.g. if the call is (f Int dOrdInt xs) then the
464   specialiser will generate
465      $sfInt :: [Int] -> [Int]
466      $sfInt = <code for f, imported from D, specialised>
467      {-# RULE forall d.  f Int d = $sfInt #-}
468 
469 2. In addition, you can give an explicit {-# SPECIALISE -#}
470    pragma for the imported Id
471      {-# SPECIALISE f :: [Bool] -> [Bool] #-}
472    This too generates a local specialised definition,
473    and the corresponding RULE
474 
475 The new RULES are exported from module 'U', so that any module
476 importing U will see the specialised versions of 'f', and will
477 not re-specialise them.
478 
479 There's a flag -fwarn-auto-orphan that warns you if the auto-generated
480 RULES are orphan rules. It's not in -Wall, mainly to avoid lots of
481 error messages with existing packages.
482 
483 Main implementation changes
484 
485  - A new flag on a CoreRule to say if it was auto-generated.
486    This is persisted across interface files, so there's a small
487    change in interface file format.
488 
489  - Quite a bit of fiddling with plumbing, to get the
490    {-# SPECIALISE #-} pragmas for imported Ids.  In particular, a
491    new field tgc_imp_specs in TcGblEnv, to keep the specialise
492    pragmas for imported Ids between the typechecker and the desugarer.
493 
494  - Some new code (although surprisingly little) in Specialise,
495    to deal with calls of imported Ids
496]
497[Make NameEnv back into type NameEnv a = UniqFM a
498[email protected]**20101007104638
499 Ignore-this: 24857c013461788be354520e84f4c286
500 
501 I don't think the type distinction of declaring NameEnv with a newtype
502 (as it was) is really useful to us. Moreover, VarEnv is a UniqFM, and
503 I do sometimes want to build an envt with Ids and look up with Names.
504 
505 This may not be the last word on the subject.
506]
507[Improve the rule-matcher
508[email protected]**20101007103700
509 Ignore-this: 9de96237dc4b73a43326bd568e34b53b
510 
511 Previously it was rejecting the match
512 
513   Template: forall s t. map s t
514   Actual:   map Int t
515 
516 which should obviously be fine.  It turns out that this kind of match
517 comes up when specialising.  By freshening that t we could avoid the
518 difficulty, but morally the (forall t) binds t and the rule should
519 be alpha-equivalent regardless of the forall'd variables.
520 
521 This patch makes it so, and incidentally makes matching a little
522 more efficient.  See Note [Eta expansion] in VarEnv.
523]
524[Fix Trac #4345: simplifier bug
525[email protected]**20101007102720
526 Ignore-this: 261c1c9f094df344ce34de814f8b60c5
527 
528 This is another long-standing bug, in which there was a possibility
529 that a loop-breaker could lose its loop-breaker-hood OccInfo,
530 and then the simplifer re-simplified the expression. Result, either
531 non-termination or, in the case of #4345, an unbound identifier.
532 
533 The fix is very simple, in Id.transferPolyIdInfo.
534 See Note [transferPolyIdInfo].
535]
536[Avoid redundant simplification
537[email protected]**20101007095935
538 Ignore-this: 61bd1a2c508260f558866e6a88c29fa3
539 
540 When adding specialisation for imported Ids, I noticed that the
541 Glorious Simplifier was repeatedly (and fruitlessly) simplifying the
542 same term.  It turned out to be easy to fix this, because I already
543 had a flag in the ApplyTo and Select constructors of SimplUtils.SimplCont.
544 
545 See Note [Avoid redundant simplification]
546]
547[Make the occurrence analyser deal correctly with RULES for imported Ids
548[email protected]**20101007094100
549 Ignore-this: 335b1cad013524e42b31e88c0a7a00f6
550 
551 This patch fixes a long-standing lurking bug, but it surfaced when I
552 was adding specialisation for imported Ids.
553 
554 See Note [ImpRuleUsage], which explains the issue.   The solution
555 seems more complicated than the problem really deserves, but I
556 could not think of a simpler way, so I just bit the bullet and
557 wrote the code.  Improvements welcome.
558]
559[Make warning-free
560[email protected]**20101007092007
561 Ignore-this: 4bae0c470a8a1f96d21990d1f3cf1f93
562]
563[This is just white-space and layout
564[email protected]**20101007091618
565 Ignore-this: 759c0335df70fce32558e967f140803a
566 
567 (At least, I don't think there is anything else.)
568]
569[Fix an ASSERT failure in FamInstEnv
570[email protected]**20101007091327
571 Ignore-this: a8c08ccb7ec2bc65864a674b5441539
572 
573 I added a lot of comments too, to explain the preconditions;
574 esp Note [FamInstEnv]
575]
576[Fix a looping bug in the new occur-check code
577[email protected]**20101007084104
578 Ignore-this: a02a2deafb9ec986ef1565f4596049ed
579]
580[Fix test T4235 with -O
581[email protected]**20101006155223
582 Ignore-this: f0fa0fe2f0c493e362d528d71f7a64e1
583 
584 The tag2Enum rule wasn't doing the right thing for
585 enumerations with a phantom type parameter, like
586    data T a = A | B
587]
588[Make warning-free
589[email protected]**20101006155033
590 Ignore-this: 221a3c95a6079c6ecc0468996a38b048
591]
592[Major bugfixing pass through the type checker
593[email protected]**20101006152854]
594[Typechecker performance fixes and flatten skolem bugfixing
595[email protected]**20101004130200
596 Ignore-this: 86721ba3f09479c146a0710796b43459
597]
598[Performance bug fixes
599[email protected]**20100923143918]
600[Fix Trac #4371: matching of view patterns
601[email protected]**20101006115316
602 Ignore-this: 494b28b91f1e6392b2f1521cda0e83b1
603]
604[Remove unused NoMatchContext construtor
605[email protected]**20101006115251
606 Ignore-this: 8985ff1dac51fb652bd65657a630a792
607]
608[Refactoring: mainly rename ic_env_tvs to ic_untch
609[email protected]**20101006102830
610 Ignore-this: 32999403a3f447e14b59cec7896027ff
611 
612 Plus remember to zonk the free_tvs in TcUnify.newImplication
613]
614[remove unnecessary/broken definition of mask_
615Simon Marlow <[email protected]>**20101002195118
616 Ignore-this: 4cdc9c95d40e01cdfe2d0ac411476603
617]
618[-fwarn-tabs: add "Warning" to the message
619Simon Marlow <[email protected]>**20101002195100
620 Ignore-this: 589a36daa3426ab51f2fb140e38df6c
621]
622[give a better error message in the non-threaded RTS for out-of-range FDs
623Simon Marlow <[email protected]>**20100929212916
624 Ignore-this: e94c9f390b8f79d24895a80f9d16c8d9
625 
626 # ./aw
627 aw: file descriptor 1027 out of range for select (0--1024).
628 Recompile with -threaded to work around this.
629]
630[Fix a very rare crash in GHCi
631Simon Marlow <[email protected]>**20101005144735
632 Ignore-this: dad1cd08934bae2ba47e72c0c000acfa
633 When a BCO with a zero-length bitmap was right at the edge of
634 allocated memory, we were reading a word of non-existent memory.
635 
636 This showed up as a segfault in T789(ghci) for me, but the crash was
637 extremely sensitive and went away with most changes.
638 
639 Also, optimised scavenge_large_bitmap a bit while I was in there.
640]
641[Using 'stdcall' when it is not supported is only a warning now (#3336)
642Simon Marlow <[email protected]>**20100924152445
643 Ignore-this: 66c5903a600a47485a7583535bb38455
644]
645[remove unnecessary stg_noForceIO (#3508)
646Simon Marlow <[email protected]>**20100924150202
647 Ignore-this: dec52de9cd9da7dcedae12b20691aba9
648]
649[Replace an outputStr with putStrLn calls; fixes #4332
650Ian Lynagh <[email protected]>**20101003125707
651 Ignore-this: eb4b5f60d9d9d3f7dc203869927b28ba
652]
653[make test and fulltest targets in the main Makefile; fixes #4297
654Ian Lynagh <[email protected]>**20100930224741
655 You can now run "make test" in the root, and the fast testsuite will be
656 run with cleaning enabled. It will also put the summary in
657 testsuite_summary.txt.
658]
659[Don't show the loaded packages in ":show packages"; fixes #4300
660Ian Lynagh <[email protected]>**20100930210128
661 It's never worked properly, and the information is in ":show linker".
662]
663[Handle EXTRA_LIBRARIES when building programs
664Ian Lynagh <[email protected]>**20100930192552
665 Ignore-this: 401a26e18d25dcaee010b13eaed8f011
666 And set hp2ps's EXTRA_LIBRARIES. Based on a patch from Sergei Trofimovich.
667]
668[Fix the doc directory on Windows
669Ian Lynagh <[email protected]>**20100929133328]
670[Remove an unused import on Windows
671Ian Lynagh <[email protected]>**20100929000024
672 Ignore-this: 2899e0e5a47122e637fb5c8aa0df52ab
673]
674[Use showCommandForUser when showing tracing commands
675Ian Lynagh <[email protected]>**20100928235844
676 Ignore-this: 8a4a9c9f8a8029e708c4297b096b6ef1
677]
678[Fix hsc2hs docs: 'gcc' is now the default compiler, not 'ghc'; fixes #4341
679Ian Lynagh <[email protected]>**20100928201938]
680[Use an empty signal handler for SIGPIPE instead of SIG_IGN
681Simon Marlow <[email protected]>**20100925193548
682 Ignore-this: b4dc5de32740a7c5fd8fe4b3bfb1300f
683 
684 This is so that the SIGPIPE handler gets reset to the default
685 automatically on exec().
686]
687[Fix the TH deps
688Ian Lynagh <[email protected]>**20100925210029
689 Ignore-this: 32b832301a3625d4ba70f84c5c4f94d2
690]
691[Check inplace doesn't exist before we try to create it
692Ian Lynagh <[email protected]>**20100924191858
693 This fixes rerunning configure in a tree which already has an inplace
694 directory. Edward Z Yang ran into this; I guess whether it actually
695 fails depends on details of your installation, or we'd have run into
696 it sooner.
697]
698[Fix an egregious bug: INLINE pragmas on monomorphic Ids were being ignored
699[email protected]**20100924155815
700 Ignore-this: 38c6eec6710a92df7662a55fc5132c15
701 
702 I had do to some refactoring to make this work nicely
703 but now it does. I can't think how this escaped our
704 attention for so long!
705]
706[Eta expand only lambdas that bind a non-dictionary Id
707[email protected]**20100924155707
708 Ignore-this: 7cc265eaf6c0bb3fa12eb311d92594ac
709 
710 See Note [When to eta expand]. The idea is that dictionary
711 lambdas are invisible to the user, so we shouldn't eta
712 expand them.
713]
714[Add a comment
715[email protected]**20100924155620
716 Ignore-this: de210a1afdd40328824803e1d77b4d7f
717]
718[Add a debug print
719[email protected]**20100924155614
720 Ignore-this: 1a58b6d297fc77d6ded8eec7ea9f895d
721]
722[Just moving comments around
723[email protected]**20100924155600
724 Ignore-this: 96635b8e8c9d88b50d82938568152ef8
725]
726[use putStrLn instead of Haskeline's outputStrLn
727Simon Marlow <[email protected]>**20100924133154
728 Ignore-this: 7581ae11714a9a52e78ba098c3c216b3
729 use of the latter caused problems for Claus Reinke's macros that
730 redirect stdout.
731]
732[Change "OPTIONS" to "OPTIONS_GHC" in error messages; fixes #4327
733Ian Lynagh <[email protected]>**20100924120423
734 Ignore-this: 1697c83a5c346db640c0a2e22c69ff55
735]
736[Add deps for TH uses in vector
737Ian Lynagh <[email protected]>**20100923220244
738 Ignore-this: 54c3386b1c268821fcdd34b84bc8c6a4
739]
740[Bump Cabal dep
741Ian Lynagh <[email protected]>**20100923143241]
742[Update Cabal's version number
743Ian Lynagh <[email protected]>**20100923141719]
744[Build primitive with stage2
745Ian Lynagh <[email protected]>**20100923140525
746 Ignore-this: 110a819b78a57629a7edf1d4facdc191
747]
748[Fix the Windows __chkstk build error (missing Linker symbol)
749Simon Marlow <[email protected]>**20100924113837
750 Ignore-this: 48f0907bb1bd5eaa0730b94a6bd94ea
751]
752[emit a helpful error message for missing DPH packages
753Simon Marlow <[email protected]>**20100923141957
754 Ignore-this: 55ff2ee90c94524e023e014243bfe5df
755]
756[Fix computation of installed packages
757[email protected]**20100924084737
758 Ignore-this: a597d2fa8be5135ba8ead6d2624b3d71
759 
760 This is a follow-on to Simon's patch yesterday, developed
761 with him.  It cleans up the computation of how packages
762 are installed, and installs the right ones.
763]
764[Fix braino in WwLib/Literal patch
765[email protected]**20100924070914
766 Ignore-this: f6eb3a42e10f8aa7920de541cdfe76d8
767]
768[For now, switch off incomplete-pattern warnings in containers
769[email protected]**20100923130117
770 Ignore-this: 7ffa58567f7a33aafe256492999da325
771 
772 Put it back on when my patch is applied to the containers repo.
773 (the one that removes two refuable lambdas)
774]
775[Make -funfolding-dict-threshold work properly
776[email protected]**20100923130032
777 Ignore-this: 417788f5b09d1d624f6b6371852c80c7
778 
779 and increase its default value. This makes overloaded functions
780 a bit keener to inline.  Which fixes Trac #4321
781]
782[Impredicative types is no longer deprecated
783[email protected]**20100923125910
784 Ignore-this: 2bbaeb38b5e8424551677c0add627683
785]
786[Do not make FunctionalDependencies force MonoLocalBinds
787[email protected]**20100923125900
788 Ignore-this: f4ae1fd07c87ec14f60bdfe3863ba7a9
789]
790[move CHECKED settings to the right place
791Simon Marlow <[email protected]>**20100923123558
792 Ignore-this: e00a0eb5855463cc9b953670b3bbf211
793]
794[turn off -Werror for primitive and vector
795Simon Marlow <[email protected]>**20100923122055
796 Ignore-this: 54d7b80f3f893385e1c3ef431e2a8a7b
797]
798[Add primitive and vector packages for DPH support
799Simon Marlow <[email protected]>**20100923104542
800 Ignore-this: c070d015385b0a0797394132dcbb7670
801 DPH is now using the public vector package instead of its internal
802 version.
803 
804 vector and primitive are not "boot" packages; they aren't required to
805 build GHC, but they are required to validate (because we include DPH
806 when validating).
807 
808 If you say './darcs-all get --no-dph' then you don't get DPH, vector,
809 or primitive.
810]
811[Refactoring and tidy up in the build system
812Simon Marlow <[email protected]>**20100923095642
813 Ignore-this: f7bf3a1fd160149d89b26f464b064fb1
814 
815 Instead of the ghc-stage and ghc-stage2-package files in a package, we
816 now have a list of these in ghc.mk.  There are other similar lists (of
817 boot-packages and non-installable packages), so this is not too bad,
818 and is simpler.
819 
820 While poking around in the top-level ghc.mk file I spotted various
821 opportunities to clean up and re-order some of the cruft that has
822 accumulated over time.
823]
824[Allow absent State# RealWorld arguments
825[email protected]**20100923111356
826 Ignore-this: c2d57633dec0293ebe6723ea3a4bb5df
827]
828[Add notSCCNote, and use it
829[email protected]**20100923105949
830 Ignore-this: c8cc758656558a7f366bf784d75f0304
831 
832 The point here is that SCCs get in the way of eta
833 expansion and we must treat them uniformly.
834]
835[Remove use of lambda with a refutable pattern
836[email protected]**20100923105901
837 Ignore-this: d7d48b94e5744717a838591a1cc79cf0
838]
839[Avoid ASSERT black hole
840[email protected]**20100923105820
841 Ignore-this: 5419d450871be22c8781ac3f0f40d76a
842 
843 When this ASSERT tripped in CoreToStg it tried to print out
844 too much, which tripped the asssertion again.  Result: an
845 infinite loop with no output at all.  Hard to debug!
846]
847[Rejig the absent-arg stuff for unlifted types
848[email protected]**20100923105732
849 Ignore-this: 69daa35816b948b0c4d259c73a5e928e
850 
851 This is what was giving the "absent entered" messages
852 See Note [Absent errors] in WwLib.  We now return a
853 suitable literal for absent values of unlifted type.
854]
855[Remove -fwarn-simple-patterns, and make -fwarn-incomplete-patterns include lambdas
856[email protected]**20100922133934
857 Ignore-this: e851a2fb0377e10c28c506f0bf14cc85
858 
859 This makes
860      \(x:xs) -> e
861 want when you have -fwarn-incomplete-patterns, which is consistent.
862]
863[Get rid of non-exhaustive lambda
864[email protected]**20100922133801
865 Ignore-this: 748b2d5b43b02b6591b81abe7c105cd6
866]
867[Fix an ASSERT failure with profiling
868[email protected]**20100922133741
869 Ignore-this: 170b2e94d6ee8cc7444cc4bb515328a0
870 
871 The problem arose with this kind of thing
872 
873    x = (,) (scc "blah" Nothing)
874 
875 Then 'x' is marked NoCafRefs by CoreTidy, becuase it has
876 arity 1, and doesn't mention any caffy things.
877 
878 That in turns means that CorePrep must not float out the
879 sat binding to give
880 
881   sat = scc "blah" Nothing
882   x = (,) sat
883 
884 Rather we must generate
885 
886   x = \eta. let sat = scc "blah" Nothing
887             in (,) sat eta
888 
889 URGH! This Caf stuff is such a mess.
890]
891[Remove an out of date paragraph from the user guide; fixes #4331
892Ian Lynagh <[email protected]>**20100922225239]
893[Fix bindisttest when GhcProfiled = YES
894Ian Lynagh <[email protected]>**20100921222634
895 Ignore-this: 47c620fd6bec745e3eb699d9f53441d8
896]
897[Fixes for when HADDOCK_DOCS=NO
898Ian Lynagh <[email protected]>**20100921213916
899 Ignore-this: e0e069555c6db9d01a8ac70ba4dde591
900]
901[Bump version to 7.1
902Ian Lynagh <[email protected]>**20100921195935
903 Ignore-this: 4563987e6885d5ef55995ec0fa0d5ae8
904]
905[Don't use -march=i686 on powerpc-apple-darwin
906Ian Lynagh <[email protected]>**20100921193721
907 Thorikil ran into this when doing a PPC OS X build. We now also don't
908 use -m32 on PPC/OSX, but I don't think it should be necessary. We can
909 add it back if it does turn out to be.
910]
911[add a simple trace facility to the build system
912Simon Marlow <[email protected]>**20100921134729
913 Ignore-this: d23ea2d62a648d0711b4b07d98e1b79f
914 
915 saying
916 
917   make TRACE=1
918 
919 prints most of the macro calls and their arguments.  It's easy to
920 trace new macros; see rules/trace.mk.
921]
922[fix building with extra packages (packages were added to BUILD_DIRS twice)
923Simon Marlow <[email protected]>**20100921100153
924 Ignore-this: 4b425dff9777871ad5ba3e05e1d14483
925 Also add some comments about what extra-packages is doing
926]
927[add extra packages to $(EXTRA_PACKAGES), so we avoid installing them by default
928Simon Marlow <[email protected]>**20100920144307
929 Ignore-this: 3395825d911a8bf7ba8385518d8b517b
930]
931[Fix indexing error in archive loader
932Ian Lynagh <[email protected]>**20100921121642]
933[Add some -Dl belches
934Ian Lynagh <[email protected]>**20100921121624]
935[Add casts to fix warnings
936Ian Lynagh <[email protected]>**20100921121714]
937[Add support for BSD-variant large filenames in .a archives
938Ian Lynagh <[email protected]>**20100921000451]
939[Tell Cabal that we're not building GHCi libs if UseArchivesForGhci=YES
940Ian Lynagh <[email protected]>**20100920230449]
941["UseArchivesForGhci = YES" on darwin
942Ian Lynagh <[email protected]>**20100920211538]
943[Add a dependency that my OS X build has recently started tripping up over
944Ian Lynagh <[email protected]>**20100920210239]
945[Add "Use archives for ghci" to --info output
946Ian Lynagh <[email protected]>**20100920210523]
947[Implement archive loading for ghci
948Ian Lynagh <[email protected]>**20100920201620]
949[Tweak gen_contents_index now dph may not be there
950Ian Lynagh <[email protected]>**20100920201513]
951[Filter out the FFI library when loading package in ghci
952Ian Lynagh <[email protected]>**20100920181032
953 The FFI GHCi import lib isn't needed as
954 compiler/ghci/Linker.lhs + rts/Linker.c link the
955 interpreted references to FFI to the compiled FFI.
956 We therefore filter it out so that we don't get
957 duplicate symbol errors.
958]
959[Loosen the conditions for -XUndecidableInstances; fixes Trac #4200
960[email protected]**20100919162623
961 Ignore-this: 2f4323e278b1ce9250549727ffd0aa1b
962]
963[Further improvements in error messages
964[email protected]**20100919153355
965 Ignore-this: b6fa0b11ae893df1a3ca68f78e427fa
966]
967[Add a flag -fwarn-missing-local-sigs, and improve -fwarn-mising-signatures
968[email protected]**20100919153327
969 Ignore-this: fda8dfca450054ea692be0ee30b01885
970 
971 The new flag prints out a warning if you have a local,
972 polymorphic binding that lacks a type signature. It's meant
973 to help with the transition to the new typechecker, which
974 discourages local let-generalisation.
975 
976 At the same time I moved the missing-signature code to TcHsSyn,
977 where it takes place as part of zonking.  That way the
978 types are reported after all typechecking is complete,
979 thereby fixing Trac #3696.  (It's even more important for
980 local bindings, which is why I made the change.)
981]
982[Include the "stupid theta" in the type of $con2tag
983[email protected]**20100919152201
984 Ignore-this: d95fae78a0e66f48bbd5862573a11f4d
985]
986[Add a release note about the typechecker
987Ian Lynagh <[email protected]>**20100919132927]
988[Enable shared libs on OpenBSD
989Matthias Kilian <[email protected]>**20100918205040
990 Ignore-this: 729dd7ac0bba5d758f43bc31b541896
991]
992[Add separate functions for querying DynFlag and ExtensionFlag options
993Ian Lynagh <igloo@earth.li>**20100918163815
994 and remove the temporary DOpt class workaround.
995]
996[Fix mkUserGuidePart deps
997Ian Lynagh <igloo@earth.li>**20100918145904
998 We need to directly depend on the stage1 libs. The stage1 compiler lib
999 doesn't depend on them.
1000]
1001[Fix build on cygwin: Normalise slashes in .depend files to be /
1002Ian Lynagh <igloo@earth.li>**20100918132328
1003 Ignore-this: 664f5ef4a41a4461eb34fe2ca7f2729a
1004]
1005[extra packages info is now read from packages file
1006Ian Lynagh <igloo@earth.li>**20100917224409
1007 rather than being repeated in the build system
1008]
1009[Tweak darcs-all
1010Ian Lynagh <igloo@earth.li>**20100917194435]
1011[Bump dependencies
1012Ian Lynagh <igloo@earth.li>**20100917183609]
1013[Library release notes for 7.0.1
1014Ian Lynagh <igloo@earth.li>**20100917174850]
1015[Fix overriding of implicit parameters in the solver
1016simonpj@microsoft.com**20100917140403
1017 Ignore-this: af76732309c7e2ca6b04f49327e9c14b
1018]
1019[Minor type printing amomaly
1020simonpj@microsoft.com**20100917140204
1021 Ignore-this: c90cb2e51421b4543a827e096051772e
1022]
1023[Spaces only
1024simonpj@microsoft.com**20100917140156
1025 Ignore-this: 7e34479502f7cb87d762355e40cbd012
1026]
1027[Minor refactoring
1028simonpj@microsoft.com**20100917140150
1029 Ignore-this: 6c0648b949b91b7e2f23c136b124faf2
1030]
1031[Add types of implicit parameters as untouchable
1032simonpj@microsoft.com**20100917140138
1033 Ignore-this: ba80740a557a9ba062dc7756e2320d17
1034 
1035 This is a tricky point:
1036    see Note [Implicit parameter untouchables]
1037]
1038[Better pretty printing of implicit parameters
1039simonpj@microsoft.com**20100917140054
1040 Ignore-this: 867dd67818a5bd687b2b6a1b59e15775
1041]
1042[Yet more error message improvement
1043simonpj@microsoft.com**20100917121206
1044 Ignore-this: 647fe8129d1d39d81e8249debd8df94e
1045]
1046[More error message wibbles
1047simonpj@microsoft.com**20100917094721
1048 Ignore-this: 8ec2f150b96b26af2e9ab7ac2b371fc7
1049]
1050[More error refactoring
1051simonpj@microsoft.com**20100917092834
1052 Ignore-this: 2d570ac0b9cc11305ddd33d093d11324
1053]
1054[Refactor type errors a bit
1055simonpj@microsoft.com**20100917080726
1056 Ignore-this: 33da4549373f585064e2ee22b50ad6ac
1057 
1058 Improves kind error messages in paticular
1059]
1060[Fix a very subtle shadowing bug in optCoercion
1061simonpj@microsoft.com**20100916170452
1062 Ignore-this: 9041cfb3c93e27a5e644e57815313aae
1063 
1064 See Note [Subtle shadowing in coercions]
1065 
1066 This is what was going wrong in Trac 4160.
1067]
1068[Fix bad error in tyVarsOfType
1069simonpj@microsoft.com**20100916170348
1070 Ignore-this: 67c8ce96a668cf6e3a38b82c893bcd81
1071 
1072 We weren't gathering the type variables free in the kind
1073 of a coercion binder!
1074]
1075[More assertions
1076simonpj@microsoft.com**20100916170310
1077 Ignore-this: 7fdcb53c99d791621a3d7e01ef454404
1078]
1079[Add more location info in CoreLint
1080simonpj@microsoft.com**20100916170229
1081 Ignore-this: 6558bab544b4f30189e0430668db87c3
1082]
1083[Print coercion variables as such (debugging change only)
1084simonpj@microsoft.com**20100916165944
1085 Ignore-this: c6d2001c1d8279a2288cb63bc339577d
1086]
1087[Remove pprTrace
1088simonpj@microsoft.com**20100915225935
1089 Ignore-this: 28185bbfa9732386f3c0f3eb4781a637
1090]
1091[Remove dead code dealing with type refinement
1092simonpj@microsoft.com**20100915223230
1093 Ignore-this: 62824b5c2ec1077c7642163352559621
1094]
1095[Use mkAppTy
1096simonpj@microsoft.com**20100915223205
1097 Ignore-this: e79e087b6a49219e9088846a1253a153
1098 
1099 Using AppTy in CoreLint was giving a bogus Lint failure
1100]
1101[Comments only
1102simonpj@microsoft.com**20100915221253
1103 Ignore-this: 3a45ea614188ccbb4a462de5cac96eda
1104]
1105[Extend eta reduction to work with casted arguments
1106simonpj@microsoft.com**20100915221229
1107 Ignore-this: 24b103dcdf70331211507af929789f86
1108 
1109 See Trac #4201, and
1110 Note [Eta reduction with casted arguments]
1111 
1112 Thanks to Louis Wasserman for suggesting this, and
1113 implementing an early version of the patch
1114]
1115[Allow "INLINEABLE" as a synonym
1116simonpj@microsoft.com**20100915154249
1117 Ignore-this: f41f80cb769e9acd5b463b170df698d0
1118]
1119[Documentation for INLINABLE
1120simonpj@microsoft.com**20100915154235
1121 Ignore-this: f942c02bcadc0d2d2f05b9369f93e280
1122]
1123[Implement TH reification of instances (Trac #1835)
1124simonpj@microsoft.com**20100915151242
1125 Ignore-this: 97dfa83db7da8f6cbd1b96801a57f8c5
1126 
1127 Accompanying patch for template-haskell package is reqd
1128]
1129[errno corresponding to ERROR_NO_DATA should be EPIPE (non-threaded RTS)
1130Simon Marlow <marlowsd@gmail.com>**20100915141809
1131 Ignore-this: 709c7280fbaa762e7071fb8796e8c01e
1132]
1133[Windows: use a thread-local variable for myTask()
1134Simon Marlow <marlowsd@gmail.com>**20100915120627
1135 Ignore-this: 13ffa4f19ebd319fe672af53af8d0b9a
1136 Which entailed fixing an incorrect #ifdef in Task.c
1137]
1138[Fix typo
1139Ian Lynagh <igloo@earth.li>**20100915140814]
1140[Add quotes in error message
1141simonpj@microsoft.com**20100915144724
1142 Ignore-this: c5158047c0aa41947a79e4c8edbe54f4
1143]
1144[Fix isDefaultInlinePragma
1145simonpj@microsoft.com**20100915144710
1146 Ignore-this: c9addf6bf811b23dc12603cf8521aa6c
1147]
1148[Implement INLINABLE pragma
1149simonpj@microsoft.com**20100915124442
1150 Ignore-this: 80a4ab2c2d65b27868dc9b2e954d6c6f
1151 
1152 Implements Trac #4299.  Documentation to come.
1153]
1154[Less voluminous error when derived code doesn't typecheck
1155simonpj@microsoft.com**20100915072301
1156 Ignore-this: eca7871dcc50c1070a0b530711adea27
1157]
1158[Improve pretty-printing of family instances
1159simonpj@microsoft.com**20100915123219
1160 Ignore-this: 25ec6bcc7e8a7f7c303b38ca201db90e
1161 
1162 Fixed Trac #4246
1163]
1164[Fix Trac #4240: -ddump-minimal-imports
1165simonpj@microsoft.com**20100915121937
1166 Ignore-this: ab85057cb829a42ea44a92f7b4af24a3
1167 
1168 See Note [Partial export] for the details.
1169 I also fixed one egregious bug that was just
1170 waiting to bite: we were using loadSysInterface
1171 instead of loadSrcInterface.
1172]
1173[Comments only
1174simonpj@microsoft.com**20100915105707
1175 Ignore-this: ab3a5f16f8260b7b8570e748bf97998a
1176]
1177[implement setThreadAffinity on Windows (#1741)
1178Simon Marlow <marlowsd@gmail.com>**20100914155844
1179 Ignore-this: a14c7b4ef812007042342d0a25478f0b
1180]
1181[COFF: cope with new debug sections in gcc 4.x (fixes ghciprog004)
1182Simon Marlow <marlowsd@gmail.com>**20100914153026
1183 Ignore-this: f340e40a2b0390836bc61bba144a04ed
1184 Also updated the object file parser to properly handle the overflow
1185 case for section names longer than 8 chars.
1186]
1187[eliminate clutter from make output
1188Simon Marlow <marlowsd@gmail.com>**20100915105712
1189 Ignore-this: bfa4480dd239dda2a02ac391b6a9219c
1190]
1191[rts_isProfiled should be a visible API (fixes T2615(dyn))
1192Simon Marlow <marlowsd@gmail.com>**20100915083941
1193 Ignore-this: b8ac09bb9d1a929bf45c6122f8485561
1194]
1195[Fix the "lost due to fragmentation" calculation
1196Simon Marlow <marlowsd@gmail.com>**20100914145945
1197 Ignore-this: cdffcc9f3061c3a33da5171be111fc43
1198 It was counting the space used by block descriptors as "lost"
1199]
1200[fix +RTS -S output: use peak_mblocks_allocated, now that mblocks can be freed
1201Simon Marlow <marlowsd@gmail.com>**20100914135030
1202 Ignore-this: 65d21e5f86d3ab6ab4d6c255180b6968
1203]
1204[Fix egregious bug in deeplyInstantiate
1205simonpj@microsoft.com**20100915070325
1206 Ignore-this: 22ede973038877af2673339aaf5de6cf
1207 
1208 This resulted in an infinite loop in applyTypeToArgs, in syb
1209]
1210[Improve HsSyn pretty printing
1211simonpj@microsoft.com**20100915070255
1212 Ignore-this: 7c8e2d86a482453c7e69e22bc31cb03f
1213]
1214[Remove (most of) the FiniteMap wrapper
1215Ian Lynagh <igloo@earth.li>**20100914201703
1216 We still have
1217     insertList, insertListWith, deleteList
1218 which aren't in Data.Map, and
1219     foldRightWithKey
1220 which works around the fold(r)WithKey addition and deprecation.
1221]
1222[Improve ASSERT
1223simonpj@microsoft.com**20100914113900
1224 Ignore-this: dbc0363be5924f543316e77f7d18dd77
1225]
1226[Comment on what an "enumeration" type is
1227simonpj@microsoft.com**20100914113850
1228 Ignore-this: c09c8591e3140f305d55fbf945adbf95
1229]
1230[Make absent-arg wrappers work for unlifted types (fix Trac #4306)
1231simonpj@microsoft.com**20100914113827
1232 Ignore-this: 1945e56779329e8b79780403710aba98
1233 
1234 Previously we were simply passing arguments of unlifted
1235 type to a wrapper, even if they were absent, which was
1236 stupid.
1237 
1238 See Note [Absent error Id] in WwLib.
1239]
1240[Comments only
1241simonpj@microsoft.com**20100914113641
1242 Ignore-this: 3191ce856c9b5d9700cedc9b149b8097
1243]
1244[Move error-ids to MkCore (from PrelRules)
1245simonpj@microsoft.com**20100914113635
1246 Ignore-this: c3d820db62ba6139dd7c96bf97e51bb5
1247 
1248 and adjust imports accordingly
1249]
1250[More wibbles to deriving error messages
1251simonpj@microsoft.com**20100914113523
1252 Ignore-this: bd2df662644961138fa209aec843a2aa
1253]
1254[Fix getThreadCPUTime()
1255Simon Marlow <marlowsd@gmail.com>**20100913153838
1256 Ignore-this: 950e048a5724086534b74c609c7d5ed
1257 ever since the patch "Check with sysconf _POSIX_THREAD_CPUTIME", it
1258 has been returning incorrect results, because the sysconf variable to
1259 check should have been _SC_THREAD_CPUTIME, not _POSIX_THREAD_CPUTIME.
1260]
1261[filter out the gcc-lib directory from the rts package's library-dirs
1262Simon Marlow <marlowsd@gmail.com>**20100913101259
1263 Ignore-this: 46dc1dccbfee8a65f9243e125eee117f
1264 fixes problems when building with GHC 6.10 on Windows
1265]
1266[Don't include GC time in heap profiles (#4225)
1267Simon Marlow <marlowsd@gmail.com>**20100913133852
1268 Ignore-this: 68ac48b004b311384b5996c6b33ba5cc
1269]
1270[Use clock_gettime (if available) to measure the process CPU time
1271Simon Marlow <marlowsd@gmail.com>**20100913133818
1272 Ignore-this: 8c9300df9b929bfc1db4713c9b6065b3
1273 This is much more accurate than getrusage, which was giving misleading
1274 results when trying to time very quick operations like a minor GC.
1275]
1276[make stg_arg_bitmaps public, and available via the GHCi linker (#3672)
1277Simon Marlow <marlowsd@gmail.com>**20100913105235
1278 Ignore-this: e18efd0bd77c521e5530fb59e93b5a42
1279]
1280[fix typo
1281Simon Marlow <marlowsd@gmail.com>**20100913105100
1282 Ignore-this: 6049eea21208864203b2d79db2edd143
1283]
1284[Update release notes and docs with LLVM info.
1285David Terei <davidterei@gmail.com>**20100914072135
1286 Ignore-this: 5b3d0e5c9d5da98ed6ae9c2e8e1f6f30
1287]
1288[Remove defaultExtensionFlags
1289Ian Lynagh <igloo@earth.li>**20100913165949
1290 The default should do into languageExtensions instead
1291]
1292[Improve crash message
1293simonpj@microsoft.com**20100913170407
1294 Ignore-this: 5c26a9979f18be8cd12cea823c9f4b5a
1295]
1296[Fix Trac #4302, plus a little refactoring
1297simonpj@microsoft.com**20100913170355
1298 Ignore-this: cf6886b587aa0e8d723362183625d946
1299]
1300[Fix build with 6.10
1301Ian Lynagh <igloo@earth.li>**20100913160048]
1302[Haddock fixes
1303simonpj@microsoft.com**20100913120510
1304 Ignore-this: f3157d6969f10d4cbd593000a477138b
1305]
1306[Remove two old junk files
1307simonpj@microsoft.com**20100913103426
1308 Ignore-this: ed7af5ef1b9592178909a8d876345302
1309]
1310[Super-monster patch implementing the new typechecker -- at last
1311simonpj@microsoft.com**20100913095048
1312 Ignore-this: 14d14a1e4d7a414f5ae8d9d89d1c6a4b
1313 
1314 This major patch implements the new OutsideIn constraint solving
1315 algorithm in the typecheker, following our JFP paper "Modular type
1316 inference with local assumptions". 
1317 
1318 Done with major help from Dimitrios Vytiniotis and Brent Yorgey.
1319 
1320]
1321[Fix simplifier statistics
1322simonpj@microsoft.com**20100909085441
1323 Ignore-this: 48e383655aafc912dea15c4d94382863
1324]
1325[Trace output
1326simonpj@microsoft.com**20100908170056
1327 Ignore-this: 4b67fa4b310fbf0a16b852686d2d3294
1328]
1329[Better debug output
1330simonpj@microsoft.com**20100908170047
1331 Ignore-this: 410cef00616dda7c0c162f65216e8ca3
1332]
1333[Add Outputable instance for OccEncl
1334simonpj@microsoft.com**20100908150510
1335 Ignore-this: 6362ef9028287d84f070eaf8963c1bfc
1336]
1337[Better simplifier counting
1338simonpj@microsoft.com**20100907214840
1339 Ignore-this: 9d4722703f8f47447e86a28c8c50e0ea
1340]
1341[Put liftStringName into the known-key names
1342simonpj@microsoft.com**20100906112415
1343 Ignore-this: 287064d14ff484da1a6dea6924bc9235
1344]
1345[Deprecate NoRelaxedPolyRec
1346simonpj@microsoft.com**20100903234519
1347 Ignore-this: 607217e77f6bc1b91bf57dfd8dd2b967
1348]
1349[Buglet in Core Lint
1350simonpj@microsoft.com**20100903234457
1351 Ignore-this: 277535d51b396d3b4b0265a0939c2d4
1352]
1353[Give seqId the right type
1354simonpj@microsoft.com**20100903093556
1355 Ignore-this: d1fc7a73dea160614a8d4ddc930f99cd
1356]
1357[Remove dead code
1358simonpj@microsoft.com**20100903093548
1359 Ignore-this: 92cc3f7651445aa349ee7f114d3ec758
1360]
1361[Comments and layout
1362simonpj@microsoft.com**20100903093502
1363 Ignore-this: 9987d1409e654992c1cb1be35cb87728
1364]
1365[Remove checkFreeness; no longer needed
1366simonpj@microsoft.com**20100902233227
1367 Ignore-this: c96a12ac9794290aa30402317d88c095
1368]
1369[Assert
1370simonpj@microsoft.com**20100902073642
1371 Ignore-this: 4be1ab2f6096665ae5ec7fdd1f025a67
1372]
1373[Add aserts
1374simonpj@microsoft.com**20100902073211
1375 Ignore-this: e1409441217fd070c5a7f9ee4cca99ab
1376]
1377[Wibbles
1378simonpj@microsoft.com**20100831113540
1379 Ignore-this: 903811ab493a7b560a62eb86fcf3ee25
1380]
1381[Wibble to allow phantom types in Enum
1382simonpj@microsoft.com**20100825112711
1383 Ignore-this: fdef1c50d92b4a3d46bbe4cbfd8a83ea
1384]
1385[Add HsCoreTy to HsType
1386simonpj@microsoft.com**20100824141845
1387 Ignore-this: 4ca742b099f9cc90af3167f1012dbba6
1388 
1389 The main thing here is to allow us to provide type
1390 signatures for 'deriving' bindings without pain.
1391]
1392[Comments
1393simonpj@microsoft.com**20100823223654
1394 Ignore-this: dd412a55839430c436902d8699d6900b
1395]
1396[Wibbles to error message
1397simonpj@microsoft.com**20100823163308
1398 Ignore-this: 4d6cd8e613762dca8135c2e3b09264ec
1399]
1400[Correct type signatures
1401simonpj@microsoft.com**20100823153045
1402 Ignore-this: 42942309221a443258246098f9c0a13b
1403]
1404[Add missing signatures
1405simonpj@microsoft.com**20100823112413
1406 Ignore-this: 8ee1ce40456306de469938c02df4fed5
1407]
1408[Add type signatures in "deriving" bindings
1409simonpj@microsoft.com**20100820234230
1410 Ignore-this: 4726b28968cf65ec16cb65b7e0e7303e
1411]
1412[Minor
1413dimitris@microsoft.com**20100820131021]
1414[Be a bit less aggressive in mark-many inside a cast
1415simonpj@microsoft.com**20100819104804
1416 Ignore-this: 3fd48fe7647ec7a58c2032cd86ca4d4f
1417]
1418[Wibble
1419simonpj@microsoft.com**20100818185738
1420 Ignore-this: d5c939311377c0d0c7244aa339193315
1421]
1422[Pretty printing change
1423simonpj@microsoft.com**20100818065436
1424 Ignore-this: 4f7e70976dbe52f95effb3e634dfef5d
1425]
1426[Remember to zonk FlatSkols!
1427simonpj@microsoft.com**20100811143555
1428 Ignore-this: 84f7f9dbda97f561a918c69308ddef9a
1429]
1430[De-polymorphise
1431simonpj@microsoft.com**20100730151217
1432 Ignore-this: a9304487b983e517a9083fd697f77576
1433]
1434[Work around missing type signature in Happy
1435simonpj@microsoft.com**20100730122405
1436 Ignore-this: 7f241a655d93c5ad7763a7ffe8db0c7a
1437 
1438 Happy generates
1439 
1440       notHappyAtAll = error "Blah"
1441 
1442 without a type signature, and currently the new
1443 typechecker doesn't generalise it.  This patch
1444 says "no monomorphism restriction" which makes it
1445 generalise again.
1446 
1447 Better would be to add a type sig to Happy's template
1448]
1449[Add two local type signatures
1450simonpj@microsoft.com**20100729152611
1451 Ignore-this: afa99bcc515469aa0990d44d8c18a9e6
1452]
1453[Second test from Simon's laptop
1454simonpj@microsoft.com**20100729091703
1455 Ignore-this: 4dc64cadae314a5a1b05cc5326918a83
1456]
1457[Test commit from Simon's laptop
1458simonpj@microsoft.com**20100729091344
1459 Ignore-this: 109eff835cc19e9f93799d12f09b0ba7
1460]
1461[Add OutsideIn flag
1462simonpj@microsoft.com**20100728075525
1463 Ignore-this: 69c2f5c3a15fa653f6da80598aa8d74d
1464]
1465[Layout only
1466simonpj@microsoft.com**20100727141539
1467 Ignore-this: 1a58a8fe80ba8bced18ae81a2efb9495
1468]
1469[Improvement to SimplUtils.mkLam
1470simonpj@microsoft.com**20100727131659
1471 Ignore-this: 739beaefa79baa7e0ebeb5b2b6d1ea91
1472]
1473[Give the correct kind to unsafeCoerce#
1474simonpj@microsoft.com**20100727131538
1475 Ignore-this: 6b787de3b398c6d7a61fa04fccd15fd6
1476]
1477[Suppress warnings about recursive INLINE in output of desugarer
1478simonpj@microsoft.com**20100727094549
1479 Ignore-this: a361f7238c0fcba526d46326722c42e
1480]
1481[Rename CorePrep.tryEtaReduce to tryEtaReducePrep
1482simonpj@microsoft.com**20100726231253
1483 Ignore-this: 4375ddace205745244ba224ae012252
1484 
1485 This avoids the name clash with the similar but
1486 not identical CoreUtils.tryEtaReduce
1487]
1488[Add a trace message
1489simonpj@microsoft.com**20100719211111
1490 Ignore-this: b5daebe46e50c8cf28cc693f84bbf099
1491]
1492[Don't use RelaxedPolyRec in the compiler; it's built in now
1493simonpj@microsoft.com**20100719170441
1494 Ignore-this: a2e4489cdf63478e46282a421ee7aec3
1495]
1496[Remove duplicated #defines for FreeBSD
1497Matthias Kilian <kili@outback.escape.de>**20100912181518
1498 Ignore-this: d16214fef8635c7c9ef4edec4e8e7896
1499]
1500[Don't fail with absolute silence
1501Matthias Kilian <kili@outback.escape.de>**20100912150506
1502 Ignore-this: 479e2321f39b263fa2d9f80491e5e9f7
1503]
1504[Add a release note: "-dynload wrapper" removed
1505Ian Lynagh <igloo@earth.li>**20100911195809]
1506[put back the conversion of warn-lazy-unlifted-bindings into an error until 7.2
1507Ian Lynagh <igloo@earth.li>**20100911193434
1508 I think we'll currently still have too many people with old versions of
1509 alex/happy to want to make this an error now.
1510]
1511[6.14 -> 7.0
1512Ian Lynagh <igloo@earth.li>**20100911192837]
1513[Add a couple more release notes
1514Ian Lynagh <igloo@earth.li>**20100911162059]
1515[Document -dsuppress-module-prefixes
1516Ian Lynagh <igloo@earth.li>**20100911162005]
1517[Enable -fregs-graph with -O2; fixes #2790
1518Ian Lynagh <igloo@earth.li>**20100910191301]
1519[Remove unused code
1520Ian Lynagh <igloo@earth.li>**20100909170207]
1521[Fix warnings
1522Ian Lynagh <igloo@earth.li>**20100909154348]
1523[Fix warnings
1524Ian Lynagh <igloo@earth.li>**20100909150957]
1525[Remove context completion
1526lykahb@gmail.com**20100901160153
1527 Ignore-this: dc61b259dcb7063f0c76f56788b5d2af
1528 Now completion suggests to remove only modules added to context before.
1529]
1530[avoid Foreign.unsafePerformIO
1531Ross Paterson <ross@soi.city.ac.uk>**20100909125531
1532 Ignore-this: 5cabeae4cffec8fc17ef7c0cabbea22a
1533]
1534[updates to the release notes
1535Simon Marlow <marlowsd@gmail.com>**20100909111450
1536 Ignore-this: a4d25ad8815c305b7e0f21fd4f6ee37b
1537]
1538[newAlignedPinnedByteArray#: avoid allocating an extra word sometimes
1539Simon Marlow <marlowsd@gmail.com>**20100909110805
1540 Ignore-this: 996a3c0460068ab2835b4920905b3e75
1541]
1542[Finish breaking up vectoriser utils
1543benl@ouroborus.net**20100909061311
1544 Ignore-this: 217fe1d58a3e8bb13200bcb81353a416
1545]
1546[Move VectType module to Vectorise tree
1547benl@ouroborus.net**20100909042451
1548 Ignore-this: 5af8cf394d4835911259ca3ffb6774c5
1549]
1550[Sort all the PADict/PData/PRDict/PRepr stuff into their own modules
1551benl@ouroborus.net**20100909035147
1552 Ignore-this: 53436329773347cad793adbd83e90a9e
1553]
1554[Break out Repr and PADict stuff for vectorisation of ADTs to their own modules
1555benl@ouroborus.net**20100909025759
1556 Ignore-this: d2b7d2f79332eda13416449742f7cf1c
1557]
1558[Break out conversion functions to own module
1559benl@ouroborus.net**20100909023332
1560 Ignore-this: 613f2666b6ca7f2f8876fcc1e4a59593
1561]
1562[Comments and formatting only
1563benl@ouroborus.net**20100909022117
1564 Ignore-this: c8e30139d730669e5db44f0ef491a588
1565]
1566[Remove "-dynload wrapper"; fixes trac #4275
1567Ian Lynagh <igloo@earth.li>**20100908213251]
1568[Don't set visibility on Windows
1569Ian Lynagh <igloo@earth.li>**20100905122442
1570 With gcc 4.5.0-1, using visibility hidden gives:
1571     error: visibility attribute not supported in this configuration; ignored
1572]
1573[Fix warnings on Windows
1574Ian Lynagh <igloo@earth.li>**20100905111201
1575 Ignore-this: c5cce63bb1e0c7a27271bed78d25fbc5
1576]
1577[Fix gcc wrapper for new mingw binaries
1578Ian Lynagh <igloo@earth.li>**20100905001807
1579 Ignore-this: f6acc8c911055ffce632bac138ccc939
1580]
1581[Don't pass our gcc options to stage0 ghc's gcc; they may not be suitable
1582Ian Lynagh <igloo@earth.li>**20100905103129]
1583[Update intree-mingw creation
1584Ian Lynagh <igloo@earth.li>**20100904225559]
1585[Update commands to build in-tree mingw
1586Ian Lynagh <igloo@earth.li>**20100904215112]
1587[Break out hoisting utils into their own module
1588benl@ouroborus.net**20100908074102
1589 Ignore-this: e3ba4ed0252a2def1ed88a9e14c58fea
1590]
1591[Break out closure utils into own module
1592benl@ouroborus.net**20100908072040
1593 Ignore-this: 216172b046ff101cf31a1753667a5383
1594]
1595[Move VectVar module to Vectorise tree
1596benl@ouroborus.net**20100908065904
1597 Ignore-this: 1fba5333d29927dba4275381e1a7f315
1598]
1599[Break out vectorisation of expressions into own module
1600benl@ouroborus.net**20100908065128
1601 Ignore-this: 6a952b80fb024b5291f166477eb1976
1602]
1603[Break out TyCon classifier into own module
1604benl@ouroborus.net**20100908063111
1605 Ignore-this: da754c4ef6960b4e152ea1bf8c04ab6f
1606]
1607[Break out vectorisation of TyConDecls into own module
1608benl@ouroborus.net**20100908052004
1609 Ignore-this: c0ab4fb2a05ca396efe348b384db1ebf
1610]
1611[Break out type vectorisation into own module
1612benl@ouroborus.net**20100907110311
1613 Ignore-this: 67bd70a21d16468daf68dd3ec1ff7d62
1614]
1615[Tidy up the ArchHasAdjustorSupport definition
1616Ian Lynagh <igloo@earth.li>**20100904144234]
1617[ppc: switch handling of 'foreign import wrapper' (FIW) to libffi
1618Sergei Trofimovich <slyfox@community.haskell.org>**20100829192859
1619 Ignore-this: 662ea926681ebea0759e2a04a38e82b7
1620 
1621 Joseph Jezak reported darcs-2.4.4 SIGSEGV in interactive mode in ghc-6.12.3.
1622 So I've concluded ppc also has rotten native adjustor. I don't have hardware
1623 to verify the patch (ticket #3516 should help to test it), but I think it will
1624 help (as similar patch helped for ia64 and ppc64).
1625]
1626[Binary no longer has unusable UNPACK pragmas, so no need to turn of -Werror
1627Ian Lynagh <igloo@earth.li>**20100904133339]
1628[Don't haddock packages that we aren't going to install
1629Ian Lynagh <igloo@earth.li>**20100903231921]
1630[Give haddock per-package source entity paths; fixes #3810
1631Ian Lynagh <igloo@earth.li>**20100903221335]
1632[update for containers-0.4
1633Simon Marlow <marlowsd@gmail.com>**20100903105131
1634 Ignore-this: 556eac0e4926c9b8af6b66d7b069302c
1635]
1636[Fix for nursery resizing: the first block's back pointer should be NULL
1637Simon Marlow <marlowsd@gmail.com>**20100827102818
1638 Ignore-this: fb68938e3f1e291e3c9e5e8047f9dcd2
1639 I'm not sure if this could lead to a crash or not, but it upsets +RTS -DS
1640 Might be related to #4265
1641]
1642[Add some -no-user-package-conf flags
1643Ian Lynagh <igloo@earth.li>**20100902224726
1644 Stops user-installed packages breaking the build
1645]
1646[Fix warnings: Remove unused imports
1647Ian Lynagh <igloo@earth.li>**20100902204342]
1648[Finish breaking up VectBuiltIn and VectMonad, and add comments
1649benl@ouroborus.net**20100831100724
1650 Ignore-this: 65604f3d22d03433abc12f10be40050d
1651]
1652[Fix warnings
1653benl@ouroborus.net**20100830083746
1654 Ignore-this: 2a0e000985f694582a6f9a9261ff2739
1655]
1656[Break up vectoriser builtins module
1657benl@ouroborus.net**20100830070900
1658 Ignore-this: b86bd36a7875abdcf16763902ba2e637
1659]
1660[Move VectCore to Vectorise tree
1661benl@ouroborus.net**20100830053415
1662 Ignore-this: d5763ca6424285b39a58c7792f4a84a1
1663]
1664[Split out vectoriser environments into own module
1665benl@ouroborus.net**20100830050252
1666 Ignore-this: 5319111c74831394d2c29b9aedf5a766
1667]
1668[Comments and formatting to vectoriser, and split out varish stuff into own module
1669benl@ouroborus.net**20100830042722
1670 Ignore-this: d3f0c98ed8124dd0fca9a2ccea3e15fd
1671]
1672[Fix warnings
1673benl@ouroborus.net**20100830040340
1674 Ignore-this: d6cfad803ad4617e7fdaa62e4a895282
1675]
1676[Fix warning about multiply exported name
1677benl@ouroborus.net**20100830035243
1678 Ignore-this: 27ce2c1d22d9f99929d16a426343044e
1679]
1680[Vectorisation of method types
1681benl@ouroborus.net**20100830032941
1682 Ignore-this: 75614571d5c246a4906edb3b39ab1e0b
1683]
1684[Comments and formatting to vectoriser
1685benl@ouroborus.net**20100830032516
1686 Ignore-this: fe665b77108501c7960d858be3290761
1687]
1688[Implement -dsuppress-module-prefixes
1689benl@ouroborus.net**20100830032428
1690 Ignore-this: 2bb8bad9c60ef9044132bba118010687
1691]
1692[Whitespace only
1693benl@ouroborus.net**20100527045629
1694 Ignore-this: 4c160dfa77727e659817b6af9c84684a
1695]
1696[Disambiguate a function name
1697Ian Lynagh <igloo@earth.li>**20100828225827]
1698[users_guide.xml is now generated
1699Ian Lynagh <igloo@earth.li>**20100828225751]
1700[Pass more -pgm flags in the ghc wrapper; fixes #3863
1701Ian Lynagh <igloo@earth.li>**20100827204537]
1702[Add a new-IO manager release note
1703Ian Lynagh <igloo@earth.li>**20100827171616]
1704[Merge a duplicate release note
1705Ian Lynagh <igloo@earth.li>**20100827171511]
1706[Typo, spotted by Johan Tibell
1707Ian Lynagh <igloo@earth.li>**20100827153914]
1708[First pass at 6.14.1 release notes
1709Ian Lynagh <igloo@earth.li>**20100826220811]
1710[Fix typo
1711Ian Lynagh <igloo@earth.li>**20100824201330]
1712[FIX BUILD: add rts_isProfiled to the symbol table
1713Simon Marlow <marlowsd@gmail.com>**20100826094319
1714 Ignore-this: 9536ddb0a94721c8dec03a2a981cfa83
1715]
1716[Fix the DPH package cleaning/profiled mess even more (the build was broken)
1717Simon Marlow <marlowsd@gmail.com>**20100826084436
1718 Ignore-this: 49d7e4db2fb53b856c213c74c8969d82
1719]
1720[Remove the debugging memory allocator - valgrind does a better job
1721Simon Marlow <marlowsd@gmail.com>**20100824113537
1722 Ignore-this: a3731a83dc18b0fd0de49452e695a7ca
1723 
1724 I got fed up with the constant bogus output from the debugging memory
1725 allocator in RtsUtils.c.  One problem is that we allocate memory in
1726 constructors that then isn't tracked, because the debugging allocator
1727 hasn't been initialised yet.
1728 
1729 The bigger problem is that for a given piece of leaking memory it's
1730 impossible to find out where it was allocated; however Valgrind gives
1731 output like this:
1732 
1733 ==6967== 8 bytes in 1 blocks are still reachable in loss record 1 of 7
1734 ==6967==    at 0x4C284A8: malloc (vg_replace_malloc.c:236)
1735 ==6967==    by 0x4C28522: realloc (vg_replace_malloc.c:525)
1736 ==6967==    by 0x6745E9: stgReallocBytes (RtsUtils.c:213)
1737 ==6967==    by 0x68D812: setHeapAlloced (MBlock.c:91)
1738 ==6967==    by 0x68D8E2: markHeapAlloced (MBlock.c:116)
1739 ==6967==    by 0x68DB56: getMBlocks (MBlock.c:240)
1740 ==6967==    by 0x684F55: alloc_mega_group (BlockAlloc.c:305)
1741 ==6967==    by 0x6850C8: allocGroup (BlockAlloc.c:358)
1742 ==6967==    by 0x69484F: allocNursery (Storage.c:390)
1743 ==6967==    by 0x694ABD: allocNurseries (Storage.c:436)
1744 ==6967==    by 0x6944F2: initStorage (Storage.c:217)
1745 ==6967==    by 0x673E3C: hs_init (RtsStartup.c:160)
1746 
1747 which tells us exactly what the leaking bit of memory is.  So I don't
1748 think we need our own debugging allocator.
1749]
1750[free the entries in the thread label table on exit
1751Simon Marlow <marlowsd@gmail.com>**20100824112606
1752 Ignore-this: c9d577c06548cda80791e590e40d35b3
1753]
1754[Panic in the right way
1755simonpj@microsoft.com**20100825091614
1756 Ignore-this: e6ea4f6dfd2aea088828ea7a945ddd5f
1757]
1758[Fix the DPH/profiled make thing (again)
1759simonpj@microsoft.com**20100825091602
1760 Ignore-this: bc58fa48034ac40cf7be4170958ea29e
1761]
1762[Don't test for gcc flags before we've found gcc
1763Ian Lynagh <igloo@earth.li>**20100824131401]
1764[Change how the dblatex/lndir problem is worked around
1765Ian Lynagh <igloo@earth.li>**20100824130938
1766 Hack: dblatex normalises the name of the main input file using
1767 os.path.realpath, which means that if we're in a linked build tree,
1768 it find the real source files rather than the symlinks in our link
1769 tree. This is fine for the static sources, but it means it can't
1770 find the generated sources.
1771 
1772 We therefore also generate the main input file, so that it really
1773 is in the link tree, and thus dblatex can find everything.
1774]
1775[Clean the generated userguide sources
1776Ian Lynagh <igloo@earth.li>**20100824105827
1777 Ignore-this: 39b4f9702c688c053ed3273b20969597
1778]
1779[DPH should not even be built if GhcProfiled
1780simonpj@microsoft.com**20100823133439
1781 Ignore-this: 62acbf83de5b70ff6d27ab38ce9218ae
1782 
1783 It's not just when cleaning!
1784]
1785[The templateHaskellOk check should only run in stage2
1786simonpj@microsoft.com**20100823133353
1787 Ignore-this: f6dc9292923a1ca201953c5f58c0af3c
1788 
1789 Because rtsIsProfiled is only available in stage2
1790]
1791[Add a couple of missing tests for EAGER_BLACKHOLE
1792Simon Marlow <marlowsd@gmail.com>**20100823104654
1793 Ignore-this: 70c981b86370b0c7564b29b057650897
1794 This was leading to looping and excessive allocation, when the
1795 computation should have just blocked on the black hole. 
1796 
1797 Reported by Christian Höner zu Siederdissen <choener@tbi.univie.ac.at>
1798 on glasgow-haskell-users.
1799]
1800[Don't check for swept blocks in -DS.
1801Marco Túlio Gontijo e Silva <marcot@marcot.eti.br>**20100718225526
1802 Ignore-this: ad5dcf3c247bc19fbef5122c1142f3b2
1803 
1804 The checkHeap function assumed the allocated part of the block contained only
1805 alive objects and slops.  This was not true for blocks that are collected using
1806 mark sweep.  The code in this patch skip the test for this kind of blocks.
1807]
1808[Fix "darcs get"
1809Ian Lynagh <igloo@earth.li>**20100822183542]
1810[Add "darcs-all upstreampull"
1811Ian Lynagh <igloo@earth.li>**20100822163419
1812 This pulls from the upstream repos, for those packages which have
1813 upstreams
1814]
1815[Generate the bit in the user guide where we say what -fglasgow-exts does
1816Ian Lynagh <igloo@earth.li>**20100822155514
1817 Stops the docs going out of sync with the code.
1818]
1819[Factor out the packages file parsing in darcs-all
1820Ian Lynagh <igloo@earth.li>**20100822154813]
1821[Document --supported-extensions
1822Ian Lynagh <igloo@earth.li>**20100822134530]
1823[fix extraction of command stack of arguments of arrow "forms" (fixes #4236)
1824Ross Paterson <ross@soi.city.ac.uk>**20100822090022
1825 Ignore-this: a93db04ec4f20540642a19cdc67d1666
1826 
1827 The command stack was being extracted (by unscramble) with the outermost
1828 type first, contrary to the comment on the function.
1829]
1830[minor fix to comment
1831Ross Paterson <ross@soi.city.ac.uk>**20100822085838
1832 Ignore-this: 8d203ba2600eaf4cf21b043dcfa96cdc
1833]
1834[Add the RTS library path to the library search path
1835Ian Lynagh <igloo@earth.li>**20100820155523
1836 In case the RTS is being explicitly linked in. For #3807.
1837]
1838[Remove some duplication of C flags
1839Ian Lynagh <igloo@earth.li>**20100819233743
1840 We now use the CONF_CC_OPTS_STAGEn C flags in machdepCCOpts, rather than
1841 repeating them there.
1842]
1843[Set -fno-stack-protector in CONF_CC_OPTS_STAGE* rathre than extra-gcc-opts
1844Ian Lynagh <igloo@earth.li>**20100819233031
1845 The latter is only used when compiling .hc files, whereas we need it for
1846 .c files too.
1847]
1848[Give clearer errors for bad input in the packages file; suggested by pejo
1849Ian Lynagh <igloo@earth.li>**20100819232420]
1850[Set -march=i686 on OS X x86 in the configure variables
1851Ian Lynagh <igloo@earth.li>**20100819230939
1852 We used to set it only in machdepCCOpts, so this is more consistent
1853]
1854[Give each stage its own Config.hs
1855Ian Lynagh <igloo@earth.li>**20100819224709
1856 This also means the file is generated in a dist directory, not a
1857 source directory.
1858]
1859[Fix cleaning when GhcProfiled = YES
1860Ian Lynagh <igloo@earth.li>**20100819131346
1861 We need to include the DPH cleaning rules, even though we don't build DPH
1862 when GhcProfiled = YES.
1863]
1864[stgReallocBytes(DEBUG): don't fail when the ptr passed in is NULL
1865Simon Marlow <marlowsd@gmail.com>**20100817150836
1866 Ignore-this: 4b5063e65e01399f64a33f0d0555ff38
1867]
1868[Use make-command in rules/bindist.mk
1869Ian Lynagh <igloo@earth.li>**20100818191243
1870 Rather than it having its own specialised version
1871]
1872[Use make-command when installing packages
1873Ian Lynagh <igloo@earth.li>**20100818190600]
1874[Add _DATA_FILES to package-data.mk files
1875Ian Lynagh <igloo@earth.li>**20100818185801]
1876[Add a "make-command" utility Makefile function
1877Ian Lynagh <igloo@earth.li>**20100818183055]
1878[LLVM: Nicer format for lack of shared lib warning
1879David Terei <davidterei@gmail.com>**20100817145207
1880 Ignore-this: 753d45762601d87761614937a1bb6716
1881]
1882[fix FP_CHECK_ALIGNMENT for autoconf 2.66 (fixes #4252)
1883Ross Paterson <ross@soi.city.ac.uk>**20100816142442
1884 Ignore-this: cd784b8888d32b3b2cc2cc0969ec40f
1885 
1886 Recent versions of AS_LITERAL_IF don't like *'s.  Fix from
1887 
1888 http://blog.gmane.org/gmane.comp.sysutils.autoconf.general/month=20100701
1889]
1890[Refactor the command-line argument parsing (again)
1891simonpj@microsoft.com**20100816074453
1892 Ignore-this: 26dc9e37a88660a887a2e316ed7a9803
1893 
1894 This change allows the client of CmdLineParser a bit more flexibility,
1895 by giving him an arbitrary computation (not just a deprecation
1896 message) for each flag. 
1897 
1898 There are several clients, so there are lots of boilerplate changes.
1899 
1900 Immediate motivation: if RTS is not profiled, we want to make
1901 Template Haskell illegal.  That wasn't with the old setup.
1902]
1903[Add upstream repo to the packages file
1904Ian Lynagh <igloo@earth.li>**20100815154741]
1905[Make the "tag" column of the packages file always present
1906Ian Lynagh <igloo@earth.li>**20100815151657
1907 It makes the parsing simpler if we always have the same number of columns
1908]
1909[Disable object splitting on OSX; works around #4013
1910Ian Lynagh <igloo@earth.li>**20100815134759]
1911[Return memory to the OS; trac #698
1912Ian Lynagh <igloo@earth.li>**20100813170402]
1913[Reduce the xargs -s value we use on Windows
1914Ian Lynagh <igloo@earth.li>**20100812223721
1915 With 30000 I was getting:
1916     xargs: value for -s option should be < 28153
1917]
1918[LLVM: Enable shared lib support on Linux x64
1919David Terei <davidterei@gmail.com>**20100813191534
1920 Ignore-this: 642ed37af38e5f17d419bf4f09332671
1921]
1922[Re-do the arity calculation mechanism again (fix Trac #3959)
1923simonpj@microsoft.com**20100813161151
1924 Ignore-this: d4a2aa48150b503b20c25351a79decfb
1925 
1926 After rumination, yet again, on the subject of arity calculation,
1927 I have redone what an ArityType is (it's purely internal to the
1928 CoreArity module), and documented it better.  The result should
1929 fix #3959, and I hope the related #3961, #3983.
1930 
1931 There is lots of new documentation: in particular
1932  * Note [ArityType] 
1933    describes the new datatype for arity info
1934 
1935  * Note [State hack and bottoming functions]
1936    says how bottoming functions are dealt with, particularly
1937    covering catch# and Trac #3959
1938 
1939 I also found I had to be careful not to eta-expand single-method
1940 class constructors; see Note [Newtype classes and eta expansion].
1941 I think this part could be done better, but it works ok.
1942]
1943[Comments only
1944simonpj@microsoft.com**20100813161019
1945 Ignore-this: baf68300d8bc630bf0b7ab27647b33a0
1946]
1947[Modify FloatOut to fix Trac #4237
1948simonpj@microsoft.com**20100813163120
1949 Ignore-this: ffc8d00d4b7f0a8a785fcef312900413
1950 
1951 The problem was that a strict binding was getting floated
1952 out into a letrec. This only happened when profiling was
1953 on.  It exposed a fragility in the floating strategy.  This
1954 patch makes it more robust.  See
1955       Note [Avoiding unnecessary floating]
1956]
1957[Fix egregious bug in SetLevels.notWorthFloating
1958simonpj@microsoft.com**20100813161429
1959 Ignore-this: d22865f48d417e6a6b732de3dfba378f
1960 
1961 This bug just led to stupid code, which would
1962 later be optimised away, but better not to generate
1963 stupid code in the first place.
1964]
1965[Delete GhcLibProfiled
1966simonpj@microsoft.com**20100813140152
1967 Ignore-this: 2e1a3f677308be726bd022f45e2fd856
1968 
1969 Simon M and I looked at this, and we think GhcLibProfiled is
1970 (a) not needed (b) confusing.
1971 
1972 Ian should review.
1973 
1974 Really, if GhcProfiled is on we should also
1975 check that 'p' is in the GhcLibWays
1976]
1977[Do not build DPH when GhcProfiled (fixes #4172)
1978simonpj@microsoft.com**20100813140021
1979 Ignore-this: 9e20181643b456e841f845ae0cab0a9a
1980 
1981 Reason: DPH uses Template Haskell and TH doesn't work
1982 in a profiled compiler
1983]
1984[Fix Trac #4220
1985simonpj@microsoft.com**20100812131319
1986 Ignore-this: 33141cfd81627592150a9e5973411ff8
1987 
1988 For deriving Functor, Foldable, Traversable with empty
1989 data cons I just generate a null equation
1990    f _ = error "urk"
1991 
1992 There are probably more lurking (eg Enum) but this will do for now.
1993]
1994[Improve the Specialiser, fixing Trac #4203
1995simonpj@microsoft.com**20100812131133
1996 Ignore-this: 482afbf75165e24a80527a6e52080c07
1997 
1998 Simply fixing #4203 is a tiny fix: in case alterantives we should
1999 do dumpUDs *including* the case binder. 
2000 
2001 But I realised that we can do better and wasted far too much time
2002 implementing the idea.  It's described in
2003     Note [Floating dictionaries out of cases]
2004]
2005[Comments
2006simonpj@microsoft.com**20100812101456
2007 Ignore-this: 6362fe887d25688c12ef2c3cf5554ce4
2008]
2009[Comments only
2010simonpj@microsoft.com**20100812101439
2011 Ignore-this: 7ed2f5fc08811cbe9958c2309a9ed1fa
2012]
2013[Fix bug in linting of shadowed case-alternative binders
2014simonpj@microsoft.com**20100812101413
2015 Ignore-this: 9212a5e2c03421749f5935b3944ecf53
2016]
2017[Comments and spacing only
2018simonpj@microsoft.com**20100812101347
2019 Ignore-this: ed59a7dae7decb24470709dc1c118dbb
2020]
2021[Add more info to more parse error messages (#3811)
2022Ian Lynagh <igloo@earth.li>**20100809233108]
2023[Run finalizers *after* updating the stable pointer table (#4221)
2024Simon Marlow <marlowsd@gmail.com>**20100810133739
2025 Ignore-this: b0462f80dd64eac71e599d8a9f6dd665
2026 Silly bug really, we were running the C finalizers while the StablePtr
2027 table was still in a partially-updated state during GC, but finalizers
2028 are allowed to call freeStablePtr() (via hs_free_fun_ptr(), for
2029 example), and chaos ensues.
2030]
2031[Do the dependency-omitting for 'make 1' in a slightly different way
2032Simon Marlow <marlowsd@gmail.com>**20100810093446
2033 Ignore-this: af15edd3a1492cbd93111316b57e02e4
2034 
2035 I encountered a couple of things that broke after Ian's previous
2036 patch: one was my nightly build scripts that use 'make stage=2' at the
2037 top level, and the other is 'make fast' in libraries/base, which uses
2038 'stage=0' to avoid building any compilers.
2039 
2040 So my version of this patch is more direct: it just turns off the
2041 appropriate dependencies using a variable set by 'make 1', 'make 2',
2042 etc.
2043]
2044[Integrate new I/O manager, with signal support
2045Johan Tibell <johan.tibell@gmail.com>**20100724102355
2046 Ignore-this: eb092857a2a1b0ca966649caffe7ac2b
2047]
2048[Add DoAndIfThenElse support
2049Ian Lynagh <igloo@earth.li>**20100808194625]
2050[Make another parse error more informative
2051Ian Lynagh <igloo@earth.li>**20100808193340]
2052[Make a parse error say what it is failing to parse; part of #3811
2053Ian Lynagh <igloo@earth.li>**20100808155732]
2054[Send ghc progress output to stdout; fixes #3636
2055Ian Lynagh <igloo@earth.li>**20100808142542]
2056[Fix the HsColour test in the build system
2057Ian Lynagh <igloo@earth.li>**20100805155319
2058 Ignore-this: ba2752b04801a253e891b31e1914485d
2059]
2060[Fix the -lm configure test; fixes #4155
2061Ian Lynagh <igloo@earth.li>**20100805142508
2062 Ignore-this: 358b8b1074d2d22fb8d362ea6d8b80d6
2063]
2064[Don't restrict filenames in line pragmas to printable characters; fixes #4207
2065Ian Lynagh <igloo@earth.li>**20100805135011
2066 Ignore-this: e3d32312127165e40e6eaa919193d60b
2067 "printable" is ASCII-only, whereas in other locales we can get things like
2068 # 1 "<línea-de-orden>"
2069]
2070[Ensure extension flags are flattened in the Cmm phase
2071Ian Lynagh <igloo@earth.li>**20100805133614
2072 If we start with a .cmmcpp file then they don't get flattened in
2073 the CmmCpp phase, as we don't run that phase.
2074]
2075[Add "cmmcpp" as a Haskellish source suffix
2076Ian Lynagh <igloo@earth.li>**20100805132555]
2077[On amd64/OSX we don't need to be given memory in the first 31bits
2078Ian Lynagh <igloo@earth.li>**20100805120600
2079 Ignore-this: 42eb64e25ad4b66ae022884305e0297b
2080 as PIC is always on
2081]
2082[NCG: Don't worry about trying to re-freeze missing coalescences
2083benl@ouroborus.net**20100702053319
2084 Ignore-this: ea05cbee19b6c5c410db41292cbb64b0
2085]
2086[Make -rtsopts more flexible
2087Ian Lynagh <igloo@earth.li>**20100805011137
2088 The default is a new "some" state, which allows only known-safe flags
2089 that we want on by default. Currently this is only "--info".
2090]
2091[Test for (fd < 0) before trying to FD_SET it
2092Ian Lynagh <igloo@earth.li>**20100804173636]
2093[Remove "On by default" comments in DynFlags
2094Ian Lynagh <igloo@earth.li>**20100802110803
2095 Ignore-this: 2a51055277b5ce9f0e98e1438b212027
2096 These make less sense now we support multiple languges. The
2097 "languageExtensions" function gives the defaults.
2098]
2099[Fix build: Add newline to end of ghc-pkg/Main.hs
2100Ian Lynagh <igloo@earth.li>**20100801183206]
2101[Add a versions haddock binary for Windows
2102Ian Lynagh <igloo@earth.li>**20100801180917]
2103[ghc-pkg: don't fail, if a file is already removed
2104ich@christoph-bauer.net**20100725162606
2105 Ignore-this: 5501d6812c31f4da525c7fb24f6dcaed
2106]
2107[Remove push-all from file list in boot script (push-all no longer exists)
2108Ian Lynagh <igloo@earth.li>**20100801121841
2109 Ignore-this: eec130f06610d8728a57626682860a1a
2110]
2111[Add error checking to boot-pkgs script
2112Ian Lynagh <igloo@earth.li>**20100801121432
2113 Ignore-this: 8afd6663db443c774bad45d75bbfe950
2114]
2115[Add more error checking to the boot script
2116Ian Lynagh <igloo@earth.li>**20100801113628]
2117[Remove libHSrtsmain.a before creating it
2118Ian Lynagh <igloo@earth.li>**20100801005432
2119 Otherwise it isn't updated properly if rts/Main.c changes
2120]
2121[Expose the functions haddock needs even when haddock is disabled; #3558
2122Ian Lynagh <igloo@earth.li>**20100731115506]
2123[Always haddock by default
2124Ian Lynagh <igloo@earth.li>**20100730235001
2125 Revert this patch:
2126     Matthias Kilian <kili@outback.escape.de>**20090920181319
2127     Don't build haddock if HADDOC_DOCS = NO, and disable HADDOC_DOCS
2128         if GhcWithInterpreter = NO
2129     Haddock uses TcRnDriver.tcRnGetInfo, which is only available if
2130     GHCI is built. Set HADDOC_DOCS to NO if GhcWithInterpreter is NO,
2131     and disable the haddock build if HADDOC_DOCS = NO.
2132]
2133[Add a debugTrace for the phases that we run
2134Ian Lynagh <igloo@earth.li>**20100729201503]
2135[* Add StringPrimL as a constructor for Template Haskell (Trac #4168)
2136simonpj@microsoft.com**20100730131922
2137 Ignore-this: 520d0a0a14b499b299e8b2be8d148ff0
2138   
2139 There are already constructors for IntPrim, FloatPrim etc,
2140 so this makes it more uniform.
2141   
2142 There's a corresponding patch for the TH library
2143]
2144[Add thread affinity support for FreeBSD
2145Gabor Pali <pgj@FreeBSD.org>**20100720001409
2146 Ignore-this: 6c117b8219bfb45445089e82ee470410
2147 - Implement missing functions for setting thread affinity and getting real
2148   number of processors.
2149 - It is available starting from 7.1-RELEASE, which includes a native support
2150   for managing CPU sets.
2151 - Add __BSD_VISIBLE, since it is required for certain types to be visible in
2152   addition to POSIX & C99.
2153]
2154[Disable symbol visibility pragmas for FreeBSD
2155Ian Lynagh <igloo@earth.li>**20100729012507
2156 Do not use GCC pragmas for controlling visibility, because it causes
2157 "undefined reference" errors at link-time.  The true reasons are
2158 unknown, however FreeBSD 8.x includes GCC 4.2.1 in the base system,
2159 which might be buggy.
2160]
2161[Fix numeric escape sequences parsing
2162Anton Nikishaev <anton.nik@gmail.com>**20100721194208
2163 Ignore-this: dd71935b1866b5624f7975c45ad519a1
2164 This fixes trac bug #1344
2165]
2166[Explicitly give the right path to perl when making the OS X installer; #4183
2167Ian Lynagh <igloo@earth.li>**20100728163030]
2168[Set -fno-stack-protector in extra-gcc-opts; fixes #4206
2169Ian Lynagh <igloo@earth.li>**20100728161957
2170 We were using it only when building the RTS, and only on certain
2171 platforms. However, some versions of OS X need the flag, while others
2172 don't support it, so we now test for it properly.
2173]
2174[Make PersistentLinkerState fields strict; fixes #4208
2175Ian Lynagh <igloo@earth.li>**20100727201911
2176 Ignore-this: fc5cfba48cd16624f6bb15a7a03a3b4
2177 We modify fields a lot, so we retain the old value if they aren't forced.
2178]
2179[Don't rebuild dependency files unnecessarily when doing "make 1" etc
2180Ian Lynagh <igloo@earth.li>**20100726211512
2181 Ignore-this: d91a729e5113aa964cc67768e92e57ef
2182]
2183[LLVM: If user specifies optlo, don't use '-O' levels
2184David Terei <davidterei@gmail.com>**20100726105650
2185 Ignore-this: e05e103b09d1de937540ffad7983f88e
2186]
2187[Flatten flags for ghci's :show
2188Ian Lynagh <igloo@earth.li>**20100725135320]
2189[Add support for Haskell98 and Haskell2010 "languages"
2190Ian Lynagh <igloo@earth.li>**20100724230121]
2191[Rename "language" varibles etc to "extension", and add --supported-extensions
2192Ian Lynagh <igloo@earth.li>**20100724223624]
2193[Separate language option handling into 2 phases
2194Ian Lynagh <igloo@earth.li>**20100724212013
2195 We now first collect the option instructions (from the commandline,
2196 from pragmas in source files, etc), and then later flatten them into
2197 the list of enabled options. This will enable us to use different
2198 standards (H98, H2010, etc) as a base upon which to apply the
2199 instructions, when we don't know what the base will be when we start
2200 collecting instructions.
2201]
2202[Separate the language flags from the other DynFlag's
2203Ian Lynagh <igloo@earth.li>**20100724133103
2204 Ignore-this: 47bb8d42e621e47016b66c7472bd6cb5
2205]
2206[Set stage-specific CC/LD opts in the bindist configure.ac
2207Ian Lynagh <igloo@earth.li>**20100724113748
2208 Ignore-this: f06926d185a35ddd05490ca4a257e992
2209]
2210[Use different CC/LD options for different stages
2211Ian Lynagh <igloo@earth.li>**20100723223059]
2212[Add some error belchs to the linker, when we find bad magic numbers
2213Ian Lynagh <igloo@earth.li>**20100723200822]
2214[Add some more linker debugging prints
2215Ian Lynagh <igloo@earth.li>**20100723180237]
2216[When (un)loading an object fails, say which object in teh panic
2217Ian Lynagh <igloo@earth.li>**20100723162649]
2218[Add a release note: GHCi import syntax
2219Ian Lynagh <igloo@earth.li>**20100721193647]
2220[Deprecate NewQualifiedOperators extension (rejected by H')
2221Ian Lynagh <igloo@earth.li>**20100719150909
2222 Ignore-this: 6e7e3bedc5360c5975f73497b3e6cba5
2223]
2224[LLVM: Allow optlc and optlo to override default params for these systools
2225David Terei <davidterei@gmail.com>**20100722181631
2226 Ignore-this: e60af7941996f7170fb3bfb02a002082
2227]
2228[LLVM: Code and speed improvement to dominateAllocs pass.
2229David Terei <davidterei@gmail.com>**20100721143654
2230 Ignore-this: 9fb7058c8a2afc005521298c7b8d0036
2231]
2232[Comments only
2233simonpj@microsoft.com**20100721144257
2234 Ignore-this: b3091ddcd1df271eb85fe90978ab7adc
2235]
2236[Fix inlining for default methods
2237simonpj@microsoft.com**20100721144248
2238 Ignore-this: 61a11a8f741f775000c6318aae4b3191
2239 
2240 This was discombobulated by a patch a week ago;
2241 now fixed, quite straightforwardly.  See
2242 Note [Default methods and instances]
2243]
2244[Allow reification of existentials and GADTs
2245simonpj@microsoft.com**20100721090437
2246 Ignore-this: 20f1ccd336cc25aff4d4d67a9ac2211a
2247 
2248 It turns out that TH.Syntax is rich enough to express even GADTs,
2249 provided we express them in equality-predicate form.  So for
2250 example
2251 
2252   data T a where
2253      MkT1 :: a -> T [a]
2254      MkT2 :: T Int
2255 
2256 will appear in TH syntax like this
2257 
2258   data T a = forall b. (a ~ [b]) => MkT1 b
2259            | (a ~ Int) => MkT2
2260 
2261 While I was at it I also improved the reification of types,
2262 so that we use TH.TupleT and TH.ListT when we can.
2263]
2264[add numSparks# primop (#4167)
2265Simon Marlow <marlowsd@gmail.com>**20100720153746
2266 Ignore-this: f3f925e7de28f3f895213aefbdbe0b0f
2267]
2268[LLVM: Decrease max opt level used under OSX to avoid bug
2269David Terei <davidterei@gmail.com>**20100720160938
2270 Ignore-this: 34b0b3550f00b27b00ad92f8232745e5
2271 
2272 Currently, many programs compiled with GHC at -O2 and LLVM
2273 set to -O3 will segfault (only under OSX). Until this issue
2274 is fixed I have simply 'solved' the segfault by lowering
2275 the max opt level for LLVM used to -O2 under OSX.
2276 
2277 All these recent changes to OSX should mean its finally as
2278 stable as Linux and Windows.
2279]
2280[LLVM: Fix OSX to work again with TNTC disabled.
2281David Terei <davidterei@gmail.com>**20100720160845
2282 Ignore-this: 8dc98139cfa536b2a64aa364d040b581
2283]
2284[LLVM: Fix printing of local vars so LLVM works with -fnew-codegen
2285David Terei <davidterei@gmail.com>**20100720160302
2286 Ignore-this: d883c433dfaed67921a8c5360e1f9f6a
2287]
2288[Use a separate mutex to protect all_tasks, avoiding a lock-order-reversal
2289Simon Marlow <marlowsd@gmail.com>**20100716150832
2290 Ignore-this: ffbdb4ee502e0f724d57acb9bfbe9d92
2291 In GHC 6.12.x I found a rare deadlock caused by this
2292 lock-order-reversal:
2293 
2294 AQ cap->lock
2295   startWorkerTask
2296     newTask
2297       AQ sched_mutex
2298 
2299 scheduleCheckBlackHoles
2300   AQ sched_mutex
2301    unblockOne_
2302     wakeupThreadOnCapabilty
2303       AQ cap->lock
2304 
2305 so sched_mutex and cap->lock are taken in a different order in two
2306 places.
2307 
2308 This doesn't happen in the HEAD because we don't have
2309 scheduleCheckBlackHoles, but I thought it would be prudent to make
2310 this less likely to happen in the future by using a different mutex in
2311 newTask.  We can clearly see that the all_tasks mutex cannot be
2312 involved in a deadlock, becasue we never call anything else while
2313 holding it.
2314]
2315['make fast' in a package does not build any compilers
2316Simon Marlow <marlowsd@gmail.com>**20100715125904
2317 Ignore-this: f27e70faf3944831dad16e89a4e273da
2318]
2319[LLVM: Fix up botched last commit
2320David Terei <davidterei@gmail.com>**20100719104823
2321 Ignore-this: a32e0f6a38cb9e02527eb8ca69b3eb59
2322]
2323[LLVM: Fix warning introduce in last commit.
2324David Terei <davidterei@gmail.com>**20100719103411
2325 Ignore-this: e9c92a9402aff50d60ab26e6ad441bfc
2326]
2327[LLVM: Use mangler to fix up stack alignment issues on OSX
2328David Terei <davidterei@gmail.com>**20100718231000
2329 Ignore-this: 9f6e8cb855269cb3a5ac1a23480d0e71
2330]
2331[Fix #4195 (isGadtSyntaxTyCon returns opposite result)
2332illissius@gmail.com**20100715134134
2333 Ignore-this: a90403f893030432b5c15d743647f350
2334]
2335[Update to time 1.2.0.3
2336Ian Lynagh <igloo@earth.li>**20100717181810
2337 Ignore-this: 1ccb4801a73f399e6718ce556543ede1
2338]
2339[Reorder RTS --info output
2340Ian Lynagh <igloo@earth.li>**20100717162356]
2341[Fix unreg prof build: Define CCS_SYSTEM in stg/MiscClosures.h
2342Ian Lynagh <igloo@earth.li>**20100717142832
2343 Ignore-this: 9675f3f51b6dac40483155344e7f45b6
2344]
2345[Make mkDerivedConstants as a stage 1 program
2346Ian Lynagh <igloo@earth.li>**20100717000827
2347 Ignore-this: 5357403461b209b8606f1d33defb51cf
2348 This way it gets the defines for the right platform when cross-compiling
2349]
2350[Don't generate Haskell dependencies if we don't have any Haskell sources
2351Ian Lynagh <igloo@earth.li>**20100717000800
2352 Ignore-this: 454abd0358f535b7e789327125c9206c
2353]
2354[Link programs that have no Haskell objects with gcc rather than ghc
2355Ian Lynagh <igloo@earth.li>**20100716235303
2356 Ignore-this: f65588b69675edea616cc434e769b0a4
2357]
2358[Use gcc to build C programs for stages >= 1
2359Ian Lynagh <igloo@earth.li>**20100716223703
2360 Ignore-this: 9f843a4e17285cda582117504707f9e7
2361]
2362[Add platform info to "ghc --info" output
2363Ian Lynagh <igloo@earth.li>**20100716141953]
2364[Tidy up Config.hs generation
2365Ian Lynagh <igloo@earth.li>**20100716140630]
2366[Fix HC porting test in makefiles
2367Ian Lynagh <igloo@earth.li>**20100716010808
2368 Ignore-this: 6052c1dd022a6108ab2236a299ee1d84
2369 Now that we are trying to support cross compilation, we can't use
2370     "$(TARGETPLATFORM)" != "$(HOSTPLATFORM)"
2371 as a test for HC-porting.
2372]
2373[Change a BUILD var to a HOST var
2374Ian Lynagh <igloo@earth.li>**20100716002558]
2375[Remove an unnecessary #include
2376Ian Lynagh <igloo@earth.li>**20100715233930
2377 Ignore-this: dcede249de6be7e3c9305c9279c2ca07
2378]
2379[Split up some make commands, so that errors aren't overlooked
2380Ian Lynagh <igloo@earth.li>**20100715152237
2381 Ignore-this: fb69b0a25d9ca71dae5e75d38db675cd
2382 When we ask make to run "a | b", if a fails then the pipeline might
2383 still exit successfuly.
2384]
2385[Remove an unnecessary #include
2386Ian Lynagh <igloo@earth.li>**20100715143000
2387 Ignore-this: 4e098cac5dda2dd595ca0a0f5121853c
2388]
2389[Simplify some more CPP __GLASGOW_HASKELL__ tests
2390Ian Lynagh <igloo@earth.li>**20100715142500]
2391[Remove some code only used with GHC 6.11.*
2392Ian Lynagh <igloo@earth.li>**20100715141720]
2393[__GLASGOW_HASKELL__ >= 609 is now always true
2394Ian Lynagh <igloo@earth.li>**20100715141544]
2395[Correct the values in ghc_boot_platform.h
2396Ian Lynagh <igloo@earth.li>**20100714223717
2397 Ignore-this: 4c99116f7ac73fadbd6d16807f57a693
2398]
2399[Change some TARGET checks to HOST checks
2400Ian Lynagh <igloo@earth.li>**20100714184715]
2401[LLVM: Add inline assembly to binding.
2402David Terei <davidterei@gmail.com>**20100714152530
2403 Ignore-this: 72a7b5460c128ed511e8901e5889fe2b
2404]
2405[LLVM: Fix mistype in last commit which broke TNTC under win/linux.
2406David Terei <davidterei@gmail.com>**20100714153339
2407 Ignore-this: 302d7957e3dded80368ebade5312ab35
2408]
2409[Remove unnecessary #include
2410Ian Lynagh <igloo@earth.li>**20100713153704
2411 Ignore-this: c37d3127b1dc68f59270c07173994c28
2412]
2413[Change some TARGET tests to HOST tests in the RTS
2414Ian Lynagh <igloo@earth.li>**20100713141034
2415 Which was being used seemed to be random
2416]
2417[LLVM: Add in new LLVM mangler for implementing TNTC on OSX
2418David Terei <davidterei@gmail.com>**20100713183243
2419 Ignore-this: 394fb74d7f9657d8b454bd0148d24bf7
2420]
2421[Refactor where an error message is generated
2422simonpj@microsoft.com**20100713115733
2423 Ignore-this: f94467856238586fcbbe48537141cf78
2424]
2425[Comments only
2426simonpj@microsoft.com**20100713115703
2427 Ignore-this: 5815442c4e69b9ec331b34242a596253
2428]
2429[Comments on data type families
2430simonpj@microsoft.com**20100713115640
2431 Ignore-this: 90a333bb7f7d64a49fb7dd180d893f6b
2432]
2433[Fix Trac #T4136: take care with nullary symbol constructors
2434simonpj@microsoft.com**20100707135945
2435 Ignore-this: 2a717a24fefcd593ea41c23dad351db0
2436 
2437 When a nullary constructor is a symbol eg (:=:) we need
2438 to take care.  Annoying.
2439]
2440[Fix Trac #4127 (and hence #4173)
2441simonpj@microsoft.com**20100707123125
2442 Ignore-this: 98bb6d0f7182b59f8c93596c61f9785d
2443 
2444 The change involves a little refactoring, so that the default
2445 method Ids are brought into scope earlier, before the value
2446 declarations are compiled.  (Since a value decl may contain
2447 an instance decl in a quote.)
2448 
2449 See Note [Default method Ids and Template Haskell] in
2450 TcTyClsDcls.
2451]
2452[Fix second bug in Trac #4127
2453simonpj@microsoft.com**20100701140124
2454 Ignore-this: c8d1cc27364fe9ee5a52acb1ecb5cdd9
2455 
2456 This bug concerned the awkward shadowing we do for
2457 Template Haskell declaration brackets.  Lots of
2458 comments in
2459 
2460   Note [Top-level Names in Template Haskell decl quotes]
2461]
2462[ia64: switch handling of 'foreign import wrapper' (FIW) to libffi
2463Sergei Trofimovich <slyfox@community.haskell.org>**20100709213922
2464 Ignore-this: fd07687e0089aebabf62de85d2be693
2465 
2466 I tried to build darcs-2.4.4 with ghc-6.12.3 and got coredumps when darcs is used
2467 in interactive mode. I tried test from ticket #3516 and found out FIW code is broken.
2468 Instead of fixing it I just switched to libffi. Result built successfully, passed
2469 'foreign import wrapper' test from ticket #3516 and builds working darcs.
2470]
2471[* storage manager: preserve upper address bits on 64bit machines (thanks to zygoloid)
2472Sergei Trofimovich <slyfox@community.haskell.org>**20100709115917
2473 Ignore-this: 9f1958a19992091ddc2761c389ade940
2474 
2475 Patch does not touch amd64 as it's address lengts is 48 bits at most, so amd64 is unaffected.
2476 
2477 the issue: during ia64 ghc bootstrap (both 6.10.4 and 6.12.3) I
2478 got the failure on stage2 phase:
2479     "inplace/bin/ghc-stage2"   -H32m -O -H64m -O0 -w ...
2480     ghc-stage2: internal error: evacuate: strange closure type 15
2481         (GHC version 6.12.3 for ia64_unknown_linux)
2482         Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
2483     make[1]: *** [libraries/dph/dph-base/dist-install/build/Data/Array/Parallel/Base/Hyperstrict.o] Aborted
2484 
2485 gdb backtrace (break on 'barf'):
2486 Breakpoint 1 at 0x400000000469ec31: file rts/RtsMessages.c, line 39.
2487 (gdb) run -B/var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/bin --info
2488 Starting program: /var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/lib/ghc-stage2 -B/var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/bin --info
2489 [Thread debugging using libthread_db enabled]
2490 
2491 Breakpoint 1, barf (s=0x40000000047915b0 "evacuate: strange closure type %d") at rts/RtsMessages.c:39
2492 39        va_start(ap,s);
2493 (gdb) bt
2494 #0  barf (s=0x40000000047915b0 "evacuate: strange closure type %d") at rts/RtsMessages.c:39
2495 #1  0x400000000474a1e0 in evacuate (p=0x6000000000147958) at rts/sm/Evac.c:756
2496 #2  0x40000000046d68c0 in scavenge_srt (srt=0x6000000000147958, srt_bitmap=7) at rts/sm/Scav.c:348
2497 ...
2498 
2499 > 16:52:53 < zygoloid> slyfox: i'm no ghc expert but it looks like HEAP_ALLOCED_GC(q)
2500 >                      is returning true for a FUN_STATIC closure
2501 > 17:18:43 < zygoloid> try: p HEAP_ALLOCED_miss((unsigned long)(*p) >> 20, *p)
2502 > 17:19:12 < slyfox> (gdb) p HEAP_ALLOCED_miss((unsigned long)(*p) >> 20, *p)
2503 > 17:19:12 < slyfox> $1 = 0
2504 > 17:19:40 < zygoloid> i /think/ that means the mblock_cache is broken
2505 > 17:22:45 < zygoloid> i can't help further. however i am suspicious that you seem to have pointers with similar-looking low 33
2506 >                      bits and different high 4 bits, and it looks like such pointers get put into the same bucket in
2507 >                      mblock_cache.
2508 ...
2509 > 17:36:16 < zygoloid> slyfox: try changing the definition of MbcCacheLine to StgWord64, see if that helps
2510 > 17:36:31 < zygoloid> that's in includes/rts/storage/MBlock.h
2511 And it helped!
2512]
2513[Fixing link failure of compiler on ia64 ('-Wl,' prefixed value passed directly to ld)
2514Sergei Trofimovich <slyfox@community.haskell.org>**20100708180943
2515 Ignore-this: ced99785e1f870ee97e5bec658e2504f
2516 
2517     /usr/bin/ld -Wl,--relax -r -o dist-stage1/build/HSghc-6.10.4.o \
2518                                   dist-stage1/build/BasicTypes.o dist-stage1/build/DataCon.o ...
2519     /usr/bin/ld: unrecognized option '-Wl,--relax'
2520 
2521 If we just drop '-Wl,' part it will not help as '-r' and '--relax' are incompatible.
2522 
2523 Looks like '-Wl,--relax' was skipped by earlier binutils' ld as unknown option.
2524 Removing ia64 specific path.
2525]
2526[LLVM: Allow getelementptr to use LlvmVar for indexes.
2527David Terei <davidterei@gmail.com>**20100712152529
2528 Ignore-this: 9e158d9b89a86bca8abf11d082328278
2529]
2530[Move all the warning workarounds to one place
2531Ian Lynagh <igloo@earth.li>**20100710161723]
2532[xhtml is now warning-free
2533Ian Lynagh <igloo@earth.li>**20100710144635]
2534[Move a bit of build system code
2535Ian Lynagh <igloo@earth.li>**20100709224534]
2536[adapt to the new async exceptions API
2537Simon Marlow <marlowsd@gmail.com>**20100709125238
2538 Ignore-this: 55d845e40b9daed3575c1479d8dda1d5
2539]
2540[quiet some new spewage
2541Simon Marlow <marlowsd@gmail.com>**20100709091521
2542 Ignore-this: de7f91976bbc9789e6fd7091f05c25c0
2543]
2544[New asynchronous exception control API (ghc parts)
2545Simon Marlow <marlowsd@gmail.com>**20100708144851
2546 Ignore-this: 56320c5fc61ae3602d586609387aae22
2547 
2548 As discussed on the libraries/haskell-cafe mailing lists
2549   http://www.haskell.org/pipermail/libraries/2010-April/013420.html
2550 
2551 This is a replacement for block/unblock in the asychronous exceptions
2552 API to fix a problem whereby a function could unblock asynchronous
2553 exceptions even if called within a blocked context.
2554 
2555 The new terminology is "mask" rather than "block" (to avoid confusion
2556 due to overloaded meanings of the latter).
2557 
2558 In GHC, we changed the names of some primops:
2559 
2560   blockAsyncExceptions#   -> maskAsyncExceptions#
2561   unblockAsyncExceptions# -> unmaskAsyncExceptions#
2562   asyncExceptionsBlocked# -> getMaskingState#
2563 
2564 and added one new primop:
2565 
2566   maskUninterruptible#
2567 
2568 See the accompanying patch to libraries/base for the API changes.
2569]
2570[remove outdated comment
2571Simon Marlow <marlowsd@gmail.com>**20100708100840
2572 Ignore-this: afb2e9f6fe1f1acda51b0cbdf2637176
2573]
2574[remove 'mode: xml' emacs settings (#2208)
2575Simon Marlow <marlowsd@gmail.com>**20100708100817
2576 Ignore-this: 3a8d997fb90e01ca88dc47fb95feeba0
2577]
2578[typo in comment
2579Simon Marlow <marlowsd@gmail.com>**20100616111359
2580 Ignore-this: d3ef9288d6d6b9ab3bacbe09e0d9801c
2581]
2582[Win32 getProcessElapsedTime: use a higher-resolution time source
2583Simon Marlow <marlowsd@gmail.com>**20100708093223
2584 Ignore-this: 821989d4ff7ff2bff40cee71a881521c
2585 QueryPerformanceCounter() on Windows gives much better resolution than
2586 GetSystemTimeAsFileTime().
2587]
2588[alpha: switch handling of 'foreign import wrapper' (FIW) to libffi
2589Sergei Trofimovich <slyfox@community.haskell.org>**20100708065318
2590 Ignore-this: ddee15876737a6aa7f6dabc8ff79ce0d
2591 
2592 I tried to build ghc-6.12.3 and found out FIW part of code
2593 does not compile anymore. It uses absent functions under #ifdef.
2594 Instead of fixing it I just switched to libffi. Result built successfully
2595 and passed 'foreign import wrapper' test I wrote for trac ticket #3516.
2596 
2597 I didn't try to build -HEAD yet, but this patch only removes code, so
2598 it should not make -HEAD worse.
2599]
2600[Reorder the CPP flags so -optP can override the platform defines
2601Ian Lynagh <igloo@earth.li>**20100708203523]
2602[Add docs for DatatypeContexts extension
2603Ian Lynagh <igloo@earth.li>**20100707230907
2604 Ignore-this: 8158f03b35a2d7442a75fe85d6f1b1c7
2605]
2606[Make datatype contexts an extension (on by default) (DatatypeContexts)
2607Ian Lynagh <igloo@earth.li>**20100707212529
2608 Ignore-this: 6885ff510a0060610eeeba65122caef5
2609]
2610[LLVM: Fix various typos in comments
2611David Terei <davidterei@gmail.com>**20100707220448
2612 Ignore-this: 1ba3e722f150492da2f9d485c5795e80
2613]
2614[Handle haddock headers when looking for LANGUAGE/OPTIONS_GHC pragmas
2615Ian Lynagh <igloo@earth.li>**20100707120423
2616 Ignore-this: a75aa67690284a6cee3e62c943d4fd01
2617]
2618[Make pragState call mkPState, rather than duplicating everything
2619Ian Lynagh <igloo@earth.li>**20100706173007
2620 Ignore-this: 61fe24b99dbe7a42efff1a9dd703a75c
2621 This also means that extsBitmap gets set, whereas is was just being set
2622 to 0 before.
2623]
2624[LLVM: Add alias type defenitions to LlvmModule.
2625David Terei <davidterei@gmail.com>**20100707142053
2626 Ignore-this: eee6ad5385563ccf08e664d2634a03f2
2627]
2628[LLVM: Use packed structure type instead of structure type
2629David Terei <davidterei@gmail.com>**20100707120320
2630 Ignore-this: a06e0359d182291b81cae56993ca385e
2631 
2632 The regular structure type adds padding to conform to the platform ABI,
2633 which causes problems with structures storing doubles under windows since
2634 we don't conform to the platform ABI there. So we use packed structures
2635 instead now that don't do any padding.
2636]
2637[Make mkPState and pragState take their arguments in the same order
2638Ian Lynagh <igloo@earth.li>**20100706172611]
2639[Remove an out-of-date comment
2640Ian Lynagh <igloo@earth.li>**20100706172217
2641 Ignore-this: 710ebd7d2dc01c1b0f1e58a5b6f85701
2642]
2643[LLVM: Stop llvm saving stg caller-save regs across C calls
2644David Terei <davidterei@gmail.com>**20100705162629
2645 Ignore-this: 28b4877b31b9358e682e38fc54b88658
2646 
2647 This is already handled by the Cmm code generator so LLVM is simply
2648 duplicating work. LLVM also doesn't know which ones are actually live
2649 so saves them all which causes a fair performance overhead for C calls
2650 on x64. We stop llvm saving them across the call by storing undef to
2651 them just before the call.
2652]
2653[LLVM: Add in literal undefined value to binding
2654David Terei <davidterei@gmail.com>**20100705161544
2655 Ignore-this: 95d8361b11584aaeec44c30e76916470
2656]
2657[LLVM: Add a literal NULL value to binding
2658David Terei <davidterei@gmail.com>**20100705161308
2659 Ignore-this: 9507b4b12c1157498704a9d1e5860f12
2660 
2661 Patch from Erik de Castro Lopo <erikd@mega-nerd.com>.
2662]
2663[refactor import declaration support (#2362)
2664Simon Marlow <marlowsd@gmail.com>**20100705104557
2665 Ignore-this: ee034ac377078a7e92bfada1907c86a0
2666]
2667[Disable dynamic linking optimisations on OS X
2668Simon Marlow <marlowsd@gmail.com>**20100705103014
2669 Ignore-this: b04420d3705c51112797758d17b2e40c
2670 To improve performance of the RTS when dynamically linked on x86, I
2671 previously disabled -fPIC for certain critical modules (the GC, and a
2672 few others).  However, build reports suggest that the dynamic linker
2673 on OS X doesn't like this, so I'm disabling this optimsation on that
2674 platform.
2675]
2676[trac #2362 (full import syntax in ghci)
2677amsay@amsay.net**20100625032632
2678 Ignore-this: a9d0859d84956beb74e27b797431bf9c
2679 'import' syntax is seperate from ':module' syntax
2680]
2681[Simplify ghc-pkg's Cabal dependencies
2682Ian Lynagh <igloo@earth.li>**20100704184155
2683 We no longer support building with a compiler that doesn't come with
2684 base 4.
2685]
2686[Use Cabal to configure the dist-install ghc-pkg; fixes trac #4156
2687Ian Lynagh <igloo@earth.li>**20100704132612]
2688[Remove dead code (standalone deriving flag no longer used in parser)
2689Ian Lynagh <igloo@earth.li>**20100701162058]
2690[LLVM: Use the inbounds keyword for getelementptr instructions.
2691David Terei <davidterei@gmail.com>**20100702160511
2692 Ignore-this: 3708e658a4c82b78b1402393f4405541
2693]
2694[threadPaused: fix pointer arithmetic
2695Simon Marlow <marlowsd@gmail.com>**20100701085046
2696 Ignore-this: b78210e5d978f18ffd235f1c78a55a23
2697 Noticed by Henrique Ferreiro <hferreiro@udc.es>, thanks!
2698]
2699[LLVM: Change more operations to use getelementptr
2700David Terei <davidterei@gmail.com>**20100701161856
2701 Ignore-this: fb24eb124e203f50680c6fec3ff9fe7d
2702]
2703[Add the haskell2010 package
2704Simon Marlow <marlowsd@gmail.com>**20100630125532
2705 Ignore-this: e9b011313f283a8ff2fcda7d029a01f
2706]
2707[LLVM: Use getelementptr instruction for a lot of situations
2708David Terei <davidterei@gmail.com>**20100630181157
2709 Ignore-this: 34d314dd8dffad9bdcffdc525261a49d
2710 
2711 LLVM supports creating pointers in two ways, firstly through
2712 pointer arithmetic (by casting between pointers and ints)
2713 and secondly using the getelementptr instruction. The second way
2714 is preferable as it gives LLVM more information to work with.
2715 
2716 This patch changes a lot of pointer related code from the first
2717 method to the getelementptr method.
2718]
2719[remove out of date comments; point to the wiki
2720Simon Marlow <marlowsd@gmail.com>**20100625100313
2721 Ignore-this: 95f363a373534b9471b1818102ec592d
2722]
2723[NCG: allocatableRegs is only giving us 8 SSE regs to allocate to
2724benl@ouroborus.net**20100629054321
2725 Ignore-this: b3e0fa0b4ce988a0258dc12261989ee0
2726]
2727[LLVM: Use intrinsic functions for pow, sqrt, sin, cos
2728David Terei <davidterei@gmail.com>**20100628182949
2729 Ignore-this: 98a0befaca3fe2b36d710d8ff9f062c4
2730 
2731 Instead of calling the C library for these Cmm functions
2732 we use intrinsic functions provided by llvm. LLVM will
2733 then either create a compile time constant if possible, or
2734 use a cpu instruction or as a last resort call the C
2735 library.
2736]
2737[LLVM: Fix test '2047' under linux-x64
2738David Terei <davidterei@gmail.com>**20100628165256
2739 Ignore-this: 41735d4f431a430db636621650ccd71e
2740]
2741[LLVM: Fix test 'ffi005' under linux-x64
2742David Terei <davidterei@gmail.com>**20100628155355
2743 Ignore-this: 841f3142c63cc898ac4c3f89698a837e
2744]
2745[LLVM: Update to use new fp ops introduced in 2.7
2746David Terei <davidterei@gmail.com>**20100628144037
2747 Ignore-this: 5dd2e5964e3c039d297ed586841e706b
2748]
2749[Add noalias and nocapture attributes to pointer stg registers
2750David Terei <davidterei@gmail.com>**20100628115120
2751 Ignore-this: 492a1e723cb3a62498d240d7de92dd7
2752 
2753 At the moment this gives a very slight performance boost of around 1 - 2%.
2754 Future changes to the generated code though so that pointers are kept as
2755 pointers more often instead of being cast to integer types straight away
2756 should hopefully improve the benefit this brings.
2757 
2758]
2759[during shutdown, only free the heap if we waited for foreign calls to exit
2760Simon Marlow <marlowsd@gmail.com>**20100628090536
2761 Ignore-this: d545384a4f641d701455d08ef1217479
2762]
2763[Fix typo in -ddump-pass's document.
2764shelarcy <shelarcy@gmail.com>**20100620070759
2765 Ignore-this: f4f1ddb53f147949e948147d89190c37
2766]
2767[Add #undefs for posix source symbols when including papi.h
2768dmp@rice.edu**20100624163514
2769 Ignore-this: 8a1cba21b880d12a75a75f7e96882053
2770 
2771 Validation fails when validating with PAPI support (i.e. GhcRtsWithPapi  = YES
2772 in validate.mk).  The problem is that the posix symbols are defined by a header
2773 included from papi.h. Compilation then fails because these symbols are
2774 redefined in PosixSource.h.
2775 
2776 This patch adds an undefine for the posix symbols after including papi.h and
2777 before including PosixSource.h. The #undefines are localized to Papi.c since
2778 that is the only case where they are getting defined twice.
2779]
2780[Use machdepCCOpts in runPhase_MoveBinary; fixes trac #3952
2781Ian Lynagh <igloo@earth.li>**20100625220953]
2782[LLVM: Fix bug with calling tail with empty list
2783David Terei <davidterei@gmail.com>**20100625115729
2784 Ignore-this: 46b4b32c8d92372a2d49794a96fe1613
2785]
2786[Fix warnings
2787benl@ouroborus.net**20100624091339
2788 Ignore-this: 5ba4bbd6abb9c9d1fb8c5d21ab73f218
2789]
2790[NCG: Comments and formatting only
2791benl@ouroborus.net**20100624083121
2792 Ignore-this: 86002e72c30d06bcc876d8c49f4caa5a
2793]
2794[NCG: Do the actual reversing of SCCs
2795benl@ouroborus.net**20100624082717
2796 Ignore-this: 12d2027ea118e751fbb48b27126150ef
2797]
2798[NCG: Fix dumping of graphs in regalloc stats for graph allocator
2799benl@ouroborus.net**20100624082625
2800 Ignore-this: 2b971bc9e0318099a9afb0e0db135730
2801]
2802[NCG: Reverse SCCs after each round in the graph allocator
2803benl@ouroborus.net**20100624082437
2804 Ignore-this: f0152e4039d6f16f7b5a99b286538116
2805]
2806[NCG: Don't actually complain on unreachable code blocks
2807benl@ouroborus.net**20100624081445
2808 Ignore-this: e7335ae6120917cb858c38c7c6da8e24
2809]
2810[NCG: Do explicit check for precondition of computeLiveness
2811benl@ouroborus.net**20100624080747
2812 Ignore-this: e7053c4e5e4c3c746b5ebf016913424a
2813 
2814  computeLiveness requires the SCCs of blocks to be in reverse dependent
2815  order, and if they're not it was silently giving bad liveness info,
2816  yielding a bad allocation.
2817 
2818  Now it complains, loudly.
2819]
2820[NCG: Fix off-by-one error in realRegSqueeze
2821benl@ouroborus.net**20100623095813
2822 Ignore-this: ab0698686d4c250da8e207f734f8252d
2823]
2824[NCG: Handle stripping of liveness info from procs with no blocks (like stg_split_marker)
2825benl@ouroborus.net**20100623091209
2826 Ignore-this: c0319b6cc62ec713afe4eb03790406e3
2827]
2828[NCG: Emit a warning on unreachable code block instead of panicing
2829benl@ouroborus.net**20100623085002
2830 Ignore-this: d20314b79e3c31e764ed4cd97290c696
2831]
2832[NCG: Remember to keep the entry block first when erasing liveness info
2833Ben.Lippmeier@anu.edu.au**20090917104429
2834 Ignore-this: 1b0c1df19d622858d50ffb6a01f2cef0
2835]
2836[NCG: Refactor representation of code with liveness info
2837Ben.Lippmeier@anu.edu.au**20090917090730
2838 Ignore-this: 2aebb3b02ebd92e547c5abad9feb0f0d
2839 
2840  * I've pushed the SPILL and RELOAD instrs down into the
2841    LiveInstr type to make them easier to work with.
2842 
2843  * When the graph allocator does a spill cycle it now just
2844    re-annotates the LiveCmmTops instead of converting them
2845    to NatCmmTops and back.
2846 
2847  * This saves working out the SCCS again, and avoids rewriting
2848    the SPILL and RELOAD meta instructions into real machine
2849    instructions.
2850]
2851[NCG: Add sanity checking to linear allocator
2852Ben.Lippmeier@anu.edu.au**20090917090335
2853 Ignore-this: 5a442be8b5087d04bc8b58dffa9ea080
2854 If there are are unreachable basic blocks in the native code then the
2855 linear allocator might loop. Detect this case and panic instead.
2856]
2857[NCG: Refactor LiveCmmTop to hold a list of SCCs instead of abusing ListGraph
2858Ben.Lippmeier@anu.edu.au**20090917060332
2859 Ignore-this: 3fec8d69ed0f760e53a202f873d5d9cb
2860]
2861[NCG: Allow the liveness map in a LiveInfo to be Nothing
2862Ben.Lippmeier@anu.edu.au**20090917043937
2863 Ignore-this: 5f82422d54d1b0ffc0589eb7e82fb7a4
2864]
2865[NCG: Also show the result of applying coalesings with -ddump-asm-regalloc-stages
2866Ben.Lippmeier.anu.edu.au**20090917034427
2867 Ignore-this: 76bd6d5ca43adb2167cb25832cbaa80b
2868]
2869[Fix panic when running "ghc -H"; trac #3364
2870Ian Lynagh <igloo@earth.li>**20100624234011
2871 The problem is that showing SDoc's looks at the static flags global
2872 variables, but those are panics while we are parsing the static flags.
2873 We work around this by explicitly using a fixed prettyprinter style.
2874]
2875[Allow for stg registers to have pointer type in llvm BE.
2876David Terei <davidterei@gmail.com>**20100621175839
2877 Ignore-this: fc09b1a8314aef0bde945c77af1124fb
2878 
2879 Before all the stg registers were simply a bit type or
2880 floating point type but now they can be declared to have
2881 a pointer type to one of these. This will allow various
2882 optimisations in the future in llvm since the type is
2883 more accurate.
2884]
2885[Add support for parameter attributes to the llvm BE binding
2886David Terei <davidterei@gmail.com>**20100624111744
2887 Ignore-this: 77f3c0c7bf8f81c4a154dc835ae7bcba
2888 
2889 These allow annotations of the code produced by the backend
2890 which should bring some perforamnce gains. At the moment
2891 the attributes aren't being used though.
2892]
2893[Cast some more nats to StgWord to be on the safe side
2894Simon Marlow <marlowsd@gmail.com>**20100624105700
2895 Ignore-this: e6176683856f9872fdeb2358bb065bb8
2896 And add a comment about the dangers of int overflow
2897]
2898[comments only
2899Simon Marlow <marlowsd@gmail.com>**20100624105105
2900 Ignore-this: fc8f762f4c3a5ffca2f8da2bc63ac2a4
2901]
2902[Fix an arithmetic overflow bug causing crashes with multi-GB heaps
2903Simon Marlow <marlowsd@gmail.com>**20100624104654
2904 Ignore-this: 67210755aa098740ff5230347be0fd5d
2905]
2906[Add support for collecting PAPI native events
2907dmp@rice.edu**20100622195953
2908 Ignore-this: 7269f9c4dfb2912a024eb632200fcd1
2909 
2910 This patch extends the PAPI support in the RTS to allow collection of native
2911 events. PAPI can collect data for native events that are exposed by the
2912 hardware beyond the PAPI present events. The native events supported on your
2913 hardware can found by using the papi_native_avail tool.
2914 
2915 The RTS already allows users to specify PAPI preset events from the command
2916 line. This patch extends that support to allow users to specify native events.
2917 The changes needed are:
2918 
2919 1) New option (#) for the RTS PAPI flag for native events. For example, to
2920    collect the native event 0x40000000, use ./a.out +RTS -a#0x40000000 -sstderr
2921 
2922 2) Update the PAPI_FLAGS struct to store whether the user specified event is a
2923    papi preset or a native event
2924 
2925 3) Update init_countable_events function to add the native events after parsing
2926    the event code and decoding the name using PAPI_event_code_to_name
2927 
2928]
2929[Don't warn about unused bindings with parents in .hs-boot files; trac #3449
2930Ian Lynagh <igloo@earth.li>**20100624110351]
2931[fix the home_imps filter to allow for 'import "this" <module>'
2932Simon Marlow <marlowsd@gmail.com>**20100621125535
2933 Ignore-this: da4e605b0513afc32a4e7caa921a2c76
2934 In the PackageImports extension, import "this" means "import from the
2935 current package".
2936]
2937[Use the standard C wrapper code for the ghc-$version.exe wrapper
2938Ian Lynagh <igloo@earth.li>**20100622202859
2939 Ignore-this: 60cd3e6db3afb63e6ba9e2db3b033580
2940]
2941[Don't rely on "-packagefoo" working; use "-package foo" instead
2942Ian Lynagh <igloo@earth.li>**20100622202547]
2943[Remove unnecessary C #includes
2944Ian Lynagh <igloo@earth.li>**20100622172919]
2945[Make the ghci.exe wrapper call the right ghc.exe
2946Ian Lynagh <igloo@earth.li>**20100622172247]
2947[More updates to datalayout description in llvm BE
2948David Terei <davidterei@gmail.com>**20100622165339
2949 Ignore-this: b0c604fe7673b0aa7c7064694d574437
2950]
2951[Remove LlvmAs phase as the llvm opt tool now handles this phase
2952David Terei <davidterei@gmail.com>**20100622144044
2953 Ignore-this: b9fd8f959702b6af014e2fa654bede3
2954 
2955 This phase originally invoked the llvm-as tool that turns a textual
2956 llvm assembly file into a bit code file for the rest of llvm to deal
2957 with. Now the llvm opt tool can do this itself, so we don't need to
2958 use llvm-as anymore.
2959]
2960[Update datalayout info in llvm BE
2961David Terei <davidterei@gmail.com>**20100622123457
2962 Ignore-this: 89b043d211225dcd819f30549afe1840
2963]
2964[Fix handling of float literals in llvm BE
2965David Terei <davidterei@gmail.com>**20100622121642
2966 Ignore-this: a3b5f382ad4b5a426ad4b581664506fa
2967]
2968[Declare some top level globals to be constant when appropriate
2969David Terei <davidterei@gmail.com>**20100621174954
2970 Ignore-this: 44832f65550d4f995d11c01cc1affef5
2971 
2972 This involved removing the old constant handling mechanism
2973 which was fairly hard to use. Now being constant or not is
2974 simply a property of a global variable instead of a separate
2975 type.
2976]
2977[Reduce the number of passes over the cmm in llvm BE
2978David Terei <davidterei@gmail.com>**20100621125220
2979 Ignore-this: cb2f4e54e8d0f982d5087fbeee35c73c
2980]
2981[Fix negate op not working for -0 in llvm backend
2982David Terei <davidterei@gmail.com>**20100621123606
2983 Ignore-this: c5d76e5cffa781fed074137851b1347f
2984]
2985[ROLLBACK: picCCOpts: -dynamic should not entail -optc-fPIC
2986Simon Marlow <marlowsd@gmail.com>**20100621100409
2987 Ignore-this: f2fac7df33d3919199befc59bd455414
2988 and add a comment to explain why it was wrong.  This fixes the dyn
2989 test failures that sprang up recently.
2990]
2991[Check files are really created in libffi
2992Ian Lynagh <igloo@earth.li>**20100620163724
2993 when we think that the libffi build creates them, so they just depend
2994 on the libffi build stamp.
2995]
2996[Improve the missing-import-list warning
2997Ian Lynagh <igloo@earth.li>**20100620124320
2998 Ignore-this: 551e5fdf2dfb56b49d249e0cebaa6115
2999]
3000[Tweak missing-import-list warning
3001Ian Lynagh <igloo@earth.li>**20100620122622
3002 Ignore-this: 360cdf59ae13d66ded181129325506c4
3003]
3004[trac #1789 (warnings for missing import lists)
3005amsay@amsay.net**20100618150649
3006 Ignore-this: b0b0b1e048fbca0817c1e6fade1153fa
3007]
3008[Refix docs for sizeofByteArray#/sizeofMutableByteArray# (#3800)
3009Ian Lynagh <igloo@earth.li>**20100620103749]
3010[Remove some old commented out code
3011Ian Lynagh <igloo@earth.li>**20100620000459]
3012[SET_ARR_HDR's last argument is now a number of bytes, rather than words
3013Ian Lynagh <igloo@earth.li>**20100619235214
3014 This avoids unnecessary work and potential loss of information
3015]
3016[Replace an (incorrect) bytes-to-words calculation with ROUNDUP_BYTES_TO_WDS
3017Ian Lynagh <igloo@earth.li>**20100619234310]
3018[FIX #38000 Store StgArrWords payload size in bytes
3019Antoine Latter <aslatter@gmail.com>**20100101183346
3020 Ignore-this: 7bf3ab4fc080c46311fc10b179361bb6
3021]
3022[Add win32 datalayout support to llvm backend
3023David Terei <davidterei@gmail.com>**20100618131733
3024 Ignore-this: 4b7bffaa8ef38c628ab852c1a6c1c009
3025]
3026[Remove unused 'ddump-opt-llvm' flag
3027David Terei <davidterei@gmail.com>**20100618101237
3028 Ignore-this: f78467496d986897e49d82646ee2907e
3029]
3030[generate "movl lbl(%reg1), %reg2" instructions, better codegen for -fPIC
3031Simon Marlow <marlowsd@gmail.com>**20100618082258
3032 Ignore-this: a25567ebff9f575303ddc8f2deafebbf
3033]
3034[joinToTargets: fix a case of panic "handleComponent cyclic"
3035Simon Marlow <marlowsd@gmail.com>**20100618082147
3036 Ignore-this: 765baeefbb5a41724004acd92405cecc
3037]
3038[comment typo
3039Simon Marlow <marlowsd@gmail.com>**20100618082102
3040 Ignore-this: e495610b7dd5ec30b02938638b56cb7
3041]
3042[Add support of TNTC to llvm backend
3043David Terei <davidterei@gmail.com>**20100618093205
3044 Ignore-this: 2c27d21668374a5b0d5e844882c69439
3045 
3046 We do this through a gnu as feature called subsections,
3047 where you can put data/code into a numbered subsection
3048 and those subsections will be joined together in descending
3049 order by gas at compile time.
3050]
3051[Don't automatically insert a -fvia-C flag in an unregisterised compiler
3052Ian Lynagh <igloo@earth.li>**20100617190901
3053 Ignore-this: eb25a9a338fade9e17c153da7c5f27e9
3054 The default object mode is already HscC, so it's unnecessary, and
3055 -fvia-C generates a deprecated flag warning now.
3056]
3057[In PosixSource.h, conditionally define things based on platform
3058Ian Lynagh <igloo@earth.li>**20100617174912
3059 This may not be ideal, but it should get GHC building on all platforms
3060 again.
3061]
3062[disable -fPIC for the GC for performance reasons
3063Simon Marlow <marlowsd@gmail.com>**20100617140025
3064 Ignore-this: c7c152bbff71ef7891eaee8ff39fc281
3065 see comment for details
3066]
3067[picCCOpts: -dynamic should not entail -optc-fPIC
3068Simon Marlow <marlowsd@gmail.com>**20100617115259
3069 Ignore-this: d71e42bd56e4bd107d2c431b801855e5
3070]
3071[Make getAllocations() visible
3072Simon Marlow <marlowsd@gmail.com>**20100617113259
3073 Ignore-this: 1b7fb38a01358c0acbe8987df07d23f2
3074]
3075[Fix the symbol visibility pragmas
3076Simon Marlow <marlowsd@gmail.com>**20100617105758
3077 Ignore-this: 76552500865473a1dbebbc1cc2def9f0
3078]
3079[pick up changes to $(GhcStage1HcOpts) without re-configuring the ghc package
3080Simon Marlow <marlowsd@gmail.com>**20100616124718
3081 Ignore-this: afb56d5560c813051285607fefb15493
3082]
3083[Fix bindisttest Makefile
3084Ian Lynagh <igloo@earth.li>**20100616205611
3085 Ignore-this: 39cd352152422f378572fc3859c5a377
3086]
3087[Remove some more unused make variables
3088Ian Lynagh <igloo@earth.li>**20100616180519]
3089[Convert some more variable names to FOO_CMD, for consistency
3090Ian Lynagh <igloo@earth.li>**20100616175916]
3091[Rename some variables from FOO to FOO_CMD
3092Ian Lynagh <igloo@earth.li>**20100616161108
3093 This fixes a problem with commands like gzip, where if $GZIP is exported
3094 in the environment, then when make runs a command it'll put the Makefile
3095 variable's value in the environment. But gzip treats $GZIP as arguments
3096 for itself, so when we run gzip it thinks we're giving it "gzip" as an
3097 argument.
3098]
3099[Make the "show" target work anywhere in the build tree
3100Ian Lynagh <igloo@earth.li>**20100616122910
3101 Ignore-this: 299d40cbe16112accd9f14e56fa12158
3102]
3103[Change ghc-pwd's license to a string Cabal recognises
3104Ian Lynagh <igloo@earth.li>**20100615204015
3105 Ignore-this: c935b6ad7f605aab0168997a90b40fc6
3106]
3107[fix warning
3108Simon Marlow <marlowsd@gmail.com>**20100604205933
3109 Ignore-this: 2aaa4ed6a8b9ae1e39adc4696aaf14a3
3110]
3111[--install-signal-handles=no does not affect the timer signal (#1908)
3112Simon Marlow <marlowsd@gmail.com>**20100527214627
3113 Ignore-this: b0c51f1abdb159dc360662485095a11a
3114]
3115[Small optimisation: allocate nursery blocks contiguously
3116Simon Marlow <marlowsd@gmail.com>**20100509194928
3117 Ignore-this: e650e99e9ea9493d2efb245d565beef4
3118 This lets automatic prefetching work better, for a tiny performance boost
3119]
3120[fix -fforce-recomp setting: module is PrimOp, not PrimOps
3121Simon Marlow <marlowsd@gmail.com>**20100507084507
3122 Ignore-this: f76e0d9b643682ec0e8fb7d91afdea68
3123]
3124[it should be an error to use relative directories (#4134)
3125Simon Marlow <marlowsd@gmail.com>**20100615151740
3126 Ignore-this: 2068021701832e018ca41b22877921d5
3127]
3128[missing include-dirs or library-dirs is only a warning now (#4104)
3129Simon Marlow <marlowsd@gmail.com>**20100615151702
3130 Ignore-this: e3114123cef147bbd28ccb64581a1afb
3131]
3132[fix #3822: desugaring case command in arrow notation
3133Ross Paterson <ross@soi.city.ac.uk>**20100615225110
3134 Ignore-this: 477d6c460b4174b94b4cd113fa5b9d19
3135 
3136 Get the set of free variables from the generated case expression:
3137 includes variables in the guards and decls that were missed before,
3138 and is also a bit simpler.
3139]
3140[Deprecate the -fvia-C flag; trac #3232
3141Ian Lynagh <igloo@earth.li>**20100615151836
3142 Ignore-this: c2452b2648bf7e44546465c1b964fce
3143]
3144[Avoid using the new ~~ perl operator in the mangler
3145Ian Lynagh <igloo@earth.li>**20100615151236
3146 Ignore-this: 709a7ba4e514b1596841b3ba7e5c6cc
3147]
3148[stmAddInvariantToCheck: add missing init of invariant->lock (#4057)
3149Simon Marlow <marlowsd@gmail.com>**20100615123643
3150 Ignore-this: 3b132547fa934cecf71a846db2a5f70e
3151]
3152[Add new LLVM code generator to GHC. (Version 2)
3153David Terei <davidterei@gmail.com>**20100615094714
3154 Ignore-this: 4dd2fe5854b64a3f0339d484fd5c238
3155 
3156 This was done as part of an honours thesis at UNSW, the paper describing the
3157 work and results can be found at:
3158 
3159 http://www.cse.unsw.edu.au/~pls/thesis/davidt-thesis.pdf
3160 
3161 A Homepage for the backend can be found at:
3162 
3163 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM
3164 
3165 Quick summary of performance is that for the 'nofib' benchmark suite, runtimes
3166 are within 5% slower than the NCG and generally better than the C code
3167 generator.  For some code though, such as the DPH projects benchmark, the LLVM
3168 code generator outperforms the NCG and C code generator by about a 25%
3169 reduction in run times.
3170 
3171]
3172[Fix Trac #4127: build GlobalRdrEnv in GHCi correctly
3173simonpj@microsoft.com**20100615070626
3174 Ignore-this: d907e3bfa7882878cea0af172aaf6e84
3175 
3176 GHCi was building its GlobalRdrEnv wrongly, so that the
3177 gre_par field was bogus.  That in turn fooled the renamer.
3178 The fix is easy: use the right function!  Namely, call
3179 RnNames.gresFromAvail rather than availsToNameSet.
3180]
3181[Comments, and improvement to pretty-printing of HsGroup
3182simonpj@microsoft.com**20100615070409
3183 Ignore-this: ec8358f2485370b20226a97ec84e9024
3184]
3185[Don't reverse bindings in rnMethodBinds (fix Trac #4126)
3186simonpj@microsoft.com**20100614163935
3187 Ignore-this: a6ffbb5af6f51b142ed0aeae8ee5e3a9
3188]
3189[Fix Trac #4120: generate a proper coercion when unifying forall types
3190simonpj@microsoft.com**20100614134311
3191 Ignore-this: 601592bb505305f1954cbe730f168da4
3192 
3193 This was just a blatant omission, which hasn't come up before.
3194 Easily fixed, happily.
3195]
3196[Use mkFunTy to ensure that invariants are respected
3197simonpj@microsoft.com**20100614134159
3198 Ignore-this: 67dcada7a4e8d9927581cd77af71b6f
3199]
3200[Remove redundant debug code
3201simonpj@microsoft.com**20100601154151
3202 Ignore-this: e6ff11c04c631cf6aac73788cbcf02b5
3203]
3204[Fix Trac #4099: better error message for type functions
3205simonpj@microsoft.com**20100531140413
3206 Ignore-this: 3f53ca98cf770577818b9c0937482577
3207 
3208 Now we only want about "T is a type function and might not be
3209 injective" when matchin (T x) against (T y), which is the case
3210 that is really confusing.
3211]
3212[Gruesome fix in CorePrep to fix embarassing Trac #4121
3213simonpj@microsoft.com**20100614132726
3214 Ignore-this: fe82d15474afaac3e6133adfd7a7e055
3215 
3216 This is a long-lurking bug that has been flushed into
3217 the open by other arity-related changes.  There's a
3218 long comment
3219 
3220      Note [CafInfo and floating]
3221 
3222 to explain. 
3223 
3224 I really hate the contortions we have to do through to keep correct
3225 CafRef information on top-level binders.  The Right Thing, I believe,
3226 is to compute CAF and arity information later, and merge it into the
3227 interface-file information when the latter is generated.
3228 
3229 But for now, this hackily fixes the problem.
3230]
3231[Fix a bug in CorePrep that meant output invariants not satisfied
3232simonpj@microsoft.com**20100531150013
3233 Ignore-this: d34eb36d8877d3caf1cf2b20de426abd
3234 
3235 In cpePair I did things in the wrong order so that something that
3236 should have been a CprRhs wasn't.  Result: a crash in CoreToStg.
3237 Fix is easy, and I added more informative type signatures too.
3238]
3239[Robustify the treatement of DFunUnfolding
3240simonpj@microsoft.com**20100531145332
3241 Ignore-this: 8f5506ada4d89f6ab8ad1e8c3ffb09ba
3242 
3243 See Note [DFun unfoldings] in CoreSyn.  The issue here is that
3244 you can't tell how many dictionary arguments a DFun needs just
3245 from looking at the Arity of the DFun Id: if the dictionary is
3246 represented by a newtype the arity might include the dictionary
3247 and value arguments of the (single) method.
3248 
3249 So we need to record the number of arguments need by the DFun
3250 in the DFunUnfolding itself.  Details in
3251    Note [DFun unfoldings] in CoreSyn
3252]
3253[Fix spelling in comment
3254simonpj@microsoft.com**20100614132259
3255 Ignore-this: bbf0d55f2e5f10ef9c74592c12f9201c
3256]
3257[Update docs on view patterns
3258simonpj@microsoft.com**20100614074801
3259 Ignore-this: 8617b9078800d4942d71f142a5b6c831
3260]
3261[Fix printing of splices; part of #4124
3262Ian Lynagh <igloo@earth.li>**20100613154838
3263 Just putting parens around non-atomic expressions isn't sufficient
3264 for splices, as only the $x and $(e) forms are valid input.
3265]
3266[In ghci, catch IO exceptions when calling canonicalizePath
3267Ian Lynagh <igloo@earth.li>**20100613134627
3268 We now get an exception if the path doesn't exist
3269]
3270[Whitespace only
3271Ian Lynagh <igloo@earth.li>**20100612213119]
3272[Whitespace only
3273Ian Lynagh <igloo@earth.li>**20100612165450]
3274[Update ghci example output in user guide; patch from YitzGale in #4111
3275Ian Lynagh <igloo@earth.li>**20100612162250]
3276[Fix #4131 missing UNTAG_CLOSURE in messageBlackHole()
3277benl@ouroborus.net**20100611044614]
3278[messageBlackHole: fix deadlock bug caused by a missing 'volatile'
3279Simon Marlow <marlowsd@gmail.com>**20100610080636
3280 Ignore-this: 3cda3054bb45408aa9bd2d794b69c938
3281]
3282[Pass --no-tmp-comp-dir to Haddock (see comment)
3283Simon Marlow <marlowsd@gmail.com>**20100604083214
3284 Ignore-this: bfa4d74038637bd149f4d878b4eb8a87
3285]
3286[Track changes to DPH libs
3287Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100607052903
3288 Ignore-this: 4dbc3f8418af3e74b3fc4f9a9dfe7764
3289]
3290[Track changes to DPH libs
3291Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100607012642
3292 Ignore-this: 5d4e498171a3c57ab02621bfaea82cff
3293]
3294[In ghc-pkg, send warnings to stderr
3295Ian Lynagh <igloo@earth.li>**20100606161726
3296 Ignore-this: 56927d13b5e1c1ce2752734f0f9b665b
3297]
3298[Re-add newlines to enable layout for multi-line input.
3299Ian Lynagh <igloo@earth.li>**20100602180737
3300 Patch from Adam Vogt <vogt.adam@gmail.com>
3301 Partial fix for #3984
3302]
3303[Don't use unnecessary parens when printing types (Fix Trac 4107)
3304simonpj@microsoft.com**20100604110143
3305 Ignore-this: a833714ab13013c4345b222f4e87db1d
3306 
3307    f :: Eq a => a -> a
3308 rather than
3309    f :: (Eq a) => a -> a
3310]
3311[Track DPH library changes
3312Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100604005728
3313 Ignore-this: 32bc2fbea6ad975e89545d4c42fd7c30
3314]
3315[fix --source-entity option passed to Haddock: we needed to escape a #
3316Simon Marlow <marlowsd@gmail.com>**20100603125459
3317 Ignore-this: d52ae6188b510c482bcebb23f0e553ae
3318]
3319[__stg_EAGER_BLACKHOLE_INFO -> __stg_EAGER_BLACKHOLE_info (#4106)
3320Simon Marlow <marlowsd@gmail.com>**20100602091419
3321 Ignore-this: 293315ac8f86fd366b8d61992ecc7961
3322]
3323[Add xhtml package (a new dependency of Haddock; not installed/shipped)
3324Simon Marlow <marlowsd@gmail.com>**20100602090101
3325 Ignore-this: af0ac8b91abe98f7fdb624ea0a4dee20
3326]
3327[Use UserInterrupt rather than our own Interrupted exception (#4100)
3328Simon Marlow <marlowsd@gmail.com>**20100602082345
3329 Ignore-this: 1909acf2f452593138b9f85024711714
3330]
3331[Add the global package DB to ghc --info (#4103)
3332Simon Marlow <marlowsd@gmail.com>**20100602082233
3333 Ignore-this: fd5c0e207e70eb0f62606c45dc5b8124
3334]
3335[rts/sm/GC.c: resize_generations(): Remove unneeded check of number of generations.
3336Marco Túlio Gontijo e Silva <marcot@debian.org>**20100528115612
3337 Ignore-this: 6f1bea62917c01c7adac636146132c97
3338 
3339 This "if" is inside another "if" which checks for RtsFlags.GcFlags.generations
3340 > 1, so testing this again is redundant, assuming the number of generations
3341 won't change during program execution.
3342]
3343[rts/sm/BlockAlloc.c: Small comment correction.
3344Marco Túlio Gontijo e Silva <marcot@debian.org>**20100526205839
3345 Ignore-this: bd2fcd4597cc872d80b0e2eeb1c3998a
3346]
3347[rts/sm/GC.c: Annotate constants.
3348Marco Túlio Gontijo e Silva <marcot@debian.org>**20100526205707
3349 Ignore-this: f232edb89383564d759ed890a18f602f
3350]
3351[includes/rts/storage/GC.h: generation_: n_words: Improve comment.
3352Marco Túlio Gontijo e Silva <marcot@debian.org>**20100526204615
3353 Ignore-this: f5d5feefa8f7b552303978f1804fea23
3354]
3355[Add PPC_RELOC_LOCAL_SECTDIFF support; patch from PHO in #3654
3356Ian Lynagh <igloo@earth.li>**20100601204211
3357 Ignore-this: 51293b7041cdce3ce7619ef11cf7ceb
3358]
3359[powerpc-apple-darwin now supports shared libs
3360Ian Lynagh <igloo@earth.li>**20100601173325]
3361[PIC support for PowerPC
3362pho@cielonegro.org**20100508143900
3363 Ignore-this: 3673859a305398c4acae3f4d7c997615
3364 
3365 PPC.CodeGen.getRegister was not properly handling PicBaseReg.
3366 It seems working with this patch, but I'm not sure this change is correct.
3367]
3368[Vectoriser: only treat a function as scalar if it actually computes something
3369Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100601045630
3370 Ignore-this: e5d99a6ddb62052e3520094a5af47552
3371]
3372[Add a release notes file for 6.14.1
3373Ian Lynagh <igloo@earth.li>**20100530171117
3374 Ignore-this: 1941e6d3d1f4051b69ca2f17a1cf84d6
3375]
3376[Check dblatex actually creates the files we tell it to
3377Ian Lynagh <igloo@earth.li>**20100530171043
3378 Ignore-this: ccc72caea2313be05cbac59bb54c0603
3379 If it fails, it still exits successfully.
3380]
3381[Add darwin to the list of OSes for which we use mmap
3382Ian Lynagh <igloo@earth.li>**20100529145016
3383 Ignore-this: a86d12a3334aaaafc86f7af9dbb0a7ae
3384 Patch from Barney Stratford
3385]
3386[Simplify the CPP logic in rts/Linker.c
3387Ian Lynagh <igloo@earth.li>**20100529144929
3388 Ignore-this: 1288f5b752cc1ab8b1c90cfd0ecfdf68
3389]
3390[Fix validate on OS X
3391Ian Lynagh <igloo@earth.li>**20100529154726]
3392[OS X x86_64 fix from Barney Stratford
3393Ian Lynagh <igloo@earth.li>**20100529122440]
3394[OS X 64 installer fixes from Barney Stratford
3395Ian Lynagh <igloo@earth.li>**20100528234935]
3396[fix warning
3397Simon Marlow <marlowsd@gmail.com>**20100525155812
3398 Ignore-this: f34eee3fe3d89579fd8d381c91ced750
3399]
3400[Fix doc bugs (#4071)
3401Simon Marlow <marlowsd@gmail.com>**20100525155728
3402 Ignore-this: aa25be196de567de360075022a1942f7
3403]
3404[Make sparks into weak pointers (#2185)
3405Simon Marlow <marlowsd@gmail.com>**20100525150435
3406 Ignore-this: feea0bb5006007b82c932bc3006124d7
3407 The new strategies library (parallel-2.0+, preferably 2.2+) is now
3408 required for parallel programming, otherwise parallelism will be lost.
3409]
3410[If you say 'make' or 'make stage=2' here, pretend we're in the ghc dir
3411Simon Marlow <marlowsd@gmail.com>**20100525085301
3412 Ignore-this: 78b740337aa460915c812cbbcdae5321
3413]
3414[Another attempt to get these #defines right
3415Simon Marlow <marlowsd@gmail.com>**20100525154313
3416 Ignore-this: 460ca0c47d81cd25eae6542114f67899
3417 Apparently on Solaris it is an error to omit _ISOC99_SOURCE when using
3418 _POSIX_C_SOURCE==200112L.
3419]
3420[Add configure flags for the location of GMP includes/library; fixes #4022
3421Ian Lynagh <igloo@earth.li>**20100525221616
3422 Ignore-this: fc3060caf995d07274ec975eeefbdf3e
3423]
3424[Refactor pretty printing of TyThings to fix Trac #4015
3425simonpj@microsoft.com**20100525153126
3426 Ignore-this: 8f15053b7554f62caa84201d2e4976d2
3427]
3428[When haddocking, we need the dependencies to have been built
3429Ian Lynagh <igloo@earth.li>**20100525145830
3430 as haddock loads the .hi files with the GHC API.
3431]
3432[Fix profiling output; spotted by jlouis
3433Ian Lynagh <igloo@earth.li>**20100525111217
3434 We were outputing the number of words allocated in a column titled "bytes".
3435]
3436[Improve printing of TyThings; fixes Trac #4087
3437simonpj@microsoft.com**20100525114045
3438 Ignore-this: da2a757a533454bba80b9b77cc5a771
3439]
3440[Spelling in comments
3441simonpj@microsoft.com**20100525114001
3442 Ignore-this: 270f3da655e526cf04e27db7a01e29c0
3443]
3444[Refactor (again) the handling of default methods
3445simonpj@microsoft.com**20100525113910
3446 Ignore-this: 6686f6cdb878d57abf6b49fec64fcbb1
3447 
3448 This patch fixes Trac #4056, by
3449 
3450  a) tidying up the treatment of default method names
3451  b) removing the 'module' argument to newTopSrcBinder
3452 
3453 The details aren't that interesting, but the result
3454 is much tidier. The original bug was a 'nameModule' panic,
3455 caused by trying to find the module of a top-level name.
3456 But TH quotes generate Internal top-level names that don't
3457 have a module, and that is generally a good thing. 
3458 
3459 Fixing that in turn led to the default-method refactoring,
3460 which also makes the Name for a default method be handled
3461 in the same way as other derived names, generated in BuildTyCl
3462 via a call newImplicitBinder.  Hurrah.
3463]
3464[Don't do SpecConstr on NOINLINE things (Trac #4064)
3465simonpj@microsoft.com**20100525112807
3466 Ignore-this: 452be0a2cef0042fb67275c2827b5f72
3467 
3468 Since the RULE from specialising gets the same Activation as
3469 the inlining for the Id itself there's no point in specialising
3470 a NOINLINE thing, because the rule will be permanently switched
3471 off.
3472 
3473 See Note [Transfer activation] in SpecConstr
3474 and Note [Auto-specialisation and RULES] in Specialise.
3475]
3476[Change our #defines to work on FreeBSD too
3477Simon Marlow <marlowsd@gmail.com>**20100524105828
3478 Ignore-this: b23ede46211e67859206c0ec57d6a86f
3479 With glibc, things like _POSIX_C_SOURCE and _ISOC99_SOURCE are
3480 additive, but on FreeBSD they are mutually exclusive.  However, it
3481 turns out we only need to define _POSIX_C_SOURCE and _XOPEN_SOURCE to
3482 get all the C99 stuff we need too, so there's no need for any #ifdefs.
3483 
3484 Submitted by: Gabor PALI <pgj@FreeBSD.org>
3485]
3486[Add a missing UNTAG_CLOSURE, causing bus errors on Sparc
3487Simon Marlow <marlowsd@gmail.com>**20100524105547
3488 Ignore-this: a590b5391d6f05d50c8c088456c3c166
3489 We just about got away with this on x86 which isn't
3490 alignment-sensitive.  The result of the memory load is compared
3491 against a few different values, but there is a fallback case that
3492 happened to be the right thing when the pointer was tagged.  A good
3493 bug to find, nonetheless.
3494]
3495[Add wiki links
3496Simon Marlow <marlowsd@gmail.com>**20100520095953
3497 Ignore-this: c22f126cde166e6207922b2eb51d29e3
3498]
3499[the 'stage=0' trick to disable all compiler builds stopped working; fix it
3500Simon Marlow <marlowsd@gmail.com>**20100520104455
3501 Ignore-this: bb6fae9056471612c8dbf06916188c33
3502]
3503[Comments and formatting only
3504benl@ouroborus.net**20100524014021
3505 Ignore-this: 64579c38154728b632e358bec751cc0b
3506]
3507[Core prettyprinter fixes. Patch from Tim Chevalier. Fixes #4085
3508Ian Lynagh <igloo@earth.li>**20100522225048]
3509[Correct install-name for dynamic Darwin rts
3510pho@cielonegro.org**20100508151155
3511 Ignore-this: 6d31716c8c113dcb46e9cb925c4201df
3512]
3513[Fix the RTS debug_p build
3514Ian Lynagh <igloo@earth.li>**20100522163127]
3515[Unset $CFLAGS for "GNU non-executable stack" configure test; fixes #3889
3516Ian Lynagh <igloo@earth.li>**20100521165005
3517 With gcc 4.4 we get
3518     Error: can't resolve `.note.GNU-stack' {.note.GNU-stack section} - `.Ltext0' {.text section}
3519 when running gcc with the -g flag. To work around this we unset
3520 CFLAGS when running the test.
3521]
3522[Don't run "set -o igncr" before configuring libffi
3523Ian Lynagh <igloo@earth.li>**20100520162918
3524 Ignore-this: 489fa94df23f2adf4ff63c8ede2c0794
3525 It used to make the build work on cygwin, but now it breaks it instead:
3526     config.status: creating include/Makefile
3527     gawk: ./confLqjohp/subs.awk:1: BEGIN {\r
3528     gawk: ./confLqjohp/subs.awk:1: ^ backslash not last character on line
3529     config.status: error: could not create include/Makefile
3530     make[2]: *** [libffi/stamp.ffi.configure-shared] Error 1
3531     make[1]: *** [all] Error 2
3532]
3533[Stop passing -Wl,-macosx_version_min to gcc
3534Ian Lynagh <igloo@earth.li>**20100520154003
3535 Fixes a build failure on OS X 10.6. When linking
3536     rts/dist/build/libHSrts-ghc6.13.20100519.dylib
3537 we got
3538     ld: symbol dyld_stub_binding_helper not defined (usually in crt1.o/dylib1.o/bundle1.o)
3539     collect2: ld returned 1 exit status
3540]
3541[Fix build on FreeBSD; patch from Gabor PALI
3542Ian Lynagh <igloo@earth.li>**20100519140552]
3543[Fix package shadowing order (#4072)
3544Simon Marlow <marlowsd@gmail.com>**20100519104617
3545 Ignore-this: 26ea5e4bb5dff18618b807a54c7d6ebb
3546 
3547 Later packages are supposed to shadow earlier ones in the stack,
3548 unless the ordering is overriden with -package-id flags.
3549 Unfortunately an earlier fix for something else had sorted the list of
3550 packages so that it was in lexicographic order by installedPackageId,
3551 and sadly our test (cabal/shadow) didn't pick this up because the
3552 lexicographic ordering happened to work for the test.  I've now fixed
3553 the test so it tries both orderings.
3554]
3555[Set more env variables when configuring libffi
3556Ian Lynagh <igloo@earth.li>**20100518185014
3557 We now tell it where to find ld, nm and ar
3558]
3559[Set the location of ar to be the in-tree ar on Windows
3560Ian Lynagh <igloo@earth.li>**20100518181556]
3561[Change another / to </> to avoid building paths containing \/
3562Ian Lynagh <igloo@earth.li>**20100518172015
3563 This will hopefully fix #2889.
3564]
3565[Fix #4074 (I hope).
3566Simon Marlow <marlowsd@gmail.com>**20100518113214
3567 Ignore-this: 73cd70f5bc6f5add5247b61985c03fc1
3568 
3569 1. allow multiple threads to call startTimer()/stopTimer() pairs
3570 2. disable the timer around fork() in forkProcess()
3571 
3572 A corresponding change to the process package is required.
3573]
3574[we don't have a gcc-lib in LIB_DIR any more
3575Simon Marlow <marlowsd@gmail.com>**20100401102351
3576 Ignore-this: f41acd2d8f8e6763aa8bd57a0b44a7e4
3577]
3578[In validate, use gmake if available; based on a patch from Gabor PALI
3579Ian Lynagh <igloo@earth.li>**20100517200654]
3580[Remove duplicate "./configure --help" output; fixes #4075
3581Ian Lynagh <igloo@earth.li>**20100516141206]
3582[Update various 'sh boot's to 'perl boot'
3583Ian Lynagh <igloo@earth.li>**20100516122609
3584 Spotted by Marco Túlio Gontijo e Silva
3585]
3586[add missing initialisation for eventBufMutex
3587Simon Marlow <marlowsd@gmail.com>**20100514094943
3588 Ignore-this: 7f75594a8cb54fbec5aebd46bb959f45
3589]
3590[Undo part of #4003 patch
3591Simon Marlow <marlowsd@gmail.com>**20100513142017
3592 Ignore-this: cb65db86a38a7e5ccee9f779e489d104
3593 We still need the workaround for when compiling HEAD with 6.12.2
3594 
3595]
3596[Fix makefile loop (#4050)
3597pho@cielonegro.org**20100507140707
3598 Ignore-this: 3a1cb13d0600977e74d17ac26cbef83d
3599 
3600 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.
3601]
3602[fix !TABLES_NEXT_TO_CODE
3603Simon Marlow <marlowsd@gmail.com>**20100510151934
3604 Ignore-this: fccb859b114bef1c3122c98e60af51
3605]
3606[looksLikeModuleName: allow apostrophe in module names (#4051)
3607Simon Marlow <marlowsd@gmail.com>**20100510094741
3608 Ignore-this: df9348f3ba90608bec57257b47672985
3609]
3610[add the proper library dependencies for GhcProfiled=YES
3611Simon Marlow <marlowsd@gmail.com>**20100506122118
3612 Ignore-this: 6236993aa308ab5b5e1e5ea5f65982a
3613]
3614[Fix Trac #4003: fix the knot-tying in checkHiBootIface
3615simonpj@microsoft.com**20100511075026
3616 Ignore-this: a9ce2a318386fdc8782848df84592002
3617 
3618 I had incorrectly "optimised" checkHiBootIface so that it forgot
3619 to update the "knot-tied" type environment.
3620 
3621 This patch fixes the HEAD
3622]
3623[Re-engineer the derived Ord instance generation code (fix Trac #4019)
3624simonpj@microsoft.com**20100510133333
3625 Ignore-this: 8fe46e4dad27fbee211a7928acf372c2
3626   
3627 As well as fixing #4019, I rejigged the way that Ord instances are
3628 generated, which should make them faster in general.  See the
3629 Note [Generating Ord instances].
3630 
3631 I tried to measure the performance difference from this change, but
3632 the #4019 fix only removes one conditional branch per iteration, and
3633 I couldn't measure a consistent improvement.  But still, tihs is
3634 better than before.
3635]
3636[Make arity of INLINE things consistent
3637simonpj@microsoft.com**20100510133005
3638 Ignore-this: 15e7abf803d1dcb3f4ca760d2d939d0d
3639 
3640 We eta-expand things with INLINE pragmas;
3641 see Note [Eta-expanding INLINE things].
3642 
3643 But I eta-expanded it the wrong amount when the function
3644 was overloaded.  Ooops.
3645]
3646[Compacting GC fix, we forgot to thread the new bq field of StgTSO.
3647Simon Marlow <marlowsd@gmail.com>**20100510082325
3648 Ignore-this: a079c8446e2ad53efff6fd95d0f3ac80
3649]
3650[Add version constraints for the boot packages; fixes trac #3852
3651Ian Lynagh <igloo@earth.li>**20100509175051
3652 When using the bootstrapping compiler, we now explicitly constrain
3653 the version of boot packages (Cabal, extensible-exceptions, etc) to the
3654 in-tree version, so that the build system is less fragile should the
3655 user have a newer version installed for the bootstrapping compiler.
3656]
3657[Don't include inter-package dependencies when compiling with stage 0; #4031
3658Ian Lynagh <igloo@earth.li>**20100509130511
3659 This fixes a problem when building with GHC 6.12 on Windows, where
3660 dependencies on stage 0 (bootstrapping compiler) packages have absolute
3661 paths c:/ghc/..., and make gets confused by the colon.
3662]
3663[Add a ghc.mk for bindisttest/
3664Ian Lynagh <igloo@earth.li>**20100508223911]
3665[Move some make variables around so they are available when cleaning
3666Ian Lynagh <igloo@earth.li>**20100508212405]
3667[Optimise checkremove a bit
3668Ian Lynagh <igloo@earth.li>**20100508202006]
3669[Improve the bindisttest Makefile
3670Ian Lynagh <igloo@earth.li>**20100508195450]
3671[Add tools to test that cleaning works properly
3672Ian Lynagh <igloo@earth.li>**20100508194105]
3673[Tweak the ghc-pkg finding code
3674Ian Lynagh <igloo@earth.li>**20100508125815
3675 It now understand the ghc-stage[123] names we use in-tree, and it won't
3676 go looking for any old ghc-pkg if it can't find the one that matches
3677 ghc.
3678]
3679[Add a way to show what cleaning would be done, without actually doing it
3680Ian Lynagh <igloo@earth.li>**20100508122438]
3681[Tidy up the "rm" flags in the build system
3682Ian Lynagh <igloo@earth.li>**20100508115745]
3683[Fix crash in nested callbacks (#4038)
3684Simon Marlow <marlowsd@gmail.com>**20100507093222
3685 Ignore-this: cade85e361534ce711865a4820276388
3686 Broken by "Split part of the Task struct into a separate struct
3687 InCall".
3688]
3689[Add $(GhcDynamic) knob, set to YES to get stage2 linked with -dynamic
3690Simon Marlow <marlowsd@gmail.com>**20100428205241
3691 Ignore-this: 1db8bccf92099785ecac39aebd27c92d
3692 Default currently NO.
3693 
3694 Validate passed with GhcDynamic=YES on x86/Linux here.
3695 
3696 The compiler is currently slower on x86 when linked -dynamic,
3697 because the GC inner loop has been adversely affected by -fPIC, I'm
3698 looking into how to fix it.
3699]
3700[omit "dyn" from the way appended to the __stginit label
3701Simon Marlow <marlowsd@gmail.com>**20100428204914
3702 Ignore-this: 14183f3defa9f2bde68fda6729b740bc
3703 When GHCi is linked dynamically, we still want to be able to load
3704 non-dynamic object files.
3705]
3706[improvements to findPtr(), a neat hack for browsing the heap in gdb
3707Simon Marlow <marlowsd@gmail.com>**20100506115427
3708 Ignore-this: ac57785bb3e13b97a5945f753f068738
3709]
3710[Fix +RTS -G1
3711Simon Marlow <marlowsd@gmail.com>**20100506110739
3712 Ignore-this: 86a5de39a94d3331a4ee1213f82be497
3713]
3714[Enable the "redundant specialise pragmas" warning; fixes trac #3855
3715Ian Lynagh <igloo@earth.li>**20100506175351]
3716[Find the correct external ids when there's a wrapper
3717simonpj@microsoft.com**20100506164135
3718 Ignore-this: 636266407b174b05b2b8646cc73062c0
3719 
3720 We were failing to externalise the wrapper id for a function
3721 that had one.
3722]
3723[Add a comment about pattern coercions
3724simonpj@microsoft.com**20100506164027
3725 Ignore-this: 17428089f3df439f65d892e23e8ed61a
3726]
3727[Comments only
3728simonpj@microsoft.com**20100506163829
3729 Ignore-this: 169167b6463873ab173cc5750c5be469
3730]
3731[Make a missing name in mkUsageInfo into a panic
3732simonpj@microsoft.com**20100506163813
3733 Ignore-this: b82ff1b8bf89f74f146db7cb5cc4c4d7
3734 
3735 We really want to know about this!
3736]
3737[Refactoring of hsXxxBinders
3738simonpj@microsoft.com**20100506163737
3739 Ignore-this: 97c6667625262b160f9746f7bea1c980
3740 
3741 This patch moves various functions that extract the binders
3742 from a HsTyClDecl, HsForeignDecl etc into HsUtils, and gives
3743 them consistent names.
3744]
3745[Fix Trac #3966: warn about useless UNPACK pragmas
3746simonpj@microsoft.com**20100506163337
3747 Ignore-this: 5beb24b686eda6113b614dfac8490df1
3748 
3749 Warning about useless UNPACK pragmas wasn't as easy as I thought.
3750 I did quite a bit of refactoring, which improved the code by refining
3751 the types somewhat.  In particular notice that in DataCon, we have
3752 
3753     dcStrictMarks   :: [HsBang]
3754     dcRepStrictness :: [StrictnessMarks]
3755 
3756 The former relates to the *source-code* annotation, the latter to
3757 GHC's representation choice.
3758]
3759[Make tcg_dus behave more sanely; fixes a mkUsageInfo panic
3760simonpj@microsoft.com**20100506162719
3761 Ignore-this: d000bca15b0e127e297378ded1bfb81b
3762 
3763 The tcg_dus field used to contain *uses* of type and class decls,
3764 but not *defs*.  That was inconsistent, and it really went wrong
3765 for Template Haskell bracket.  What happened was that
3766  foo = [d| data A = A
3767                   f :: A -> A
3768                   f x = x |]
3769 would find a "use" of A when processing the top level of the module,
3770 which in turn led to a mkUsageInfo panic in MkIface.  The cause was
3771 the fact that the tcg_dus for the nested quote didn't have defs for
3772 A.
3773]
3774[Add a HsExplicitFlag to SpliceDecl, to improve Trac #4042
3775simonpj@microsoft.com**20100506161523
3776 Ignore-this: e4e563bac2fd831cc9e94612f5b4fa9d
3777 
3778 The issue here is that
3779 
3780     g :: A -> A
3781     f
3782     data A = A
3783 
3784 is treated as if you'd written $(f); that is the call of
3785 f is a top-level Template Haskell splice.  This patch
3786 makes sure that we *first* check the -XTemplateHaskellFlag
3787 and bleat about a parse error if it's off.  Othewise we
3788 get strange seeing "A is out of scope" errors.
3789]
3790[Change an assert to a warn
3791simonpj@microsoft.com**20100506161111
3792 Ignore-this: 739a4fb4c7940376b0f2c8ad52a1966c
3793 
3794 This is in the constraint simplifier which I'm about
3795 to rewrite, so I'm hoping the assert isn't fatal!
3796]
3797[Tidy up debug print a little
3798simonpj@microsoft.com**20100506161027
3799 Ignore-this: bd5492878e06bee1cddcbb3fc4df66d8
3800]
3801[Remove useless UNPACK pragmas
3802simonpj@microsoft.com**20100506161012
3803 Ignore-this: 3e5ab1a7cf58107034412a798bc214e5
3804]
3805[Add WARNM2 macro, plus some refactoring
3806simonpj@microsoft.com**20100506160808
3807 Ignore-this: 2ab4f1f0b5d94be683036e77aec09255
3808]
3809[Use -Wwarn for the binary package, becuase it has redundant UNPACK pragmas
3810simonpj@microsoft.com**20100506160750
3811 Ignore-this: cf0d3a11473e28bfce9602e716e69a5f
3812]
3813[Fix Trac #3966: warn about unused UNPACK pragmas
3814simonpj@microsoft.com**20100409201812
3815 Ignore-this: c96412596b39c918b5fb9b3c39ce2119
3816]
3817[Fix Trac #3953: fail earlier when using a bogus quasiquoter
3818simonpj@microsoft.com**20100409201748
3819 Ignore-this: ef48e39aa932caed538643985234f043
3820]
3821[Fix Trac #3965: tighten conditions when deriving Data
3822simonpj@microsoft.com**20100409184420
3823 Ignore-this: 96f7d7d2da11565d26b465d7d0497ac9
3824 
3825 It's tricky to set up the context for a Data instance.  I got it wrong
3826 once, and fixed it -- hence the "extra_constraints" in
3827 TcDeriv.inferConstraints. 
3828 
3829 But it still wasn't right!  The tricky bit is that dataCast1 is only
3830 generated when T :: *->*, and dataCast2 when T :: *->*->*. (See
3831 the code in TcGenDeriv for dataCastX.
3832]
3833[Fix Trac #3964: view patterns in DsArrows
3834simonpj@microsoft.com**20100409165557
3835 Ignore-this: d823c182831d5e2e592e995b16180e2f
3836 
3837 Just a missing case; I've eliminated the catch-all so
3838 that we get a warning next time we extend HsPat
3839]
3840[Fix Trac #3955: renamer and type variables
3841simonpj@microsoft.com**20100409163710
3842 Ignore-this: bd5ec64d76c0f583bf5f224792bf294c
3843 
3844 The renamer wasn't computing the free variables of a type declaration
3845 properly.  This patch refactors a bit, and makes it more robust,
3846 fixing #3955 and several other closely-related bugs.  (We were
3847 omitting some free variables and that could just possibly lead to a
3848 usage-version tracking error.
3849]
3850[Layout only
3851simonpj@microsoft.com**20100409163506
3852 Ignore-this: 1f14990b5aa0b9821b84452fb34e9f41
3853]
3854[Give a better deprecated message for INCLUDE pragmas; fixes #3933
3855Ian Lynagh <igloo@earth.li>**20100506130910
3856 We now have a DeprecatedFullText constructor, so we can override the
3857 "-#include is deprecated: " part of the warning.
3858]
3859[De-haddock a comment that confuses haddock
3860Ian Lynagh <igloo@earth.li>**20100506123607]
3861[Fix comment to not confuse haddock
3862Ian Lynagh <igloo@earth.li>**20100506113642]
3863[Detect EOF when trying to parse a string in hp2ps
3864Ian Lynagh <igloo@earth.li>**20100506000830]
3865[Make the demand analyser sdd demands for strict constructors
3866simonpj@microsoft.com**20100505200936
3867 Ignore-this: eb32632adbc354eb7a5cf884c263e0d3
3868 
3869 This opportunity was spotted by Roman, and is documented in
3870 Note [Add demands for strict constructors] in DmdAnal.
3871]
3872[Fix interaction of exprIsCheap and the lone-variable inlining check
3873simonpj@microsoft.com**20100505200723
3874 Ignore-this: f3cb65085c5673a99153d5d7b6559ab1
3875 
3876 See Note [Interaction of exprIsCheap and lone variables] in CoreUnfold
3877 
3878 This buglet meant that a nullary definition with an INLINE pragma
3879 counter-intuitively didn't get inlined at all.  Roman identified
3880 the bug.
3881]
3882[Matching cases in SpecConstr and Rules
3883simonpj@microsoft.com**20100505200543
3884 Ignore-this: f5c28c780fbf8badce84c6fdc9aa1779
3885 
3886 This patch has zero effect.  It includes comments,
3887 a bit of refactoring, and a tiny bit of commment-out
3888 code go implement the "matching cases" idea below.
3889 
3890 In the end I've left it disabled because while I think
3891 it does no harm I don't think it'll do any good either.
3892 But I didn't want to lose the idea totally. There's
3893 a thread called "Storable and constant memory" on
3894 the libraries@haskell.org list (Apr 2010) about it.
3895 
3896 Note [Matching cases]
3897 ~~~~~~~~~~~~~~~~~~~~~
3898 {- NOTE: This idea is currently disabled.  It really only works if
3899          the primops involved are OkForSpeculation, and, since
3900         they have side effects readIntOfAddr and touch are not.
3901         Maybe we'll get back to this later .  -}
3902   
3903 Consider
3904    f (case readIntOffAddr# p# i# realWorld# of { (# s#, n# #) ->
3905       case touch# fp s# of { _ ->
3906       I# n# } } )
3907 This happened in a tight loop generated by stream fusion that
3908 Roman encountered.  We'd like to treat this just like the let
3909 case, because the primops concerned are ok-for-speculation.
3910 That is, we'd like to behave as if it had been
3911    case readIntOffAddr# p# i# realWorld# of { (# s#, n# #) ->
3912    case touch# fp s# of { _ ->
3913    f (I# n# } } )
3914]
3915[Comments only
3916simonpj@microsoft.com**20100504163629
3917 Ignore-this: 3be12df04714aa820bce706b5dc8a9cb
3918]
3919[Comments only
3920simonpj@microsoft.com**20100504163529
3921 Ignore-this: 791e2fd39c7d880ce1dc80ebdf3a5398
3922]
3923[Comments only
3924simonpj@microsoft.com**20100504163457
3925 Ignore-this: f19e9ffeb3d65770b1595bca5f97a59d
3926]
3927[Comments only (about type families)
3928simonpj@microsoft.com**20100417145032
3929 Ignore-this: dd39425ef2155d52dbf55a4d5fd97cb8
3930]
3931[Fix hp2ps when the .hp file has large string literals
3932Ian Lynagh <igloo@earth.li>**20100505191921]
3933[In build system, call package-config after including package data
3934Ian Lynagh <igloo@earth.li>**20100504225035
3935 Otherwise the $1_$2_HC_OPTS variable gets clobbered.
3936]
3937[runghc: flush stdout/stderr on an exception (#3890)
3938Simon Marlow <marlowsd@gmail.com>**20100505133848
3939 Ignore-this: 224c1898cec64cb1c94e0d7033e7590e
3940]
3941[Remove the Unicode alternative for ".." (#3894)
3942Simon Marlow <marlowsd@gmail.com>**20100505121202
3943 Ignore-this: 2452cd67281667106f9169747b6d784f
3944]
3945[tidyup; no functional changes
3946Simon Marlow <marlowsd@gmail.com>**20100505115015
3947 Ignore-this: d0787e5cdeef1dee628682fa0a46019
3948]
3949[Make the running_finalizers flag task-local
3950Simon Marlow <marlowsd@gmail.com>**20100505114947
3951 Ignore-this: 345925d00f1dca203941b3c5d84c90e1
3952 Fixes a bug reported by Lennart Augustsson, whereby we could get an
3953 incorrect error from the RTS about re-entry from a finalizer,
3954]
3955[add a MAYBE_GC() in killThread#, fixes throwto003(threaded2) looping
3956Simon Marlow <marlowsd@gmail.com>**20100505114746
3957 Ignore-this: efea04991d6feed04683a42232fc85da
3958]
3959[Allow filepath-1.2.*
3960Simon Marlow <marlowsd@gmail.com>**20100505101139
3961 Ignore-this: 1b5580cd9cd041ec48f40cd37603326a
3962]
3963[BlockedOnMsgThrowTo is possible in resurrectThreads (#4030)
3964Simon Marlow <marlowsd@gmail.com>**20100505094534
3965 Ignore-this: ac24a22f95ffeaf480187a1620fdddb2
3966]
3967[Don't raise a throwTo when the target is masking and BlockedOnBlackHole
3968Simon Marlow <marlowsd@gmail.com>**20100505094506
3969 Ignore-this: 302616931f61667030d77ddfbb02374e
3970]
3971[Fix build with GHC 6.10
3972Ian Lynagh <igloo@earth.li>**20100504180302
3973 In GHC 6.10, intersectionWith is (a -> b -> a) instead of (a -> b -> c),
3974 so we need to jump through some hoops to get the more general type.
3975]
3976[The libffi patches are no longer needed
3977Ian Lynagh <igloo@earth.li>**20100504171603]
3978[Use the in-tree windres; fixes trac #4032
3979Ian Lynagh <igloo@earth.li>**20100504170941]
3980[Print unfoldings on lambda-bound variables
3981Simon PJ <simonpj@microsoft.com>**20100503181822
3982 Ignore-this: 2fd5a7502cc6273d96258e0914f0f8cd
3983 
3984 ...in the unusual case where they have one;
3985 see Note [Case binders and join points] in Simplify.lhs
3986]
3987[Replace FiniteMap and UniqFM with counterparts from containers.
3988Milan Straka <fox@ucw.cz>**20100503171315
3989 Ignore-this: a021972239163dbf728284b19928cebb
3990 
3991 The original interfaces are kept. There is small performance improvement:
3992 - when compiling for five nofib, we get following speedups:
3993     Average                -----           -2.5%
3994     Average                -----           -0.6%
3995     Average                -----           -0.5%
3996     Average                -----           -5.5%
3997     Average                -----          -10.3%
3998 - when compiling HPC ten times, we get:
3999     switches                          oldmaps   newmaps
4000     -O -fasm                          117.402s  116.081s (98.87%)
4001     -O -fasm -fregs-graph             119.993s  118.735s (98.95%)
4002     -O -fasm -fregs-iterative         120.191s  118.607s (98.68%)
4003]
4004[Make the demand analyser take account of lambda-bound unfoldings
4005Simon PJ <simonpj@microsoft.com>**20100503151630
4006 Ignore-this: 2ee8e27d4df2debfc79e6b8a17c32bc1
4007 
4008 This is a long-standing lurking bug. See Note [Lamba-bound unfoldings]
4009 in DmdAnal.
4010 
4011 I'm still not really happy with this lambda-bound-unfolding stuff.
4012]
4013[Fix dynamic libs on OS X, and enable them by default
4014Ian Lynagh <igloo@earth.li>**20100503150302]
4015[Switch back to using bytestring from the darcs repo; partially fixes #3855
4016Ian Lynagh <igloo@earth.li>**20100502113458]
4017[Fix some cpp warnings when building on FreeBSD; patch from Gabor PALI
4018Ian Lynagh <igloo@earth.li>**20100428150700]
4019[Fix "make 2"
4020Ian Lynagh <igloo@earth.li>**20100427162212
4021 The new Makefile logic was enabling the stage 1 rules when stage=2,
4022 so "make 2" was rebuilding stage 1.
4023]
4024[Inplace programs depend on their shell wrappers
4025Ian Lynagh <igloo@earth.li>**20100427160038]
4026[--make is now the default (#3515), and -fno-code works with --make (#3783)
4027Simon Marlow <marlowsd@gmail.com>**20100427122851
4028 Ignore-this: 33330474fa4703f32bf9997462b4bf3c
4029 If the command line contains any Haskell source files, then we behave
4030 as if --make had been given.
4031 
4032 The meaning of the -c flag has changed (back): -c now selects one-shot
4033 compilation, but stops before linking.  However, to retain backwards
4034 compatibility, -c is still allowed with --make, and means the same as
4035 --make -no-link.  The -no-link flag has been un-deprecated.
4036 
4037 -fno-code is now allowed with --make (#3783); the fact that it was
4038 disabled before was largely accidental, it seems.  We also had some
4039 regressions in this area: it seems that -fno-code was causing a .hc
4040 file to be emitted in certain cases.  I've tidied up the code, there
4041 was no need for -fno-code to be a "mode" flag, as far as I can tell.
4042 
4043 -fno-code does not emit interface files, nor does it do recompilation
4044 checking, as suggested in #3783.  This would make Haddock emit
4045 interface files, for example, and I'm fairly sure we don't want to do
4046 that.  Compiling with -fno-code is pretty quick anyway, perhaps we can
4047 get away without recompilation checking.
4048]
4049[remove duplicate docs for -e in --help output (#4010)
4050Simon Marlow <marlowsd@gmail.com>**20100426140642
4051 Ignore-this: 187ff893ba8ffa0ec127867a7590e38d
4052]
4053[workaround for #4003, fixes HEAD build with 6.12.2
4054Simon Marlow <marlowsd@gmail.com>**20100426103428
4055 Ignore-this: c4bc445dc8052d4e6efef3f1daf63562
4056]
4057[Make sure all the clean rules are always included
4058Ian Lynagh <igloo@earth.li>**20100424181823
4059 In particular, this fixes a problem where stage3 bits weren't being cleaned
4060]
4061[Correct the name of the amd64/FreeBSD platform in PlatformSupportsSharedLibs
4062Ian Lynagh <igloo@earth.li>**20100424132830
4063 We weren't getting sharedlibs on amd64/FreeBSD because of this
4064]
4065[Include DPH docs in bindists
4066Ian Lynagh <igloo@earth.li>**20100424123101]
4067[reinstate eta-expansion during SimplGently, to fix inlining of sequence_
4068Simon Marlow <marlowsd@gmail.com>**20100423124853
4069 Ignore-this: 4fa0fd5bafe0d6b58fc81076f50d5f8d
4070]
4071[fix 64-bit value for W_SHIFT, which thankfully appears to be not used
4072Simon Marlow <marlowsd@gmail.com>**20100422213605
4073 Ignore-this: 525c062d2456c224ec8d0e083edd3b55
4074]
4075[Add missing constant folding and optimisation for unsigned division
4076Simon Marlow <marlowsd@gmail.com>**20100422213443
4077 Ignore-this: fb10d1cda0852fab0cbcb47247498fb3
4078 Noticed by Denys Rtveliashvili <rtvd@mac.com>, see #4004
4079]
4080[Fix the GHC API link in the main doc index.html
4081Ian Lynagh <igloo@earth.li>**20100422213226]
4082[Give the right exit code in darcs-all
4083Ian Lynagh <igloo@earth.li>**20100421171339
4084 Our END block was calling system, which alters $?. So now we save and
4085 restore it.
4086]
4087[Use StgWord64 instead of ullong
4088Ian Lynagh <igloo@earth.li>**20100421162336
4089 This patch also fixes ullong_format_string (renamed to showStgWord64)
4090 so that it works with values outside the 32bit range (trac #3979), and
4091 simplifies the without-commas case.
4092]
4093[Implement try10Times in Makefile
4094Ian Lynagh <igloo@earth.li>**20100420165909
4095 Avoid using seq, as FreeBSD has jot instead.
4096]
4097[Fix crash in non-threaded RTS on Windows
4098Simon Marlow <marlowsd@gmail.com>**20100420122125
4099 Ignore-this: 28b0255a914a8955dce02d89a7dfaca
4100 The tso->block_info field is now overwritten by pushOnRunQueue(), but
4101 stg_block_async_info was assuming that it still held a pointer to the
4102 StgAsyncIOResult.  We must therefore save this value somewhere safe
4103 before putting the TSO on the run queue.
4104]
4105[Expand the scope of the event_buf_mutex to cover io_manager_event
4106Simon Marlow <marlowsd@gmail.com>**20100420122026
4107 Ignore-this: 185a6d84f7d4a35997f10803f6dacef1
4108 I once saw a failure that I think was due to a race on
4109 io_manager_event, this should fix it.
4110]
4111[Flags -auto and -auto-all operate only on functions not marked INLINE.
4112Milan Straka <fox@ucw.cz>**20100331191050
4113 Ignore-this: 3b63580cfcb3c33d62ad697c36d94d05
4114]
4115[Spelling correction for LANGUAGE pragmas
4116Max Bolingbroke <batterseapower@hotmail.com>**20100413192825
4117 Ignore-this: 311b51ba8d43f6c7fd32f48db9a88dee
4118]
4119[Update the user guide so it talks about the newer "do rec" notation everywhere
4120Ian Lynagh <igloo@earth.li>**20100416205416
4121 Some of the problems highlighted in trac #3968.
4122]
4123[Fix typo
4124Ian Lynagh <igloo@earth.li>**20100416205412]
4125[Fix Trac #3950: unifying types of different kinds
4126simonpj@microsoft.com**20100412151845
4127 Ignore-this: d145b9de5ced136ef2c39f3ea4a04f4a
4128 
4129 I was assuming that the unifer only unified types of the
4130 same kind, but now we can "defer" unsolved constraints that
4131 invariant no longer holds.  Or at least is's more complicated
4132 to ensure. 
4133 
4134 This patch takes the path of not assuming the invariant, which
4135 is simpler and more robust.  See
4136 Note [Mismatched type lists and application decomposition]
4137]
4138[Fix Trac #3943: incorrect unused-variable warning
4139simonpj@microsoft.com**20100412151630
4140 Ignore-this: 52459f2b8b02c3cb120abe674dc9a060
4141 
4142 In fixing this I did the usual little bit of refactoring
4143]
4144[Convert boot and boot-pkgs to perl
4145Ian Lynagh <igloo@earth.li>**20100415143919
4146 This stops us having to worry about sh/sed/... portability.
4147]
4148[Use $(MAKE), not make, when recursively calling make
4149Ian Lynagh <igloo@earth.li>**20100415121453]
4150[Remove the ghc_ge_609 makefile variables
4151Ian Lynagh <igloo@earth.li>**20100412235658
4152 They are now guaranteed to be YES
4153]
4154[Increase the minimum version number required to 6.10 in configure.ac
4155Ian Lynagh <igloo@earth.li>**20100412235313]
4156[The bootstrapping compiler is now required to be > 609
4157Ian Lynagh <igloo@earth.li>**20100409161046]
4158[Handle IND_STATIC in isRetainer
4159Ian Lynagh <igloo@earth.li>**20100409104207
4160 IND_STATIC used to be an error, but at the moment it can happen
4161 as isAlive doesn't look through IND_STATIC as it ignores static
4162 closures. See trac #3956 for a program that hit this error.
4163]
4164[Add Data and Typeable instances to HsSyn
4165David Waern <david.waern@gmail.com>**20100330011020
4166 Ignore-this: c3f2717207b15539fea267c36b686e6a
4167 
4168 The instances (and deriving declarations) have been taken from the ghc-syb
4169 package.
4170]
4171[Fix for derefing ThreadRelocated TSOs in MVar operations
4172Simon Marlow <marlowsd@gmail.com>**20100407092824
4173 Ignore-this: 94dd7c68a6094eda667e2375921a8b78
4174]
4175[sanity check fix
4176Simon Marlow <marlowsd@gmail.com>**20100407092746
4177 Ignore-this: 9c18cd5f5393e5049015ca52e62a1269
4178]
4179[get the reg liveness right in the putMVar# heap check
4180Simon Marlow <marlowsd@gmail.com>**20100407092724
4181 Ignore-this: b1ba07a59ecfae00e9a1f8391741abc
4182]
4183[initialise the headers of MSG_BLACKHOLE objects properly
4184Simon Marlow <marlowsd@gmail.com>**20100407081712
4185 Ignore-this: 183dcd0ca6a395d08db2be12b02bdd79
4186]
4187[initialise the headers of MVAR_TSO_QUEUE objects properly
4188Simon Marlow <marlowsd@gmail.com>**20100407081514
4189 Ignore-this: 4b4a2f30cf2fb69ca4128c41744687bb
4190]
4191[undo debugging code
4192Simon Marlow <marlowsd@gmail.com>**20100406142740
4193 Ignore-this: 323c2248f817b6717c19180482fc4b00
4194]
4195[putMVar#: fix reg liveness in the heap check
4196Simon Marlow <marlowsd@gmail.com>**20100406135832
4197 Ignore-this: cddd2c7807ac7612c9b2c4c0d384d284
4198]
4199[account for the new BLACKHOLEs in the GHCi debugger
4200Simon Marlow <marlowsd@gmail.com>**20100406133406
4201 Ignore-this: 4d4aeb4bbada3f50dc1fb0123f565e8f
4202]
4203[don't forget to deRefTSO() in tryWakeupThread()
4204Simon Marlow <marlowsd@gmail.com>**20100406130411
4205 Ignore-this: 171d57c4f8653835dec0b69f9be9881c
4206]
4207[Fix bug in popRunQueue
4208Simon Marlow <marlowsd@gmail.com>**20100406091453
4209 Ignore-this: 9d3cec8f18f5c5cbd51751797386eb6f
4210]
4211[fix bug in migrateThread()
4212Simon Marlow <marlowsd@gmail.com>**20100401105840
4213 Ignore-this: 299bcf0d1ea0f8865f3e845eb93d2ad3
4214]
4215[Remove the IND_OLDGEN and IND_OLDGEN_PERM closure types
4216Simon Marlow <marlowsd@gmail.com>**20100401093519
4217 Ignore-this: 95f2480c8a45139835eaf5610217780b
4218 These are no longer used: once upon a time they used to have different
4219 layout from IND and IND_PERM respectively, but that is no longer the
4220 case since we changed the remembered set to be an array of addresses
4221 instead of a linked list of closures.
4222]
4223[Change the representation of the MVar blocked queue
4224Simon Marlow <marlowsd@gmail.com>**20100401091605
4225 Ignore-this: 20a35bfabacef2674df362905d7834fa
4226 
4227 The list of threads blocked on an MVar is now represented as a list of
4228 separately allocated objects rather than being linked through the TSOs
4229 themselves.  This lets us remove a TSO from the list in O(1) time
4230 rather than O(n) time, by marking the list object.  Removing this
4231 linear component fixes some pathalogical performance cases where many
4232 threads were blocked on an MVar and became unreachable simultaneously
4233 (nofib/smp/threads007), or when sending an asynchronous exception to a
4234 TSO in a long list of thread blocked on an MVar.
4235 
4236 MVar performance has actually improved by a few percent as a result of
4237 this change, slightly to my surprise.
4238 
4239 This is the final cleanup in the sequence, which let me remove the old
4240 way of waking up threads (unblockOne(), MSG_WAKEUP) in favour of the
4241 new way (tryWakeupThread and MSG_TRY_WAKEUP, which is idempotent).  It
4242 is now the case that only the Capability that owns a TSO may modify
4243 its state (well, almost), and this simplifies various things.  More of
4244 the RTS is based on message-passing between Capabilities now.
4245]
4246[eliminate some duplication with a bit of CPP
4247Simon Marlow <marlowsd@gmail.com>**20100330154355
4248 Ignore-this: 838f7d341f096ca14c86ab9c81193e36
4249]
4250[Make ioManagerDie() idempotent
4251Simon Marlow <marlowsd@gmail.com>**20100401100705
4252 Ignore-this: a5996b43cdb2e2d72e6e971d7ea925fb
4253 Avoids screeds of "event buffer overflowed; event dropped" in
4254 conc059(threaded1).
4255]
4256[Move a thread to the front of the run queue when another thread blocks on it
4257Simon Marlow <marlowsd@gmail.com>**20100329144521
4258 Ignore-this: c518ff0d41154680edc811d891826a29
4259 This fixes #3838, and was made possible by the new BLACKHOLE
4260 infrastructure.  To allow reording of the run queue I had to make it
4261 doubly-linked, which entails some extra trickiness with regard to
4262 GC write barriers and suchlike.
4263]
4264[remove non-existent MUT_CONS symbols
4265Simon Marlow <marlowsd@gmail.com>**20100330152600
4266 Ignore-this: 885628257a9d03f2ece2a754d993014a
4267]
4268[change throwTo to use tryWakeupThread rather than unblockOne
4269Simon Marlow <marlowsd@gmail.com>**20100329144613
4270 Ignore-this: 10ad4965e6c940db71253f1c72218bbb
4271]
4272[tiny GC optimisation
4273Simon Marlow <marlowsd@gmail.com>**20100329144551
4274 Ignore-this: 9e095b9b73fff0aae726f9937846ba92
4275]
4276[New implementation of BLACKHOLEs
4277Simon Marlow <marlowsd@gmail.com>**20100329144456
4278 Ignore-this: 96cd26793b4e6ab9ddd0d59aae5c2f1d
4279 
4280 This replaces the global blackhole_queue with a clever scheme that
4281 enables us to queue up blocked threads on the closure that they are
4282 blocked on, while still avoiding atomic instructions in the common
4283 case.
4284 
4285 Advantages:
4286 
4287  - gets rid of a locked global data structure and some tricky GC code
4288    (replacing it with some per-thread data structures and different
4289    tricky GC code :)
4290 
4291  - wakeups are more prompt: parallel/concurrent performance should
4292    benefit.  I haven't seen anything dramatic in the parallel
4293    benchmarks so far, but a couple of threading benchmarks do improve
4294    a bit.
4295 
4296  - waking up a thread blocked on a blackhole is now O(1) (e.g. if
4297    it is the target of throwTo).
4298 
4299  - less sharing and better separation of Capabilities: communication
4300    is done with messages, the data structures are strictly owned by a
4301    Capability and cannot be modified except by sending messages.
4302 
4303  - this change will utlimately enable us to do more intelligent
4304    scheduling when threads block on each other.  This is what started
4305    off the whole thing, but it isn't done yet (#3838).
4306 
4307 I'll be documenting all this on the wiki in due course.
4308 
4309]
4310[Fix warnings (allow pushOnRunQueue() to not be inlined)
4311Simon Marlow <marlowsd@gmail.com>**20100401114559
4312 Ignore-this: f40bfbfad70a5165a946d11371605b7d
4313]
4314[remove out of date comment
4315Simon Marlow <marlowsd@gmail.com>**20100401105853
4316 Ignore-this: 26af88dd418ee0bcda7223b3b7e4e8d2
4317]
4318[tidy up spacing in stderr traces
4319Simon Marlow <marlowsd@gmail.com>**20100326163122
4320 Ignore-this: 16558b0433a274be217d4bf39aa4946
4321]
4322[Fix an assertion that was not safe when running in parallel
4323Simon Marlow <marlowsd@gmail.com>**20100325143656
4324 Ignore-this: cad08fb8900eb3a475547af0189fcc47
4325]
4326[Never jump directly to a thunk's entry code, even if it is single-entry
4327Simon Marlow <marlowsd@gmail.com>**20100325114847
4328 Ignore-this: 938da172c06a97762ef605c8fccfedf1
4329 I don't think this fixes any bugs as we don't have single-entry thunks
4330 at the moment, but it could cause problems for parallel execution if
4331 we ever did re-introduce update avoidance.
4332]
4333[Rename forgotten -dverbose-simpl to -dverbose-core2core in the docs.
4334Milan Straka <fox@ucw.cz>**20100331153626
4335 Ignore-this: 2da58477fb96e1cfb80f37dddd7c422c
4336]
4337[Add -pa and -V to the documentation of time profiling options.
4338Milan Straka <fox@ucw.cz>**20100329191121
4339 Ignore-this: be74d216481ec5a19e5f40f85e6e3d65
4340]
4341[Keep gcc 4.5 happy
4342Simon Marlow <marlowsd@gmail.com>**20100330120425
4343 Ignore-this: 7811878cc2bd1ce9cfbb5bf102fe3454
4344]
4345[Fix warning compiling Linker.c for PPC Mac
4346naur@post11.tele.dk**20100403182355
4347 Ignore-this: e2d2448770c9714ce17dd6cf3e297063
4348 The warning message eliminated is:
4349 > rts/Linker.c:4756:0:
4350 >      warning: nested extern declaration of 'symbolsWithoutUnderscore'
4351]
4352[Fix error compiling AsmCodeGen.lhs for PPC Mac (mkRtsCodeLabel)
4353naur@post11.tele.dk**20100403181656
4354 Ignore-this: deb7524ea7852a15a2ac0849c8c82f74
4355 The error messages eliminated are:
4356 > compiler/nativeGen/AsmCodeGen.lhs:875:31:
4357 >     Not in scope: `mkRtsCodeLabel'
4358 > compiler/nativeGen/AsmCodeGen.lhs:879:31:
4359 >     Not in scope: `mkRtsCodeLabel'
4360 > compiler/nativeGen/AsmCodeGen.lhs:883:31:
4361 >     Not in scope: `mkRtsCodeLabel'
4362]
4363[Fix error compiling AsmCodeGen.lhs for PPC Mac (DestBlockId)
4364naur@post11.tele.dk**20100403180643
4365 Ignore-this: 71e833e94ed8371b2ffabc2cf80bf585
4366 The error message eliminated is:
4367 > compiler/nativeGen/AsmCodeGen.lhs:637:16:
4368 >     Not in scope: data constructor `DestBlockId'
4369]
4370[Fix boot-pkgs's sed usage to work with Solaris's sed
4371Ian Lynagh <igloo@earth.li>**20100401153441]
4372[Pass "-i org.haskell.GHC" to packagemaker when building the OS X installer
4373Ian Lynagh <igloo@earth.li>**20100331144707
4374 This seems to fix this failure:
4375 [...]
4376 ** BUILD SUCCEEDED **
4377 rm -f -f GHC-system.pmdoc/*-contents.xml
4378 /Developer/usr/bin/packagemaker -v --doc GHC-system.pmdoc\
4379              -o /Users/ian/to_release/ghc-6.12.1.20100330/GHC-6.12.1.20100330-i386.pkg
4380 2010-03-31 15:08:15.695 packagemaker[13909:807] Setting to : 0 (null)
4381 2010-03-31 15:08:15.709 packagemaker[13909:807] Setting to : 0 org.haskell.glasgowHaskellCompiler.ghc.pkg
4382 2010-03-31 15:08:15.739 packagemaker[13909:807] relocate: (null) 0
4383 2010-03-31 15:08:15.740 packagemaker[13909:807] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSXMLDocument initWithXMLString:options:error:]: nil argument'
4384 2010-03-31 15:08:15.741 packagemaker[13909:807] Stack: (
4385     2511962091,
4386     2447007291,
4387     2511961547,
4388     2511961610,
4389     2432803204,
4390     453371,
4391     447720,
4392     436209,
4393     435510,
4394     9986,
4395     9918
4396 )
4397 make[1]: *** [framework-pkg] Trace/BPT trap
4398 make: *** [framework-pkg] Error 2
4399]
4400[Use machdepCCOpts when compiling the file to toggle -(no-)rtsopts
4401Ian Lynagh <igloo@earth.li>**20100331161302
4402 Should fix toggling on OS X "Snow Leopard". Diagnosed by Roman Leshchinskiy.
4403]
4404[Avoid a non-portable use of tar reported by Roman Leshchinskiy
4405Ian Lynagh <igloo@earth.li>**20100330145802]
4406[Don't install EXTRA_PACKAGES by default
4407Simon Marlow <marlowsd@gmail.com>**20100330142714
4408 Ignore-this: d4cc8f87a6de8d9d1d6dc9b77130b3
4409]
4410[fix a non-portable printf format
4411Simon Marlow <marlowsd@gmail.com>**20100330134437
4412 Ignore-this: d41c23c54ec29654cb2049de1e588570
4413]
4414[avoid single quote in #error
4415Simon Marlow <marlowsd@gmail.com>**20100330120346
4416 Ignore-this: 663f39e7a27fead2f648fbf22d345bb4
4417]
4418[use FMT_Word64 instead of locally-defined version
4419Simon Marlow <marlowsd@gmail.com>**20100330114650
4420 Ignore-this: 82697b8095dffb3a8e196c687006ece0
4421]
4422[remove old/unused DotnetSupport and GhcLibsWithUnix
4423Simon Marlow <marlowsd@gmail.com>**20100330123732
4424 Ignore-this: c68814868b3671abdc369105bbeafe6c
4425]
4426[fix return type cast in f.i.wrapper when using libffi (#3516)
4427Simon Marlow <marlowsd@gmail.com>**20100329154220
4428 Ignore-this: f898eb8c9ae2ca2009e539735b92c438
4429 
4430 Original fix submitted by
4431   Sergei Trofimovich <slyfox@community.haskell.org>
4432 modified by me:
4433  - exclude 64-bit types
4434  - compare uniques, not strings
4435  - #include "ffi.h" is conditional
4436]
4437[libffi: install 'ffitarget.h' header as sole 'ffi.h' is unusable
4438Simon Marlow <marlowsd@gmail.com>**20100329135734
4439 Ignore-this: f9b555ea289d8df1aa22cb6faa219a39
4440 Submitted by: Sergei Trofimovich <slyfox@community.haskell.org>
4441 Re-recorded against HEAD.
4442]
4443[avoid a fork deadlock (see comments)
4444Simon Marlow <marlowsd@gmail.com>**20100329132329
4445 Ignore-this: 3377f88b83bb3b21e42d7fc5f0d866f
4446]
4447[tidy up the end of the all_tasks list after forking
4448Simon Marlow <marlowsd@gmail.com>**20100329132253
4449 Ignore-this: 819d679875be5f344e816210274d1c29
4450]
4451[Add a 'setKeepCAFs' external function (#3900)
4452Simon Marlow <marlowsd@gmail.com>**20100329110036
4453 Ignore-this: ec532a18cad4259a09847b0b9ae2e1d2
4454]
4455[Explicitly check whether ar supports the @file syntax
4456Ian Lynagh <igloo@earth.li>**20100329123325
4457 rather than assuming that all GNU ar's do.
4458 Apparently OpenBSD's older version doesn't.
4459]
4460[Fix the format specifier for Int64/Word64 on Windows
4461Ian Lynagh <igloo@earth.li>**20100327182126
4462 mingw doesn't understand %llu/%lld - it treats them as 32-bit rather
4463 than 64-bit. We use %I64u/%I64d instead.
4464]
4465[Fix the ghci startmenu item
4466Ian Lynagh <igloo@earth.li>**20100326235934
4467 I'm not sure what changed, but it now doesn't work for me without
4468 the "Start in" field being set.
4469]
4470[Fix paths to docs in "Start Menu" entries in Windows installer; fixes #3847
4471Ian Lynagh <igloo@earth.li>**20100326155917]
4472[Add a licence file for the Windows installer to use
4473Ian Lynagh <igloo@earth.li>**20100326155130]
4474[Add gcc-g++ to the inplace mingw installation; fixes #3893
4475Ian Lynagh <igloo@earth.li>**20100326154714]
4476[Add the licence file to the Windows installer. Fixes #3934
4477Ian Lynagh <igloo@earth.li>**20100326152449]
4478[Quote the paths to alex and happy in configure
4479Ian Lynagh <igloo@earth.li>**20100325143449
4480 Ignore-this: d6d6e1a250f88985bbeea760e63a79db
4481]
4482[Use </> rather than ++ "/"
4483Ian Lynagh <igloo@earth.li>**20100325133237
4484 This stops us generating paths like
4485     c:\foo\/ghc460_0/ghc460_0.o
4486 which windres doesn't understand.
4487]
4488[Append $(exeext) to utils/ghc-pkg_dist_PROG
4489Ian Lynagh <igloo@earth.li>**20100324233447
4490 Fixes bindist creation
4491]
4492[A sanity check
4493Simon Marlow <marlowsd@gmail.com>**20100325110500
4494 Ignore-this: 3b3b76d898c822456857e506b7531e65
4495]
4496[do_checks: do not set HpAlloc if the stack check fails
4497Simon Marlow <marlowsd@gmail.com>**20100325110328
4498 Ignore-this: 899ac8c29ca975d03952dbf4608d758
4499 
4500 This fixes a very rare heap corruption bug, whereby
4501 
4502  - a context switch is requested, which sets HpLim to zero
4503    (contextSwitchCapability(), called by the timer signal or
4504    another Capability).
4505 
4506  - simultaneously a stack check fails, in a code fragment that has
4507    both a stack and a heap check.
4508 
4509 The RTS then assumes that a heap-check failure has occurred and
4510 subtracts HpAlloc from Hp, although in fact it was a stack-check
4511 failure and retreating Hp will overwrite valid heap objects.  The bug
4512 is that HpAlloc should only be set when Hp has been incremented by the
4513 heap check.  See comments in rts/HeapStackCheck.cmm for more details.
4514 
4515 This bug is probably incredibly rare in practice, but I happened to be
4516 working on a test that triggers it reliably:
4517 concurrent/should_run/throwto001, compiled with -O -threaded, args 30
4518 300 +RTS -N2, run repeatedly in a loop.
4519]
4520[comments and formatting only
4521Simon Marlow <marlowsd@gmail.com>**20100325104617
4522 Ignore-this: c0a211e15b5953bb4a84771bcddd1d06
4523]
4524[Change how perl scripts get installed; partially fixes #3863
4525Ian Lynagh <igloo@earth.li>**20100324171422
4526 We now regenerate them when installing, which means the path for perl
4527 doesn't get baked in
4528]
4529[Pass the location of gcc in the ghc wrapper script; partially fixes #3863
4530Ian Lynagh <igloo@earth.li>**20100324171408
4531 This means we don't rely on baking a path to gcc into the executable
4532]
4533[Quote the ar path in configure
4534Ian Lynagh <igloo@earth.li>**20100324162043]
4535[Remove unused cUSER_WAY_NAMES cUSER_WAY_OPTS
4536Ian Lynagh <igloo@earth.li>**20100324145048]
4537[Remove unused cCONTEXT_DIFF
4538Ian Lynagh <igloo@earth.li>**20100324145013]
4539[Remove unused cEnableWin32DLLs
4540Ian Lynagh <igloo@earth.li>**20100324144841]
4541[Remove unused cGHC_CP
4542Ian Lynagh <igloo@earth.li>**20100324144656]
4543[Fix the build for non-GNU-ar
4544Ian Lynagh <igloo@earth.li>**20100324132907]
4545[Tweak the Makefile code for making .a libs; fixes trac #3642
4546Ian Lynagh <igloo@earth.li>**20100323221325
4547 The main change is that, rather than using "xargs ar" we now put
4548 all the filenames into a file, and do "ar @file". This means that
4549 ar adds all the files at once, which works around a problem where
4550 files with the same basename in a later invocation were overwriting
4551 the existing file in the .a archive.
4552]
4553[Enable shared libraries on Windows; fixes trac #3879
4554Ian Lynagh <igloo@earth.li>**20100320231414
4555 Ignore-this: c93b35ec5b7a7fa6ddb286d17a616216
4556]
4557[Add the external core PDF to the new build system
4558Ian Lynagh <igloo@earth.li>**20100321161909]
4559[Allow specifying $threads directly when validating
4560Ian Lynagh <igloo@earth.li>**20100321112835]
4561[Remove LazyUniqFM; fixes trac #3880
4562Ian Lynagh <igloo@earth.li>**20100320213837]
4563[UNDO: slight improvement to scavenging ...
4564Simon Marlow <marlowsd@gmail.com>**20100319153413
4565 Ignore-this: f0ab581c07361f7b57eae02dd6ec893c
4566 
4567 Accidnetally pushed this patch which, while it validates, isn't
4568 correct.
4569 
4570 rolling back:
4571 
4572 Fri Mar 19 11:21:27 GMT 2010  Simon Marlow <marlowsd@gmail.com>
4573   * slight improvement to scavenging of update frames when a collision has occurred
4574 
4575     M ./rts/sm/Scav.c -19 +15
4576]
4577[slight improvement to scavenging of update frames when a collision has occurred
4578Simon Marlow <marlowsd@gmail.com>**20100319112127
4579 Ignore-this: 6de2bb9614978975f17764a0f259d9bf
4580]
4581[Don't install the utf8-string package
4582Ian Lynagh <igloo@earth.li>**20100317212709]
4583[Don't use -Bsymbolic when linking the RTS
4584Ian Lynagh <igloo@earth.li>**20100316233357
4585 This makes the RTS hooks work when doing dynamic linking
4586]
4587[Fix Trac #3920: Template Haskell kinds
4588simonpj@microsoft.com**20100317123519
4589 Ignore-this: 426cac7920446e04f3cc30bd1d9f76e2
4590 
4591 Fix two places where we were doing foldl instead of foldr
4592 after decomposing a Kind.  Strange that the same bug appears
4593 in two quite different places!
4594]
4595[copy_tag_nolock(): fix write ordering and add a write_barrier()
4596Simon Marlow <marlowsd@gmail.com>**20100316143103
4597 Ignore-this: ab7ca42904f59a0381ca24f3eb38d314
4598 
4599 Fixes a rare crash in the parallel GC.
4600 
4601 If we copy a closure non-atomically during GC, as we do for all
4602 immutable values, then before writing the forwarding pointer we better
4603 make sure that the closure itself is visible to other threads that
4604 might follow the forwarding pointer.  I imagine this doesn't happen
4605 very often, but I just found one case of it: in scavenge_stack, the
4606 RET_FUN case, after evacuating ret_fun->fun we then follow it and look
4607 up the info pointer.
4608]
4609[Add sliceP mapping to vectoriser builtins
4610benl@ouroborus.net**20100316060517
4611 Ignore-this: 54c3cafff584006b6fbfd98124330aa3
4612]
4613[Comments only
4614benl@ouroborus.net**20100311064518
4615 Ignore-this: d7dc718cc437d62aa5b1b673059a9b22
4616]
4617[TAG 2010-03-16
4618Ian Lynagh <igloo@earth.li>**20100316005137
4619 Ignore-this: 234e3bc29e2f26cc59d7b03d780cc352
4620]
4621Patch bundle hash:
4622c42682046f0d6bb8a83eb7b13327b77a11fa908d