6 years agoRemove distrib/Mac*; fixes #7136
Ian Lynagh [Thu, 11 Oct 2012 14:31:57 +0000 (15:31 +0100)] 
Remove distrib/Mac*; fixes #7136

We no longer produce installers fo OS X; we leave that to the Haskell
Platform team.

6 years agoMove the primop bits into the compiler/stage<n>/build directories
Ian Lynagh [Wed, 10 Oct 2012 14:54:08 +0000 (15:54 +0100)] 
Move the primop bits into the compiler/stage<n>/build directories

We shouldn't be generating files in the source directories

6 years agoPut the generated Parser.y under compiler/stage<n>/build; fixes #7195
Ian Lynagh [Wed, 10 Oct 2012 01:12:56 +0000 (02:12 +0100)] 
Put the generated Parser.y under compiler/stage<n>/build; fixes #7195

6 years agoMake -fexcess-precision a fully-dynamic flag
Ian Lynagh [Tue, 9 Oct 2012 22:41:44 +0000 (23:41 +0100)] 
Make -fexcess-precision a fully-dynamic flag

It used to be part-dynamic, part-static.

6 years agoMake -f(no-)pre-inlining a dynamic flag
Ian Lynagh [Tue, 9 Oct 2012 22:28:13 +0000 (23:28 +0100)] 
Make -f(no-)pre-inlining a dynamic flag

6 years agoWhitespace only in simplCore/SimplMonad.lhs
Ian Lynagh [Tue, 9 Oct 2012 21:27:26 +0000 (22:27 +0100)] 
Whitespace only in simplCore/SimplMonad.lhs

6 years agoWhitespace only in simplCore/SimplUtils.lhs
Ian Lynagh [Tue, 9 Oct 2012 21:24:49 +0000 (22:24 +0100)] 
Whitespace only in simplCore/SimplUtils.lhs

6 years agoWhitespace only in simplCore/SimplEnv.lhs
Ian Lynagh [Tue, 9 Oct 2012 21:15:54 +0000 (22:15 +0100)] 
Whitespace only in simplCore/SimplEnv.lhs

6 years agoMake -fsimple-list-literals a dynamic flag
Ian Lynagh [Tue, 9 Oct 2012 17:22:57 +0000 (18:22 +0100)] 
Make -fsimple-list-literals a dynamic flag

6 years agoMake -fmax-worker-args a dynamic flag
Ian Lynagh [Tue, 9 Oct 2012 16:31:51 +0000 (17:31 +0100)] 
Make -fmax-worker-args a dynamic flag

6 years agoMake the -dsuppress-* flags dynamic
Ian Lynagh [Tue, 9 Oct 2012 14:59:15 +0000 (15:59 +0100)] 
Make the -dsuppress-* flags dynamic

6 years agoMerge branch 'master' of
Ian Lynagh [Tue, 9 Oct 2012 11:33:00 +0000 (12:33 +0100)] 
Merge branch 'master' of

6 years ago-fliberate-case-threshold is already a dynamic flag
Ian Lynagh [Tue, 9 Oct 2012 11:32:26 +0000 (12:32 +0100)] 
-fliberate-case-threshold is already a dynamic flag

6 years agoMake the opt_UF_* static flags dynamic
Ian Lynagh [Mon, 8 Oct 2012 23:27:28 +0000 (00:27 +0100)] 
Make the opt_UF_* static flags dynamic

I also removed the default values from the "Discounts and thresholds"
note: most of them were no longer up-to-date.

Along the way I added FloatSuffix to the argument parser, analogous to

6 years agoprofiling fixes
Simon Marlow [Tue, 9 Oct 2012 08:23:50 +0000 (09:23 +0100)] 
profiling fixes

6 years agoFix comment
Simon Marlow [Mon, 8 Oct 2012 09:58:25 +0000 (10:58 +0100)] 
Fix comment

patch submitted by

6 years agoRemove unnecessary warning suppression
Ian Lynagh [Mon, 8 Oct 2012 23:09:33 +0000 (00:09 +0100)] 
Remove unnecessary warning suppression

6 years agoMake the -ferror-spans flag dynamic
Ian Lynagh [Mon, 8 Oct 2012 23:07:15 +0000 (00:07 +0100)] 
Make the -ferror-spans flag dynamic

6 years agoMerge ../ghc
Roman Leshchinskiy [Mon, 8 Oct 2012 22:37:14 +0000 (23:37 +0100)] 
Merge ../ghc

6 years agoFix copyArray# bug in new code generator
Roman Leshchinskiy [Mon, 8 Oct 2012 22:36:18 +0000 (23:36 +0100)] 
Fix copyArray# bug in new code generator

6 years agoFix copyArray# bug in old code generator
Roman Leshchinskiy [Mon, 8 Oct 2012 22:35:30 +0000 (23:35 +0100)] 
Fix copyArray# bug in old code generator

6 years agoPut the DynFlags in a global variable for tracing; fixes #7304
Ian Lynagh [Mon, 8 Oct 2012 20:55:23 +0000 (21:55 +0100)] 
Put the DynFlags in a global variable for tracing; fixes #7304

This is an ugly kludge to make a DynFlags value available for the
'trace' functions. It may not be the value we really ought to use,
but it'll be good enough for the pretty-printer to use.

Ideally we'd pass the real DynFlags down to all the trace calls,
but this will do for now at least.

6 years agountab
Simon Marlow [Mon, 8 Oct 2012 08:43:55 +0000 (09:43 +0100)] 

6 years agoFix a dependency bug in the build system
Simon Marlow [Fri, 5 Oct 2012 09:34:42 +0000 (10:34 +0100)] 
Fix a dependency bug in the build system

I've been meaning to track this one down for a long time.
Occasionally a build will fail with an error about a .so library being
truncated; the reason was that we weren't tracking the dependencies of
the GHC stage2 .so library correctly.

6 years agofix a warning
Simon Marlow [Fri, 5 Oct 2012 08:59:31 +0000 (09:59 +0100)] 
fix a warning

6 years agoexpand tabs
Simon Marlow [Fri, 5 Oct 2012 08:51:24 +0000 (09:51 +0100)] 
expand tabs

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