11 years agoadd comment
Simon Marlow [Sat, 4 Jun 2011 10:11:10 +0000 (11:11 +0100)]
add comment

11 years agocomment typo
Simon Marlow [Sat, 4 Jun 2011 10:10:49 +0000 (11:10 +0100)]
comment typo

11 years agoTidy up the ic_exports field of the InteractiveContext. Previously
Simon Marlow [Fri, 3 Jun 2011 23:13:04 +0000 (00:13 +0100)]
Tidy up the ic_exports field of the InteractiveContext.  Previously
was [(Module, Maybe ImportDecl)], now it is just [ImportDecl].  So now
":m +A" and "import A" do exactly the same thing in GHCi, and use the
same code paths.

11 years agoMake builds that use stage1 use "dist-install" consistently. This
Simon Marlow [Tue, 12 Apr 2011 12:30:02 +0000 (13:30 +0100)]
Make builds that use stage1 use "dist-install" consistently.  This
makes it easier to remove everything built with stage1 in cases where
the build system or GHC wrongly thinks everything is up to date.

11 years agoEmit various bits of OS process info into the eventlog
Duncan Coutts [Thu, 26 May 2011 17:44:41 +0000 (18:44 +0100)]
Emit various bits of OS process info into the eventlog

The process ID, parent process ID, rts name and version
The program arguments and environment.

11 years agoAdd capability sets to the tracing/events system
Duncan Coutts [Thu, 26 May 2011 15:42:37 +0000 (16:42 +0100)]
Add capability sets to the tracing/events system

We trace the creation and shutdown of capabilities. All the capabilities
in the process are assigned to one capabilitiy set of OS-process type.

This is a second version of the patch. Includes work by Spencer Janssen.

11 years agoMake the tracing of the startup event more regular
Duncan Coutts [Thu, 26 May 2011 15:01:24 +0000 (16:01 +0100)]
Make the tracing of the startup event more regular

Rather than doing it differently for the eventlog and Dtrace cases.

11 years agoRearrange shutdownCapability code slightly
Duncan Coutts [Thu, 26 May 2011 14:08:43 +0000 (15:08 +0100)]
Rearrange shutdownCapability code slightly

This is mostly for the beneift of having sensible places to put tracing
code later. We want a code path that has somewhere to trace (in order):
 (1) starting up all capabilities;
 (2) N * starting up an individual capability;
 (3) N * shutting down an individual capability;
 (4) shutting down all capabilities.
This has to work in both threaded and non-threaded modes.

Locations (1) and (2) are provided by initCapabilities and
initCapability respectively. Previously, there was no loccation for (4)
and while shutdownCapability should be usable for (3) it was only called
in the !THREADED_RTS case.

Now, shutdownCapability is called unconditionally (and the body is
conditonal on THREADED_RTS) and there is a new shutdownCapabilities that
calls shutdownCapability in a loop.

11 years agoMerge branch 'ghc-generics'
Jose Pedro Magalhaes [Thu, 26 May 2011 16:27:34 +0000 (18:27 +0200)]
Merge branch 'ghc-generics'

11 years agoMerge branch 'master' of
Simon Peyton Jones [Thu, 26 May 2011 16:22:02 +0000 (17:22 +0100)]
Merge branch 'master' of

