11 years agoRemove code that is dead now that we need >= 6.12 to build
Ian Lynagh [Wed, 15 Dec 2010 20:10:06 +0000 (20:10 +0000)]
Remove code that is dead now that we need >= 6.12 to build

11 years agofix for large stack allocations
Simon Marlow [Wed, 15 Dec 2010 15:24:19 +0000 (15:24 +0000)]
fix for large stack allocations

11 years agoImplement stack chunks and separate TSO/STACK objects
Simon Marlow [Wed, 15 Dec 2010 12:08:43 +0000 (12:08 +0000)]
Implement stack chunks and separate TSO/STACK objects

This patch makes two changes to the way stacks are managed:

1. The stack is now stored in a separate object from the TSO.

This means that it is easier to replace the stack object for a thread
when the stack overflows or underflows; we don't have to leave behind
the old TSO as an indirection any more.  Consequently, we can remove
ThreadRelocated and deRefTSO(), which were a pain.

This is obviously the right thing, but the last time I tried to do it
it made performance worse.  This time I seem to have cracked it.

2. Stacks are now represented as a chain of chunks, rather than
   a single monolithic object.

The big advantage here is that individual chunks are marked clean or
dirty according to whether they contain pointers to the young
generation, and the GC can avoid traversing clean stack chunks during
a young-generation collection.  This means that programs with deep
stacks will see a big saving in GC overhead when using the default GC

A secondary advantage is that there is much less copying involved as
the stack grows.  Programs that quickly grow a deep stack will see big

In some ways the implementation is simpler, as nothing special needs
to be done to reclaim stack as the stack shrinks (the GC just recovers
the dead stack chunks).  On the other hand, we have to manage stack
underflow between chunks, so there's a new stack frame
(UNDERFLOW_FRAME), and we now have separate TSO and STACK objects.
The total amount of code is probably about the same as before.

There are new RTS flags:

   -ki<size> Sets the initial thread stack size (default 1k)  Egs: -ki4k -ki2m
   -kc<size> Sets the stack chunk size (default 32k)
   -kb<size> Sets the stack chunk buffer size (default 1k)

-ki was previously called just -k, and the old name is still accepted
for backwards compatibility.  These new options are documented.

