DarcsConversion: sync-all-v2.darcs-patch

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

sync-all, with StGIT support and other minor improvements

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