11 years agoSuppress the alarming SpecConstr message for normal users (Trac #5125)
Simon Peyton Jones [Thu, 26 May 2011 16:21:51 +0000 (17:21 +0100)]
Suppress the alarming SpecConstr message for normal users (Trac #5125)

This is the offending message:
      Function `$wks2{v s2dJ} [lid]'
        has one call pattern, but the limit is 0
      Use -fspec-constr-count=n to set the bound
      Use -dppr-debug to see specialisations

The message isn't very good, and is for experts only. So now it
comes out only
    if you build with -DDEBUG
    or you specify -dppr-debug at runtime

11 years agoTreat the (~) type constructor a bit specially
Simon Peyton Jones [Thu, 26 May 2011 16:19:18 +0000 (17:19 +0100)]
Treat the (~) type constructor a bit specially
when kind-checking in Core Lint.  It's unusual
becuase it is poly-kinded; for example

(~) Int a
and (~) Maybe b

are both ok.  We don't want the full generality
of kind polymorphism (yet anyway) so these changes
in effect give (~) its own private kinding rule.

It won't work right if (~) appears un-saturated,
and Lint now checks for that too.

11 years agoMerge remote branch 'origin/master' into ghc-generics
Simon Peyton Jones [Thu, 26 May 2011 13:33:00 +0000 (14:33 +0100)]
Merge remote branch 'origin/master' into ghc-generics

11 years agoDo not be so eager about loading family-instance modules
Simon Peyton Jones [Thu, 26 May 2011 13:31:18 +0000 (14:31 +0100)]
Do not be so eager about loading family-instance modules
when doing the overlap check.  We only need to load the
ones for modules whose family instances we need to compare!

This means that programs that don't use type families are
not penalised, which is important.

11 years agoRejig the way in which generic default method signatures are checked
Simon Peyton Jones [Thu, 26 May 2011 13:30:15 +0000 (14:30 +0100)]
Rejig the way in which generic default method signatures are checked

- Check GenericSig in tcClassSigs, along with TypeSig
- Add the generic default methods to the type envt
- Look them up via tcLookupId in TcClassDcl.tcDefMeth

Much nicer!

11 years agoBump specConstr threshold to match to 10x factor added to
Simon Marlow [Thu, 26 May 2011 10:37:29 +0000 (11:37 +0100)]
Bump specConstr threshold to match to 10x factor added to
CoreUnfold.sizeExpr (oops, forgot to push this patch along with the
others yesterday, and this caused a few test failures overnight).

11 years agoRemove unused ghci/ByteCodeFFI.lhs
Ian Lynagh [Wed, 25 May 2011 18:08:38 +0000 (19:08 +0100)]
Remove unused ghci/ByteCodeFFI.lhs

11 years agoghc-pkg: report parser warnings when registering packages
Duncan Coutts [Wed, 25 May 2011 14:10:33 +0000 (15:10 +0100)]
ghc-pkg: report parser warnings when registering packages

11 years agoProvide the pkgroot value in ghc-pkg dump & describe when necessary
Duncan Coutts [Wed, 25 May 2011 12:06:14 +0000 (13:06 +0100)]
Provide the pkgroot value in ghc-pkg dump & describe when necessary

Tools handling installed packages need to be able to interpret the
paths which are relative to the ${pkgroot} which means they need to
know the value of ${pkgroot}. With ghc-pkg this is not always obvious
since ghc-pkg does not currently have any way machine interface for
reporting the location of its package dbs (global, user). The solution
we have arrived at is simply to emit the pkgroot as an extra field
when it is needed.

There are two cases:
 * --no-expand-pkgroot: ghc-pkg dump/describe will not expand the
   ${pkgroot} var, so it will appear literally in the output and the
   pkgroot field will be generated so that tools know what value to
   use for the ${pkgroot}.
 * --expand-pkgroot: ghc-pkg dump/describe will expand the ${pkgroot}
   and ${pkgrooturl} vars and will not generate the pkgroot field.

The defaults are:
 * ghc-pkg dump/describe --no-expand-pkgroot
 * ghc-pkg field --expand-pkgroot

11 years agosizeExpr: multiply all the sizes by 10, except for primops. This
Simon Marlow [Wed, 25 May 2011 12:06:05 +0000 (13:06 +0100)]
sizeExpr: multiply all the sizes by 10, except for primops.  This
makes primops look cheap (but not free), and improves the Repro4.hs
example from #4978.

While I was making this change I accidentally discovered that
increasing the discount for scrutinised constructors was an
unambiguous win, so I did that too.

11 years agoprog_argv and rts_argv now contain *copies* of the args passed to
Simon Marlow [Wed, 25 May 2011 09:00:29 +0000 (10:00 +0100)]
prog_argv and rts_argv now contain *copies* of the args passed to
setupRtsFlags(), rather than sharing the memory.  Previously if the
caller of hs_init() passed in dynamically-allocated memory and then
freed it, random crashes could happen later (#5177).

11 years agoAdd stricter ghc-pkg checks on package file/dir/url fields
Duncan Coutts [Tue, 24 May 2011 14:42:38 +0000 (15:42 +0100)]
Add stricter ghc-pkg checks on package file/dir/url fields

The haddock-html and haddock-interface fields are now checked
as well. Had to fix up ghc-cabal as it used relative paths for
the inplace package's haddock-html. It turns out that these
were never used so it could simply be omitted.

11 years agoImplement ${pkgroot} spec, allows relocatable registered packages
Duncan Coutts [Mon, 23 May 2011 21:10:45 +0000 (22:10 +0100)]
Implement ${pkgroot} spec, allows relocatable registered packages

Historically ghc implemented relocatable packages by allowing
"$topdir" in the package registration info and having ghc expand
this with its notion of $topdir. The topdir refers to where ghc
itself is installed (specifically the libdir).

The ${pkgroot} spec takes this idea and makes it portable.
Instead of paths relative to where ghc is installed, they can be
relative to the package database itself. Thus it is no longer a
ghc-specific idea and can work for package collections other than
the global package db.

11 years agoDeprecate the ghc-pkg --auto-ghci-libs flag
Duncan Coutts [Mon, 23 May 2011 19:20:52 +0000 (20:20 +0100)]
Deprecate the ghc-pkg --auto-ghci-libs flag

It was never a universal solution. It only worked with the GNU linker.
It has not been used by Cabal for ages. GHCi can now load .a files so
it will not be needed in future.

11 years agoghc-pkg: don't expand ${name}-style env vars by default
Duncan Coutts [Mon, 23 May 2011 19:12:50 +0000 (20:12 +0100)]
ghc-pkg: don't expand ${name}-style env vars by default

For shell-based build systems the feature is still available as:
  ghc-pkg register --expand-env-vars

Historically, ghc-pkg allowed environment variables to appear in the
input files for ghc-pkg register. They are not stored in the package
database but are expanded upon registration. This feature helped for
build systems based on makefiles and shell scripts. These days the
vast majority of such files are generated by Cabal and we don't want
any ${name} strings (e.g. perhaps in a package description) getting
accidentally interpreted as an environment variable.

11 years agoBetter output for -ddump-deriv when using generics.
Jose Pedro Magalhaes [Wed, 25 May 2011 09:57:44 +0000 (11:57 +0200)]
Better output for -ddump-deriv when using generics.

11 years agodeprecate the -n option (#5180)
Simon Marlow [Tue, 24 May 2011 14:37:33 +0000 (15:37 +0100)]
deprecate the -n option (#5180)

11 years agofix an integer overflow (#5086), and pre-emptively avoid more of these
Simon Marlow [Tue, 24 May 2011 15:56:23 +0000 (16:56 +0100)]
fix an integer overflow (#5086), and pre-emptively avoid more of these
in the future.

11 years agoDisable DatatypeContexts by default
Ian Lynagh [Tue, 24 May 2011 17:06:50 +0000 (18:06 +0100)]
Disable DatatypeContexts by default

The Haskell' committee decided to remove datatype contexts from the language:

11 years agoFix +RTS -G1 (by deleting code, yay!) (#5026)
Simon Marlow [Tue, 24 May 2011 13:28:46 +0000 (14:28 +0100)]
Fix +RTS -G1 (by deleting code, yay!) (#5026)

11 years agofix warning
Simon Marlow [Tue, 24 May 2011 12:44:15 +0000 (13:44 +0100)]
fix warning

11 years agoInstall the mtl package into the bindist when validating. This allows
Simon Marlow [Tue, 24 May 2011 12:43:04 +0000 (13:43 +0100)]
Install the mtl package into the bindist when validating.  This allows
some more tests to run (those with reqlib('mtl')) and serves as an
extra sanity check on Cabal and the bindist.

11 years agofix warnings
Simon Marlow [Tue, 24 May 2011 12:42:16 +0000 (13:42 +0100)]
fix warnings

11 years agomake the change to go_pap suggested in #4978. According to nofib, one
Simon Marlow [Tue, 24 May 2011 12:18:55 +0000 (13:18 +0100)]
make the change to go_pap suggested in #4978.  According to nofib, one
program is improved quite dramatically (fft2 30% less allocation), and
everything else was unchanged.

11 years agoAssign more accurate code sizes to primops, so that the inlining
Simon Marlow [Tue, 24 May 2011 12:16:28 +0000 (13:16 +0100)]
Assign more accurate code sizes to primops, so that the inlining
heuristics work better.  Also removed the old unused "needs_wrapper"
predicate for primops.  This helps with #4978.

11 years agoTweak sizing heurstics for case expressions (see comments).
Simon Marlow [Tue, 24 May 2011 12:14:17 +0000 (13:14 +0100)]
Tweak sizing heurstics for case expressions (see comments).
This improves the code generated for the examples in #4978, and
appears to make very little difference to nofib.

11 years agoRemove comment.
Jose Pedro Magalhaes [Mon, 23 May 2011 13:54:55 +0000 (15:54 +0200)]
Remove comment.

11 years agoFix a bug with standalone deriving of Generic instances.
Jose Pedro Magalhaes [Mon, 23 May 2011 09:54:38 +0000 (11:54 +0200)]
Fix a bug with standalone deriving of Generic instances.

11 years agoMerge branch 'master' of /home/simonmar/ghc-git/.
Simon Marlow [Mon, 23 May 2011 09:24:53 +0000 (10:24 +0100)]
Merge branch 'master' of /home/simonmar/ghc-git/.

* 'master' of /home/simonmar/ghc-git/.:
  Revert "Add capability sets to the event system. Contains code from Duncan Coutts."

11 years agoRevert "Add capability sets to the event system. Contains code from Duncan Coutts."
Duncan Coutts [Sun, 22 May 2011 23:10:21 +0000 (00:10 +0100)]
Revert "Add capability sets to the event system. Contains code from Duncan Coutts."

This reverts commit 58532eb46041aec8d4cbb48b054cb5b001edb43c.
Turns out it didn't work on Windows and it'll need some non-trivial changes
to make it work on Windows. We'll get it in later once that's sorted out.

11 years agoAdded utility to uniquely identify ghc repo states
David M Peixotto [Sun, 22 May 2011 19:30:22 +0000 (14:30 -0500)]
Added utility to uniquely identify ghc repo states

This commit adds python script that can be used to
create and restore "fingerprints" of a ghc repo configuration. A
fingerprint is a list of (sub-repo, commit) pairs. It can be used in
place of git submodules to record and reinstate the entire commit
state of the git repos used by ghc.

11 years agoFix small type in user guide.
David Terei [Sat, 21 May 2011 00:50:18 +0000 (17:50 -0700)]
Fix small type in user guide.

11 years agoMerge branch 'master' of into ghc-generics
Jose Pedro Magalhaes [Fri, 20 May 2011 18:15:23 +0000 (20:15 +0200)]
Merge branch 'master' of into ghc-generics

Fixed conflicts:

11 years agoMerge branch 'ghc-generics' of into ghc-generics
Jose Pedro Magalhaes [Fri, 20 May 2011 17:17:13 +0000 (19:17 +0200)]
Merge branch 'ghc-generics' of into ghc-generics

11 years agoSimon's fixes to the generated type instances in Generics
Simon Peyton Jones [Fri, 20 May 2011 16:51:05 +0000 (17:51 +0100)]
Simon's fixes to the generated type instances in Generics

11 years agoMake array copy primops inline
Johan Tibell [Fri, 15 Apr 2011 11:40:05 +0000 (13:40 +0200)]
Make array copy primops inline

11 years agoAdd array copy/clone primops
Daniel Peebles [Tue, 12 Apr 2011 11:35:59 +0000 (13:35 +0200)]
Add array copy/clone primops

11 years agoMerge branch 'master' of
Dimitrios Vytiniotis [Thu, 19 May 2011 08:56:56 +0000 (09:56 +0100)]
Merge branch 'master' of

11 years agoadd 'sync-all log'
Simon Marlow [Wed, 18 May 2011 15:38:32 +0000 (16:38 +0100)]
add 'sync-all log'

11 years agoMerge remote branch 'origin/master'
Dimitrios Vytiniotis [Wed, 18 May 2011 13:12:46 +0000 (14:12 +0100)]
Merge remote branch 'origin/master'

Fixed conflicts in:

11 years agoAdd capability sets to the event system. Contains code from Duncan Coutts.
Spencer Janssen [Thu, 14 Apr 2011 06:11:05 +0000 (01:11 -0500)]
Add capability sets to the event system. Contains code from Duncan Coutts.

11 years agoFixes the way we check if flattening happened during
Dimitrios Vytiniotis [Wed, 18 May 2011 09:13:55 +0000 (10:13 +0100)]
Fixes the way we check if flattening happened during
canonicalization. We now check whether the returned
coercion is an identity coercion. We used to check
whether we return any constraints from flattening but
that's wrong in the presence of the flattening cache.

11 years agoFIX #4825: Update User Guide info on DLLs.
Duncan Coutts [Tue, 17 May 2011 16:32:35 +0000 (17:32 +0100)]
FIX #4825: Update User Guide info on DLLs.

Original patch by Orphi <>
Plus a few miscellaneous updates from me.

11 years agoIntroducing:
Dimitrios Vytiniotis [Tue, 17 May 2011 16:24:50 +0000 (17:24 +0100)]
   1) Postponing the application of instances when there
      is a possibility of a given matching. With the addition
      of prioritizing equalities this fixes #5002 and #4981.

   2) Implemented caching of flattening in constraint
      simplification. This improves efficiency (fixes #5030)

   3) Simplified pushing of unsolved wanteds
      (now pushing only equalities) inside implications.

11 years agoMerge branch 'master' of into ghc-generics
Jose Pedro Magalhaes [Tue, 17 May 2011 06:51:09 +0000 (08:51 +0200)]
Merge branch 'master' of into ghc-generics

11 years agoAmend comment per Marlow's comments.
Edward Z. Yang [Mon, 16 May 2011 11:55:20 +0000 (12:55 +0100)]
Amend comment per Marlow's comments.

Signed-off-by: Edward Z. Yang <>

11 years agoFix build when DEBUG is on
Max Bolingbroke [Sun, 15 May 2011 22:08:54 +0000 (23:08 +0100)]
Fix build when DEBUG is on

11 years agoUse FractionalLit more extensively to improve other pretty printers
Max Bolingbroke [Sun, 15 May 2011 18:36:41 +0000 (19:36 +0100)]
Use FractionalLit more extensively to improve other pretty printers

11 years agoRecord the original text along with parsed Rationals: fixes #2245
Max Bolingbroke [Sun, 15 May 2011 17:50:54 +0000 (18:50 +0100)]
Record the original text along with parsed Rationals: fixes #2245

11 years agoWork around lack of saving volatile registers from unsafe foreign calls.
Edward Z. Yang [Sun, 15 May 2011 12:58:42 +0000 (13:58 +0100)]
Work around lack of saving volatile registers from unsafe foreign calls.

Signed-off-by: Edward Z. Yang <>

11 years agoMake -ddump-to-file truncate existing files.
Edward Z. Yang [Sun, 15 May 2011 10:57:51 +0000 (11:57 +0100)]
Make -ddump-to-file truncate existing files.

Signed-off-by: Edward Z. Yang <>

11 years agoMore aggressive clobber detection with Hp and RegSlot.
Edward Z. Yang [Sat, 14 May 2011 14:04:36 +0000 (15:04 +0100)]
More aggressive clobber detection with Hp and RegSlot.

Signed-off-by: Edward Z. Yang <>

11 years agoSplit -ddump-cmmz into many smaller flags.
Edward Z. Yang [Sat, 14 May 2011 11:48:30 +0000 (12:48 +0100)]
Split -ddump-cmmz into many smaller flags.

Signed-off-by: Edward Z. Yang <>

11 years agoMore aggressive CmmRegOff inlining, and fix failure to inline to assignments.
Edward Z. Yang [Sat, 14 May 2011 11:49:08 +0000 (12:49 +0100)]
More aggressive CmmRegOff inlining, and fix failure to inline to assignments.

Signed-off-by: Edward Z. Yang <>

11 years agoGeneralized assignment rewriting pass.
Edward Z. Yang [Wed, 13 Apr 2011 10:16:36 +0000 (11:16 +0100)]
Generalized assignment rewriting pass.

This assignment rewriting pass subsumes the previous reload
sinking pass, and also performs basic inlining.

Signed-off-by: Edward Z. Yang <>

11 years agoFix build: Add missing import and remove unneeded #ifdef.
Ben Lippmeier [Sun, 15 May 2011 10:26:22 +0000 (20:26 +1000)]
Fix build: Add missing import and remove unneeded #ifdef.
From Erik de Castro Lopo.

11 years agoAccept '-l foo' as library syntax: fixes #4869
Max Bolingbroke [Sun, 15 May 2011 08:41:57 +0000 (09:41 +0100)]
Accept '-l foo' as library syntax: fixes #4869

11 years agoUnicode fixes, taking into account PEP383 support
Max Bolingbroke [Sat, 14 May 2011 21:34:41 +0000 (22:34 +0100)]
Unicode fixes, taking into account PEP383 support

11 years agoMake the GHCi linker handle partially stripped object files (#5004)
Duncan Coutts [Thu, 12 May 2011 15:25:41 +0000 (16:25 +0100)]
Make the GHCi linker handle partially stripped object files (#5004)

When you use 'strip --strip-unneeded' on a ELF format .o or .a file, if
the object file has no global/exported symbols then 'strip' ends up
removing the symbol table entirely. Previously the GHCi linker assumed
there would always be exactly one symbol table and exactly one string
table. In fact, in ELF object files there is no such limitation, instead
each section points to the other sections it needs, in particular
relocation sections have a link to the symbol table section they use and
symbol table sections have a link to the corresponding string table.
So instead of assuming there will always be a global symbol and string
table, all we have to do is validate and follow these links. Then, when
we encounter an empty object file that has no symbols then we handle it
correctly, because since it's empty we never process any relocations and
so never have to follow any links to non-existant symbol tables.

Also, in the case where an object is fully stripped, we can now detect
this more reliably and emit a more helpful error message, e.g:

libHSghc-7.1.20110509.a(DsMeta.o): relocation section #2 has no symbol table
This object file has probably been fully striped. Such files cannot be linked.

11 years agoFix some small things broken with the last merge.
Jose Pedro Magalhaes [Thu, 12 May 2011 13:48:45 +0000 (15:48 +0200)]
Fix some small things broken with the last merge.

11 years agoMerge branch 'master' of /Users/benl/devel/ghc/ghc-head
Ben Lippmeier [Thu, 12 May 2011 12:38:13 +0000 (22:38 +1000)]
Merge branch 'master' of /Users/benl/devel/ghc/ghc-head

11 years agoMerge branch 'master' of into ghc-generics
Jose Pedro Magalhaes [Thu, 12 May 2011 11:26:03 +0000 (13:26 +0200)]
Merge branch 'master' of into ghc-generics

Resolved conflicts:

11 years agoRemove some old code.
Jose Pedro Magalhaes [Thu, 12 May 2011 11:11:07 +0000 (13:11 +0200)]
Remove some old code.

11 years agoRemove scar tissue
Ben Lippmeier [Wed, 11 May 2011 09:00:56 +0000 (19:00 +1000)]
Remove scar tissue

11 years agoWibbles on modules imported by vectoriser
Ben Lippmeier [Wed, 11 May 2011 09:00:40 +0000 (19:00 +1000)]
Wibbles on modules imported by vectoriser

11 years agoFix build
Ben Lippmeier [Wed, 11 May 2011 03:36:01 +0000 (13:36 +1000)]
Fix build

11 years agoFollow changes in DPH library: Repr module is gone.
Ben Lippmeier [Mon, 9 May 2011 03:24:58 +0000 (13:24 +1000)]
Follow changes in DPH library: Repr module is gone.

11 years agoUpdate vectoriser now that PData instances have moved.
Ben Lippmeier [Mon, 9 May 2011 01:26:48 +0000 (11:26 +1000)]
Update vectoriser now that PData instances have moved.

11 years agoUpdate vectoriser now that PRepr has moved
Ben Lippmeier [Thu, 5 May 2011 06:08:49 +0000 (16:08 +1000)]
Update vectoriser now that PRepr has moved

11 years agoUpdate vectoriser now that Scalar has moved
Ben Lippmeier [Thu, 5 May 2011 04:32:00 +0000 (14:32 +1000)]
Update vectoriser now that Scalar has moved

11 years agoUpdate vectoriser now that PData has moved.
Ben Lippmeier [Thu, 5 May 2011 03:59:00 +0000 (13:59 +1000)]
Update vectoriser now that PData has moved.

11 years agoMerge branch 'master' of
Simon Peyton Jones [Thu, 12 May 2011 10:22:50 +0000 (11:22 +0100)]
Merge branch 'master' of

11 years agoThe final batch of changes for the new coercion representation
Simon Peyton Jones [Thu, 12 May 2011 10:09:28 +0000 (11:09 +0100)]
The final batch of changes for the new coercion representation

* Fix bugs in the packing and unpacking of data
  constructors with equality predicates in their types

* Remove PredCo altogether; instead, coercions between predicated
  types (like  (Eq a, [a]~b) => blah) are treated as if they
  were precisely their underlying representation type
       Eq a -> ((~) [a] b) -> blah
  in this case

* Similarly, Type.coreView no longer treats equality
  predciates specially.

* Implement the cast-of-coercion optimisation in

Numerous other small bug-fixes and refactorings.

Annoyingly, OptCoercion had Windows line endings, and this
patch switches to Unix, so it looks as if every line has changed.

11 years agoUnix line endings for Pair.lhs
Simon Peyton Jones [Thu, 12 May 2011 10:04:08 +0000 (11:04 +0100)]
Unix line endings for Pair.lhs

11 years agoFix Trac #5192: missing case in hsValBindsImplicits
Simon Peyton Jones [Thu, 12 May 2011 10:01:34 +0000 (11:01 +0100)]
Fix Trac #5192: missing case in hsValBindsImplicits

This fixes the bug, adds some comments, and a tiny bit of refactoring

11 years agoMerge branch 'master' of
Simon Peyton Jones [Thu, 12 May 2011 07:48:07 +0000 (08:48 +0100)]
Merge branch 'master' of

11 years agoWhite space only
Simon Peyton Jones [Thu, 12 May 2011 07:46:20 +0000 (08:46 +0100)]
White space only

11 years agoDocument -ddump-to-file.
Edward Z. Yang [Wed, 11 May 2011 21:31:58 +0000 (22:31 +0100)]
Document -ddump-to-file.

Signed-off-by: Edward Z. Yang <>

11 years agoMerge remote branch 'origin/master'
Simon Peyton Jones [Wed, 11 May 2011 16:28:26 +0000 (17:28 +0100)]
Merge remote branch 'origin/master'

11 years agoscheduleDoGC: if we're doing heapCensus(), do it *before* releasing
Simon Marlow [Wed, 11 May 2011 10:00:10 +0000 (11:00 +0100)]
scheduleDoGC: if we're doing heapCensus(), do it *before* releasing
the other mutator threads (#5127)

11 years agofix the names of the floating-point operations in the Cmm parser
Simon Marlow [Wed, 4 May 2011 15:43:35 +0000 (16:43 +0100)]
fix the names of the floating-point operations in the Cmm parser

11 years agoFix bug in one-line stats printing
David M Peixotto [Tue, 10 May 2011 17:40:23 +0000 (12:40 -0500)]
Fix bug in one-line stats printing

The code that prints the "one-line" stats (i.e. the RTS -t flag) was
incorreclty printing zeros for some time values. These time values
were computed inside a conditional that was only true when printing
detailed stats (i.e. the RTS -s or -S flags).

This commit simply moves the computation out of the conditional so
they are available for the one-line stats output.

11 years agoMerge branch 'master' of into ghc-generics
Jose Pedro Magalhaes [Tue, 10 May 2011 06:12:21 +0000 (08:12 +0200)]
Merge branch 'master' of into ghc-generics

11 years agoMerge branch 'master' of
Simon Peyton Jones [Mon, 9 May 2011 17:10:57 +0000 (18:10 +0100)]
Merge branch 'master' of

11 years agoFix renaming of guards
Simon Peyton Jones [Mon, 9 May 2011 15:45:12 +0000 (16:45 +0100)]
Fix renaming of guards

This was making mc17 fail.

11 years agoFix the desugaring of guards in arrow syntax
Simon Peyton Jones [Mon, 9 May 2011 15:44:30 +0000 (16:44 +0100)]
Fix the desugaring of guards in arrow syntax

This was making T3822 fail, which it has apparently been doing
for some time (ie in GHC 7, 6.12, 6.10)!

11 years agofix pretty-printing of the cvttsd2si SSE2 instruction (fixes 5149 test
Simon Marlow [Mon, 9 May 2011 12:33:00 +0000 (13:33 +0100)]
fix pretty-printing of the cvttsd2si SSE2 instruction (fixes 5149 test
on x86_64).

11 years agoMerge branch 'master' of into ghc-generics
Jose Pedro Magalhaes [Mon, 9 May 2011 12:04:37 +0000 (14:04 +0200)]
Merge branch 'master' of into ghc-generics

11 years agoMake the errors for DeriveGeneric consistent with other deriving errors.
Jose Pedro Magalhaes [Mon, 9 May 2011 12:00:32 +0000 (14:00 +0200)]
Make the errors for DeriveGeneric consistent with other deriving errors.

11 years agoMerge branch 'master' of
Simon Peyton Jones [Mon, 9 May 2011 11:01:38 +0000 (12:01 +0100)]
Merge branch 'master' of