DarcsConversion: GitCompat.darcs-patch

File GitCompat.darcs-patch, 91.0 KB (added by guest, 7 years ago)

All fixes for Git compatability except .gitignore

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