11 years agocomments on SRC_HC_OPTS (#4829)
Simon Marlow [Tue, 14 Dec 2010 10:13:40 +0000 (10:13 +0000)]
comments on SRC_HC_OPTS (#4829)

11 years agofix another sanity error, and refactor/tidy up
Simon Marlow [Thu, 9 Dec 2010 16:39:19 +0000 (16:39 +0000)]
fix another sanity error, and refactor/tidy up

11 years agoFix a bug in functorLikeTraverse, which was giving wrong answer for tuples [Wed, 15 Dec 2010 12:37:25 +0000 (12:37 +0000)]
Fix a bug in functorLikeTraverse, which was giving wrong answer for tuples

This bug led to Trac #4816, which is hereby fixed

11 years agoImprove printing for -ddump-deriv [Wed, 15 Dec 2010 12:19:55 +0000 (12:19 +0000)]
Improve printing for -ddump-deriv

11 years agoTighten up what it means to be an "enumeration data constructor" [Wed, 15 Dec 2010 12:19:27 +0000 (12:19 +0000)]
Tighten up what it means to be an "enumeration data constructor"

See Note [Enumeration types] in TyCon, and comments in Trac #4528

11 years agoAllow enumerations to have phantom arguments. [Wed, 15 Dec 2010 12:18:17 +0000 (12:18 +0000)]
Allow enumerations to have phantom arguments.

The bytecode generator was being too eager.
Fixes Trac #4528, or rather, a near variant.

11 years agoInstance declaration overlap allowed if *either* has -XOverlappingInstances [Tue, 14 Dec 2010 18:05:00 +0000 (18:05 +0000)]
Instance declaration overlap allowed if *either* has -XOverlappingInstances

This satisfies Trac #3877.  Documentation is changed too.
I'm not sure if this should go in 7.0.2.

11 years agoFix Trac #4841: behave right with TypeSynonymInstances and NoFlexibleInstances [Tue, 14 Dec 2010 17:47:55 +0000 (17:47 +0000)]
Fix Trac #4841: behave right with TypeSynonymInstances and NoFlexibleInstances

When we have TypeSynonymInstances without FlexibleInstances we should still
insist on a H98-style instance head, after looking through the synonym.

This patch also make FlexibleInstances imply TypeSynonymInstances.  Anything
else is a bit awkward, and not very useful.

11 years agoFix Trac #3731: more superclass subtlety (sigh) [Tue, 14 Dec 2010 18:03:44 +0000 (18:03 +0000)]
Fix Trac #3731: more superclass subtlety (sigh)

I will add more comments, but I want to commit this tonight,
so the overnight builds get it.

11 years agoLess verbose debug print [Tue, 14 Dec 2010 18:02:48 +0000 (18:02 +0000)]
Less verbose debug print

11 years agoWibble to InstEnv.instanceHead [Tue, 14 Dec 2010 08:29:39 +0000 (08:29 +0000)]
Wibble to InstEnv.instanceHead

Fixes an accidental glitch in T1835

11 years agoRemove dead code now that we require the bootstrapping compiler be >= 6.12
Ian Lynagh [Tue, 14 Dec 2010 01:10:11 +0000 (01:10 +0000)]
Remove dead code now that we require the bootstrapping compiler be >= 6.12

11 years agoGHC 6.12 is now needed to build the HEAD
Ian Lynagh [Tue, 14 Dec 2010 01:09:23 +0000 (01:09 +0000)]
GHC 6.12 is now needed to build the HEAD

11 years agoAdd libstdc++-4.5.0-1-mingw32-dll-6.tar.lzma to mingw tarballs
Ian Lynagh [Mon, 13 Dec 2010 22:31:53 +0000 (22:31 +0000)]
Add libstdc++-4.5.0-1-mingw32-dll-6.tar.lzma to mingw tarballs

11 years agoFix recursive superclasses (again). Fixes Trac #4809. [Mon, 13 Dec 2010 17:15:11 +0000 (17:15 +0000)]
Fix recursive superclasses (again).  Fixes Trac #4809.

This patch finally deals with the super-delicate question of
superclases in possibly-recursive dictionaries.  The key idea
is the DFun Superclass Invariant (see TcInstDcls):

     In the body of a DFun, every superclass argument to the
     returned dictionary is
       either   * one of the arguments of the DFun,
       or       * constant, bound at top level

To establish the invariant, we add new "silent" superclass
argument(s) to each dfun, so that the dfun does not do superclass
selection internally.  There's a bit of hoo-ha to make sure that
we don't print those silent arguments in error messages; a knock
on effect was a change in interface-file format.

A second change is that instead of the complex and fragile
"self dictionary binding" in TcInstDcls and TcClassDcl,
using the same mechanism for existential pattern bindings.
See Note [Subtle interaction of recursion and overlap] in TcInstDcls
and Note [Binding when looking up instances] in InstEnv.

Main notes are here:

  * Note [Silent Superclass Arguments] in TcInstDcls,
    including the DFun Superclass Invariant

Main code changes are:

  * The code for MkId.mkDictFunId and mkDictFunTy

  * DFunUnfoldings get a little more complicated;
    their arguments are a new type DFunArg (in CoreSyn)

  * No "self" argument in tcInstanceMethod
  * No special tcSimplifySuperClasss
  * No "dependents" argument to EvDFunApp

   It turns out that it's quite tricky to generate the right
   DFunUnfolding for a specialised dfun, when you use SPECIALISE
   INSTANCE.  For now I've just commented it out (in DsBinds) but
   that'll lose some optimisation, and I need to get back to

11 years agoDoing the smart canonicalization only if we are not simplifying a Rule LHS. [Fri, 10 Dec 2010 13:22:21 +0000 (13:22 +0000)]
Doing the smart canonicalization only if we are not simplifying a Rule LHS.
Also, same thing now applies for adding superclasses.

11 years agoMoved canonicalisation inside solveInteract [Thu, 9 Dec 2010 14:12:15 +0000 (14:12 +0000)]
Moved canonicalisation inside solveInteract

Moreover canonicalisation now is "clever", i.e. it never canonicalizes a class
constraint if it can already discharge it from some other inert or previously
encountered constraints. See Note [Avoiding the superclass explosion]

11 years agoGHCi linker: Assume non-Haskell libraries are dynamic libs
Ian Lynagh [Mon, 13 Dec 2010 12:49:30 +0000 (12:49 +0000)]
GHCi linker: Assume non-Haskell libraries are dynamic libs
This works around a segfault we get when trying to load libiconv.a on
some platforms.

11 years agoAdd --version support to ghc-cabal
Ian Lynagh [Sun, 12 Dec 2010 21:36:00 +0000 (21:36 +0000)]
Add --version support to ghc-cabal

11 years agoDon't link the GHC RTS into our C-only programs
Ian Lynagh [Fri, 10 Dec 2010 18:54:02 +0000 (18:54 +0000)]
Don't link the GHC RTS into our C-only programs

11 years agoBuild a copy of ghc-cabal with the in-tree compiler, for the bindist
Ian Lynagh [Fri, 10 Dec 2010 18:11:23 +0000 (18:11 +0000)]
Build a copy of ghc-cabal with the in-tree compiler, for the bindist

11 years agoAdd a test that all programs in the bindist were built with the right GHC
Ian Lynagh [Fri, 10 Dec 2010 16:12:18 +0000 (16:12 +0000)]
Add a test that all programs in the bindist were built with the right GHC
They should use the GHC from the build tree, not the bootstrapping compiler.

11 years agoFix Trac #4534: renamer bug [Fri, 10 Dec 2010 08:45:30 +0000 (08:45 +0000)]
Fix Trac #4534: renamer bug

The renamer wasn't attaching the right used-variables to a
TransformStmt constructor.

The real modification is in RnExpr; the rest is just
pretty-printing and white space.

11 years agoWhite space only [Fri, 10 Dec 2010 08:42:55 +0000 (08:42 +0000)]
White space only

11 years agoComments only [Fri, 10 Dec 2010 08:41:16 +0000 (08:41 +0000)]
Comments only

11 years agoMake the case-to-let transformation a little less eager [Wed, 8 Dec 2010 17:22:51 +0000 (17:22 +0000)]
Make the case-to-let transformation a little less eager

See Note [Case elimination: lifted case].
Thanks to Roman for identifying this case.

11 years agowarning fix: don't redefine BLOCKS_PER_MBLOCK
Simon Marlow [Fri, 10 Dec 2010 09:40:02 +0000 (09:40 +0000)]
warning fix: don't redefine BLOCKS_PER_MBLOCK

11 years agoOnly reset the event log if logging is turned on (addendum to #4512)
Simon Marlow [Fri, 10 Dec 2010 09:39:51 +0000 (09:39 +0000)]
Only reset the event log if logging is turned on (addendum to #4512)

11 years agoallocate enough room for the longer filename (addendum to #4512)
Simon Marlow [Fri, 10 Dec 2010 09:39:06 +0000 (09:39 +0000)]
allocate enough room for the longer filename (addendum to #4512)

11 years agoFix Windows build: move rtsTimerSignal to the POSIX-only section
Simon Marlow [Fri, 10 Dec 2010 09:00:45 +0000 (09:00 +0000)]
Fix Windows build: move rtsTimerSignal to the POSIX-only section

11 years agoDefault the value of -dppr-cols when the static flags aren't initialised yet
Ben Lippmeier [Fri, 10 Dec 2010 06:01:54 +0000 (06:01 +0000)]
Default the value of -dppr-cols when the static flags aren't initialised yet
If GHC's command line options are bad then the options parser uses the
pretty printer before the -dppr-cols flag has been read.

11 years agoDefensify naked read in LLVM mangler
Ben Lippmeier [Fri, 10 Dec 2010 04:59:22 +0000 (04:59 +0000)]
Defensify naked read in LLVM mangler

11 years agoFormatting only
Ben Lippmeier [Fri, 10 Dec 2010 04:26:00 +0000 (04:26 +0000)]
Formatting only

11 years agoAlways ppr case alts on separate lines
Ben Lippmeier [Wed, 8 Dec 2010 07:05:08 +0000 (07:05 +0000)]
Always ppr case alts on separate lines

11 years agoAdd -dppr-colsN to set width of dumps
Ben Lippmeier [Wed, 8 Dec 2010 07:02:45 +0000 (07:02 +0000)]
Add -dppr-colsN to set width of dumps

11 years agoAdd -dppr-case-as-let to print "strict lets" as actual lets
Ben Lippmeier [Wed, 8 Dec 2010 06:55:48 +0000 (06:55 +0000)]
Add -dppr-case-as-let to print "strict lets" as actual lets

11 years agoSuppress more info with -dsuppress-idinfo
Ben Lippmeier [Wed, 8 Dec 2010 06:30:37 +0000 (06:30 +0000)]
Suppress more info with -dsuppress-idinfo

11 years agoImplement -dsuppress-type-signatures
Ben Lippmeier [Wed, 8 Dec 2010 06:28:14 +0000 (06:28 +0000)]
Implement -dsuppress-type-signatures

11 years agoAdd more suppression flags
Ben Lippmeier [Wed, 8 Dec 2010 02:07:23 +0000 (02:07 +0000)]
Add more suppression flags

11 years agofix ticket number (#4505)
Simon Marlow [Thu, 9 Dec 2010 12:04:04 +0000 (12:04 +0000)]
fix ticket number (#4505)

11 years agofix warnings
Simon Marlow [Thu, 9 Dec 2010 11:58:44 +0000 (11:58 +0000)]
fix warnings

11 years agoCatch too-large allocations and emit an error message (#4505)
Simon Marlow [Thu, 9 Dec 2010 11:40:05 +0000 (11:40 +0000)]
Catch too-large allocations and emit an error message (#4505)

This is a temporary measure until we fix the bug properly (which is
somewhat tricky, and we think might be easier in the new code

For now we get:

ghc-stage2: sorry! (unimplemented feature or known bug)
  (GHC version 7.1 for i386-unknown-linux):
        Trying to allocate more than 1040384 bytes.

Suggestion: read data from a file instead of having large static data
structures in the code.

11 years agoExport the value of the signal used by scheduler (#4504)
Dmitry Astapov [Wed, 8 Dec 2010 18:37:55 +0000 (18:37 +0000)]
Export the value of the signal used by scheduler (#4504)

11 years agoTweak the "sorry" message a bit
Simon Marlow [Wed, 8 Dec 2010 16:32:12 +0000 (16:32 +0000)]
Tweak the "sorry" message a bit

- "sorry! (this is work in progress)\n"
+ "sorry! (unimplemented feature or known bug)\n"

11 years ago:unset settings support
Boris Lykah [Tue, 23 Nov 2010 19:01:32 +0000 (19:01 +0000)]
:unset settings support
Added support for settings [args, prog, prompt, editor and stop].
Now :unset supports the same set of options as :set.

11 years agoFix Windows memory freeing: add a check for fb == NULL; fixes trac #4506
Ian Lynagh [Wed, 8 Dec 2010 15:23:49 +0000 (15:23 +0000)]
Fix Windows memory freeing: add a check for fb == NULL; fixes trac #4506
Also added a few comments, and a load of code got indented 1 level deeper.

11 years agoFixes for #4512: EventLog.c - provides ability to terminate event logging, Schedule...
Dmitry Astapov [Fri, 3 Dec 2010 13:39:50 +0000 (13:39 +0000)]
Fixes for #4512: EventLog.c - provides ability to terminate event logging, Schedule.c - uses them in forkProcess.

11 years agoMake CPPFLAGS variables, as well as CFLAGS and LDFLAGS
Ian Lynagh [Tue, 7 Dec 2010 01:00:33 +0000 (01:00 +0000)]
Make CPPFLAGS variables, as well as CFLAGS and LDFLAGS
This fixes the "does unsetenv return void" test in the unix package on
OS X, if I tell it to make 10.4-compatible binaries. The test uses
CPPFLAGS but not CFLAGS, so it thought it returned int (as it was
in 10.5-mode), but the C compiler (using CFLAGS, so in 10.4 mode)
thought it returned void.

I also added CONF_LD_OPTS_STAGE$3 to the list of things in LDFLAGS,
which looks like an accidental ommission.

11 years agoAdd a configure message
Ian Lynagh [Mon, 6 Dec 2010 21:52:01 +0000 (21:52 +0000)]
Add a configure message

11 years agoLink even programs containing no Haskell modules with GHC
Ian Lynagh [Mon, 6 Dec 2010 20:33:29 +0000 (20:33 +0000)]
Link even programs containing no Haskell modules with GHC
I don't remember why we made it use gcc instead, but going back to
using ghc doesn't seem to break anything, and should fix the build
on OS X 10.6.

11 years agoCorrect the stage that the includes/ tools are built in
Ian Lynagh [Mon, 6 Dec 2010 20:31:25 +0000 (20:31 +0000)]
Correct the stage that the includes/ tools are built in

11 years agoTweak the cleaning of inplace/; fixes trac #4320
Ian Lynagh [Sun, 5 Dec 2010 21:20:48 +0000 (21:20 +0000)]
Tweak the cleaning of inplace/; fixes trac #4320

11 years agoClose .ghci files after reading them; fixes trac #4487
Ian Lynagh [Sun, 5 Dec 2010 20:53:01 +0000 (20:53 +0000)]
Close .ghci files after reading them; fixes trac #4487

11 years agoFix the behaviour of :history for ticks surrounding top level functions [Fri, 3 Dec 2010 20:23:46 +0000 (20:23 +0000)]
Fix the behaviour of :history for ticks surrounding top level functions

11 years agoDon't warn of duplicate exports in case of module exports.
Michal Terepeta [Sat, 27 Nov 2010 21:21:16 +0000 (21:21 +0000)]
Don't warn of duplicate exports in case of module exports.

But only when the module exports refer to different modules.
See ticket #4478.

11 years agoFix whitespace/layout in RnNames.
Michal Terepeta [Sat, 30 Oct 2010 17:13:03 +0000 (17:13 +0000)]
Fix whitespace/layout in RnNames.

11 years agoTell gcc to support back to OS X 10.5
Ian Lynagh [Fri, 3 Dec 2010 20:15:58 +0000 (20:15 +0000)]
Tell gcc to support back to OS X 10.5

11 years agoMake RelaxedLayout off by default
Ian Lynagh [Thu, 2 Dec 2010 14:08:08 +0000 (14:08 +0000)]
Make RelaxedLayout off by default
I suspect this is a vary rarely used extension to the official layout

11 years agoFix up TcInstDcls [Fri, 3 Dec 2010 18:07:58 +0000 (18:07 +0000)]
Fix up TcInstDcls

I really don't know how this module got left out of my last
patch, namely
  Thu Dec  2 12:35:47 GMT 2010
  * Re-jig simplifySuperClass (again)

I suggest you don't pull either the patch above, or this
one, unless you really have to.  I'm not fully confident
that it works properly yet.  Ran out of time. Sigh.

11 years agothrowTo: report the why_blocked value in the barf()
Simon Marlow [Fri, 3 Dec 2010 09:48:40 +0000 (09:48 +0000)]
throwTo: report the why_blocked value in the barf()

11 years agohandle ThreadMigrating in throwTo() (#4811)
Simon Marlow [Fri, 3 Dec 2010 09:48:18 +0000 (09:48 +0000)]
handle ThreadMigrating in throwTo() (#4811)
If a throwTo targets a thread that has just been created with
forkOnIO, then it is possible the exception strikes while the thread
is still in the process of migrating.  throwTo() didn't handle this
case, but it's fairly straightforward.

11 years agoremoveThreadFromQueue: stub out the link field before returning (#4813)
Simon Marlow [Thu, 2 Dec 2010 16:08:38 +0000 (16:08 +0000)]
removeThreadFromQueue: stub out the link field before returning (#4813)

11 years agosmall tidyup
Simon Marlow [Fri, 26 Nov 2010 14:06:20 +0000 (14:06 +0000)]
small tidyup

11 years agoFix a recomp bug: make classes/datatypes depend directly on DFuns (#4469)
Simon Marlow [Thu, 2 Dec 2010 12:23:49 +0000 (12:23 +0000)]
Fix a recomp bug: make classes/datatypes depend directly on DFuns (#4469)
And remove the old mechanism of recording dfun uses separately,
because it didn't work.

This wiki page describes recompilation avoidance and fingerprinting.
I'll update it to describe the new method and what went wrong with the
old method:

11 years agomake a panic message more informative and suggest -dcore-lint (see #4534)
Simon Marlow [Wed, 1 Dec 2010 15:17:06 +0000 (15:17 +0000)]
make a panic message more informative and suggest -dcore-lint (see #4534)

11 years agoRe-jig simplifySuperClass (again) [Thu, 2 Dec 2010 12:35:47 +0000 (12:35 +0000)]
Re-jig simplifySuperClass (again)

This fixes the current loop in T3731, and will fix other
reported loops.  The loops show up when we are generating
evidence for superclasses in an instance declaration.

The trick is to make the "self" dictionary simplifySuperClass
depend *explicitly* on the superclass we are currently trying
to build.  See Note [Dependencies in self dictionaries] in TcSimplify.

That in turn means that EvDFunApp needs a dependency-list, used
when chasing dependencies in isGoodRecEv.

11 years agoA little refactoring (remove redundant argument passed to isGoodRecEv) [Thu, 2 Dec 2010 12:31:10 +0000 (12:31 +0000)]
A little refactoring (remove redundant argument passed to isGoodRecEv)

11 years agoMake rebindable if-then-else a little more permissive [Thu, 2 Dec 2010 12:25:40 +0000 (12:25 +0000)]
Make rebindable if-then-else a little more permissive

See Note [Rebindable syntax for if].  Fixes Trac #4798.
Thanks to Nils Schweinsberg <>

11 years agoImprove error message (Trac #4799) [Thu, 2 Dec 2010 10:27:06 +0000 (10:27 +0000)]
Improve error message (Trac #4799)

11 years agoFix a nasty bug in RULE matching: Trac #4814 [Thu, 2 Dec 2010 10:26:18 +0000 (10:26 +0000)]
Fix a nasty bug in RULE matching: Trac #4814

See Note [Matching lets], which explains it all in detail.
It took me a day to think of a nice way to fix the bug,
but I think the result is quite respectable. Subtle, though.

11 years agoRename -XPArr to -XParallelArrays
Ben Lippmeier [Tue, 30 Nov 2010 07:54:15 +0000 (07:54 +0000)]
Rename -XPArr to -XParallelArrays

11 years agoFIX #1845 (unconditional relative branch out of range) [Tue, 30 Nov 2010 14:30:14 +0000 (14:30 +0000)]
FIX #1845 (unconditional relative branch out of range)

Don't use mmap on powerpc-apple-darwin as mmap doesn't support
reallocating but we need to allocate jump islands just after each
object images. Otherwise relative branches to jump islands can fail
due to 24-bits displacement overflow.

11 years agorts/Linker.c (loadArchive): [Tue, 30 Nov 2010 14:27:00 +0000 (14:27 +0000)]
rts/Linker.c (loadArchive):

This routine should be aware of Mach-O misalignment of malloc'ed memory regions.

11 years agorts/Linker.c (machoGetMisalignment): [Tue, 30 Nov 2010 12:33:55 +0000 (12:33 +0000)]
rts/Linker.c (machoGetMisalignment):

Use fseek(3) instead of rewind(3) to move the file position indicator back to the initial position. Otherwise we can't use this function in loadArchive().

11 years agorts/Linker.c (ocFlushInstructionCache): [Tue, 30 Nov 2010 12:14:25 +0000 (12:14 +0000)]
rts/Linker.c (ocFlushInstructionCache):

I found this function causes a segfault when ocAllocateSymbolExtras() has allocated a separate memory region for jump islands.

11 years agoRemove NewQualifiedOperators
Ian Lynagh [Wed, 1 Dec 2010 18:11:17 +0000 (18:11 +0000)]
Remove NewQualifiedOperators
The extension was rejected by Haskell', and deprecated in 7.0.

11 years agofix ref to utils/ext-core, which moved to Hackage (extcore package)
Simon Marlow [Wed, 1 Dec 2010 09:21:47 +0000 (09:21 +0000)]
fix ref to utils/ext-core, which moved to Hackage (extcore package)

11 years agofix floating-point/FFI section: fenv is C99, not POSIX
Simon Marlow [Wed, 1 Dec 2010 09:21:19 +0000 (09:21 +0000)]
fix floating-point/FFI section: fenv is C99, not POSIX

11 years agoFixed some 'unused vars' warnings [Tue, 30 Nov 2010 01:34:25 +0000 (01:34 +0000)]
Fixed some 'unused vars' warnings

11 years agovectScalarLam handles int, float, and double now [Mon, 29 Nov 2010 23:10:43 +0000 (23:10 +0000)]
vectScalarLam handles int, float, and double now

11 years agoHandling of lets, letrec and case when checking if a lambda expr needs to be vectorised [Mon, 15 Nov 2010 05:12:25 +0000 (05:12 +0000)]
Handling of lets, letrec and case when checking if a lambda expr needs to be vectorised

11 years agoDocument the behaviour of fenv.h functions with GHC (#4391)
Simon Marlow [Fri, 26 Nov 2010 12:53:36 +0000 (12:53 +0000)]
Document the behaviour of fenv.h functions with GHC (#4391)

11 years agoRemove the no-ghci-lib warning in ghc-pkg
Ian Lynagh [Sat, 27 Nov 2010 23:58:05 +0000 (23:58 +0000)]
Remove the no-ghci-lib warning in ghc-pkg
GHCi libs are no longer necessary, as we can use the .a or .so versions

11 years agoAdd GNU-variant support to the .a parser, and other improvements/tidyups
Ian Lynagh [Sat, 27 Nov 2010 22:39:45 +0000 (22:39 +0000)]
Add GNU-variant support to the .a parser, and other improvements/tidyups

11 years agoRe-indent only
Ian Lynagh [Sat, 27 Nov 2010 19:16:46 +0000 (19:16 +0000)]
Re-indent only

11 years agoImprove linker debugging for archive files
Ian Lynagh [Sat, 27 Nov 2010 19:09:07 +0000 (19:09 +0000)]
Improve linker debugging for archive files

11 years agoAlways enable the archive-loading code
Ian Lynagh [Sat, 27 Nov 2010 17:30:00 +0000 (17:30 +0000)]
Always enable the archive-loading code
If the GHCi .o lib doesn't exist, load the .a instead

11 years agoInherit the ForceSpecConstr flag in non-recursive nested bindings
Roman Leshchinskiy [Sat, 27 Nov 2010 12:50:25 +0000 (12:50 +0000)]
Inherit the ForceSpecConstr flag in non-recursive nested bindings

This makes sure that join points are fully specialised in loops which are
marked as ForceSpecConstr.

11 years agoDocument -ddump-rule-firings and -ddump-rule-rewrites
Roman Leshchinskiy [Sat, 27 Nov 2010 12:35:28 +0000 (12:35 +0000)]
Document -ddump-rule-firings and -ddump-rule-rewrites

11 years agoNew flag -dddump-rule-rewrites
Roman Leshchinskiy [Sat, 27 Nov 2010 12:20:22 +0000 (12:20 +0000)]
New flag -dddump-rule-rewrites

Now, -ddump-rule-firings only shows the names of the rules that fired (it would
show "before" and "after" with -dverbose-core2core previously) and
-ddump-rule-rewrites always shows the "before" and "after" bits, even without

11 years agoAcutally, wild-card variables *can* have occurrences [Fri, 26 Nov 2010 16:24:09 +0000 (16:24 +0000)]
Acutally, wild-card variables *can* have occurrences

This patch removes the Lint test, and comments why

11 years agoTidy up the handling of wild-card binders, and make Lint check it [Fri, 26 Nov 2010 13:32:10 +0000 (13:32 +0000)]
Tidy up the handling of wild-card binders, and make Lint check it

See Note [WildCard binders] in SimplEnv.  Spotted by Roman.

11 years agoSubstitution should just substitute, not optimise [Thu, 25 Nov 2010 17:23:56 +0000 (17:23 +0000)]
Substitution should just substitute, not optimise

This was causing Trac #4524, by optimising
     (e |> co)  to   e
on the LHS of a rule.  Result, the template variable
'co' wasn't bound any more.

Now that substition doesn't optimise, it seems sensible to call
simpleOptExpr rather than substExpr when substituting in the
RHS of rules.  Not a big deal either way.

11 years agoMake SpecConstr "look through" identity coercions [Thu, 25 Nov 2010 17:21:38 +0000 (17:21 +0000)]
Make SpecConstr "look through" identity coercions

11 years agoComment only [Thu, 25 Nov 2010 17:20:11 +0000 (17:20 +0000)]
Comment only

11 years agoWhite space only [Mon, 1 Nov 2010 08:07:48 +0000 (08:07 +0000)]
White space only

11 years agoKeep a maximum of 6 spare worker threads per Capability (#4262)
Simon Marlow [Thu, 25 Nov 2010 13:57:29 +0000 (13:57 +0000)]
Keep a maximum of 6 spare worker threads per Capability (#4262)