DarcsConversion: sync-all.darcs-patch

File sync-all.darcs-patch, 96.0 KB (added by batterseapower, 6 years ago)

sync-all, with GitHub? support and an overhauled interface

Line 
1Thu Aug  7 22:34:23 BST 2008  Max Bolingbroke <batterseapower@hotmail.com>
2  * Overhaul sync-all: now have an explicit darcs and git mode, and GitHub support
3
4New patches:
5
6[Overhaul sync-all: now have an explicit darcs and git mode, and GitHub support
7Max Bolingbroke <batterseapower@hotmail.com>**20080807213423] {
8hunk ./sync-all 5
9+use File::Path;
10hunk ./sync-all 16
11+# Fall back on getting our repositories from here if the
12+# first location does not work. This is necessary for
13+# e.g. GitHub support since we only host the GHC repo there.
14+my $fallbackrepo_base = "http://darcs.haskell.org";
15+
16hunk ./sync-all 40
17-my $get_mode;
18hunk ./sync-all 43
19-my $local_repo_unnecessary = 0;
20+my $get_mode;
21hunk ./sync-all 63
22+    my $location = getcwd;
23hunk ./sync-all 65
24-    message "== running $scm @_";
25-    system ($scm, @_) == 0
26-        or $ignore_failure
27-        or die "$scm failed: $?";
28+    message "== running $scm @_ in $location";
29+    my $scm_suceeded = system ($scm, @_) == 0;
30+   
31+    $scm_suceeded or $ignore_failure or die "$scm failed: $?";
32+    return $scm_suceeded;
33hunk ./sync-all 83
34-sub scmall {
35+sub bothscmall {
36hunk ./sync-all 86
37-    my $localpath;
38-    my $tag;
39-    my $remotepath;
40-    my $scm;
41-
42-    my $path;
43+    my $doing_get = 0;
44hunk ./sync-all 89
45-    my @scm_args;
46-
47hunk ./sync-all 93
48-            $localpath = $1;
49-            $tag = defined($2) ? $2 : "";
50-            $remotepath = $3;
51-            $scm = $4;
52+            my $localpath = $1;
53+            my $tag = defined($2) ? $2 : "";
54+            my $remotepath = $3;
55+            my $scm = $4;
56hunk ./sync-all 100
57-
58-            # Work out the path for this package in the repo we pulled from
59-            if ($checked_out_tree) {
60-                $path = "$defaultrepo_base/$localpath";
61-            }
62-            else {
63-                $path = "$defaultrepo_base/$remotepath";
64-            }
65hunk ./sync-all 102
66+            my @scm_args;
67hunk ./sync-all 104
68-                @scm_args = (($scm eq "darcs" and "whatsnew")
69-                          or ($scm eq "git" and "status"));
70+                @scm_args = $scm eq "darcs" ? "whatsnew" : "status";
71hunk ./sync-all 109
72-            elsif ($command =~ /^(?:pus|push)$/) {
73-                @scm_args = "push";
74+            elsif ($command =~ /^(?:pus|push|push-all)$/) {
75+                @scm_args = $scm eq "darcs" ? ("push", "-a") : "push";
76hunk ./sync-all 112
77-            elsif ($command =~ /^(?:pul|pull)$/) {
78-                @scm_args = "pull";
79-                # Q: should we append the -a argument for darcs repos?
80+            elsif ($command =~ /^(?:pul|pull|pull-all)$/) {
81+                @scm_args = $scm eq "darcs" ? ("pull", "-a") : "pull";
82hunk ./sync-all 121
83+                # DON'T remove this check without understanding the call to rmtree below
84hunk ./sync-all 128
85-                if (not defined($get_mode)) {
86+                if (!defined($get_mode) and $scm eq "darcs") {
87hunk ./sync-all 133
88-                # The only command that doesn't need a repo
89-                $local_repo_unnecessary = 1;
90+                # The only command that doesn't need a repo already
91+                $doing_get = 1;
92hunk ./sync-all 136
93-                if ($scm eq "darcs") {
94-                    # Note: we can only use the get-mode with darcs for now
95-                    @scm_args = ("get", $get_mode, $path, $localpath);
96-                }
97-                else {
98-                    @scm_args = ("clone", $path, $localpath);
99-                }
100+                # We do custom error handling for get
101+                $ignore_failure = 1;
102hunk ./sync-all 139
103-            elsif ($command =~ /^(?:s|se|sen|send)$/) {
104-                @scm_args = (($scm eq "darcs" and "send")
105-                          or ($scm eq "git" and "send-email"));
106+            elsif ($command =~ /^(?:s|se|sen|send|send-all)$/) {
107+                @scm_args = $scm eq "darcs" ? ("send", "-a") : "send-email";
108hunk ./sync-all 148
109-            if (repoexists ($scm, $localpath)) {
110+            if ($doing_get) {
111+                # Don't bother to change directory in this case
112+               
113+                # Work out the path for this package based on the repo we pulled from
114+                my @get_paths;
115+                if ($checked_out_tree) {
116+                    @get_paths = ("$defaultrepo_base/$localpath",
117+                                  "$fallbackrepo_base/$remotepath");
118+                }
119+                else {
120+                    @get_paths = ("$defaultrepo_base/$remotepath",
121+                                  "$fallbackrepo_base/$remotepath");
122+                }
123+               
124+                # Try to get the repo from each possible path
125+                my $get_path;
126+                my $get_succeeded = 0;
127+                foreach $get_path (@get_paths) {
128+                    # Setup the arguments
129+                    if ($scm eq "darcs") {
130+                        # Note: we can only use the get-mode with darcs for now
131+                        @scm_args = ("get", $get_mode, $get_path, $localpath);
132+                    }
133+                    else {
134+                        @scm_args = ("clone", $get_path, $localpath);
135+                    }
136+                   
137+                    $get_succeeded = scm ($scm, @scm_args);
138+                    if ($get_succeeded) {
139+                        # We're done!
140+                        last;
141+                    }
142+                    else {
143+                        warning("Get from $get_path failed, trying next alternative...");
144+                       
145+                        # Remove the entire directory tree created by the unsuccessful get.
146+                        # DON'T do this if the path existed before, as the user may have
147+                        # run the get accidentally with some work in their checkout. This
148+                        # is checked in one of the branches above.
149+                        rmtree($localpath);
150+                    }
151+                }
152+               
153+                if (!$get_succeeded) {
154+                    die "Could not get the $localpath repository from any known source"
155+                }
156+            }
157+            elsif (repoexists ($scm, $localpath)) {
158+                # Change to the directory and execute whatever the command is
159hunk ./sync-all 198
160-                scm ($scm, @scm_args, @_);
161+                scm ($scm, @scm_args);
162hunk ./sync-all 200
163-            elsif ($local_repo_unnecessary) {
164-                # Don't bother to change directory in this case
165-                scm ($scm, @scm_args, @_);
166+            elsif ($tag eq "") {
167+                message "== Required repo $localpath is missing! Skipping";
168+            }
169+            else {
170+                message "== $localpath repo not present; skipping";
171+            }
172+        }
173+        elsif (! /^(#.*)?$/) {
174+            die "Bad line: $_";
175+        }
176+    }
177+    close IN;
178+}
179+
180+sub onescmall {
181+    my $which_scm = shift;
182+   
183+    my $wd_before = getcwd;
184+   
185+    # Hack around whatsnew/status failing if there are no changes (ewww!)
186+    my $arg;
187+    foreach $arg (@_) {
188+        if ($arg =~ /whatsnew|status/) {
189+            $ignore_failure = 1;
190+        }
191+    }
192+   
193+    open IN, "< packages" or die "Can't open packages file";
194+    while (<IN>) {
195+        chomp;
196+        if (/^([^# ]+) +(?:([^ ]+) +)?([^ ]+) +([^ ]+)$/) {
197+            my $localpath = $1;
198+            my $tag = defined($2) ? $2 : "";
199+            my $remotepath = $3;
200+            my $scm = $4;
201+
202+            # Skip SCMs we aren't interested in
203+            next if $scm ne $which_scm;
204+
205+            # Issue the command directly if this is the right kind of SCM
206+            chdir $wd_before or die "Could not change to $wd_before";
207+            if (repoexists ($scm, $localpath)) {
208+                # Change to the directory and execute whatever the command is
209+                chdir $localpath or die "Could not change to $localpath";
210+                scm ($scm, @_);
211hunk ./sync-all 265
212-    while ($#_ ne -1) {
213-        my $arg = shift;
214-        # We handle -q here as well as lower down as we need to skip over it
215-        # if it comes before the source-control command
216-        if ($arg eq "-q") {
217-            $verbose = 1;
218-        }
219-        elsif ($arg eq "-s") {
220-            $verbose = 0;
221-        }
222-        elsif ($arg eq "--ignore-failure") {
223-            $ignore_failure = 1;
224+    # Discover the mode by consuming anything that is a mode flag from @_
225+    my $mode = "both";
226+    if ($#_ > 0) {
227+        my $mb_mode = shift;
228+        if ($mb_mode eq "-g" or $mb_mode eq "--git") {
229+            $mode = "git";
230hunk ./sync-all 272
231-        # --<tag> says we grab the libs tagged 'tag' with
232-        # 'get'. It has no effect on the other commands.
233-        elsif ($arg =~ m/^--/) {
234-            $arg =~ s/^--//;
235-            $tags{$arg} = 1;
236+        elsif ($mb_mode eq "-d" or $mb_mode eq "--darcs") {
237+            $mode = "darcs";
238hunk ./sync-all 275
239-        elsif ($arg eq "--complete" || $arg eq "--partial") {
240-            $get_mode = $arg;
241+        elsif ($mb_mode eq "--both") {
242+            $mode = "both";
243hunk ./sync-all 279
244-            unshift @_, $arg;
245-            if (grep /^-q$/, @_) {
246-                $verbose = 1;
247-            }
248-            last;
249+            unshift (@_, $mb_mode)
250hunk ./sync-all 287
251-Supported commands:
252hunk ./sync-all 288
253- * whatsnew
254- * push
255- * pull
256- * get, with options:
257-  * --<package-tag>
258-  * --complete
259-  * --partial
260- * send
261+Usage:
262+ * sync-all [<mode>] [<generic-options>] <command> [<command-options>]
263+
264+Modes of operation:
265+ * --both: the default. Issue the command to both Git and Darcs repos
266+  * Commands are translated into Git and Darcs language
267+    from a restricted set:
268+   * get, with options:
269+    * --<package-tag>
270+    * --complete (the only possible mode for Git repos)
271+    * --partial (the default for Darcs repos)
272+   * whatsnew
273+   * push-all
274+   * pull-all
275+   * send-all
276+ * --git / -g: issue the command to Git repos only
277+  * Arbitrary Git commands allowed
278+ * --darcs / -d: issue the command to Darcs repos only
279+  * Arbitrary Darcs commands allowed
280+
281+Generic options:
282+ * -q: be quiet
283+ * -s: be silent
284+ * --ignore-failure: don't stop if we get an error
285hunk ./sync-all 338
286-        # Give the command and rest of the arguments to the main loop
287-        scmall @_;
288+        # Grab the "generic" options into global variables by consuming everything
289+        # remaining in @_ until we reach something not starting with -, which we
290+        # assume is start of the command we are going to run
291+        while ($#_ ne -1) {
292+            my $generic_arg = shift;
293+            # We handle -q here as well as lower down as we need to skip over it
294+            # if it comes before the source-control command
295+            if ($generic_arg eq "-q") {
296+                $verbose = 1;
297+            }
298+            elsif ($generic_arg eq "-s") {
299+                $verbose = 0;
300+            }
301+            elsif ($generic_arg eq "--ignore-failure") {
302+                $ignore_failure = 1;
303+            }
304+            else {
305+                unshift @_, $generic_arg;
306+                if (grep /^-q$/, @_) {
307+                    $verbose = 1;
308+                }
309+                last;
310+            }
311+        }
312+       
313+        # OK, what mode did we get?
314+        if ($mode eq "both") {
315+            # Get the command issued
316+            my $command = shift;
317+           
318+            # Process the "both" mode arguments into global variables by just consuming
319+            # all remaining arguments in @_ (we already took the command)
320+            while ($#_ ne -1) {
321+                my $both_mode_arg = shift;
322+                # --<tag> says we grab the libs tagged 'tag' with
323+                # 'get'. It has no effect on the other commands.
324+                if ($both_mode_arg =~ m/^--/) {
325+                    $both_mode_arg =~ s/^--//;
326+                    $tags{$both_mode_arg} = 1;
327+                }
328+                elsif ($both_mode_arg eq "--complete" || $both_mode_arg eq "--partial") {
329+                    $get_mode = $both_mode_arg;
330+                }
331+                else {
332+                    print "Didn't understand the argument: $both_mode_arg";
333+                    exit 1;
334+                }
335+            }
336+           
337+            bothscmall($command);
338+        }
339+        else {
340+            onescmall($mode, @_);
341+        }
342hunk ./sync-all 396
343-
344}
345
346Context:
347
348[Fix errors with haddock 0.8
349Ian Lynagh <igloo@earth.li>**20080807131506]
350[Document Name and expand it's API
351Max Bolingbroke <batterseapower@hotmail.com>**20080807122901]
352[Follow OccName changes in Convert
353Max Bolingbroke <batterseapower@hotmail.com>**20080731120741]
354[Use DynFlags.getMainFun in TcRnDriver
355Max Bolingbroke <batterseapower@hotmail.com>**20080731055210]
356[Fix Vectorise after introduction of MonadThings
357Max Bolingbroke <batterseapower@hotmail.com>**20080731054813]
358[Follow introduction of MkCore in VectUtils
359Max Bolingbroke <batterseapower@hotmail.com>**20080731054722]
360[Fix VectMonad after introduction of MonadThings
361Max Bolingbroke <batterseapower@hotmail.com>**20080731054623]
362[Minor refactorings in TcEnv
363Max Bolingbroke <batterseapower@hotmail.com>**20080731054437]
364[Handle introduction of MkCore in DsMonad and expand API
365Max Bolingbroke <batterseapower@hotmail.com>**20080731054239]
366[Add MkCore, holding general Core construction facilities
367Max Bolingbroke <batterseapower@hotmail.com>**20080731054128]
368[Document HscTypes, refactor it somewhat, remove unused type and add MonadThings
369Max Bolingbroke <batterseapower@hotmail.com>**20080731054042]
370[Use new RdrName export in RdrHsSyn
371Max Bolingbroke <batterseapower@hotmail.com>**20080731053731]
372[Document CoreUtils
373Max Bolingbroke <batterseapower@hotmail.com>**20080731053542]
374[Document Packages and a minor refactoring
375Max Bolingbroke <batterseapower@hotmail.com>**20080731053054]
376[Document CoreSyn and expand its API
377Max Bolingbroke <batterseapower@hotmail.com>**20080731052941]
378[Document IdInfo
379Max Bolingbroke <batterseapower@hotmail.com>**20080731052819]
380[Document DynFlags and expand API
381Max Bolingbroke <batterseapower@hotmail.com>**20080731052653]
382[Document OccName and expand it's API
383Max Bolingbroke <batterseapower@hotmail.com>**20080731052238]
384[Follow Digraph changes in VectType
385Max Bolingbroke <batterseapower@hotmail.com>**20080731012356]
386[Follow OccName changes in VectBuiltIn
387Max Bolingbroke <batterseapower@hotmail.com>**20080731012355]
388[Document Util
389Max Bolingbroke <batterseapower@hotmail.com>**20080807115505]
390[Document UniqSet
391Max Bolingbroke <batterseapower@hotmail.com>**20080731012355]
392[Document UniqFM and add listToUFM_C
393Max Bolingbroke <batterseapower@hotmail.com>**20080731012355]
394[Follow FastString changes in Pretty
395Max Bolingbroke <batterseapower@hotmail.com>**20080731012354]
396[Document Outputable
397Max Bolingbroke <batterseapower@hotmail.com>**20080807114806]
398[Document FiniteMap
399Max Bolingbroke <batterseapower@hotmail.com>**20080731012353]
400[Document FastString and rename strLength to lengthLS
401Max Bolingbroke <batterseapower@hotmail.com>**20080731012353]
402[Add more functionality to Digraph and refactor it's interface somewhat, including adding a Graph ADT
403Max Bolingbroke <batterseapower@hotmail.com>**20080731012353]
404[Document TypeRep and follow OccName change
405Max Bolingbroke <batterseapower@hotmail.com>**20080731012352]
406[Document Type
407Max Bolingbroke <batterseapower@hotmail.com>**20080731012352]
408[Document TyCon
409Max Bolingbroke <batterseapower@hotmail.com>**20080731012352]
410[Document Coercion
411Max Bolingbroke <batterseapower@hotmail.com>**20080731012351]
412[Follow Digraph changes in TcTyDecls
413Max Bolingbroke <batterseapower@hotmail.com>**20080731012351]
414[Make IOEnv a MonadUnique
415Max Bolingbroke <batterseapower@hotmail.com>**20080731012351]
416[Follow TcEnv API addition in TcForeign
417Max Bolingbroke <batterseapower@hotmail.com>**20080731012350]
418[Follow Digraph changes in TcBinds
419Max Bolingbroke <batterseapower@hotmail.com>**20080731012350]
420[Follow OccName and MkCore changes in Inst
421Max Bolingbroke <batterseapower@hotmail.com>**20080731012349]
422[Document Rules
423Max Bolingbroke <batterseapower@hotmail.com>**20080731012349]
424[Follow Literal change in Simplify
425Max Bolingbroke <batterseapower@hotmail.com>**20080731012349]
426[Follow Digraph changes in OccurAnal
427Max Bolingbroke <batterseapower@hotmail.com>**20080731012348]
428[Follow Digraph changes in RnBinds and small refactoring
429Max Bolingbroke <batterseapower@hotmail.com>**20080731012348]
430[Document TysWiredIn and follow OccName changes
431Max Bolingbroke <batterseapower@hotmail.com>**20080731012347]
432[Follow OccName changes in TysPrim
433Max Bolingbroke <batterseapower@hotmail.com>**20080731012347]
434[Follow OccName changes in ParserCore
435Max Bolingbroke <batterseapower@hotmail.com>**20080731012347]
436[Follow Digraph changes in RegLiveness
437Max Bolingbroke <batterseapower@hotmail.com>**20080731012346]
438[Follow Digraph changes in RegAllocLinear.hs
439Max Bolingbroke <batterseapower@hotmail.com>**20080731012346]
440[Follow Digraph changes in AsmCodeGen
441Max Bolingbroke <batterseapower@hotmail.com>**20080731012346]
442[Document InteractiveEval and follow OccName change
443Max Bolingbroke <batterseapower@hotmail.com>**20080731012345]
444[Follow Digraph changes in GHC; patch from Max Bolingbroke
445Ian Lynagh <igloo@earth.li>**20080807112510]
446[Expand ErrUtils api with another plain variant
447Max Bolingbroke <batterseapower@hotmail.com>**20080731012344]
448[Follow OccName changes and minor refactorings in TcIface
449Max Bolingbroke <batterseapower@hotmail.com>**20080731012343]
450[Follow Digraph changes in MkIface
451Max Bolingbroke <batterseapower@hotmail.com>**20080731012343]
452[Minor refactoring in RtClosureInspect
453Max Bolingbroke <batterseapower@hotmail.com>**20080731012342]
454[Handle optSrcSpanFileName in InteractiveUI
455Max Bolingbroke <batterseapower@hotmail.com>**20080731012342]
456[Handle introduction of MkCore in MatchLit
457Max Bolingbroke <batterseapower@hotmail.com>**20080731012342]
458[Handle introduction of MkCore in MatchCon
459Max Bolingbroke <batterseapower@hotmail.com>**20080731012342]
460[Handle introduction of MkCore in Match
461Max Bolingbroke <batterseapower@hotmail.com>**20080731012341]
462[Handle introduction of MkCore in DsUtils
463Max Bolingbroke <batterseapower@hotmail.com>**20080731012341]
464[Handle introduction of MkCore in DsMeta
465Max Bolingbroke <batterseapower@hotmail.com>**20080731012340]
466[Handle introduction of MkCore in DsListComp
467Max Bolingbroke <batterseapower@hotmail.com>**20080731012340]
468[Handle introduction of MkCore in DsForeign
469Max Bolingbroke <batterseapower@hotmail.com>**20080731012340]
470[Handle introduction of MkCore in DsExpr
471Max Bolingbroke <batterseapower@hotmail.com>**20080731012340]
472[Handle introduction of MkCore in DsBinds
473Max Bolingbroke <batterseapower@hotmail.com>**20080731012339]
474[Handle introduction of MkCore in DsArrows
475Max Bolingbroke <batterseapower@hotmail.com>**20080731012339]
476[Handle optSrcSpanFileName rename in Coverage
477Max Bolingbroke <batterseapower@hotmail.com>**20080731012339]
478[Document CgUtils, follow Digraph changes
479Max Bolingbroke <batterseapower@hotmail.com>**20080731012337]
480[Document UniqSupply
481Max Bolingbroke <batterseapower@hotmail.com>**20080731012334]
482[Document SrcLoc
483Max Bolingbroke <batterseapower@hotmail.com>**20080731012334]
484[Document RdrName and expand its API
485Max Bolingbroke <batterseapower@hotmail.com>**20080731012334]
486[Make Module Uniquable
487Max Bolingbroke <batterseapower@hotmail.com>**20080731012332]
488[Tweak comments in MkId and follow mkStringLit renaming
489Max Bolingbroke <batterseapower@hotmail.com>**20080731012332]
490[Document Literal, expand it's API and rename mkStringLit to mkMachString
491Max Bolingbroke <batterseapower@hotmail.com>**20080731012331]
492[Document Id
493Max Bolingbroke <batterseapower@hotmail.com>**20080731012331]
494[Split the Id related functions out from Var into Id, document Var and some of Id
495Max Bolingbroke <batterseapower@hotmail.com>**20080731012330]
496[Eq and Ord have moved into GHC.Classes
497Ian Lynagh <igloo@earth.li>**20080806161815]
498[Move Int, Float and Double into ghc-prim:GHC.Types
499Ian Lynagh <igloo@earth.li>**20080806224359]
500[Move Int, Float and Double into ghc-prim:GHC.Types
501Ian Lynagh <igloo@earth.li>**20080806191458]
502[Prepare GHC for building with Git
503Max Bolingbroke <batterseapower@hotmail.com>**20080806210207
504 * New packages format lets you select source control system in use
505 * Packages file now includes root repo explicitly
506 * Scripts darcs-all and push-all updated for the new packages format only
507 * New sync-all script, intended for use after Git changeover and for buildbots right now
508 * Had to remove libraries/bootstrapping from tree since Git cannot track empty directories without a hack
509 * Determine checkout date with Git using Darcs fallback in aclocal.m4
510]
511[Add -fno-implicit-import-qualified (#2452)
512Simon Marlow <marlowsd@gmail.com>**20080805151730
513 The flag is off by default, but GHCi turns it on (in Main.hs).  For
514 GHCi it can be overriden on the command-line or using :set.
515]
516[in stage1, always rebuild Main.hs
517Simon Marlow <marlowsd@gmail.com>**20080805133823
518 GHC 6.9+ can properly handle cross-package recompilation checking, but
519 older versions of GHC couldn't, so in stage1 we always rebuild
520 Main.hs.  In other words, 'make' in ghc/ should do the right thing now.
521]
522[Ooops; lack of mk/confi.mk doesn't mean validate shouldn't run configure!
523Ian Lynagh <igloo@earth.li>**20080806113102]
524[C# has moved to ghc-prim:GHC.Types
525Ian Lynagh <igloo@earth.li>**20080805220155]
526[Move the Char datatype into ghc-prim
527Ian Lynagh <igloo@earth.li>**20080805195643]
528[Move the [] definion from base to ghc-prim
529Ian Lynagh <igloo@earth.li>**20080805180624]
530[Don't boot/configure if we are validating --no-clean
531Ian Lynagh <igloo@earth.li>**20080804214657]
532[Remove the cgi package from extralibs
533Ian Lynagh <igloo@earth.li>**20080805125551
534 It has some sort of Error Monad using the old Exception type.
535 I'm not familiar with it enough to know what the right thing to do
536 for it with extensible exceptions is.
537]
538[Follow the tuple datatype movements
539Ian Lynagh <igloo@earth.li>**20080804155402]
540[Don't make a "windows" flag in the Cabal file - os(windows) already exists!
541Ian Lynagh <igloo@earth.li>**20080804153430
542 Pointed out by Duncan Coutts
543]
544[Fix Trac #2449
545simonpj@microsoft.com**20080805105402
546 
547 Deriving isn't allowed in hs-boot files (says the user manual)
548 This patch checks properly instead of crashing!
549 
550]
551[2nd try: remove lochash, it isn't needed (now)
552Simon Marlow <marlowsd@gmail.com>**20080804125944]
553[FIX BUILD on Windows
554Simon Marlow <marlowsd@gmail.com>**20080804105740]
555[Fix Trac #2467: decent warnings for orphan instances
556simonpj@microsoft.com**20080804162129
557 
558 This patch makes
559   * Orphan instances and rules obey -Werror
560   * They look nicer when printed
561 
562]
563[Fix the bug part of Trac #1930
564simonpj@microsoft.com**20080804161039]
565[Fix Trac #2433 (deriving Typeable)
566simonpj@microsoft.com**20080804141503]
567[Fix Trac #2478
568simonpj@microsoft.com**20080801122223
569 
570 A minor glitch that shows up only when a data constructor has *both* a
571 "stupid theta" in the data type decl, *and* an existential type variable.
572 
573]
574[Improve docs for GADTs
575simonpj@microsoft.com**20080729145313]
576[Document -dsuppress-uniques
577simonpj@microsoft.com**20080729145247]
578[UNDO:  FIX #2375: remove oc->lochash completely, it apparently isn't used
579Simon Marlow <marlowsd@gmail.com>**20080804111801]
580[haddock fixes
581Ian Lynagh <igloo@earth.li>**20080803180330]
582[Follow the move of assertError from Control.Exception to GHC.IOBase
583Ian Lynagh <igloo@earth.li>**20080803141146]
584[Document PackageConfig
585Max Bolingbroke <batterseapower@hotmail.com>**20080731012345]
586[Document CoreSubst
587Max Bolingbroke <batterseapower@hotmail.com>**20080731012338]
588[Document CoreFVs
589Max Bolingbroke <batterseapower@hotmail.com>**20080731012337]
590[Document CmmZipUtil
591Max Bolingbroke <batterseapower@hotmail.com>**20080731012335]
592[Document VarSet
593Max Bolingbroke <batterseapower@hotmail.com>**20080731012335]
594[Document VarEnv
595Max Bolingbroke <batterseapower@hotmail.com>**20080731012335]
596[Document Unique
597Max Bolingbroke <batterseapower@hotmail.com>**20080731012334]
598[Document LazyUniqFM
599Max Bolingbroke <batterseapower@hotmail.com>**20080731012354]
600[Document FastTypes
601Max Bolingbroke <batterseapower@hotmail.com>**20080731012353]
602[Add some type signatures to RnNames
603Max Bolingbroke <batterseapower@hotmail.com>**20080731012348]
604[Comment only in IfaceENv
605Max Bolingbroke <batterseapower@hotmail.com>**20080731012343]
606[Document ZipCfg
607Max Bolingbroke <batterseapower@hotmail.com>**20080731012336]
608[Document MachOp
609Max Bolingbroke <batterseapower@hotmail.com>**20080731012336]
610[Document Dataflow
611Max Bolingbroke <batterseapower@hotmail.com>**20080731012336]
612[Document DFMonad
613Max Bolingbroke <batterseapower@hotmail.com>**20080731012336]
614[Document NameSet
615Max Bolingbroke <batterseapower@hotmail.com>**20080731012333]
616[Document NameEnv
617Max Bolingbroke <batterseapower@hotmail.com>**20080731012333]
618[Document Module
619Max Bolingbroke <batterseapower@hotmail.com>**20080731012332]
620[Document DataCon
621Max Bolingbroke <batterseapower@hotmail.com>**20080731012316]
622[Document BasicTypes
623Max Bolingbroke <batterseapower@hotmail.com>**20080731012306]
624[Rename maybeTyConSingleCon to tyConSingleDataCon_maybe
625Max Bolingbroke <batterseapower@hotmail.com>**20080731010537]
626[Ignore git files
627Max Bolingbroke <batterseapower@hotmail.com>**20080731010509]
628[Fix ifBuildable
629Ian Lynagh <igloo@earth.li>**20080801141731]
630[Update assertErrorName; assertError has moved to Control.Exception
631Ian Lynagh <igloo@earth.li>**20080801011028]
632[Fix the catching of "IOEnv failure" with extensible extensions
633Ian Lynagh <igloo@earth.li>**20080731194252]
634[Follow changes in the base library
635Ian Lynagh <igloo@earth.li>**20080731173354
636 TopHandler now uses the new extensible exceptions module, so we
637 need to interact with it using the new types.
638]
639[Add the Exception module to ghc.cabal
640Ian Lynagh <igloo@earth.li>**20080730213419]
641[Fix building with extensible exceptions
642Ian Lynagh <igloo@earth.li>**20080730194508]
643[Mark the ghc package as not exposed
644Ian Lynagh <igloo@earth.li>**20080730172124]
645[Follow extensible exception changes
646Ian Lynagh <igloo@earth.li>**20080730120134]
647[When raising NonTermination with the RTS, build the right value
648Ian Lynagh <igloo@earth.li>**20080621144528
649 We now use a nonTermination value in the base library to take take of
650 constructing the SomeException value, with the dictionaries etc, for us.
651 We'll probably need to do the same for some other exceptions too
652]
653[Fix the way we pass GMP_INCLUDE_DIRS to hsc2hs; spotted by Andres Loh
654Ian Lynagh <igloo@earth.li>**20080730114713
655 We were still building the flags in Haskell list syntax, but we now pass
656 the arguments directly rather than constructing a Haskell program with
657 them.
658]
659[workaround #2277: turn off the RTS timer when calling into editline
660Simon Marlow <marlowsd@gmail.com>**20080730135918]
661[FIX #2388: check that the operand fits before using the 'test' opcode
662Simon Marlow <marlowsd@gmail.com>**20080730105231]
663[oops, fix a small pessimisation made in previous refactoring
664Simon Marlow <marlowsd@gmail.com>**20080730105203]
665[FIX #2375: remove oc->lochash completely, it apparently isn't used
666Simon Marlow <marlowsd@gmail.com>**20080730101252]
667[Fix a typo in powerpc/Linux-only code; spotted by Jeroen Pulles
668Ian Lynagh <igloo@earth.li>**20080729214007]
669[Add the runghc wrapper script
670Ian Lynagh <igloo@earth.li>**20080729211852]
671[Make cabal-bin not do any building, even of Setup.hs, when it is asked to clean
672Ian Lynagh <igloo@earth.li>**20080729202410]
673[Update the test in Makefile that we have all the boot libs
674Ian Lynagh <igloo@earth.li>**20080729201640]
675[Update boot's test that we have all of the bootlibs
676Ian Lynagh <igloo@earth.li>**20080729201032]
677[Make the push-all script complain about bad lines
678Ian Lynagh <igloo@earth.li>**20080729200613]
679[Add some comments to packages/darcs-all
680Ian Lynagh <igloo@earth.li>**20080729151934]
681[Remove ndp from libraries/Makefile. We now use dph instead.
682Ian Lynagh <igloo@earth.li>**20080729141917]
683[Add dph to ./packages and darcs-all
684Ian Lynagh <igloo@earth.li>**20080729141850]
685[Remove cabal-install from ./packages; we've decided not to build it
686Ian Lynagh <igloo@earth.li>**20080729141824]
687[FIX #2327: a fault in the thunk-selector machinery (again)
688Simon Marlow <marlowsd@gmail.com>**20080729150518
689 This program contains an expression of the form
690 
691    let x = snd (_, snd (_, snd (_, x)))
692 
693 (probably not explicitly, but that's what appears in the heap at
694 runtime).  Obviously the program should deadlock if it ever enters
695 this thing, but apparently the test program in #2327 never does.
696 
697 The GC tries to evaluate the snd closures, and gets confused due to
698 the loop.  In particular the earlier fix for #1038 was to blame.
699]
700[FIX #2332: avoid overflow on 64-bit machines in the memory allocator
701Simon Marlow <marlowsd@gmail.com>**20080729150459]
702[Change the calling conventions for unboxed tuples slightly
703Simon Marlow <marlowsd@gmail.com>**20080728155621
704 When returning an unboxed tuple with a single non-void component, we
705 now use the same calling convention as for returning a value of the
706 same type as that component.  This means that the return convention
707 for IO now doesn't vary depending on the platform, which make some
708 parts of the RTS simpler, and fixes a problem I was having with making
709 the FFI work in unregisterised GHCi (the byte-code compiler makes
710 some assumptions about calling conventions to keep things simple).
711]
712[don't strip the inplace GHC executables (for debugging)
713Simon Marlow <marlowsd@gmail.com>**20080728134647]
714[Complete the changes for #1205
715Simon Marlow <marlowsd@gmail.com>**20080728105141
716 Now ":load M" always searches for a module called "M", rather than
717 using a file called "M.hs" if that exists.  To get the file semantics
718 (i.e. not loading "M.o"), use ":load M.hs".
719]
720[update the comments about how we find $topdir
721Simon Marlow <marlowsd@gmail.com>**20080725151406]
722[understand absolute pathnames on Windows too
723Simon Marlow <marlowsd@gmail.com>**20080728102243]
724[change where we put gcc-lib/ld.exe to keep Cabal happy
725Simon Marlow <marlowsd@gmail.com>**20080728100852]
726[move an inline function to keep older versions of gcc happy
727Simon Marlow <marlowsd@gmail.com>**20080725144708
728 no idea why this only just showed up...
729]
730[try to fix the way we find $topdir
731Simon Marlow <marlowsd@gmail.com>**20080725142828]
732[for the installed versions, don't use dynamic-linking wrappers
733Simon Marlow <marlowsd@gmail.com>**20080725134551]
734[don't steal %ebx for the GC on x86: it's also used by PIC
735Simon Marlow <marlowsd@gmail.com>**20080725122921]
736[SRT labels don't need to be globally visible
737Simon Marlow <marlowsd@gmail.com>**20080725080901
738 Saves space in the symbol table and speeds up linking
739]
740[Don't prematurely link shared libraries against the RTS package
741Simon Marlow <marlowsd@gmail.com>**20080724155001
742 We want to be able to pick the RTS flavour (e.g. -threaded) when we
743 link the final program.
744]
745[add --enable-shared to configure, and $(BuildSharedLibs) to the build system
746Simon Marlow <marlowsd@gmail.com>**20080724154925]
747[use RTLD_LAZY instead of RTLD_NOW
748Simon Marlow <marlowsd@gmail.com>**20080724152727
749 RTLD_NOW apparently causes some problems, according to previous
750 mailing-list discussion
751 
752  http://www.haskell.org/pipermail/cvs-ghc/2007-September/038570.html
753]
754[debug output tweak
755Simon Marlow <marlowsd@gmail.com>**20080724152636]
756[small cleanup
757Simon Marlow <marlowsd@gmail.com>**20080724151614]
758[Fix building runghc on Windows
759Ian Lynagh <igloo@earth.li>**20080724182831]
760[Follow darcs-all changes in push-all
761Ian Lynagh <igloo@earth.li>**20080724164153]
762[Rejig how darcs-all works
763Ian Lynagh <igloo@earth.li>**20080724164142
764 It's now easier to add new repos anywhere in the source tree
765]
766[Remove the OpenGL family of libraries from extralibs
767Ian Lynagh <igloo@earth.li>**20080724102736]
768[compiler/package.conf.in is no longer used, so remove it
769Ian Lynagh <igloo@earth.li>**20080724101610]
770[allow EXTRA_HC_OPTS to be used from the command-line
771Simon Marlow <marlowsd@gmail.com>**20080724081728]
772[put the inplace GHC in stageN-inplace/ghc instead of stageN-inplace/bin/ghc
773Simon Marlow <marlowsd@gmail.com>**20080724080951
774 just saves a bit of typing
775]
776[add a "rebuild" target for convenience
777Simon Marlow <marlowsd@gmail.com>**20080723143201]
778[set PAPI_LIB_DIR="" when we don't have PAPI (clean up package.conf)
779Simon Marlow <marlowsd@gmail.com>**20080722141327]
780[remove -fvia-C that I apparrently accidentally added recently
781Simon Marlow <marlowsd@gmail.com>**20080722141255]
782[Fix a build error on powerpc/Linux; spotted by Jeroen Pulles
783Ian Lynagh <igloo@earth.li>**20080723191948]
784[If the extension is not .lhs, runghc now treats it as .hs; fixes trac #1232
785Ian Lynagh <igloo@earth.li>**20080723182156]
786[runghc now uses the compiler that it comes with; fixes trac #1281
787Ian Lynagh <igloo@earth.li>**20080723181115
788 rather than the first one that it finds on the PATH
789]
790[Use the upstream hsc2hs repo
791Ian Lynagh <igloo@earth.li>**20080723155021]
792[Remove some redundancy in darcs-all
793Ian Lynagh <igloo@earth.li>**20080723143804]
794[Tell Cabal where gcc is
795Ian Lynagh <igloo@earth.li>**20080723001202]
796[Undo fix for #2185: sparks really should be treated as roots
797Simon Marlow <marlowsd@gmail.com>**20080723125205
798 Unless sparks are roots, strategies don't work at all: all the sparks
799 get GC'd.  We need to think about this some more.
800]
801[fix bug in sparkPoolSize (affects debug output only)
802Simon Marlow <marlowsd@gmail.com>**20080723104322]
803[debug message tweaks
804Simon Marlow <marlowsd@gmail.com>**20080723090050]
805[refactoring/tidyup: (not.is64BitInteger) -> is32BitInteger
806Simon Marlow <marlowsd@gmail.com>**20080722092113]
807[non-threaded RTS: don't assume deadlock if there are signal handlers to run
808Simon Marlow <marlowsd@gmail.com>**20080715130316]
809[update the text about header files and -#include
810Simon Marlow <marlowsd@gmail.com>**20080715101119]
811[add NetBSD to some of the #ifdefs (patch partly from 6.8 branch)
812Simon Marlow <marlowsd@gmail.com>**20080714145040]
813[Warn about unrecognised pragmas; these often mean we've typoed
814Ian Lynagh <igloo@earth.li>**20080722235550]
815[Sync hsc2hs's Main.hs with the Cabal repo
816Ian Lynagh <igloo@earth.li>**20080722203646]
817[We need to clean the utils on "distclean", as well as "clean"
818Ian Lynagh <igloo@earth.li>**20080722170754]
819[Clean stage 3
820Ian Lynagh <igloo@earth.li>**20080722170542]
821[Add replacements for the -optdep flags, and deprecate the old ones
822Ian Lynagh <igloo@earth.li>**20080722163308]
823[Fix the stage3 build
824Ian Lynagh <igloo@earth.li>**20080722125743]
825[Fixes for haddock 0.8
826Ian Lynagh <igloo@earth.li>**20080721095256]
827[haddock the stage2 compiler if HADDOCK_DOCS is YES
828Ian Lynagh <igloo@earth.li>**20080720220622]
829[First step for getting rid of the old -optdep flags
830Ian Lynagh <igloo@earth.li>**20080720203239
831 They are now handled by the main flag parser, rather than having their
832 own praser that runs later.
833 
834 As an added bonus, 5 global variables are also gone.
835]
836[Fix Haddock errors.
837Thomas Schilling <nominolo@googlemail.com>**20080720173151]
838[Fix Haddock errors.
839Thomas Schilling <nominolo@googlemail.com>**20080720173117]
840[Fix Haddock errors.
841Thomas Schilling <nominolo@googlemail.com>**20080720173105]
842[Fix Haddock errors.
843Thomas Schilling <nominolo@googlemail.com>**20080720173017]
844[Fix Haddock errors.
845Thomas Schilling <nominolo@googlemail.com>**20080720172614]
846[Fix Haddock errors.
847Thomas Schilling <nominolo@googlemail.com>**20080720172401]
848[Fix Haddock errors.
849Thomas Schilling <nominolo@googlemail.com>**20080720172242]
850[Fix Haddock errors.
851Thomas Schilling <nominolo@googlemail.com>**20080720172222]
852[Fix Haddock errors.
853Thomas Schilling <nominolo@googlemail.com>**20080720172139]
854[Fix Haddock errors.
855Thomas Schilling <nominolo@googlemail.com>**20080720172114]
856[Fix Haddock errors.
857Thomas Schilling <nominolo@googlemail.com>**20080720172054]
858[Fix Haddock errors.
859Thomas Schilling <nominolo@googlemail.com>**20080720172010]
860[Fix Haddock errors.
861Thomas Schilling <nominolo@googlemail.com>**20080720171723]
862[Fix Haddock errors.
863Thomas Schilling <nominolo@googlemail.com>**20080720171554]
864[Fix Haddock errors.
865Thomas Schilling <nominolo@googlemail.com>**20080720171529]
866[Fix Haddock errors.
867Thomas Schilling <nominolo@googlemail.com>**20080720171424]
868[Fix Haddock errors.
869Thomas Schilling <nominolo@googlemail.com>**20080720171113]
870[Fix Haddock errors.
871Thomas Schilling <nominolo@googlemail.com>**20080720170708]
872[Fix Haddock errors.
873Thomas Schilling <nominolo@googlemail.com>**20080720170601]
874[Fix Haddock errors.
875Thomas Schilling <nominolo@googlemail.com>**20080720170421]
876[Fix Haddock errors.
877Thomas Schilling <nominolo@googlemail.com>**20080720165845]
878[Fix Haddock errors.
879Thomas Schilling <nominolo@googlemail.com>**20080720165637]
880[Fix Haddock errors.
881Thomas Schilling <nominolo@googlemail.com>**20080720164133]
882[Properly comment out unused pragmas
883Ian Lynagh <igloo@earth.li>**20080720135604
884 We now say
885     -- {-# SPECIALIZE ...
886 rather than
887     {-# -- SPECIALIZE ...
888]
889[Add a WARNING pragma
890Ian Lynagh <igloo@earth.li>**20080720120918]
891[Put a #! line in ghc-pkg's shell wrapper
892Ian Lynagh <igloo@earth.li>**20080719112544]
893[Fix ghc-pkg inplace on Windows
894Ian Lynagh <igloo@earth.li>**20080719002613]
895[Some "install" and "clean" fixes
896Ian Lynagh <igloo@earth.li>**20080718223656]
897[Change how inplace detection works, so that it also works on Windows
898Ian Lynagh <igloo@earth.li>**20080718210836]
899[More dependency wibbling
900Ian Lynagh <igloo@earth.li>**20080718193454]
901[Build system tweaks
902Ian Lynagh <igloo@earth.li>**20080718184706]
903[We need to make Parser.y and Config.hs earlier
904Ian Lynagh <igloo@earth.li>**20080718180441]
905[Explicitly list HpcParser as a module in hpc-bin
906Ian Lynagh <igloo@earth.li>**20080718174657
907 Cabal doesn't preprocess the .y file otherwise.
908]
909[Disable building pwd and lndir for now
910Ian Lynagh <igloo@earth.li>**20080718170329]
911[Build hpc with Cabal
912Ian Lynagh <igloo@earth.li>**20080718170047]
913[Build runghc with Cabal
914Ian Lynagh <igloo@earth.li>**20080718165317]
915[Add a comment
916Ian Lynagh <igloo@earth.li>**20080718154238]
917[Tweak the build system for installPackage
918Ian Lynagh <igloo@earth.li>**20080718153956]
919[More build system changes; hasktags is now built with Cabal
920Ian Lynagh <igloo@earth.li>**20080718153459]
921[Remove a comment
922Ian Lynagh <igloo@earth.li>**20080718115044]
923[More build system changes; ghc-pkg is now built with Cabal
924Ian Lynagh <igloo@earth.li>**20080718114753]
925[Fix some argument names
926Ian Lynagh <igloo@earth.li>**20080717223543]
927[Tweak the hsc2hs wrapper script
928Ian Lynagh <igloo@earth.li>**20080717194916]
929[Fix the order in which things get built
930Ian Lynagh <igloo@earth.li>**20080717192402]
931[Split building the ghc package and binary into "boot" and "all" steps
932Ian Lynagh <igloo@earth.li>**20080717150746
933 In "boot" we configure, and in "all" we do the actual building.
934]
935[Install the compiler during make install
936Ian Lynagh <igloo@earth.li>**20080717150453
937 For now we always install stage 2
938]
939[Do the building and installing of hsc2hs with the stage1 compiler
940Ian Lynagh <igloo@earth.li>**20080717150420]
941[Remove some duplication
942Ian Lynagh <igloo@earth.li>**20080717144906]
943[Windows fixes
944Ian Lynagh <igloo@earth.li>**20080716222719]
945[Fix GHC finding extra-gcc-opts on Windows
946Ian Lynagh <igloo@earth.li>**20080716222457]
947[Fix the inplace compiler finding package.conf on Windows
948Ian Lynagh <igloo@earth.li>**20080716215000]
949[Fix the build with GHC 6.4.2
950Ian Lynagh <igloo@earth.li>**20080716192836]
951[Get building GHC itself with Cabal more-or-less working
952Ian Lynagh <igloo@earth.li>**20080716150441
953 Installing and bindist creation don't work, but they were already broken.
954 Only tested validating with one setup.
955]
956[TAG Before cabalised-GHC
957Ian Lynagh <igloo@earth.li>**20080719132217]
958[Fix for 1st half of #2203
959Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080715052751]
960[Fix check of rhs of type family instances (#2157)
961Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080714094524]
962[FIX BUILD on Windows
963Simon Marlow <marlowsd@gmail.com>**20080714153411]
964[remove what looks like a cut-and-pasto
965Simon Marlow <marlowsd@gmail.com>**20080714132808]
966[fix #2434: we weren't waiting long enough for the signal
967Simon Marlow <marlowsd@gmail.com>**20080714111007]
968[Make showSDoc and printDoc use the same default width (100)
969Simon Marlow <marlowsd@gmail.com>**20080714083654
970 For some reason they were different (100/120), which made some tests
971 produce different output when I moved from showSDoc to printDoc for
972 error messages.
973]
974[FIX #2322: add exceptions for more functions in math.h
975Simon Marlow <marlowsd@gmail.com>**20080711152703]
976[FIX #2248
977Simon Marlow <marlowsd@gmail.com>**20080711151146
978 Unconditionally add .exe to the output executable name when using
979 --make on Windows, and no -o option was given.
980]
981[add a comment to the effect that printDoc prints FastStrings in UTF-8
982Simon Marlow <marlowsd@gmail.com>**20080711151135]
983[FIX #2302: print FastStrings in UTF-8 in error messages
984Simon Marlow <marlowsd@gmail.com>**20080711151116
985 This is all a bit of a mess, but can hopefully be improved when we get
986 encoding/decoding support in Handles.
987]
988[FIX #2278: don't complain if the -odir directory doesn't exist
989Simon Marlow <marlowsd@gmail.com>**20080711134301
990 we'll create it anyway
991]
992[If HADDOCK_DOCS is YES, then fail the build early if we couldn't find haddock
993Ian Lynagh <igloo@earth.li>**20080713165305
994 This fixes trac #2266.
995]
996[Fix some build problems when GHCI is not definde
997Ian Lynagh <igloo@earth.li>**20080713121309]
998[Add PostfixOperators flag for (e op) postfix operators; fixes trac #1824
999Ian Lynagh <igloo@earth.li>**20080712203725
1000 -fglasgow-exts also turns it on.
1001]
1002[Remove the hack to avoid darcs-all operating on bootstrapping directories
1003Ian Lynagh <igloo@earth.li>**20080712170638
1004 We no longer create those directories
1005]
1006[Teach installPackage about --distpref and --enable-shell-wrappers
1007Ian Lynagh <igloo@earth.li>**20080712134346]
1008[Handle passing hsc2hs to Cabal better
1009Ian Lynagh <igloo@earth.li>**20080711214358
1010 If it has been built then we pass it, even if we are still using the
1011 bootstrapping compiler.
1012]
1013[Move installPackage out into its own cabal package under utils/
1014Ian Lynagh <igloo@earth.li>**20080711211615]
1015[Split up Cabal configure flag variables for more flexibility
1016Ian Lynagh <igloo@earth.li>**20080711151448]
1017[Move -fno-cse flags from Makefile into pragmas
1018Ian Lynagh <igloo@earth.li>**20080711123151
1019 These are needed for GLOBAL_VAR's to work properly
1020]
1021[Remove the need for undecidable instances in LazyUniqFM
1022Ian Lynagh <igloo@earth.li>**20080711131421]
1023[add "ghc-pkg dump" (fixes #2201)
1024Simon Marlow <marlowsd@gmail.com>**20080711121739]
1025[small improvement to an error message
1026Simon Marlow <marlowsd@gmail.com>**20080711120153]
1027[#2371: try to explain the difference between :module and :load
1028Simon Marlow <marlowsd@gmail.com>**20080711120046]
1029[FIX #2381, and improve the fix for #1565
1030Simon Marlow <marlowsd@gmail.com>**20080711101839]
1031[Change pragma order to stop GHC 6.4 getting confused
1032Ian Lynagh <igloo@earth.li>**20080710190614]
1033[-H80m isn't allowed in an options pragma. Just remove it for now.
1034Ian Lynagh <igloo@earth.li>**20080710163048]
1035[Remove a commented-out flag
1036Ian Lynagh <igloo@earth.li>**20080710141129]
1037[Remove an HPUX-only flag which has no comment explaining its purpose
1038Ian Lynagh <igloo@earth.li>**20080710141032
1039 It's probably to work around a long-dead bug
1040]
1041[Move more flags from the Makefile into pragmas
1042Ian Lynagh <igloo@earth.li>**20080710140757]
1043[Move the definition of NONEXISTENT into the central cabal-flags.mk
1044Ian Lynagh <igloo@earth.li>**20080710135213]
1045[Define CABAL in mk/cabal-flags.mk, rather than everywhere we use it
1046Ian Lynagh <igloo@earth.li>**20080710134928]
1047[Typo fixed
1048Ian Lynagh <igloo@earth.li>**20080710134748]
1049[Remove a redundant comment
1050Ian Lynagh <igloo@earth.li>**20080710134656]
1051[Remove remnants of javaGen
1052Ian Lynagh <igloo@earth.li>**20080710132654]
1053[Remove some remnants of ilxgen
1054Ian Lynagh <igloo@earth.li>**20080710132417]
1055[Remove a comment for GHC <= 4.08
1056Ian Lynagh <igloo@earth.li>**20080710132107]
1057[Remove .hi-boot-[56] stuff from the Makefile
1058Ian Lynagh <igloo@earth.li>**20080710131528]
1059[Remove a flag that a comment claims is for GHC < 5
1060Ian Lynagh <igloo@earth.li>**20080710130925]
1061[We can now unconditionally use -fno-warn-orphans
1062Ian Lynagh <igloo@earth.li>**20080710125948
1063 ...which is good, as the conditional test was broken anyway!
1064]
1065[Move another flag from the Makefile into a pragma
1066Ian Lynagh <igloo@earth.li>**20080710125422]
1067[Move some flags from the Makefile into module pragmas
1068Ian Lynagh <igloo@earth.li>**20080710124827]
1069[Move "main/BinIface_HC_OPTS += -O" into a pragma in iface/BinIface.hs
1070Ian Lynagh <igloo@earth.li>**20080710124141
1071 I assume that we still want this, despite it having been disconnected
1072 when the module was moved.
1073]
1074[Remove an ancient commented out "parser/Parser_HC_OPTS += -fasm"
1075Ian Lynagh <igloo@earth.li>**20080710123655]
1076[add threadStatus# primop, for querying the status of a ThreadId#
1077Simon Marlow <marlowsd@gmail.com>**20080710151406]
1078[oops, fix more register clobberage
1079Simon Marlow <marlowsd@gmail.com>**20080710115221
1080 fixes crash with -threaded -debug for me
1081]
1082[rts_evalStableIO: start the new thread in blocked mode
1083Simon Marlow <marlowsd@gmail.com>**20080709135447]
1084[add new primop: asyncExceptionsBlocked# :: IO Bool
1085Simon Marlow <marlowsd@gmail.com>**20080709135337]
1086[ObjectIO is no longer an extralib
1087Ian Lynagh <igloo@earth.li>**20080709135722]
1088[Remove all references to -mno-cygwin
1089Ian Lynagh <igloo@earth.li>**20080709125554
1090 We shouldn't need it, as we don't call cygwin's gcc, and it was causing
1091 problems with the nightly builders passing it to GHC.
1092]
1093[#1205: ':load foo.hs' in GHCi always compiles to bytecode
1094Simon Marlow <marlowsd@gmail.com>**20080709110830
1095 
1096 So now
1097 
1098   :load foo.hs       loads bytecode for foo.hs, even if foo.o exists
1099   :load foo          is just shorthand for :load foo.hs
1100   :load M            loads a module M, as object code if possible
1101                      (no change here)
1102 
1103   :set -fobject-code
1104   :load foo.hs       loads foo.hs as object code; an existing foo.o
1105                      can be used.
1106   
1107 This turned out to be very straightforward: when building the
1108 ModSummary for a file (summariseFile) we just ignore the object file
1109 unless -fobject-code is on.
1110]
1111[add -fwarn-dodgy-foreign-imports (see #1357)
1112Simon Marlow <marlowsd@gmail.com>**20080709102143
1113 
1114 From the entry in the User's guide:
1115 
1116 -fwarn-dodgy-foreign-imports causes a warning to be emitted for
1117 foreign imports of the following form:
1118 
1119 foreign import "f" f :: FunPtr t
1120 
1121 on the grounds that it probably should be
1122 
1123 foreign import "&f" f :: FunPtr t
1124 
1125 The first form declares that `f` is a (pure) C function that takes no
1126 arguments and returns a pointer to a C function with type `t`, whereas
1127 the second form declares that `f` itself is a C function with type
1128 `t`.  The first declaration is usually a mistake, and one that is hard
1129 to debug because it results in a crash, hence this warning.
1130]
1131[Treat the Unicode "Letter, Other" class as lowercase letters (#1103)
1132Simon Marlow <marlowsd@gmail.com>**20080709091252
1133 This is an arbitrary choice, but it's strictly more useful than the
1134 current situation, where these characters cannot be used in
1135 identifiers at all.
1136 
1137 In Haskell' we may revisit this decision (it's on my list of things to
1138 discuss), but for now this is an improvement for those using caseless
1139 languages.
1140]
1141[FIX part of #2301, and #1619
1142Simon Marlow <marlowsd@gmail.com>**20080709084916
1143 
1144 2301: Control-C now causes the new exception (AsyncException
1145 UserInterrupt) to be raised in the main thread.  The signal handler
1146 is set up by GHC.TopHandler.runMainIO, and can be overriden in the
1147 usual way by installing a new signal handler.  The advantage is that
1148 now all programs will get a chance to clean up on ^C.
1149 
1150 When UserInterrupt is caught by the topmost handler, we now exit the
1151 program via kill(getpid(),SIGINT), which tells the parent process that
1152 we exited as a result of ^C, so the parent can take appropriate action
1153 (it might want to exit too, for example).
1154 
1155 One subtlety is that we have to use a weak reference to the ThreadId
1156 for the main thread, so that the signal handler doesn't prevent the
1157 main thread from being subject to deadlock detection.
1158 
1159 1619: we now ignore SIGPIPE by default.  Although POSIX says that a
1160 SIGPIPE should terminate the process by default, I wonder if this
1161 decision was made because many C applications failed to check the exit
1162 code from write().  In Haskell a failed write due to a closed pipe
1163 will generate an exception anyway, so the main difference is that we
1164 now get a useful error message instead of silent program termination.
1165 See #1619 for more discussion.
1166]
1167[Fix some random register clobbering in takeMVar/putMVar
1168Simon Marlow <marlowsd@gmail.com>**20080709083128
1169 This showed up as a crash in conc032 for me.
1170]
1171[ANSI-ise a function declaration
1172Simon Marlow <marlowsd@gmail.com>**20080708110430]
1173[remove old #ifdef SMP bits
1174Simon Marlow <marlowsd@gmail.com>**20080708110410]
1175[Fix build; Opt_LinkHaskell98 is now Opt_AutoLinkPackages
1176Ian Lynagh <igloo@earth.li>**20080708224005]
1177[Extend the flag for not automatically linking haskell98
1178Ian Lynagh <igloo@earth.li>**20080708165654
1179 It now also doesn't automatically link base and rts either.
1180 We need this when we've done a build, so base and rts are in the
1181 package.conf, but we've then cleaned the libraries so they don't
1182 physically exist any more.
1183]
1184[Remove all .hi-boot-6 files
1185Ian Lynagh <igloo@earth.li>**20080708150059
1186 From 6.4 onwards we use .(l)hs-boot instead.
1187 Spotted by Max Bolingbroke.
1188]
1189[Add some missing deps in libraries/Makefile
1190Ian Lynagh <igloo@earth.li>**20080708142752]
1191[Get rid of compat/
1192Ian Lynagh <igloo@earth.li>**20080708002717
1193 Compat.Unicode is not utils/Unicode in the compiler.
1194 We build the hpc package with the stage1 compiler.
1195 Nothing else in the compat package was still used.
1196]
1197[Add a comment in validate saying where the hpc HTML is put
1198Ian Lynagh <igloo@earth.li>**20080707103816]
1199[FIX #1736, and probably #2169, #2240
1200Simon Marlow <marlowsd@gmail.com>**20080707095836
1201 appendStringBuffer was completely bogus - the arguments to copyArray
1202 were the wrong way around, which meant that corruption was very likely
1203 to occur by overwriting the end of the buffer in the first argument.
1204 
1205 This definitely fixes #1736.  The other two bugs, #2169 and #2240 are
1206 harder to reproduce, but we can see how they could occur: in the case
1207 of #2169, the options parser is seeing the contents of an old buffer,
1208 and in the case of #2240, appendStringBuffer is corrupting an
1209 interface file in memory, since strng buffers and interface files are
1210 both allocated in the pinned region of memory.
1211]
1212[Fix Trac #2414: occurrs check was missed
1213simonpj@microsoft.com**20080707103201
1214 
1215 This is an embarassing one: a missing occurs check meant that a type-incorrect
1216 program could leak through.  Yikes! 
1217 
1218 (An indirect consequence of extra complexity introduced by boxy types. Sigh.)
1219 
1220 Merge to 6.8.4 if we release it.
1221 
1222 
1223]
1224[White space only
1225simonpj@microsoft.com**20080707103145]
1226[White space only
1227simonpj@microsoft.com**20080707103110]
1228[Fix Trac #2386: exceesive trimming of data types with Template Haskell
1229simonpj@microsoft.com**20080707102941
1230 
1231 See Note [Trimming and Template Haskell] in TidyPgm.
1232 
1233 Merge to 6.8.4 if we ever release it.
1234 
1235 
1236]
1237[Add hsc2hs.wrapper
1238Ian Lynagh <igloo@earth.li>**20080705214104]
1239[Fix hsc2hs finding its template file on Windows
1240Ian Lynagh <igloo@earth.li>**20080705185829]
1241[On cygwin, convert happy's path to a native path
1242Ian Lynagh <igloo@earth.li>**20080705163113]
1243[On cygwin, convert Haddock's path to a native path
1244Ian Lynagh <igloo@earth.li>**20080705162154]
1245[On cygwin, convert alex's path to a native path
1246Ian Lynagh <igloo@earth.li>**20080705155559]
1247[libffi now doesn't have an artificial make boot/all split
1248Ian Lynagh <igloo@earth.li>**20080705155025]
1249[Need to make all in gmp, not boot
1250Ian Lynagh <igloo@earth.li>**20080705153245]
1251[gmp didn't really fit into the make boot/all cycle, so don't try to force it
1252Ian Lynagh <igloo@earth.li>**20080705140354
1253 Now we just run make in it at the start of the stage1 build
1254]
1255[Build hsc2hs with Cabal
1256Ian Lynagh <igloo@earth.li>**20080705134208
1257 This is very rough around teh edges at the moment.
1258]
1259[Add a flag to disable linking with the haskell98 package
1260Ian Lynagh <igloo@earth.li>**20080705134115]
1261[Use the last compiler if more than one is specified
1262Ian Lynagh <igloo@earth.li>**20080705121426]
1263[Improve error messages from pwd
1264Ian Lynagh <igloo@earth.li>**20080704233343]
1265[In utils/hsc2hs, add LICENSE and hsc2hs.cabal from the standalone repo
1266Ian Lynagh <igloo@earth.li>**20080704222206]
1267[Remove fgl from the libraries Makefile
1268Ian Lynagh <igloo@earth.li>**20080704221026
1269 It's no longer an extralib
1270]
1271[Tell the bootstrapping Cabal where ghc-pkg is
1272Ian Lynagh <igloo@earth.li>**20080704152713]
1273[FIX #2398: file locking wasn't thread-safe
1274Simon Marlow <marlowsd@gmail.com>**20080704144626]
1275[Remove out of date comments and point to the commentary
1276Simon Marlow <marlowsd@gmail.com>**20080620135258
1277 The wiki commentary is now the official description of recompilation
1278 checking.
1279 
1280 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/RecompilationAvoidance
1281]
1282[Remove Cabal modules from compat
1283Ian Lynagh <igloo@earth.li>**20080703224633
1284 We now get them from the bootstrapping package.conf instead
1285]
1286[Fix trac #2307: conflicting functional dependencies
1287Ian Lynagh <igloo@earth.li>**20080703192540
1288 We were accepting some instances that should have been rejected as
1289 their fundep constraints were violated. e.g. we accepted
1290     class C a b c | b -> c
1291     instance C Bool Int Float
1292     instance C Char Int Double
1293]
1294[If we know where alex, haddock and happy are then tell Cabal; fixes trac #2373
1295Ian Lynagh <igloo@earth.li>**20080703191031]
1296[Don't clean bootstrapping bits when cleaning libraries
1297Ian Lynagh <igloo@earth.li>**20080703154647]
1298[More libraries/Makefile fixes
1299Ian Lynagh <igloo@earth.li>**20080703141016]
1300[Shove the GHC path through cygpath -m
1301Ian Lynagh <igloo@earth.li>**20080703132614]
1302[Tweak the configure script Windows-specific bits
1303Ian Lynagh <igloo@earth.li>**20080703132437]
1304[Use cygpath -m, rather than fudging it ourselves with sed
1305Ian Lynagh <igloo@earth.li>**20080703131725]
1306[Fix build on Windows
1307Ian Lynagh <igloo@earth.li>**20080703124553]
1308[Include ghc.spec in tarballs; patch from, and fixes, trac #2390
1309Ian Lynagh <igloo@earth.li>**20080703161457]
1310[Add a program for describing unexpected tests in testlog
1311Ian Lynagh <igloo@earth.li>**20080703134003
1312 This goes through the testlog and spits out any sections that contain
1313 "unexpected".
1314]
1315[Teach cabal-bin how to build Setup programs
1316Ian Lynagh <igloo@earth.li>**20080703001300
1317 
1318 We now build a copy of Cabal and put it in a bootstrapping package.conf.
1319 
1320 We also make boot in libraries much earlier in the build process, so we
1321 can use cabal-bin for more stuff in the future.
1322]
1323[Wibble cabal-bin's error message
1324Ian Lynagh <igloo@earth.li>**20080702155937
1325 We don't need to put the program name in it, as that happens automatically
1326]
1327[Add type signatures
1328Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080703023635]
1329[Command-line options for selecting DPH backend
1330Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080702022202
1331 
1332 It's -fdph-seq and -fdph-par at the moment, I'll think of a nicer setup later.
1333]
1334[Add missing dph package to Makefile
1335Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080702022142]
1336[Slight refactoring
1337Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080701025227]
1338[Rename *NDP* -> *DPH*
1339Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080701024559]
1340[Parametrise vectoriser with DPH package
1341Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080701024515]
1342[Don't use DPH backend directly in vectoriser
1343Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080701021436]
1344[Make dph-seq and dph-par wired-in packages
1345Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080701020214]
1346[FIX #2313 do not include BFD symbols in RTS when the BFD library is not available for linking
1347Karel Gardas <karel.gardas@centrum.cz>**20080528093139]
1348[Add --slow (and --fast) options to validate
1349Ian Lynagh <igloo@earth.li>**20080701175927
1350 slow mode is 14% slower than normal. It uses -DDEBUG for the stage 2
1351 compiler, and -XGenerics for the stage 2 compiler and the libraries.
1352 I believe that most of the slowdown is actually caused by -XGenerics
1353 rather than -DDEBUG.
1354]
1355[Fix Trac #2307: need to nub bad fundep reports
1356simonpj@microsoft.com**20080701165830]
1357[Easy fix for Trac #2409
1358simonpj@microsoft.com**20080701163722
1359 
1360 Yurgh. See Note [Desugaring seq (3)]
1361 
1362 
1363]
1364[Make a "validate --hpc"; shows how much of the compiler the testsuite tests
1365Ian Lynagh <igloo@earth.li>**20080701124515
1366 Currently it causes a load of ghci-debugger tests to fail and takes
1367 63% longer.
1368]
1369[Allow the exact HPC tix filename to be given in the HPCTIXFILE env var
1370Ian Lynagh <igloo@earth.li>**20080701124320]
1371[array is now warning-free
1372Ian Lynagh <igloo@earth.li>**20080630204126]
1373[Several fixes to 'deriving' including Trac #2378
1374simonpj@microsoft.com**20080701120908
1375 
1376 This patch collects several related things together.
1377 
1378 * Refactor TcDeriv so that the InstInfo and the method bindings are renamed
1379   together.  This was messy before, and is cleaner now.  Fixes a bug caused
1380   by interaction between the "auxiliary bindings" (which were given
1381   Original names before), and stand-alone deriving (which meant that those
1382   Original names came from a different module). Now the names are purely
1383   local an ordinary.
1384 
1385   To do this, InstInfo is parameterised like much else HsSyn stuff.
1386 
1387 * Improve the location info in a dfun, which in turn improves location
1388   info for error messages, e.g. overlapping instances
1389 
1390 * Make sure that newtype-deriving isn't used for Typeable1 and friends.
1391   (Typeable was rightly taken care of, but not Typeable1,2, etc.)
1392 
1393 * Check for data types in deriving Data, so that you can't do, say,
1394        deriving instance Data (IO a)
1395 
1396 * Decorate the derived binding with location info from the *instance*
1397   rather than from the *tycon*.  Again, this really only matters with
1398   standalone deriving, but it makes a huge difference there.
1399 
1400 I think that's it.  Quite a few error messages change slightly.
1401 
1402 If we release 6.8.4, this should go in if possible.
1403 
1404]
1405[Follow Cabal changes
1406Ian Lynagh <igloo@earth.li>**20080629211633]
1407[Rename cabal to cabal-bin
1408Ian Lynagh <igloo@earth.li>**20080629110003
1409 Avoids conflicts with the Cabal library on case-insensitive filesystems
1410]
1411[mkdirhier.sh now accepts -q, which makes it be quiet
1412Ian Lynagh <igloo@earth.li>**20080627233528]
1413[Update .darcs-boring
1414Ian Lynagh <igloo@earth.li>**20080627181410]
1415[Update darcs-boring
1416Ian Lynagh <igloo@earth.li>**20080627154142]
1417[Update .darcs-boring
1418Ian Lynagh <igloo@earth.li>**20080627145633]
1419[Follow Cabal changes
1420Ian Lynagh <igloo@earth.li>**20080626202749]
1421[Absolutify a path
1422Ian Lynagh <igloo@earth.li>**20080626181134
1423 When building ghc-prim/Setup we weren't putting the hi files in the
1424 right place.
1425]
1426[Remove fgl from extralibs
1427Ian Lynagh <igloo@earth.li>**20080626112739]
1428[Use a program similar to cabal-install to build the libraries
1429Ian Lynagh <igloo@earth.li>**20080626112511
1430 This means that we don't have to make a Setup program for each library
1431 individually, and also simplifies the build system a bit.
1432]
1433[Fix Trac #2394: test for non-algebraic types in standalone deriving
1434simonpj@microsoft.com**20080625160204]
1435[() is now in ghc-prim:GHC.Unit
1436Ian Lynagh <igloo@earth.li>**20080624144849]
1437[Generate a warning-free GHC.PrimopWrappers. ghc-prim is now -Wall clean.
1438Ian Lynagh <igloo@earth.li>**20080624122529]
1439[Fix some inconsistencies in the code and docs of primitives
1440Ian Lynagh <igloo@earth.li>**20080623223454
1441 We were inconsistent about whether to use the name "MutArr#" or
1442 "MutableArray#". Likewise ByteArr#/ByteArray# and
1443 MutByteArr#/MutableByteArray#.
1444]
1445[Fix the build with GHC 6.4
1446Ian Lynagh <igloo@earth.li>**20080623144426]
1447[Don't rebuild things with the stage2 compiler
1448Ian Lynagh <igloo@earth.li>**20080622134613
1449 It leads to annoying rebuilding when working in a built tree.
1450 We'll handle this differently for 6.10.
1451]
1452[editline is now warning-free
1453Ian Lynagh <igloo@earth.li>**20080620212110]
1454[Remove special handling for character types of characters >= 128, <= 255
1455Ian Lynagh <igloo@earth.li>**20080621171100
1456 Many of the character types were wrong. Now the asc* names really do mean
1457 ASCII, rather than latin-1.
1458]
1459[Remove code that isn't used now that we assume that GHC >= 6.4
1460Ian Lynagh <igloo@earth.li>**20080620193003]
1461[Now that we require GHC >= 6.4.2, System.IO.Error is always available
1462Ian Lynagh <igloo@earth.li>**20080620191059]
1463[hpc is -Wall clean
1464Ian Lynagh <igloo@earth.li>**20080620142058]
1465[filepath is now warning-free
1466Ian Lynagh <igloo@earth.li>**20080620135652]
1467[pretty is now -Wall clean
1468Ian Lynagh <igloo@earth.li>**20080620135335]
1469[process is now -Wall clean
1470Ian Lynagh <igloo@earth.li>**20080620011832]
1471[directory is now -Wall clean
1472Ian Lynagh <igloo@earth.li>**20080620011335]
1473[integer-gmp is warning-free
1474Ian Lynagh <igloo@earth.li>**20080619235925]
1475[packedstring is now -Wall clean
1476Ian Lynagh <igloo@earth.li>**20080619235612]
1477[old-time is now warning-free
1478Ian Lynagh <igloo@earth.li>**20080619233127]
1479[old-locale is now warning-free
1480Ian Lynagh <igloo@earth.li>**20080619232152]
1481[random is now -Wall clean
1482Ian Lynagh <igloo@earth.li>**20080619140211]
1483[document some RTS options I added a while ago: -qm, -qw
1484Simon Marlow <marlowsd@gmail.com>**20080619121227]
1485[Document the change to +RTS -S/-s/-t
1486Simon Marlow <marlowsd@gmail.com>**20080619121201]
1487[document paralel GC option: +RTS -g
1488Simon Marlow <marlowsd@gmail.com>**20080619121111]
1489[+RTS -S -RTS now sends output to stderr (also -s)
1490Simon Marlow <marlowsd@gmail.com>**20080619113329
1491 Previously +RTS -Sstderr -RTS was required to send output to stderr,
1492 but this is the most common usage and I got tired of typing "stderr".
1493 The old default behaviour of sending output to <prog>.stat is now gone
1494 (I don't think we use it anywhere). 
1495 
1496 Temporarily we allowed +RTS -S- -RTS to mean stderr; there were
1497 objections to this, so it is now also gone.
1498]
1499[bytestring is -Wall clean
1500Ian Lynagh <igloo@earth.li>**20080619010702]
1501[Cabal is -Wall clean
1502Ian Lynagh <igloo@earth.li>**20080619010436]
1503[The haskell98 library is -Wall clean
1504Ian Lynagh <igloo@earth.li>**20080619010124]
1505[template-haskell is now -Wall clean
1506Ian Lynagh <igloo@earth.li>**20080619005811]
1507[containers is now -Wall clean
1508Ian Lynagh <igloo@earth.li>**20080618233651]
1509[fix a tiny bug spotted by gcc 4.3
1510Simon Marlow <marlowsd@gmail.com>**20080619100904]
1511[Fix up inlines for gcc 4.3
1512Simon Marlow <marlowsd@gmail.com>**20080619100849
1513 gcc 4.3 emits warnings for static inline functions that its heuristics
1514 decided not to inline.  The workaround is to either mark appropriate
1515 functions as "hot" (a new attribute in gcc 4.3), or sometimes to use
1516 "extern inline" instead.
1517 
1518 With this fix I can validate with gcc 4.3 on Fedora 9.
1519]
1520[fix warnings with gcc 4.3
1521Simon Marlow <marlowsd@gmail.com>**20080618144307]
1522[it's time to retire ghcprof & friends
1523Simon Marlow <marlowsd@gmail.com>**20080618140228]
1524[Make the wired-in packages code handle ndp mapping to ndp-seq or ndp-par
1525Ian Lynagh <igloo@earth.li>**20080618162233
1526 It's getting a bit crufty - could probably do with a rewrite.
1527]
1528[Put the infrastructure in place for getting the libraries -Wall clean
1529Ian Lynagh <igloo@earth.li>**20080617020145
1530 libraries/Makefile.local now lists those for which we need to pass -w
1531 (currently this is every library).
1532]
1533[utils/Digraph doesn't need -fglasgow-exts passed specially
1534Ian Lynagh <igloo@earth.li>**20080616225949]
1535[Fix Trac #2321: bug in SAT
1536simonpj@microsoft.com**20080616201700
1537   This is a fairly substantial rewrite of the Static Argument Transformatoin,
1538   done by Max Bolingbroke and reviewed and modified by Simon PJ.
1539   
1540   * Fix a subtle scoping problem; see Note [Binder type capture]
1541   * Redo the analysis to use environments
1542   * Run gentle simlification just before the transformation
1543 
1544]
1545[define NeedVarargsPrototypes to avoid segfault on x86_64
1546Simon Marlow <marlowsd@gmail.com>**20080618132116]
1547[Fix an example where we weren't doing case-of-case when we should
1548Simon Marlow <marlowsd@gmail.com>**20080617123510
1549 That's 1 line of new code and 38 lines of new comments
1550]
1551[fix gcc warnings for printf formats on 32-bit
1552Simon Marlow <marlowsd@gmail.com>**20080618094018]
1553[FIX BUILD on Windows
1554Simon Marlow <marlowsd@gmail.com>**20080618094700]
1555[Sort the mi_deps into a canonical ordering before fingerprinting.
1556Simon Marlow <marlowsd@gmail.com>**20080617152117
1557 This may help do a little less recompilation with make (GHC's --make
1558 is unaffected).
1559]
1560[Fix another "urk! lookup local fingerprint" in nofib/real/bspt/GeomNum.lhs
1561Simon Marlow <marlowsd@gmail.com>**20080617151530]
1562[small interpreter fix
1563Simon Marlow <marlowsd@gmail.com>**20080617134651]
1564[fix some printf formats for 64 bits
1565Simon Marlow <marlowsd@gmail.com>**20080617101102]
1566[64-bit fixes
1567Simon Marlow <marlowsd@gmail.com>**20080617101045]
1568[don't try to parallelise marking GC (yet)
1569Simon Marlow <marlowsd@gmail.com>**20080616073111]
1570[another stableptr003 fix
1571Simon Marlow <marlowsd@gmail.com>**20080609191722]
1572[Experimental "mark-region" strategy for the old generation
1573Simon Marlow <marlowsd@gmail.com>**20080609174943
1574 Sometimes better than the default copying, enabled by +RTS -w
1575]
1576[threadStackUnderflow: fix up the bd->free pointers in the split blocks
1577Simon Marlow <marlowsd@gmail.com>**20080609171617]
1578[fix allocated blocks calculation, and add more sanity checks
1579Simon Marlow <marlowsd@gmail.com>**20080608073754]
1580[Put the contents of Evac.c-inc back in Evac.c, and just compile the file twice
1581Simon Marlow <marlowsd@gmail.com>**20080603073119
1582 Similarly for Scav.c/Scav.c-inc.
1583]
1584[+RTS -N also sets +RTS -g
1585Simon Marlow <marlowsd@gmail.com>**20080603072701]
1586[DECLARE_GCT for when we have no register variable
1587Simon Marlow <marlowsd@gmail.com>**20080603072608]
1588[comment updates
1589Simon Marlow <marlowsd@gmail.com>**20080603072527]
1590[fix some types for 64-bit platforms
1591Simon Marlow <marlowsd@gmail.com>**20080603032625]
1592[+RTS -S- is the same as +RTS -Sstderr
1593Simon Marlow <marlowsd@gmail.com>**20080603032557]
1594[move the spinlock counts inside +RTS -S
1595Simon Marlow <marlowsd@gmail.com>**20080603032534]
1596[FIX #2164: check for ThreadRelocated in isAlive()
1597Simon Marlow <marlowsd@gmail.com>**20080528063904]
1598[FIX the compacting GC again
1599Simon Marlow <simonmarhaskell@gmail.com>**20080424205829]
1600[FIX #2185: sparks should not be treated as roots by the GC
1601Simon Marlow <simonmarhaskell@gmail.com>**20080424205813]
1602[turn off the usleep() in the GC thread idle loop (tmp, for portability)
1603Simon Marlow <simonmarhaskell@gmail.com>**20080417220221]
1604[declare the GC thread register variable more portably
1605Simon Marlow <simonmarhaskell@gmail.com>**20080417220157]
1606[remove EVACUATED: store the forwarding pointer in the info pointer
1607Simon Marlow <simonmarhaskell@gmail.com>**20080417212707]
1608[tso->link is now tso->_link  (fix after merge with HEAD)
1609Simon Marlow <simonmarhaskell@gmail.com>**20080417180016]
1610[Don't look at all the threads before each GC.
1611Simon Marlow <simonmarhaskell@gmail.com>**20080416234446
1612 We were looking at all the threads for 2 reasons:
1613  1. to catch transactions that might be looping as a
1614     result of seeing an inconsistent view of memory.
1615  2. to catch threads with blocked exceptions that are
1616     themselves blocked.
1617 For (1) we now check for this case whenever a thread yields, and for
1618 (2) we catch these threads in the GC itself and send the exceptions
1619 after GC (see performPendingThrowTos).
1620]
1621[Don't traverse the entire list of threads on every GC (phase 1)
1622Simon Marlow <simonmarhaskell@gmail.com>**20080416234420
1623 Instead of keeping a single list of all threads, keep one per step
1624 and only look at the threads belonging to steps that we are
1625 collecting.
1626]
1627[optimisation for isAlive()
1628Simon Marlow <simonmarhaskell@gmail.com>**20080416234349]
1629[refactoring
1630Simon Marlow <simonmarhaskell@gmail.com>**20080416234324]
1631[add [] to foreign calls
1632Simon Marlow <simonmarhaskell@gmail.com>**20080416234234]
1633[remove GRAN/PAR code
1634Simon Marlow <simonmarhaskell@gmail.com>**20080416234135]
1635[bugfix for traverseBlackHoleQueue
1636Simon Marlow <simonmarhaskell@gmail.com>**20080416234042]
1637[Add a write barrier to the TSO link field (#1589)
1638Simon Marlow <simonmarhaskell@gmail.com>**20080416233951]
1639[fix trace
1640Simon Marlow <simonmarhaskell@gmail.com>**20080416233922]
1641[tmp: alloc one block at a time
1642Simon Marlow <simonmarhaskell@gmail.com>**20080416233830]
1643[add debugging code to check for fragmentation
1644Simon Marlow <simonmarhaskell@gmail.com>**20080416233058]
1645[do a better job of re-using partial blocks in subsequent GCs
1646Simon Marlow <simonmarhaskell@gmail.com>**20080416232949]
1647[Use the BF_EVACUATED flag to indicate to-space consistently
1648Simon Marlow <simonmarhaskell@gmail.com>**20080416232906
1649 BF_EVACUATED is now set on all blocks except those that we are
1650 copying.  This means we don't need a separate test for gen>N in
1651 evacuate(), because in generations older than N, BF_EVACUATED will be
1652 set anyway.  The disadvantage is that we have to reset the
1653 BF_EVACUATED flag on the blocks of any generation we're collecting
1654 before starting GC.  Results in a small speed improvement.
1655]
1656[rearrange: we were calling markSomeCapabilities too often
1657Simon Marlow <simonmarhaskell@gmail.com>**20080416232825]
1658[debug output: show mem in use
1659Simon Marlow <simonmarhaskell@gmail.com>**20080416232739]
1660[make +RTS -G1 work again
1661Simon Marlow <simonmarhaskell@gmail.com>**20080416232510]
1662[pad step_workspace to 64 bytes, to speed up access to gct->steps[]
1663Simon Marlow <simonmarhaskell@gmail.com>**20080416232433]
1664[update copyrights in rts/sm
1665Simon Marlow <simonmarhaskell@gmail.com>**20080416232355]
1666[Reorganisation to fix problems related to the gct register variable
1667Simon Marlow <simonmarhaskell@gmail.com>**20080416232232
1668   - GCAux.c contains code not compiled with the gct register enabled,
1669     it is callable from outside the GC
1670   - marking functions are moved to their relevant subsystems, outside
1671     the GC
1672   - mark_root needs to save the gct register, as it is called from
1673     outside the GC
1674]
1675[faster block allocator, by dividing the free list into buckets
1676Simon Marlow <simonmarhaskell@gmail.com>**20080416224541]
1677[allocate more blocks in one go, to reduce contention for the block allocator
1678Simon Marlow <simonmarhaskell@gmail.com>**20080416223824]
1679[measure GC(0/1) times and work imbalance
1680Simon Marlow <simonmarhaskell@gmail.com>**20080416222539]
1681[remove outdated comment
1682Simon Marlow <simonmarhaskell@gmail.com>**20080416222319]
1683[calculate and report slop (wasted space at the end of blocks)
1684Simon Marlow <simonmarhaskell@gmail.com>**20080416221516]
1685[free empty blocks at the end of GC
1686Simon Marlow <simonmarhaskell@gmail.com>**20080416221356]
1687[move the scan block pointer into the gct structure
1688Simon Marlow <simonmarhaskell@gmail.com>**20080416221331]
1689[improvements to +RTS -s output
1690Simon Marlow <simonmarhaskell@gmail.com>**20080416221224
1691 - count and report number of parallel collections
1692 - calculate bytes scanned in addition to bytes copied per thread
1693 - calculate "work balance factor"
1694 - tidy up the formatting a bit
1695]
1696[wait for threads to start up properly
1697Simon Marlow <simonmarhaskell@gmail.com>**20080416221002]
1698[debug output tweaks
1699Simon Marlow <simonmarhaskell@gmail.com>**20080416220807]
1700[Keep track of an accurate count of live words in each step
1701Simon Marlow <simonmarhaskell@gmail.com>**20080416220620
1702 This means we can calculate slop easily, and also improve
1703 predictability of GC.
1704]
1705[Allow work units smaller than a block to improve load balancing
1706Simon Marlow <simonmarhaskell@gmail.com>**20080416220347]
1707[in scavenge_block1(), we can use the lock-free recordMutableGen()
1708Simon Marlow <simonmarhaskell@gmail.com>**20080416220104]
1709[update the debug counters following changes to scav_find_work()
1710Simon Marlow <simonmarhaskell@gmail.com>**20080416215945]
1711[change the find-work strategy: use oldest-first consistently
1712Simon Marlow <simonmarhaskell@gmail.com>**20080416215815]
1713[per-thread debug output when using multiple threads, not just major gc
1714Simon Marlow <simonmarhaskell@gmail.com>**20080416215741]
1715[small debug output improvements
1716Simon Marlow <simonmarhaskell@gmail.com>**20080416215649]
1717[allow parallel minor collections too
1718Simon Marlow <simonmarhaskell@gmail.com>**20080416215503]
1719[Specialise evac/scav for single-threaded, not minor, GC
1720Simon Marlow <simonmarhaskell@gmail.com>**20080416215405
1721 So we can parallelise minor collections too.  Sometimes it's worth it.
1722]
1723[move usleep(1) to gc_thread_work() from any_work()
1724Simon Marlow <simonmarhaskell@gmail.com>**20080416215325]
1725[use RTS_VAR()
1726Simon Marlow <simonmarhaskell@gmail.com>**20080416215245]
1727[treat the global work list as a queue rather than a stack
1728Simon Marlow <simonmarhaskell@gmail.com>**20080416215109]
1729[GC: move static object processinng into thread-local storage
1730Simon Marlow <simonmarhaskell@gmail.com>**20080416214825]
1731[tmp: usleep(1) during anyWork() if no work
1732Simon Marlow <simonmarhaskell@gmail.com>**20080416214023]
1733[anyWork(): count the number of times we don't find any work
1734Simon Marlow <simonmarhaskell@gmail.com>**20080416213945]
1735[stats fixes
1736Simon Marlow <simonmarhaskell@gmail.com>**20080416213532]
1737[Add +RTS -vg flag for requesting some GC trace messages, outside DEBUG
1738Simon Marlow <simonmarhaskell@gmail.com>**20080416213504
1739 DEBUG imposes a significant performance hit in the GC, yet we often
1740 want some of the debugging output, so -vg gives us the cheap trace
1741 messages without the sanity checking of DEBUG, just like -vs for the
1742 scheduler.
1743]
1744[GC: rearrange storage to reduce memory accesses in the inner loop
1745Simon Marlow <simonmarhaskell@gmail.com>**20080416213436]
1746[Add profiling of spinlocks
1747Simon Marlow <simonmarhaskell@gmail.com>**20080416213358]
1748[rename StgSync to SpinLock
1749Simon Marlow <simonmarhaskell@gmail.com>**20080416211152]
1750[Release some of the memory allocated to a stack when it shrinks (#2090)
1751simonmar@microsoft.com**20080228153129
1752 When a stack is occupying less than 1/4 of the memory it owns, and is
1753 larger than a megablock, we release half of it.  Shrinking is O(1), it
1754 doesn't need to copy the stack.
1755]
1756[scavengeTSO might encounter a ThreadRelocated; cope
1757simonmar@microsoft.com**20080228152403]
1758[Updating a thunk in raiseAsync might encounter an IND; cope
1759simonmar@microsoft.com**20080228152332
1760 There was already a check to avoid updating an IND, but it was
1761 originally there to avoid a bug which doesn't exist now.  Furthermore
1762 the test and update are not atomic, so another thread could be
1763 updating this thunk while we are.  We have to just go ahead and update
1764 anyway - it might waste a little work, but this is a very rare case.
1765]
1766[add GC(0) and GC(1) time
1767Simon Marlow <simonmar@microsoft.com>**20080222142008]
1768[round_to_mblocks: should use StgWord not nat
1769Simon Marlow <simonmar@microsoft.com>**20080220130139]
1770[debugging code
1771Simon Marlow <simonmar@microsoft.com>**20080219102651]
1772[refactoring
1773simonmar@microsoft.com**20080218135458]
1774[fix off-by-one
1775simonmar@microsoft.com**20080215134017]
1776[measure mut_elapsed_time
1777simonmar@microsoft.com**20080215133850]
1778[fix build with 6.8
1779simonmar@microsoft.com**20080215133836]
1780[add ROUNDUP_BYTES_TO_WDS
1781simonmar@microsoft.com**20080215133040]
1782[Allow +RTS -H0 as a way to override a previous -H<size>
1783simonmar@microsoft.com**20080131153645]
1784[comment out a bogus assertion
1785simonmar@microsoft.com**20080130150934]
1786[memInventory: optionally dump the memory inventory
1787simonmar@microsoft.com**20080130150921
1788 in addition to checking for leaks
1789]
1790[calcNeeded: fix the calculation, we weren't counting G0 step 1
1791simonmar@microsoft.com**20080130150730]
1792[calcNeeded: add in the large blocks too
1793simonmar@microsoft.com**20080130135418]
1794[update a comment
1795Simon Marlow <simonmar@microsoft.com>**20080130101504]
1796[tell Emacs these files are C
1797simonmar@microsoft.com**20080130100047]
1798[fix an assertion
1799Simon Marlow <simonmar@microsoft.com>**20080118160910]
1800[cut-and-pasto
1801Simon Marlow <simonmar@microsoft.com>**20080116103751]
1802[small rearrangement
1803simonmar@microsoft.com**20080115095736]
1804[recordMutableGen_GC: we must call the spinlocked version of allocBlock()
1805Simon Marlow <simonmar@microsoft.com>**20080111135453]
1806[remove unused declaration
1807simonmar@microsoft.com**20080111105821]
1808[more fixes for THUNK_SELECTORs
1809Simon Marlow <simonmar@microsoft.com>**20080110122820]
1810[Fix bug in eval_thunk_selector()
1811simonmar@microsoft.com**20080110105628]
1812[move markSparkQueue into GC.c, as it needs the register variable defined
1813Simon Marlow <simonmar@microsoft.com>**20080109162828]
1814[Windows fix
1815Simon Marlow <simonmar@microsoft.com>**20080109162732]
1816[Fix bug: eval_thunk_selector was calling the unlocked evacuate()
1817Simon Marlow <simonmar@microsoft.com>**20080109144937]
1818[add GC elapsed time
1819simonmar@microsoft.com**20080107134838]
1820[update to match Mb -> MB change in -s output
1821simonmar@microsoft.com**20071220145855]
1822[use "MB" rather than "Mb" for abbreviating megabytes
1823simonmar@microsoft.com**20071218145135]
1824[findSlop: useful function for tracking down excessive slop in gdb
1825simonmar@microsoft.com**20071214135909]
1826[calculate wastage due to unused memory at the end of each block
1827simonmar@microsoft.com**20071214135842]
1828[bugfix: check for NULL before testing isPartiallyFull(stp->blocks)
1829simonmar@microsoft.com**20071214103223]
1830[have each GC thread call GetRoots()
1831simonmar@microsoft.com**20071213165013
1832 
1833]
1834[use synchronised version of freeChain() in scavenge_mutable_list()
1835simonmar@microsoft.com**20071213164525]
1836[remove declarations for variables that no longer exist
1837simonmar@microsoft.com**20071213150946]
1838[remove old comment
1839simonmar@microsoft.com**20071212163329]
1840[GC: small improvement to parallelism
1841simonmar@microsoft.com**20071129154927
1842 don't cache a work block locally if the global queue is empty
1843]
1844[EVACUATED: target is definitely HEAP_ALLOCED(), no need to check
1845simonmar@microsoft.com**20071129120021]
1846[in scavenge_block(), keep going if we're scanning the todo block
1847simonmar@microsoft.com**20071127160747]
1848[count the number of todo blocks, and add a trace
1849simonmar@microsoft.com**20071127160717]
1850[oops, restore accidentally disabled hash-consing for Char
1851simonmar@microsoft.com**20071123162522]
1852[kill the PAR/GRAN debug flags
1853simonmar@microsoft.com**20071122122327]
1854[stats: print elapsed time for GC in each generation
1855simonmar@microsoft.com**20071122105024]
1856[assertion fix
1857simonmar@microsoft.com**20071121164736]
1858[cache bd->todo_bd->free and the limit in the workspace
1859Simon Marlow <simonmar@microsoft.com>**20071121155851
1860 avoids cache contention: bd->todo_bd->free may clash with any cache
1861 line, so we localise it.
1862]
1863[warning fix
1864simonmar@microsoft.com**20071121164747]
1865[fix boundary bugs in a couple of for-loops
1866simonmar@microsoft.com**20071120133835]
1867[improvements to PAPI support
1868simonmar@microsoft.com**20071120133635
1869 - major (multithreaded) GC is measured separately from minor GC
1870 - events to measure can now be specified on the command line, e.g
1871      prog +RTS -a+PAPI_TOT_CYC
1872 
1873]
1874[use SRC_CC_OPTS rather than SRC_HC_OPTS for C options
1875simonmar@microsoft.com**20071119111630]
1876[allow PAPI to be installed somewhere non-standard
1877Simon Marlow <simonmar@microsoft.com>**20071101150325]
1878[fix warnings
1879Simon Marlow <simonmar@microsoft.com>**20071101150258]
1880[fix a warning
1881Simon Marlow <simonmar@microsoft.com>**20071101150228]
1882[fix a warning
1883Simon Marlow <simonmar@microsoft.com>**20071101150200]
1884[rename n_threads to n_gc_threads
1885Simon Marlow <simonmar@microsoft.com>**20071031163147]
1886[Refactor PAPI support, and add profiling of multithreaded GC
1887Simon Marlow <simonmar@microsoft.com>**20071031163015]
1888[fix merge errors
1889Simon Marlow <simonmar@microsoft.com>**20071031153839]
1890[refactoring of eager_promotion in scavenge_block()
1891Simon Marlow <simonmar@microsoft.com>**20071031153417]
1892[compile special minor GC versions of evacuate() and scavenge_block()
1893Simon Marlow <simonmar@microsoft.com>**20071031153339
1894 
1895 This is for two reasons: minor GCs don't need to do per-object locking
1896 for parallel GC, which is fairly expensive, and secondly minor GCs
1897 don't need to follow SRTs.
1898]
1899[fixes for eval_thunk_selector() in parallel GC
1900Simon Marlow <simonmar@microsoft.com>**20071031153252]
1901[Remove the optimisation of avoiding scavenging for certain objects
1902Simon Marlow <simonmar@microsoft.com>**20071031144542
1903 
1904 Some objects don't need to be scavenged, in particular if they have no
1905 pointers.  This seems like an obvious optimisation, but in fact it
1906 only accounts for about 1% of objects (in GHC, for example), and the
1907 extra complication means it probably isn't worth doing.
1908]
1909[GC refactoring: change evac_gen to evac_step
1910Simon Marlow <simonmar@microsoft.com>**20071031144230
1911 
1912 By establishing an ordering on step pointers, we can simplify the test
1913   (stp->gen_no < evac_gen)
1914 to
1915   (stp < evac_step)
1916 which is common in evacuate().
1917]
1918[GC refactoring: make evacuate() take an StgClosure**
1919Simon Marlow <simonmar@microsoft.com>**20071031143634
1920 
1921 Change the type of evacuate() from
1922   StgClosure *evacuate(StgClosure *);
1923 to
1924   void evacuate(StgClosure **);
1925 
1926 So evacuate() itself writes the source pointer, rather than the
1927 caller.  This is slightly cleaner, and avoids a few memory writes:
1928 sometimes evacuate() doesn't move the object, and in these cases the
1929 source pointer doesn't need to be written.  It doesn't have a
1930 measurable impact on performance, though.
1931]
1932[tiny optimisation in evacuate()
1933Simon Marlow <simonmar@microsoft.com>**20071031130935]
1934[Initial parallel GC support
1935Simon Marlow <simonmar@microsoft.com>**20071031130718
1936 
1937 eg. use +RTS -g2 -RTS for 2 threads.  Only major GCs are parallelised,
1938 minor GCs are still sequential. Don't use more threads than you
1939 have CPUs.
1940 
1941 It works most of the time, although you won't see much speedup yet.
1942 Tuning and more work on stability still required.
1943]
1944[Refactoring of the GC in preparation for parallel GC
1945Simon Marlow <simonmar@microsoft.com>**20071031125136
1946   
1947 This patch localises the state of the GC into a gc_thread structure,
1948 and reorganises the inner loop of the GC to scavenge one block at a
1949 time from global work lists in each "step".  The gc_thread structure
1950 has a "workspace" for each step, in which it collects evacuated
1951 objects until it has a full block to push out to the step's global
1952 list.  Details of the algorithm will be on the wiki in due course.
1953 
1954 At the moment, THREADED_RTS does not compile, but the single-threaded
1955 GC works (and is 10-20% slower than before).
1956]
1957[also count total dispatch stalls in +RTS -as
1958Simon Marlow <simonmar@microsoft.com>**20071030144509]
1959[move GetRoots() to GC.c
1960Simon Marlow <simonmar@microsoft.com>**20071030130052]
1961[Tweak a comment to talk about UnboxedTuples rather than -fglasgow-exts
1962Ian Lynagh <igloo@earth.li>**20080616225248]
1963[Suggest -XRelaxedPolyRec rather than -fglasgow-exts in an error message
1964Ian Lynagh <igloo@earth.li>**20080616213438]
1965[Fix the splitter with perl 5.10; patch from Audrey Tang
1966Ian Lynagh <igloo@earth.li>**20080611122837]
1967[Remove some build system code that can't happen
1968Ian Lynagh <igloo@earth.li>**20080616181425
1969 ghc_ge_601 is no longer defined
1970]
1971[Fix Trac #2358: 1-tuples in Template Haskell
1972simonpj@microsoft.com**20080614123939
1973 
1974 fons points out that TH was treating 1-tuples inconsistently.  Generally
1975 we make a 1-tuple into a no-op, so that (e) and e are the same.  But
1976 I'd forgotten to do this for types.
1977 
1978 It is possible to have a type with an un-saturated 1-tuple type
1979 constructor. That now elicits an error message when converting from
1980 TH syntax to Hs syntax
1981 
1982]
1983[Fix nasty Simplifier scoping bug
1984simonpj@microsoft.com**20080614023937
1985 
1986 This bug was somehow tickled by the new code for desugaring
1987 polymorphic bindings, but the bug has been there a long time.  The
1988 bindings floated out in simplLazyBind, generated by abstractFloats,
1989 were getting processed by postInlineUnconditionally. But that was
1990 wrong because part of their scope has already been processed.
1991 
1992 That led to a bit of refactoring in the simplifier.  See comments
1993 with Simplify.addPolyBind.
1994 
1995 In principle this might happen in 6.8.3, but in practice it doesn't seem
1996 to, so probably not worth merging.
1997 
1998]
1999[CoreLint should check for out-of-scope worker
2000simonpj@microsoft.com**20080614023809]
2001[More commandline flag improvements
2002Ian Lynagh <igloo@earth.li>**20080616142917
2003 * Allow -ffoo flags to be deprecated
2004 * Mark some -ffoo flags as deprecated
2005 * Avoid using deprecated flags in error messages, in the build system, etc
2006 * Add a flag to en/disable the deprecated flag warning
2007]
2008[Remove an ifdef
2009Ian Lynagh <igloo@earth.li>**20080616111114]
2010[Add ghc_ge_609
2011Ian Lynagh <igloo@earth.li>**20080615134636]
2012[Remove an ifdef
2013Ian Lynagh <igloo@earth.li>**20080615133743]
2014[Don't compile Cabal with -cpp -fffi
2015Ian Lynagh <igloo@earth.li>**20080615010826
2016 Instead rely on the sources having suitable pragmas
2017]
2018[Remove a typo
2019Ian Lynagh <igloo@earth.li>**20080615005956]
2020[Allow -X flags to be deprecated, and deprecate RecordPuns; fixes #2320
2021Ian Lynagh <igloo@earth.li>**20080615000041]
2022[Fix a warning in DsForeign
2023Ian Lynagh <igloo@earth.li>**20080614215346]
2024[Fix warnings in Linker
2025Ian Lynagh <igloo@earth.li>**20080614212627]
2026[Use the right set of linkables in unload_wkr
2027Ian Lynagh <igloo@earth.li>**20080614211539]
2028[Use bracket_ rather than bracket in withExtendedLinkEnv
2029Ian Lynagh <igloo@earth.li>**20080614211414]
2030[Remove more ifdeffery
2031Ian Lynagh <igloo@earth.li>**20080614205131]
2032[Remove more ifdeffery
2033Ian Lynagh <igloo@earth.li>**20080614204234]
2034[Remove more ifdeffery
2035Ian Lynagh <igloo@earth.li>**20080614203215]
2036[Remove some ifdeffery
2037Ian Lynagh <igloo@earth.li>**20080614202640]
2038[Fix some warnings in ParsePkgConf
2039Ian Lynagh <igloo@earth.li>**20080614201558]
2040[Fix warnings in DsForeign
2041Ian Lynagh <igloo@earth.li>**20080614200820]
2042[Fix warnings in PprCore
2043Ian Lynagh <igloo@earth.li>**20080614195611]
2044[Fix warnings in Main
2045Ian Lynagh <igloo@earth.li>**20080614194120]
2046[Set -Wall in compiler/Makefile.ghcbin
2047Ian Lynagh <igloo@earth.li>**20080614193536]
2048[Use maybePrefixMatch in StaticFlags rather than redefining it ourselves
2049Ian Lynagh <igloo@earth.li>**20080614190505]
2050[Use -fforce-recomp rather than -no-recomp
2051Ian Lynagh <igloo@earth.li>**20080614181740]
2052[Tweak the deprecated flags warning
2053Ian Lynagh <igloo@earth.li>**20080614174850]
2054[Use -O0 rather than -Onot in compiler/Makefile
2055Ian Lynagh <igloo@earth.li>**20080614171256]
2056[Don't use -recomp whem compiling GHC, as it's the default (and now deprecated)
2057Ian Lynagh <igloo@earth.li>**20080614165649]
2058[Use -fforce-recomp rather than -no-recomp when building genapply
2059Ian Lynagh <igloo@earth.li>**20080614161927]
2060[Get -recomp and -no-recomp the right way round
2061Ian Lynagh <igloo@earth.li>**20080614161851]
2062[Fix conversions between Double/Float and simple-integer
2063Ian Lynagh <igloo@earth.li>**20080614152337]
2064[Use unified diff
2065Ian Lynagh <igloo@earth.li>**20080603172947]
2066[Use -O0 rather than the deprecated -Onot
2067Ian Lynagh <igloo@earth.li>**20080614152131]
2068[Handle errors in an OPTIONS pragma when preprocessing
2069Ian Lynagh <igloo@earth.li>**20080614145840]
2070[Allow flags to be marked as deprecated
2071Ian Lynagh <igloo@earth.li>**20080614144829]
2072[eta-reduce a Monad type synonym, so we can use it non-applied
2073Ian Lynagh <igloo@earth.li>**20080614142056]
2074[Use a proper datatype, rather than pairs, for flags
2075Ian Lynagh <igloo@earth.li>**20080614133848]
2076[Fix warnings in DriverMkDepend
2077Ian Lynagh <igloo@earth.li>**20080614133224]
2078[Fix whitespace in DriverMkDepend
2079Ian Lynagh <igloo@earth.li>**20080614132914]
2080[Fix the last warnings in DynFlags
2081Ian Lynagh <igloo@earth.li>**20080614125033
2082 We might want to put the values initSysTools finds in their own type,
2083 rather than having them flattened into DynFlags
2084]
2085[Pass dynflags down to loadPackageConfig rather than using defaultDynFlags
2086Ian Lynagh <igloo@earth.li>**20080614123427]
2087[Make initSysTools use the dflags it is passed, rather than defaultDynFlags
2088Ian Lynagh <igloo@earth.li>**20080614122834]
2089[Remove some unused bindings from HaddockLex
2090Ian Lynagh <igloo@earth.li>**20080614122057]
2091[Pass dynflags down through to pragState
2092Ian Lynagh <igloo@earth.li>**20080614121156
2093 so we no longer need to use defaultDynFlags there
2094]
2095[Whitespace only in DynFlags
2096Ian Lynagh <igloo@earth.li>**20080614120316]
2097[Define and use is_decdigit for lexing escapes; fixes trac #2304
2098Ian Lynagh <igloo@earth.li>**20080613203553]
2099[Make SysTools warning-free
2100Ian Lynagh <igloo@earth.li>**20080612141738]
2101[Remove some CPPery with the help of a new value isWindowsHost in Util
2102Ian Lynagh <igloo@earth.li>**20080612002711
2103 isWindowsHost is True iff mingw32_HOST_OS is defined.
2104]
2105[Remove unused FFI import GetTempPathA (getTempPath)
2106Ian Lynagh <igloo@earth.li>**20080612001936]
2107[Whitespace only, in SysTools
2108Ian Lynagh <igloo@earth.li>**20080611233129]
2109[Get rid of the last remnants of PROJECT_DIR
2110Ian Lynagh <igloo@earth.li>**20080611230433
2111 This disappeared when we stopped being "fptools" and became just "ghc"
2112]
2113[Tell the testsuite how many threads we want it to use when validating
2114Ian Lynagh <igloo@earth.li>**20080611155456]
2115[Fix warnings in LexCore
2116Ian Lynagh <igloo@earth.li>**20080610125317]
2117[Fix warnings in Ctype
2118Ian Lynagh <igloo@earth.li>**20080610124223]
2119[Fix warnings in TcPat
2120Ian Lynagh <igloo@earth.li>**20080610123343]
2121[Fix warnings in TcEnv
2122Ian Lynagh <igloo@earth.li>**20080610121819]
2123[Fix warnings in TcRnTypes
2124Ian Lynagh <igloo@earth.li>**20080606234704]
2125[Fix warnings in TcTyClsDecls
2126Ian Lynagh <igloo@earth.li>**20080606213239]
2127[Fix warnings in TcHsType
2128Ian Lynagh <igloo@earth.li>**20080606204854]
2129[Fix warnings in TcSimplify
2130Ian Lynagh <igloo@earth.li>**20080606202435]
2131[Fix warnings in TcRules
2132Ian Lynagh <igloo@earth.li>**20080606200800]
2133[Fix warnings in TcInstDcls
2134Ian Lynagh <igloo@earth.li>**20080606200534]
2135[Fix warnings in TcMType
2136Ian Lynagh <igloo@earth.li>**20080606194931]
2137[Fix warnings in TcForeign
2138Ian Lynagh <igloo@earth.li>**20080606192610]
2139[Fix warnings in TcClassDcl
2140Ian Lynagh <igloo@earth.li>**20080606191413]
2141[Fix a bug in eqPatType
2142Ian Lynagh <igloo@earth.li>**20080606184631
2143 One of the conditions we were checking was
2144     t2 `eqPatLType` t2
2145 rather than
2146     t1 `eqPatLType` t2
2147]
2148[Show whether DEBUG is on in ghc --info
2149Ian Lynagh <igloo@earth.li>**20080606184415]
2150[Use -fno-toplevel-reorder with gcc >= 4.2 on sparc-solaris; fixes trac #2312
2151Ian Lynagh <igloo@earth.li>**20080606133817]
2152[Teach configure about amd64/NetBSD; fixes trac #2348
2153Ian Lynagh <igloo@earth.li>**20080606130955]
2154[Enable the mangler for netbsd/amd64; fixes trac #2347
2155Ian Lynagh <igloo@earth.li>**20080606130706]
2156[Improve documentation for standalone deriving
2157simonpj@microsoft.com**20080606122459]
2158[Fix Trac #2334: validity checking for type families
2159simonpj@microsoft.com**20080606121730
2160 
2161 When we deal with a family-instance declaration (TcTyClsDecls.tcFamInstDecl)
2162 we must check the TyCon for validity; for example, that a newtype has exactly
2163 one field.  That is done all-at-once for normal declarations, and had been
2164 forgotten altogether for families.
2165 
2166 I also refactored the interface to tcFamInstDecl1 slightly.
2167 
2168 
2169 A slightly separate matter: if there's an error in family instances
2170 (e.g. overlap) we get a confusing error message cascade if we attempt to
2171 deal with 'deriving' clauses too; this patch bales out earlier in that case.
2172 
2173 
2174 Another slightly separate matter: standalone deriving for family
2175 instances can legitimately have more specific types, just like normal
2176 data decls. For example
2177   
2178    data instance F [a] = ...
2179    deriving instance (Eq a, Eq b) => Eq (F [(a,b)])
2180 
2181 So tcLookupFamInstExact can a bit more forgiving than it was.
2182 
2183 
2184]
2185[Vital follow-up to fix of Trac #2045
2186simonpj@microsoft.com**20080605165434
2187 
2188 Sorry -- my 'validate' didn't work right and I missed a trick.
2189 This patch must accompany
2190 
2191  * Fix Trac #2045: use big-tuple machiney for implication constraints
2192 
2193 
2194]
2195[Fix Trac #2045: use big-tuple machiney for implication constraints
2196simonpj@microsoft.com**20080605145617]
2197[Comments only
2198simonpj@microsoft.com**20080605134743]
2199[Desugar multiple polymorphic bindings more intelligently
2200simonpj@microsoft.com**20080605124423
2201 
2202 Occasionally people write very large recursive groups of definitions.
2203 In general we desugar these to a single definition that binds tuple,
2204 plus lots of tuple selectors.  But that code has quadratic size, which
2205 can be bad.
2206 
2207 This patch adds a new case to the desugaring of bindings, for the
2208 situation where there are lots of polymorphic variables, but no
2209 dictionaries.  (Dictionaries force us into the general case.)
2210 
2211 See Note [Abstracting over tyvars only]. 
2212 
2213 The extra behaviour can be disabled with the (static) flag
2214 
2215        -fno-ds-multi-tyvar
2216 
2217 in case we want to experiment with switching it on or off.  There is
2218 essentially-zero effect on the nofib suite though.
2219 
2220 I was provoked into doing this by Trac #1136.  In fact I'm not sure
2221 it's the real cause of the problem there, but it's a good idea anyway.
2222 
2223]
2224[Add non-recursive let-bindings for types
2225simonpj@microsoft.com**20080605123612
2226 
2227 This patch adds to Core the ability to say
2228        let a = Int in <body>
2229 where 'a' is a type variable.  That is: a type-let.
2230 See Note [Type let] in CoreSyn.
2231 
2232 * The binding is always non-recursive
2233 * The simplifier immediately eliminates it by substitution
2234 
2235 So in effect a type-let is just a delayed substitution.  This is convenient
2236 in a couple of places in the desugarer, one existing (see the call to
2237 CoreTyn.mkTyBind in DsUtils), and one that's in the next upcoming patch.
2238 
2239 The first use in the desugarer was previously encoded as
2240        (/\a. <body>) Int
2241 rather that eagerly substituting, but that was horrid because Core Lint
2242 had do "know" that a=Int inside <body> else it would bleat.  Expressing
2243 it directly as a 'let' seems much nicer.
2244 
2245 
2246]
2247[Fix Trac #2339: reify (mkName "X")
2248simonpj@microsoft.com**20080604150207]
2249[Fix Trac #2310: result type signatures are not supported any more
2250simonpj@microsoft.com**20080604145115
2251 
2252 We have not supported "result type signatures" for some time, but
2253 using one in the wrong way caused a crash.  This patch tidies it up.
2254 
2255]
2256[Sort modules and packages in debug print (reduce test wobbles)
2257simonpj@microsoft.com**20080604144049
2258 
2259 This affects only the debug print TcRnDriver.pprTcGblEnv, and eliminates
2260 test-suite wobbling (affected me for tc168, tc231)
2261 
2262]
2263[Fix #2334: tyvar binders can have Names inside (equality predicates)
2264Simon Marlow <marlowsd@gmail.com>**20080604113002]
2265[fix pointer tagging bug in removeIndirections (fixes stableptr003)
2266Simon Marlow <marlowsd@gmail.com>**20080604105458]
2267[Fix unreg build
2268Simon Marlow <marlowsd@gmail.com>**20080604093653]
2269[tiny tweak to the stack squeezing heuristic (fixes cg060)
2270Simon Marlow <marlowsd@gmail.com>**20080604091244]
2271[MacOS installer: don't quote XCODE_EXTRA_CONFIGURE_ARGS
2272Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080604021321]
2273[MacOS installer: terminate build on intermediate failure
2274Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080604020155]
2275[Fix Trac #2331 (error message suggestion)
2276simonpj@microsoft.com**20080603134645]
2277[Improve documentation of RULES
2278simonpj@microsoft.com**20080530155137]
2279[Improve documentation for INLINE pragma
2280simonpj@microsoft.com**20080530133307]
2281[add debugDumpTcRn and use it for some debugging output
2282Simon Marlow <marlowsd@gmail.com>**20080603112030]
2283[Turn "NOTE: Simplifier still going..." message into a WARN()
2284Simon Marlow <marlowsd@gmail.com>**20080603105431]
2285[remove the "expanding to size" messages
2286Simon Marlow <marlowsd@gmail.com>**20080603094546]
2287[New flag: -dno-debug-output
2288Simon Marlow <marlowsd@gmail.com>**20080603082924
2289 From the docs:
2290    <para>Suppress any unsolicited debugging output.  When GHC
2291      has been built with the <literal>DEBUG</literal> option it
2292      occasionally emits debug output of interest to developers.
2293      The extra output can confuse the testing framework and
2294      cause bogus test failures, so this flag is provided to
2295      turn it off.</para>
2296]
2297[-no-link-chk has been a no-op since at least 6.0; remove it
2298Simon Marlow <marlowsd@gmail.com>**20080603082041]
2299[-no-link-chk is a relic
2300Simon Marlow <marlowsd@gmail.com>**20080603081904]
2301[Shorten debug messages
2302simonpj@microsoft.com**20080603121208]
2303[Fix minor layout issue (whitespace only)
2304simonpj@microsoft.com**20080602130611]
2305[MacOS installer: clean up Xcode project spec
2306Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080602070705]
2307[Fix validate: -Werror bug in patch "Replacing copyins and copyouts..."
2308Simon Marlow <marlowsd@gmail.com>**20080602144945]
2309[FIX #2231: add missing stack check when applying a PAP
2310Simon Marlow <marlowsd@gmail.com>**20080602143726
2311 This program makes a PAP with 203 arguments :-)
2312]
2313[-fforce-recomp should be unnecessary for Main.hs in stage[23] now
2314Simon Marlow <marlowsd@gmail.com>**20080602133801]
2315[Missing import in C-- parser
2316dias@eecs.harvard.edu**20080602103156]
2317[TAG 2008-06-01
2318Ian Lynagh <igloo@earth.li>**20080601155241]
2319Patch bundle hash:
23202e8beeececf61ef9c243593fac5fb056a9c2f779