DarcsConversion: sync-all-v3.darcs-patch

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

sync-all, with bug fixes and merges from darcs-all

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