6 years agoProduce new-style Cmm from the Cmm parser
Simon Marlow [Wed, 3 Oct 2012 08:30:56 +0000 (09:30 +0100)] 
Produce new-style Cmm from the Cmm parser

The main change here is that the Cmm parser now allows high-level cmm
code with argument-passing and function calls.  For example:

foo ( gcptr a, bits32 b )
  if (b > 0) {
     // we can make tail calls passing arguments:
     jump stg_ap_0_fast(a);

  return (x,y);

More details on the new cmm syntax are in Note [Syntax of .cmm files]
in CmmParse.y.

The old syntax is still more-or-less supported for those occasional
code fragments that really need to explicitly manipulate the stack.
However there are a couple of differences: it is now obligatory to
give a list of live GlobalRegs on every jump, e.g.

  jump %ENTRY_CODE(Sp(0)) [R1];

Again, more details in Note [Syntax of .cmm files].

I have rewritten most of the .cmm files in the RTS into the new
syntax, except for AutoApply.cmm which is generated by the genapply
program: this file could be generated in the new syntax instead and
would probably be better off for it, but I ran out of enthusiasm.

Some other changes in this batch:

 - The PrimOp calling convention is gone, primops now use the ordinary
   NativeNodeCall convention.  This means that primops and "foreign
   import prim" code must be written in high-level cmm, but they can
   now take more than 10 arguments.

 - CmmSink now does constant-folding (should fix #7219)

 - .cmm files now go through the cmmPipeline, and as a result we
   generate better code in many cases.  All the object files generated
   for the RTS .cmm files are now smaller.  Performance should be
   better too, but I haven't measured it yet.

 - RET_DYN frames are removed from the RTS, lots of code goes away

 - we now have some more canned GC points to cover unboxed-tuples with
   2-4 pointers, which will reduce code size a little.

6 years agoAdd a ToDo comment
Simon Marlow [Thu, 9 Aug 2012 15:55:15 +0000 (16:55 +0100)] 
Add a ToDo comment

6 years agoMerge branch 'master' of
Ian Lynagh [Fri, 5 Oct 2012 00:12:45 +0000 (01:12 +0100)] 
Merge branch 'master' of

6 years agoMake adjust_ul handle BCOs
Ian Lynagh [Thu, 4 Oct 2012 23:40:50 +0000 (00:40 +0100)] 
Make adjust_ul handle BCOs

We never ran into this before, because replace_osuf was almost always
False (i.e. we were almost always using the vanilla way when using
bytecode, so adjust_ul wasn't needed). Now that we can have the dynamic
way on by default many tests were failing because of it.

6 years agoLoad the right object files in ghci
Ian Lynagh [Thu, 4 Oct 2012 19:44:41 +0000 (20:44 +0100)] 
Load the right object files in ghci

When we have a dynamic ghc, we need to load the dynamic object files

6 years agoMerge branch 'master' of
Simon Peyton Jones [Thu, 4 Oct 2012 16:56:11 +0000 (17:56 +0100)] 
Merge branch 'master' of

6 years agoDo not do type-class defaulting if there are insoluble constraints
Simon Peyton Jones [Thu, 4 Oct 2012 16:55:38 +0000 (17:55 +0100)] 
Do not do type-class defaulting if there are insoluble constraints

Type-class defaulting won't help with those insolubles,
and it does make arbitrary choices that obfuscate the
error messages from the insolubles.

6 years agoImprove erorr location for Given errors
Simon Peyton Jones [Thu, 4 Oct 2012 16:54:38 +0000 (17:54 +0100)] 
Improve erorr location for Given errors

Note [Inaccessible code].
Fixes Trac #7293.

6 years agoDo not create extra evidence given/derived variables in the Refl case of rewriteCtFlavor
Simon Peyton Jones [Thu, 4 Oct 2012 16:53:07 +0000 (17:53 +0100)] 
Do not create extra evidence given/derived variables in the Refl case of rewriteCtFlavor

Previously this optimisation only applied in the Wanted case,
but it works perfectly well in the others too, and saves
redundant evidence bindings.

6 years agoImprove debug tracing slighty
Simon Peyton Jones [Thu, 4 Oct 2012 16:51:47 +0000 (17:51 +0100)] 
Improve debug tracing slighty

6 years agoImprove pretty-printing for holes
Simon Peyton Jones [Thu, 4 Oct 2012 16:50:34 +0000 (17:50 +0100)] 
Improve pretty-printing for holes

6 years agoComments only
Simon Peyton Jones [Thu, 4 Oct 2012 16:50:24 +0000 (17:50 +0100)] 
Comments only

6 years agoActually build things the dynamic way
Ian Lynagh [Thu, 4 Oct 2012 15:00:17 +0000 (16:00 +0100)] 
Actually build things the dynamic way

Things went back to being statically linked again once I added an
explicit -static flag to the vanilla way.

6 years agoWindows install fix
Ian Lynagh [Wed, 3 Oct 2012 22:03:46 +0000 (23:03 +0100)] 
Windows install fix

6 years agoFix Windows build
Ian Lynagh [Wed, 3 Oct 2012 21:52:05 +0000 (22:52 +0100)] 
Fix Windows build

6 years agoFix the recompilation check for dynamic libraries
Ian Lynagh [Wed, 3 Oct 2012 18:05:28 +0000 (19:05 +0100)] 
Fix the recompilation check for dynamic libraries

I've put mkSOName in HscTypes for now; I'm not sure what the best place
for it is.

6 years agoAdd a "Dynamic by default" field to the ghc --info output
Ian Lynagh [Wed, 3 Oct 2012 16:59:59 +0000 (17:59 +0100)] 
Add a "Dynamic by default" field to the ghc --info output

6 years agoMerge branch 'master' of
Ian Lynagh [Wed, 3 Oct 2012 15:10:16 +0000 (16:10 +0100)] 
Merge branch 'master' of

6 years agoAdd a couple more RTS ways
Ian Lynagh [Wed, 3 Oct 2012 15:07:57 +0000 (16:07 +0100)] 
Add a couple more RTS ways

There are used by the testsuite when dynamic-by-default is on

6 years agoThe non-dynamic ways now need to explicitly use -static
Ian Lynagh [Wed, 3 Oct 2012 12:12:23 +0000 (13:12 +0100)] 
The non-dynamic ways now need to explicitly use -static

as x86_64/Linux now defaults to -dynamic

6 years agoBuild the dynamic way by default on Linux/amd64
Ian Lynagh [Tue, 25 Sep 2012 18:50:09 +0000 (19:50 +0100)] 
Build the dynamic way by default on Linux/amd64

This required various build system changes to get the build to go

In the inplace shell wrappers, we set LD_LIBRARY_PATH to allow programs
to find their libraries. In the future, we might change the inplace tree
to be the same shape as an installed tree instead. However, this would
mean changing the way we do installation, as currently we use cabal's
installation methods to install the libraries, but that only works if
the libraries are under libraries/foo/dist-install/build/..., rather
than in inplace/lib/...

6 years agoMerge branch 'master' of
Simon Peyton Jones [Wed, 3 Oct 2012 10:17:03 +0000 (11:17 +0100)] 
Merge branch 'master' of

6 years agoThis big patch re-factors the way in which arrow-syntax is handled
Simon Peyton Jones [Wed, 3 Oct 2012 10:16:22 +0000 (11:16 +0100)] 
This big patch re-factors the way in which arrow-syntax is handled

All the work was done by Dan Winograd-Cort.

The main thing is that arrow comamnds now have their own
data type HsCmd (defined in HsExpr).  Previously it was
punned with the HsExpr type, which was jolly confusing,
and made it hard to do anything arrow-specific.

To make this work, we now parameterise
  * MatchGroup
  * Match
  * StmtLR and friends
over the "body", that is the kind of thing they
enclose.  This "body" parameter can be instantiated to
either LHsExpr or LHsCmd respectively.

Everything else is really a knock-on effect; there should
be no change (yet!) in behaviour.  But it should be a sounder
basis for fixing bugs.

6 years agoTypo
Jose Pedro Magalhaes [Wed, 3 Oct 2012 07:55:47 +0000 (08:55 +0100)] 

6 years agoFix type error in 2c207b6f (Compare the kinds of type variables)
Simon Peyton Jones [Wed, 3 Oct 2012 07:15:34 +0000 (08:15 +0100)] 
Fix type error in 2c207b6f (Compare the kinds of type variables)

6 years agoImprove constraint solver depth error slightly
Simon Peyton Jones [Wed, 3 Oct 2012 07:13:46 +0000 (08:13 +0100)] 
Improve constraint solver depth error slightly

6 years agoAdd a flag to tell ghc to use $ORIGIN when linking program dynamically
Ian Lynagh [Mon, 1 Oct 2012 20:39:04 +0000 (21:39 +0100)] 
Add a flag to tell ghc to use $ORIGIN when linking program dynamically

6 years agoGive PrimOps a NOINLINE pragma, to suppress silly warnings from dsRule
Simon Peyton Jones [Tue, 2 Oct 2012 16:39:46 +0000 (17:39 +0100)] 
Give PrimOps a NOINLINE pragma, to suppress silly warnings from dsRule

See Trac #7287

6 years agoMake sure that we check for type errors strictly in a Template Haskell splice, even...
Simon Peyton Jones [Mon, 1 Oct 2012 20:52:19 +0000 (21:52 +0100)] 
Make sure that we check for type errors strictly in a Template Haskell splice, even if -fdefer-type-errors is on

We're going to run this code, so there's no point in deferring type
errors.  Worse, TcSplice uses unsafeCoerce (for vevy good reasons),
so splicing a type into a place where an expression is expected would
yield a seg-fault if we plough on regardless.

Fixes Trac #7276

6 years agoCompare the kinds of type variables when comparing types
Simon Peyton Jones [Tue, 2 Oct 2012 17:11:08 +0000 (18:11 +0100)] 
Compare the kinds of type variables when comparing types

This is just a bug that's been around since we introduced
polymorphic kinds.  The roots are in Type.cmpTypeX, but
there was a variant in TcRnDriver.checkBootTyCon, which
is where it came up.

Fixes Trac #7272

6 years agoMerge branch 'tc-untouchables'
Simon Peyton Jones [Tue, 2 Oct 2012 14:20:05 +0000 (15:20 +0100)] 
Merge branch 'tc-untouchables'

6 years agoMerge remote-tracking branch 'origin/master'
Simon Peyton Jones [Tue, 2 Oct 2012 14:18:44 +0000 (15:18 +0100)] 
Merge remote-tracking branch 'origin/master'

6 years agoA few more constraint solver improvements
Simon Peyton Jones [Tue, 2 Oct 2012 08:23:47 +0000 (09:23 +0100)] 
A few more constraint solver improvements

* Get rid of the lookupInInerts stage

* Re-introduce the flat-cache for flattening type-family equations
  See Note [Type family equations] in TcSMonad. My previous clever attempt
  with organising the work list proved too fragile.

  There's a (static) flag -fno-flat-cache to switch if off,
  so you can try with and without

* Improve the -ddump-cs-trace output

* The usual round of refactoring

6 years ago-fhpc is no longer a static flag (fixes hpc tests)
Simon Marlow [Thu, 27 Sep 2012 08:50:33 +0000 (09:50 +0100)] 
-fhpc is no longer a static flag (fixes hpc tests)

6 years agoFix typo in the documentation of CApiFFI
shelarcy [Tue, 2 Oct 2012 08:10:13 +0000 (17:10 +0900)] 
Fix typo in the documentation of CApiFFI

Signed-off-by: Gabor Greif <>
6 years agoImprove (and simplify) the short-circuiting of Refl coercions
Simon Peyton Jones [Tue, 2 Oct 2012 08:20:53 +0000 (09:20 +0100)] 
Improve (and simplify) the short-circuiting of Refl coercions

The constraint solver sometimes goes to a lot of effort that turns
out to be Refl in the end, and avoiding zonking those proofs is a
useful optimisation. (Trac #5030)

6 years agoComments, and unused import
Simon Peyton Jones [Tue, 2 Oct 2012 07:31:31 +0000 (08:31 +0100)] 
Comments, and unused import

6 years agoRefactor the shell-wrapper-creation logic
Ian Lynagh [Thu, 27 Sep 2012 18:11:09 +0000 (19:11 +0100)] 
Refactor the shell-wrapper-creation logic

6 years agoPut libexec binaries in lib/bin/ rather than just lib/
Ian Lynagh [Thu, 27 Sep 2012 13:35:05 +0000 (14:35 +0100)] 
Put libexec binaries in lib/bin/ rather than just lib/

Some binaries are installed in lib/, so if we wanted them to have a
shell wrapper then under the old scheme both the binary and the wrapper
would be installed under lib/. Now the binary is put under lib/bin/,
leaving lib/ for the wrapper.

6 years agoDo flag consistency checks at the end of flag parsing
Ian Lynagh [Sun, 30 Sep 2012 17:24:07 +0000 (18:24 +0100)] 
Do flag consistency checks at the end of flag parsing

This makes it easier to ensure that we get consistent consistency
checking, e.g. that
    -f1 -f2
will do the same checks as
    -f2 -f1

I think that some of the checks were bogus before, but hopefully
all are correct now.

6 years agoAllow -static to be used after -dynamic
Ian Lynagh [Mon, 1 Oct 2012 18:32:01 +0000 (19:32 +0100)] 
Allow -static to be used after -dynamic

It's still the case that
    -dynamic -static
will leave -fPIC enabled, but it's tricky to avoid that, and we already
have similar situations where for example
    -XRankNTypes -XNoRankNTypes
will leave ExplicitForAll enabled.

6 years agoRemove some old, commented out bits
Ian Lynagh [Mon, 1 Oct 2012 16:32:19 +0000 (17:32 +0100)] 
Remove some old, commented out bits

6 years agoMerge branch 'tc-untouchables' of into tc-untouchables
Simon Peyton Jones [Mon, 1 Oct 2012 10:26:12 +0000 (11:26 +0100)] 
Merge branch 'tc-untouchables' of into tc-untouchables

6 years agoTracing in TcUnify
Simon Peyton Jones [Mon, 1 Oct 2012 10:26:04 +0000 (11:26 +0100)] 
Tracing in TcUnify

6 years agoComments about silent superclasses
Simon Peyton Jones [Mon, 1 Oct 2012 10:24:10 +0000 (11:24 +0100)] 
Comments about silent superclasses

6 years agoModest refactoring (put bumpStepCounter into traceFireTcS, and other simple things)
Simon Peyton Jones [Mon, 1 Oct 2012 10:19:53 +0000 (11:19 +0100)] 
Modest refactoring (put bumpStepCounter into traceFireTcS, and other simple things)

6 years agoModest refactoring in TcCanonical (and TcSMonad)
Simon Peyton Jones [Mon, 1 Oct 2012 09:40:35 +0000 (10:40 +0100)] 
Modest refactoring in TcCanonical (and TcSMonad)

6 years agoSimplify the reOrient function (no change in behaviour)
Simon Peyton Jones [Mon, 1 Oct 2012 09:38:22 +0000 (10:38 +0100)] 
Simplify the reOrient function (no change in behaviour)

6 years agoFix an ASSERT
Simon Peyton Jones [Mon, 1 Oct 2012 09:37:12 +0000 (10:37 +0100)] 

6 years agoUse System Names for evidence variables
Simon Peyton Jones [Mon, 1 Oct 2012 09:36:13 +0000 (10:36 +0100)] 
Use System Names for evidence variables

These variables all have uniformative names like "cobox" or "d".
Make them System Names tells the pretty printer to show their
uniques even without -dppr-debug.  That in turn makes the
less-voluminous debug traces *much* more informative.

6 years agoComment out a particularly verbose trace
Simon Peyton Jones [Mon, 1 Oct 2012 09:32:16 +0000 (10:32 +0100)] 
Comment out a particularly verbose trace

6 years agoImprove pretty printing for coercions (exp transistivity chains)
Simon Peyton Jones [Mon, 1 Oct 2012 09:31:25 +0000 (10:31 +0100)] 
Improve pretty printing for coercions (exp transistivity chains)

6 years agoChange how we handle options required by 'way's
Ian Lynagh [Sat, 29 Sep 2012 21:30:48 +0000 (22:30 +0100)] 
Change how we handle options required by 'way's

We used to add the options when the way was enabled, but this caused
problems with the static/dynamic choice, as once the 'dynamic' options
had been added it wasn't easy to remove them. We therefore didn't allow
-static on the commandline if we'd already seen -static, which kludged
around the issue.

But apart from being unsatisfactory in the first place, this is a
problem if we want to allow -dynamic being on by default, as there
wouldn't be any way to turn it off.

So now we add C/CPP/linker flags required by the 'way's when flags
are requested, rather than during flag parsing.

6 years agoAdd missing case in TcUnify.matchExpectedFunKind
Simon Peyton Jones [Sat, 29 Sep 2012 12:37:02 +0000 (13:37 +0100)] 
Add missing case in TcUnify.matchExpectedFunKind

This fixes Trac #7278

6 years agoMerge remote-tracking branch 'origin/master' into tc-untouchables
Simon Peyton Jones [Fri, 28 Sep 2012 14:53:45 +0000 (15:53 +0100)] 
Merge remote-tracking branch 'origin/master' into tc-untouchables

6 years agoRefactor the handling of kind errors
Simon Peyton Jones [Fri, 28 Sep 2012 14:52:00 +0000 (15:52 +0100)] 
Refactor the handling of kind errors

* Treat kind-equality constraints as *derived* equalities,
  with no evidence.  That is really what they are at the moment.

* Get rid of EvKindCast and friends.

* Postpone kind errors properly to the constraint solver
  (lots of small knock-on effects)

I moved SwapFlag to BasicTypes as well

6 years agoBetter ASSERT message
Simon Peyton Jones [Fri, 28 Sep 2012 14:26:21 +0000 (15:26 +0100)] 
Better ASSERT message

6 years agoComments only
Simon Peyton Jones [Fri, 28 Sep 2012 14:25:57 +0000 (15:25 +0100)] 
Comments only

6 years agoFix kind unification in the special rule for ($)
Simon Peyton Jones [Fri, 28 Sep 2012 14:25:41 +0000 (15:25 +0100)] 
Fix kind unification in the special rule for ($)

6 years agoComments only
Simon Peyton Jones [Fri, 28 Sep 2012 14:25:23 +0000 (15:25 +0100)] 
Comments only

6 years agoWibble to debug print
Simon Peyton Jones [Fri, 28 Sep 2012 14:25:14 +0000 (15:25 +0100)] 
Wibble to debug print

6 years agoImprove pretty printing for coercions
Simon Peyton Jones [Fri, 28 Sep 2012 14:24:57 +0000 (15:24 +0100)] 
Improve pretty printing for coercions

6 years agoMerge branch 'master' of
Ian Lynagh [Thu, 27 Sep 2012 13:06:32 +0000 (14:06 +0100)] 
Merge branch 'master' of

6 years agoDocument that we don't warn about defining deprecated class methods
Ian Lynagh [Thu, 27 Sep 2012 13:06:03 +0000 (14:06 +0100)] 
Document that we don't warn about defining deprecated class methods

6 years agoTweak the build system handling of shell wrappers
Ian Lynagh [Thu, 27 Sep 2012 00:57:19 +0000 (01:57 +0100)] 
Tweak the build system handling of shell wrappers

Rather than having a separate
variable, we just use

6 years agoRemove a stray " in the build system
Ian Lynagh [Thu, 27 Sep 2012 00:50:53 +0000 (01:50 +0100)] 
Remove a stray " in the build system

6 years agoRemove an unused bit from the Lexer bitmap
Ian Lynagh [Wed, 26 Sep 2012 23:55:27 +0000 (00:55 +0100)] 
Remove an unused bit from the Lexer bitmap

6 years agoPartially fix #367 by adding HpLim checks to entry with -fno-omit-yields.
Edward Z. Yang [Mon, 17 Sep 2012 16:28:49 +0000 (18:28 +0200)] 
Partially fix #367 by adding HpLim checks to entry with -fno-omit-yields.

The current fix is relatively dumb as far as where to add HpLim
checks: it will always perform a check unless we know that we're
returning from a closure or we are doing a non let-no-escape case
analysis.  The performance impact on the nofib suite looks like this:

            Min          +5.7%     -0.0%     -6.5%     -6.4%    -50.0%
            Max          +6.3%     +5.8%     +5.0%     +5.5%     +0.8%
 Geometric Mean          +6.2%     +0.1%     +0.5%     +0.5%     -0.8%

Overall, the executable bloat is the biggest problem, so we keep the old
omit-yields optimization on by default. Remember that if you need an
interruptibility guarantee, you need to recompile all of your libraries
with -fno-omit-yields.

A better fix would involve only inserting the yields necessary to break
loops; this is left as future work.

Signed-off-by: Edward Z. Yang <>
6 years agoBuild old-time with stage2
Ian Lynagh [Wed, 26 Sep 2012 16:54:57 +0000 (17:54 +0100)] 
Build old-time with stage2

It's no longer needed in order to build the compiler itself.

6 years agofix stage2 compilation
Simon Marlow [Wed, 26 Sep 2012 08:05:48 +0000 (09:05 +0100)] 
fix stage2 compilation

6 years agoRemove some old-codegen cruft
Simon Marlow [Tue, 25 Sep 2012 15:03:36 +0000 (16:03 +0100)] 
Remove some old-codegen cruft

6 years agoWhen -split-objs is on, make one SRT per split, not one per module
Simon Marlow [Tue, 25 Sep 2012 15:02:45 +0000 (16:02 +0100)] 
When -split-objs is on, make one SRT per split, not one per module

This is a hopefully temporary measure until the new SRT design is

6 years agofix panic message typo
Simon Marlow [Tue, 25 Sep 2012 08:56:16 +0000 (09:56 +0100)] 
fix panic message typo

6 years agoMisc tidyup
Simon Marlow [Mon, 24 Sep 2012 10:12:35 +0000 (11:12 +0100)] 
Misc tidyup

6 years agowhitespace and panic message fixup
Simon Marlow [Mon, 24 Sep 2012 09:58:50 +0000 (10:58 +0100)] 
whitespace and panic message fixup

6 years agowhitespace only
Simon Marlow [Fri, 21 Sep 2012 10:04:05 +0000 (11:04 +0100)] 
whitespace only

6 years agoGenerate better code for "if (3 <= x) then ..."
Simon Marlow [Fri, 21 Sep 2012 10:03:13 +0000 (11:03 +0100)] 
Generate better code for "if (3 <= x) then ..."

6 years agono functional changes
Simon Marlow [Fri, 21 Sep 2012 10:05:53 +0000 (11:05 +0100)] 
no functional changes

6 years agoAnother overhaul of the recent_activity / idle GC handling (#5991)
Simon Marlow [Fri, 21 Sep 2012 14:49:22 +0000 (15:49 +0100)] 
Another overhaul of the recent_activity / idle GC handling (#5991)


 - we now turn off the timer signal in the non-threaded RTS after
   idleGCDelay.  This should make the xmonad users on #5991 happy.

 - we now turn off the timer signal after idleGCDelay even if the
   idle GC is disabled with +RTS -I0.

 - we now do *not* turn off the timer when profiling.

 - more comments to explain the meaning of the various ACTIVITY_*

6 years agoRevert "Disable the timer signal while blocked in select() (#5991)"
Simon Marlow [Fri, 21 Sep 2012 14:26:46 +0000 (15:26 +0100)] 
Revert "Disable the timer signal while blocked in select() (#5991)"

This reverts commit dd24d6bc37879c6b32a3d5ac4ee765e59e13501c.

This attempt to fix the problem was misguided: the program might be
stuck in a foreign call rather than awaitEvent(), and then the timer
signal will never get disabled.  The only way to turn off the timer
signal in this case is in the timer interrupt handler itself.

6 years agoIgnore deprecation warnings for bitSize in libs when validating
Ian Lynagh [Sun, 23 Sep 2012 20:46:23 +0000 (21:46 +0100)] 
Ignore deprecation warnings for bitSize in libs when validating

6 years agoUse finiteBitSize rather than bitSize when it is available
Ian Lynagh [Sun, 23 Sep 2012 20:45:11 +0000 (21:45 +0100)] 
Use finiteBitSize rather than bitSize when it is available

6 years agoDon't warn about defining deprecated class methods
Ian Lynagh [Sun, 23 Sep 2012 20:09:01 +0000 (21:09 +0100)] 
Don't warn about defining deprecated class methods

We only warn when the method is used, not when it is defined as part
of an instance.

6 years agoWhitespace only in rename/RnSource.lhs
Ian Lynagh [Sun, 23 Sep 2012 13:52:47 +0000 (14:52 +0100)] 
Whitespace only in rename/RnSource.lhs

6 years agoRemove a redundant cast
Ian Lynagh [Fri, 21 Sep 2012 18:39:36 +0000 (19:39 +0100)] 
Remove a redundant cast

6 years agoFix the profiling build
Ian Lynagh [Fri, 21 Sep 2012 18:38:53 +0000 (19:38 +0100)] 
Fix the profiling build

6 years agoConvert more RTS macros to functions
Ian Lynagh [Fri, 21 Sep 2012 17:36:27 +0000 (18:36 +0100)] 
Convert more RTS macros to functions

Object sizes still unchanged.

6 years agoConvert more RTS macros to functions
Ian Lynagh [Fri, 21 Sep 2012 16:56:14 +0000 (17:56 +0100)] 
Convert more RTS macros to functions

No size changes in the non-debug object files

6 years agoFiddling with kind errors
Simon Peyton Jones [Fri, 21 Sep 2012 13:36:33 +0000 (14:36 +0100)] 
Fiddling with kind errors

6 years agoFix off-by-one (#7227)
Simon Marlow [Tue, 11 Sep 2012 14:12:52 +0000 (16:12 +0200)] 
Fix off-by-one (#7227)

6 years agoInclude pinned memory in the stats for allocated memory
Simon Marlow [Fri, 21 Sep 2012 12:20:37 +0000 (13:20 +0100)] 
Include pinned memory in the stats for allocated memory

This broke with the changes to the pinned object handling in

6 years agoCache the result of countOccupied(gen->large_objects) as gen->n_large_words (#7257)
Simon Marlow [Fri, 21 Sep 2012 12:18:49 +0000 (13:18 +0100)] 
Cache the result of countOccupied(gen->large_objects) as gen->n_large_words (#7257)

The program in #7257 was spending 90% of its time counting the live
data in gen->large_objects.  We already avoid doing this for small
objects, but in this example the old generation was full of large
objects (actually pinned ByteStrings).

6 years agoAllow allocNursery() to allocate single blocks (#7257)
Simon Marlow [Fri, 21 Sep 2012 12:11:22 +0000 (13:11 +0100)] 
Allow allocNursery() to allocate single blocks (#7257)

Forcing large allocations here can creates serious fragmentation in
some cases, and since the large allocations are only a small
optimisation we should allow the nursery to hoover up small blocks
before allocating large chunks.

6 years agoFIX #7255: print tyConTyVars tc, not tc_args
Jose Pedro Magalhaes [Fri, 21 Sep 2012 09:40:24 +0000 (10:40 +0100)] 
FIX #7255: print tyConTyVars tc, not tc_args

6 years agoAdd missing dataCast1 method to the Data Bag instance
Jose Pedro Magalhaes [Fri, 21 Sep 2012 08:00:11 +0000 (09:00 +0100)] 
Add missing dataCast1 method to the Data Bag instance

6 years agoDon't put unused constants in platformConstants
Ian Lynagh [Thu, 20 Sep 2012 22:21:42 +0000 (23:21 +0100)] 
Don't put unused constants in platformConstants

This makes compiling DynFlags a lot quicker

6 years agoMerge branch 'master' of
Ian Lynagh [Thu, 20 Sep 2012 17:05:01 +0000 (18:05 +0100)] 
Merge branch 'master' of

6 years agoFix an outright bug in my "left/right" stuff,
Simon Peyton Jones [Thu, 20 Sep 2012 15:36:51 +0000 (16:36 +0100)] 
Fix an outright bug in my "left/right" stuff,
and refactor canEqLeafTyVarEq along the same lines
as our earlier refactoring of canEqLeafFunEq

6 years agoComments only
Simon Peyton Jones [Thu, 20 Sep 2012 15:35:41 +0000 (16:35 +0100)] 
Comments only

6 years agoadd a missing entryCode
Simon Marlow [Thu, 20 Sep 2012 14:55:07 +0000 (15:55 +0100)] 
add a missing entryCode