ghc.git
8 years agoGC refactoring and cleanup
Simon Marlow [Wed, 2 Feb 2011 15:49:55 +0000 (15:49 +0000)] 
GC refactoring and cleanup
Now we keep any partially-full blocks in the gc_thread[] structs after
each GC, rather than moving them to the generation.  This should give
us slightly better locality (though I wasn't able to measure any
difference).

Also in this patch: better sanity checking with THREADED.

8 years agoavoid adding HPC ticks to arrow constructs (fixes #1333)
Ross Paterson [Wed, 2 Feb 2011 21:14:25 +0000 (21:14 +0000)] 
avoid adding HPC ticks to arrow constructs (fixes #1333)

8 years agoFix the profiling build
Simon Marlow [Wed, 2 Feb 2011 13:22:57 +0000 (13:22 +0000)] 
Fix the profiling build

8 years agoA small GC optimisation
Simon Marlow [Wed, 2 Feb 2011 12:30:49 +0000 (12:30 +0000)] 
A small GC optimisation
Store the *number* of the destination generation in the Bdescr struct,
so that in evacuate() we don't have to deref gen to get it.
This is another improvement ported over from my GC branch.

8 years agoscheduleProcessInbox: use non-blocking acquire, and take the whole queue
Simon Marlow [Wed, 2 Feb 2011 11:49:07 +0000 (11:49 +0000)] 
scheduleProcessInbox: use non-blocking acquire, and take the whole queue
This is an improvement from my GC branch, that helps performance for
intensive message-passing communication between Capabilities.

8 years agodo a bit of by-hand CSE
Simon Marlow [Wed, 2 Feb 2011 11:44:17 +0000 (11:44 +0000)] 
do a bit of by-hand CSE

8 years agoadd a const
Simon Marlow [Wed, 2 Feb 2011 11:43:45 +0000 (11:43 +0000)] 
add a const

8 years agoadd TRY_ACQUIRE_LOCK()
Simon Marlow [Wed, 2 Feb 2011 11:32:42 +0000 (11:32 +0000)] 
add TRY_ACQUIRE_LOCK()

8 years agoRemove the per-generation mutable lists
Simon Marlow [Wed, 2 Feb 2011 11:26:46 +0000 (11:26 +0000)] 
Remove the per-generation mutable lists
Now that we use the per-capability mutable lists exclusively.

8 years ago+RTS -qw hasn't done anything since 7.0.1; remove the implementation & docs
Simon Marlow [Tue, 1 Feb 2011 16:37:27 +0000 (16:37 +0000)] 
+RTS -qw hasn't done anything since 7.0.1; remove the implementation & docs
It is still (silently) accepted for backwards compatibility.

8 years agocomments
Simon Marlow [Tue, 1 Feb 2011 08:58:30 +0000 (08:58 +0000)] 
comments

8 years agoAnnotate thread stop events with the owner of the black hole
Simon Marlow [Thu, 27 Jan 2011 16:42:26 +0000 (16:42 +0000)] 
Annotate thread stop events with the owner of the black hole

So we can now get these in ThreadScope:

  19487000: cap 1: stopping thread 6 (blocked on black hole owned by thread 4)

Note: needs an update to ghc-events.  Older ThreadScopes will just
ignore the new information.

8 years agoupdate debugging code for fragmentation
Simon Marlow [Tue, 25 Jan 2011 11:10:11 +0000 (11:10 +0000)] 
update debugging code for fragmentation

8 years agoFix type checker error message
simonpj@microsoft.com [Tue, 1 Feb 2011 12:29:20 +0000 (12:29 +0000)] 
Fix type checker error message

See Trac #4940. We had a message
     The lambda expression `\ x -> x' has one argument one argument,
repeating the "one argument" part.  Easy fix.

8 years agoSome refactoring of SpecConstr
simonpj@microsoft.com [Tue, 1 Feb 2011 12:28:41 +0000 (12:28 +0000)] 
Some refactoring of SpecConstr

This was originally to improve the case when SpecConstr generated a
function with an unused argument (see Trac #4941), but I ended up
giving up on that.  But the refactoring is still an improvement.

In particular I got rid of BothOcc, which was unused.

8 years agoDon't make join points when the case has only one non-bottom alternative
simonpj@microsoft.com [Tue, 1 Feb 2011 12:26:37 +0000 (12:26 +0000)] 
Don't make join points when the case has only one non-bottom alternative

This fixes Trac #4930.  See Note [Bottom alternatives] in Simplify.lhs

8 years agoImprove Simplifier and SpecConstr behaviour
simonpj@microsoft.com [Mon, 31 Jan 2011 11:35:29 +0000 (11:35 +0000)] 
Improve Simplifier and SpecConstr behaviour

Trac #4908 identified a case where SpecConstr wasn't "seeing" a
specialisation it should easily get.  The solution was simple: see
Note [Add scrutinee to ValueEnv too] in SpecConstr.

Then it turned out that there was an exactly analogous infelicity in
the mighty Simplifer too; see Note [Add unfolding for scrutinee] in
Simplify. This fix is good for Simplify even in the absence of the
SpecConstr change.  (It arose when I moved the binder- swap stuff to
OccAnall, not realising that it *remains* valuable to record info
about the scrutinee of a case expression.  The Note says why.

Together these two changes are unconditionally good.  Better
simplification, better specialisation. Thank you Max.

8 years agofix warning
Simon Marlow [Mon, 31 Jan 2011 13:59:51 +0000 (13:59 +0000)] 
fix warning

9 years ago32-bit fix
Simon Marlow [Wed, 13 Oct 2010 15:42:00 +0000 (15:42 +0000)] 
32-bit fix

8 years agoupdate to mingw gcc 4.5.2
Simon Marlow [Wed, 19 Jan 2011 13:50:53 +0000 (13:50 +0000)] 
update to mingw gcc 4.5.2

9 years agocount fizzled and GC'd sparks separately
Simon Marlow [Thu, 11 Nov 2010 13:27:27 +0000 (13:27 +0000)] 
count fizzled and GC'd sparks separately

9 years agocount "dud" sparks (expressions that were already evaluated when sparked)
Simon Marlow [Mon, 1 Nov 2010 12:41:43 +0000 (12:41 +0000)] 
count "dud" sparks (expressions that were already evaluated when sparked)

9 years agofix some shutdown memory leaks
Simon Marlow [Fri, 20 Aug 2010 09:31:33 +0000 (09:31 +0000)] 
fix some shutdown memory leaks

8 years agofix DEBUG build
Simon Marlow [Mon, 31 Jan 2011 12:34:33 +0000 (12:34 +0000)] 
fix DEBUG build

8 years agoFix formatting glitch in documentation
simonpj@microsoft.com [Fri, 28 Jan 2011 11:54:00 +0000 (11:54 +0000)] 
Fix formatting glitch in documentation

8 years agoFix warnings
Simon Marlow [Fri, 28 Jan 2011 10:36:39 +0000 (10:36 +0000)] 
Fix warnings

8 years agoMerge in new code generator branch.
Simon Marlow [Mon, 24 Jan 2011 12:16:50 +0000 (12:16 +0000)] 
Merge in new code generator branch.
This changes the new code generator to make use of the Hoopl package
for dataflow analysis.  Hoopl is a new boot package, and is maintained
in a separate upstream git repository (as usual, GHC has its own
lagging darcs mirror in http://darcs.haskell.org/packages/hoopl).

During this merge I squashed recent history into one patch.  I tried
to rebase, but the history had some internal conflicts of its own
which made rebase extremely confusing, so I gave up. The history I
squashed was:

  - Update new codegen to work with latest Hoopl
  - Add some notes on new code gen to cmm-notes
  - Enable Hoopl lag package.
  - Add SPJ note to cmm-notes
  - Improve GC calls on new code generator.

Work in this branch was done by:
   - Milan Straka <fox@ucw.cz>
   - John Dias <dias@cs.tufts.edu>
   - David Terei <davidterei@gmail.com>

Edward Z. Yang <ezyang@mit.edu> merged in further changes from GHC HEAD
and fixed a few bugs.

8 years agoFix an egregious strictness analyser bug (Trac #4924)
simonpj@microsoft.com [Fri, 28 Jan 2011 08:07:48 +0000 (08:07 +0000)] 
Fix an egregious strictness analyser bug (Trac #4924)

The "virgin" flag was being threaded rather than treated
like an environment.  As a result, the second and subsequent
recursive definitions in a module were not getting a
correctly-initialised fixpoint loop, causing much worse
strictness analysis results.  Indeed the symptoms in
Trac #4924 were quite bizarre.

Anyway, it's easily fixed.  Merge to stable branch.

8 years agoRefine incomplete-pattern checks (Trac #4905)
simonpj@microsoft.com [Thu, 27 Jan 2011 13:13:04 +0000 (13:13 +0000)] 
Refine incomplete-pattern checks (Trac #4905)

The changes are:

* New flag -fwarn-incomplete-uni-patterns, which checks for
  incomplete patterns in (a) lambdas, (b) pattern bindings

* New flag is not implied by -W or -Wall (too noisy; and many
  libraries use incomplete pattern bindings)

* Actually do the incomplete-pattern check for pattern bindings
  (previously simply omitted)

* Documentation for new flag

8 years agoFix "make 1" etc following the build system changes
Ian Lynagh [Thu, 27 Jan 2011 00:17:39 +0000 (00:17 +0000)] 
Fix "make 1" etc following the build system changes
The logic is now in mk/compiler-ghc.mk rather than being duplicated in
ghc/Makefile and compiler/Makefile.

8 years agoFix vectorisation of recursive types
Roman Leshchinskiy [Wed, 26 Jan 2011 23:18:43 +0000 (23:18 +0000)] 
Fix vectorisation of recursive types

8 years agoFix dependencies among specialisations for imported Ids
simonpj@microsoft.com [Wed, 26 Jan 2011 17:21:12 +0000 (17:21 +0000)] 
Fix dependencies among specialisations for imported Ids

This was a subtle one (Trac #4903).  See
  Note [Glom the bindings if imported functions are specialised]
in Speclialise.

Fundamentally, a specialised binding for an imported Id was being
declared non-recursive, whereas in fact it can become recursive
via a RULE.  Once it's specified non-recurive the OccAnal pass
treats that as gospel -- and that in turn led to infinite inlining.

Easily fixed by glomming all the specialised bindings in a Rec;
now the OccAnal will sort them out correctly.

8 years agoFix bug in roughTopNames
simonpj@microsoft.com [Wed, 26 Jan 2011 17:18:03 +0000 (17:18 +0000)] 
Fix bug in roughTopNames

roughTopNames was returning a name that in fact might be
"looked though" by the rule matcher. Result: a rule
that should match was being pre-emptively discarded.

See Note [Care with roughTopName].

Fixes a bug noticed by Pedro (Trac #4918).

8 years agoComments only, plus a tiny bit of debug printing
simonpj@microsoft.com [Wed, 26 Jan 2011 17:12:55 +0000 (17:12 +0000)] 
Comments only, plus a tiny bit of debug printing

8 years agoComments only
simonpj@microsoft.com [Wed, 26 Jan 2011 17:12:35 +0000 (17:12 +0000)] 
Comments only

8 years agoLook through type synonyms when computing orphans
simonpj@microsoft.com [Wed, 26 Jan 2011 17:12:29 +0000 (17:12 +0000)] 
Look through type synonyms when computing orphans

I renamed functions tyClsNamesOfTypes to oprhNamesOfType,
because it's only used in that capacity, and we therefore
want to look through type synonyms.  Similarly exprOrphNames.

This fixes Trac #4912.

8 years agoBleat a bit more informatively in unionLists
simonpj@microsoft.com [Wed, 26 Jan 2011 17:10:30 +0000 (17:10 +0000)] 
Bleat a bit more informatively in unionLists

8 years agoKeep separate linker flags, for when we want to link with gcc or ld
Ian Lynagh [Mon, 24 Jan 2011 23:31:21 +0000 (23:31 +0000)] 
Keep separate linker flags, for when we want to link with gcc or ld

8 years agoFix validate on OS X 64
Ian Lynagh [Mon, 24 Jan 2011 18:36:18 +0000 (18:36 +0000)] 
Fix validate on OS X 64

8 years agoSplit main/GHC into GHC and GhcMake
simonpj@microsoft.com [Tue, 25 Jan 2011 16:16:32 +0000 (16:16 +0000)] 
Split main/GHC into GHC and GhcMake

There are two things going on in main/GHC.hs.
  * It's the root module of the GHC package
  * It contains lots of stuff for --make
It is also gigantic (2.7k lines)

This patch splits it into two
  * GHC.hs is the root module for the GHC package
      (1.3k lines)
  * GhcMake.hs contains the stuff for --make
      (1.4k lines)

Happily the functional split divided it almost
exactly in half.

This is a pure refactoring.  There should be no
behavioural change.

8 years agoComments only
simonpj@microsoft.com [Tue, 25 Jan 2011 13:11:15 +0000 (13:11 +0000)] 
Comments only

8 years agoFix Trac #3717 by making exprOkForSpeculation a bit cleverer
simonpj@microsoft.com [Tue, 25 Jan 2011 11:05:25 +0000 (11:05 +0000)] 
Fix Trac #3717 by making exprOkForSpeculation a bit cleverer

The main change here is to do with dropping redundant seqs.
See Note [exprOkForSpeculation: case expressions] in CoreUtils.

8 years agoImprove dataToTag# magic
simonpj@microsoft.com [Tue, 25 Jan 2011 11:04:18 +0000 (11:04 +0000)] 
Improve dataToTag# magic

dataToTag# is a bit unsatisfactory because it requires
its argument to be evaluated, and we don't have a good
way to enforce that. This patch adds some comments, and
makes exprOkForSpeculation a bit less picky in the case
of dataToTag# (since the argument may, in fact, not be
eval'd).

8 years agoFix Trac #4917: try a bit harder to unify on-the-fly
simonpj@microsoft.com [Tue, 25 Jan 2011 11:01:12 +0000 (11:01 +0000)] 
Fix Trac #4917: try a bit harder to unify on-the-fly

This is generally a modest improvement but, more important,
it fixes a "unify-under-forall" problem.  See Note [Avoid deferring].

There's still a lurking unsatisfactory-ness in that we can't
defer arbitrary constraints that are trapped under a forall.

8 years agoDPH options updated
Manuel M T Chakravarty [Mon, 24 Jan 2011 04:36:17 +0000 (04:36 +0000)] 
DPH options updated
- '-Odph' is now '-O2 -fsimplifier-phases=3 -fsimplifier-iterations=20'
- The new option '-fdph-none' is the default; it indicates that no DPH
  backend is selected and is the only valid option if the DPH libraries
  are not installed.  If vectorisation is attempted with -fdph-none a
  suitable error message is generated.
- Hence, '-fdph-par' (or '-fdph-seq') needs to be explicitly selected
  when using vectorisation and when linking vectorised code.  (There
  seems to be no elegant way to avoid that.)

8 years agoAdd build system profiling to build system
Ian Lynagh [Sun, 23 Jan 2011 15:14:08 +0000 (15:14 +0000)] 
Add build system profiling to build system

8 years agoFix ghci in stage3
Ian Lynagh [Sun, 23 Jan 2011 12:02:32 +0000 (12:02 +0000)] 
Fix ghci in stage3

8 years agoRemove use of non-existent $$(dir) variable in the rts ghc.mk
Ian Lynagh [Sun, 23 Jan 2011 02:18:15 +0000 (02:18 +0000)] 
Remove use of non-existent $$(dir) variable in the rts ghc.mk

8 years agoAdd some missing dependencies
Ian Lynagh [Sun, 23 Jan 2011 00:42:08 +0000 (00:42 +0000)] 
Add some missing dependencies

8 years agoTweak some deps to avoid multiple $(wildcard ...)s
Ian Lynagh [Sun, 23 Jan 2011 00:10:45 +0000 (00:10 +0000)] 
Tweak some deps to avoid multiple $(wildcard ...)s
Note that some things depending on the rts/includes header files now
depend on more files: They used to include depend on includes/*.h, but
now they also depend on header files in subdirectories. As far as I can
see this was a bug.

8 years agoUse := when assigning the result of $(wildcard ...)
Ian Lynagh [Sat, 22 Jan 2011 22:45:32 +0000 (22:45 +0000)] 
Use := when assigning the result of $(wildcard ...)
Avoids repeated evaluations of things that need system calls etc

8 years agoSimplify the build system, and remove 2 phases
Ian Lynagh [Sat, 22 Jan 2011 19:09:28 +0000 (19:09 +0000)] 
Simplify the build system, and remove 2 phases
From
    http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture/Idiom/PhaseOrdering

Phase 0:
    Includes: package-data.mk files for things built by the
              bootstrapping compiler.
    Builds:   the dependency files for hsc2hs and genprimopcode. We need
              to do this now, as hsc2hs needs to be buildable in phase 1's
              includes (so that we can make the hpc library's .hs source
              files, which in turn is necessary for making its dependency
              files), and genprimopcode needs to be buildable in phase 1's
              includes (so that we can make the primop-*.hs-incl files,
              which are sources for the stage1 compiler library, and thus
              necessary for making its dependency files).
Phase 1:
    Includes: dependency files for things built by the bootstrapping
              compiler.
    Builds:   package-data.mk files for everything else. Note that this
              requires configuring the packages, which means telling cabal
              which ghc to use, and thus the stage1 compiler gets built
              during this phase.
Phase "":
    Includes: dependency files for everything else.
    Builds:   Everything else.

8 years agoManually control more of the Cabal flags for the compiler and ghc packages
Ian Lynagh [Fri, 21 Jan 2011 23:05:52 +0000 (23:05 +0000)] 
Manually control more of the Cabal flags for the compiler and ghc packages
For some reason the Windows HEAD builder has started thinking the ghci
flag should be on in stage 1. This should fix it, and generally make
things a little more resilient.

8 years agoRemove some hardcoded makefile settings
Ian Lynagh [Fri, 21 Jan 2011 23:02:45 +0000 (23:02 +0000)] 
Remove some hardcoded makefile settings
Now that we used cabal to configure the ghc-bin package they are no
longer needed.

8 years agotweak newArray# documentation again
Simon Marlow [Wed, 19 Jan 2011 14:06:33 +0000 (14:06 +0000)] 
tweak newArray# documentation again

8 years agoFix OSTYPE test
Ian Lynagh [Thu, 20 Jan 2011 00:03:08 +0000 (00:03 +0000)] 
Fix OSTYPE test

8 years agoComments only
simonpj@microsoft.com [Wed, 19 Jan 2011 22:22:47 +0000 (22:22 +0000)] 
Comments only

8 years agoAdd OSTYPE build-system variable, and use it
simonpj@microsoft.com [Thu, 13 Jan 2011 15:50:23 +0000 (15:50 +0000)] 
Add OSTYPE build-system variable, and use it

The use is in install.mk.in, where we need to know when
we're on Cygwin.

This fixes the build on my Windows box, where I have
both Msys and Cygwin.

8 years agoRemove an extraneous comma that stopped ghc-cabal from building
Ian Lynagh [Wed, 19 Jan 2011 22:23:59 +0000 (22:23 +0000)] 
Remove an extraneous comma that stopped ghc-cabal from building

8 years agoMove some make variables around
Ian Lynagh [Wed, 19 Jan 2011 22:15:45 +0000 (22:15 +0000)] 
Move some make variables around

8 years agoRemove a debugging 'info'
Ian Lynagh [Wed, 19 Jan 2011 20:33:05 +0000 (20:33 +0000)] 
Remove a debugging 'info'

8 years agoMove the PACKAGE_MAGIC evaluation inside package-data.mk
Ian Lynagh [Wed, 19 Jan 2011 20:32:29 +0000 (20:32 +0000)] 
Move the PACKAGE_MAGIC evaluation inside package-data.mk

8 years agoFix libraries/index.html's haddock dependency on Windows
Ian Lynagh [Wed, 19 Jan 2011 17:23:10 +0000 (17:23 +0000)] 
Fix libraries/index.html's haddock dependency on Windows

8 years agoAdd configure phases for the stage 3 compiler
Ian Lynagh [Wed, 19 Jan 2011 13:06:29 +0000 (13:06 +0000)] 
Add configure phases for the stage 3 compiler

8 years agoInclude kfreebsdgnu in the list of Target Platforms.
Marco Silva [Tue, 18 Jan 2011 22:23:52 +0000 (22:23 +0000)] 
Include kfreebsdgnu in the list of Target Platforms.

8 years agoFix documentation bug: newArray# accepts word count, not byte count.
Edward Z. Yang [Tue, 18 Jan 2011 22:18:34 +0000 (22:18 +0000)] 
Fix documentation bug: newArray# accepts word count, not byte count.

8 years agoUpdate the location of libffi.dll.a
Ian Lynagh [Tue, 18 Jan 2011 16:42:25 +0000 (16:42 +0000)] 
Update the location of libffi.dll.a
As far as I can see this has been wrong for some time, but only bit
recently.

8 years agoUpdate the generics docs; pointed out by Christian Maeder
Ian Lynagh [Mon, 17 Jan 2011 21:46:32 +0000 (21:46 +0000)] 
Update the generics docs; pointed out by Christian Maeder

8 years agoghc-cabal now adds the language flag being used
Ian Lynagh [Mon, 17 Jan 2011 18:48:33 +0000 (18:48 +0000)] 
ghc-cabal now adds the language flag being used
This means we get -XHaskell98 added to the list of flags, just like we
would if we were building with Cabal.

8 years agoReinstate the OS X flags in the LDFLAGS etc variables
Ian Lynagh [Mon, 17 Jan 2011 20:05:40 +0000 (20:05 +0000)] 
Reinstate the OS X flags in the LDFLAGS etc variables
I expect this will fix:
http://www.haskell.org/pipermail/cvs-ghc/2011-January/059098.html

8 years agoAdd NondecreasingIndentation extension to ghc-bin
Ian Lynagh [Mon, 17 Jan 2011 20:04:27 +0000 (20:04 +0000)] 
Add NondecreasingIndentation extension to ghc-bin

8 years agoChange an "if ... else return ()" into a "when"
Ian Lynagh [Mon, 17 Jan 2011 19:17:14 +0000 (19:17 +0000)] 
Change an "if ... else return ()" into a "when"

8 years agoAdd NondecreasingIndentation to the list of extensions in ghc-pkg
Ian Lynagh [Mon, 17 Jan 2011 19:06:10 +0000 (19:06 +0000)] 
Add NondecreasingIndentation to the list of extensions in ghc-pkg

8 years agoAdd NondecreasingIndentation to the list of extensions in the ghc package
Ian Lynagh [Mon, 17 Jan 2011 19:04:04 +0000 (19:04 +0000)] 
Add NondecreasingIndentation to the list of extensions in the ghc package

8 years agoFix deps on the ghc package
Ian Lynagh [Mon, 17 Jan 2011 17:30:10 +0000 (17:30 +0000)] 
Fix deps on the ghc package
The standard libraries/$depname scheme doesn't apply, so we need to
handle it specially.

8 years agoTidy up gmp cleaning
Ian Lynagh [Mon, 17 Jan 2011 12:11:55 +0000 (12:11 +0000)] 
Tidy up gmp cleaning

8 years agoRemove redundant libraries/cabal-bin.hs
Ian Lynagh [Sun, 16 Jan 2011 19:49:19 +0000 (19:49 +0000)] 
Remove redundant libraries/cabal-bin.hs

8 years agoTurn off dtrace unless you override USE_DTRACE
Ian Lynagh [Sun, 16 Jan 2011 18:03:06 +0000 (18:03 +0000)] 
Turn off dtrace unless you override USE_DTRACE
There are problems with dtrace on 64bit 10.5. For now at least, we
just turn dtrace off unless you override USE_DTRACE

8 years agoSimplify a bit of makefile
Ian Lynagh [Sun, 16 Jan 2011 17:52:18 +0000 (17:52 +0000)] 
Simplify a bit of makefile

8 years agoTweak Windows phase ordering
Ian Lynagh [Sun, 16 Jan 2011 17:34:59 +0000 (17:34 +0000)] 
Tweak Windows phase ordering

8 years agoHandle dependencies of programs on libraries correctly
Ian Lynagh [Sun, 16 Jan 2011 15:56:27 +0000 (15:56 +0000)] 
Handle dependencies of programs on libraries correctly

8 years agoIt's not clear if LDFLAGS flags will be given to gcc or ld,
Ian Lynagh [Sun, 16 Jan 2011 15:12:30 +0000 (15:12 +0000)] 
It's not clear if LDFLAGS flags will be given to gcc or ld,
and they accept different flags, so for now do nothing

8 years agoFix cross-package dependency generation on Windows
Ian Lynagh [Sun, 16 Jan 2011 15:09:01 +0000 (15:09 +0000)] 
Fix cross-package dependency generation on Windows

8 years agoAdd some Windows-only CONFIGURE_PHASEs
Ian Lynagh [Sun, 16 Jan 2011 15:08:26 +0000 (15:08 +0000)] 
Add some Windows-only CONFIGURE_PHASEs

8 years agoSimplify, and future-proof, a dependency in the build system
Ian Lynagh [Sun, 16 Jan 2011 02:00:35 +0000 (02:00 +0000)] 
Simplify, and future-proof, a dependency in the build system

8 years agoRemove an unnecessary phase, and some unnecessary deps
Ian Lynagh [Sun, 16 Jan 2011 01:59:43 +0000 (01:59 +0000)] 
Remove an unnecessary phase, and some unnecessary deps
now that cross-package deps are tracked correctly.

8 years agoWe can now pass -include-pkg-deps to the bootstrapping compiler
Ian Lynagh [Sun, 16 Jan 2011 01:57:14 +0000 (01:57 +0000)] 
We can now pass -include-pkg-deps to the bootstrapping compiler

8 years agoRemove some flags that are redundant now GHC gets configured by Cabal
Ian Lynagh [Sun, 16 Jan 2011 00:31:54 +0000 (00:31 +0000)] 
Remove some flags that are redundant now GHC gets configured by Cabal

8 years agoChange some HC_OPTS var handling
Ian Lynagh [Sun, 16 Jan 2011 00:31:04 +0000 (00:31 +0000)] 
Change some HC_OPTS var handling
In particular, this means ghc gets built with -rtsopt, -threaded, etc again.

8 years agoRemove some unnecessary workarounds
Ian Lynagh [Sun, 16 Jan 2011 00:28:03 +0000 (00:28 +0000)] 
Remove some unnecessary workarounds
We can now rely on cross-package deps working properly, as we require
GHC 6.12.

8 years agoTidy up a bit
Ian Lynagh [Sun, 16 Jan 2011 00:11:21 +0000 (00:11 +0000)] 
Tidy up a bit

8 years agoBuild system improvements
Ian Lynagh [Sat, 15 Jan 2011 23:19:27 +0000 (23:19 +0000)] 
Build system improvements
We no longer use dummy-ghc; instead we don't configure most packages
until the stage1 compiler is available.

We also now use Cabal for building the ghc-bin package.

There are a couple more sanity checks too.

8 years agoWhitespace tweak
Ian Lynagh [Sat, 15 Jan 2011 21:41:49 +0000 (21:41 +0000)] 
Whitespace tweak

8 years agoFix libffi build rules
Ian Lynagh [Sat, 15 Jan 2011 20:21:04 +0000 (20:21 +0000)] 
Fix libffi build rules
Fixes a rare race when both libHSffi.a and libHSffi_p.a were being built
at the same time:

"cp" libffi/dist-install/build/libffi.a libffi/dist-install/build/libHSffi.a
"cp" libffi/dist-install/build/libffi.a libffi/dist-install/build/libHSffi.a
"cp" libffi/dist-install/build/libffi.so libffi/dist-install/build/libHSffi-ghc7.1.20110115.so
cp: cannot create regular file `libffi/dist-install/build/libHSffi.a': File exists

8 years agoFix Trac #4874: specialisation of INLINABLE things
simonpj@microsoft.com [Fri, 14 Jan 2011 16:32:27 +0000 (16:32 +0000)] 
Fix Trac #4874: specialisation of INLINABLE things

Johan discovered that when INLINABLE things are specialised
bad things can happen. This patch implements a hack -- but
it's a simple hack and it solves the problem.

See Note [Inline specialisations].

The hack part is that really INLINABLE should not cause *any* loss
optimisation, and it does; see Note [Don't w/w INLINABLE things] in
WorkWrap.

8 years agoComments only
simonpj@microsoft.com [Fri, 14 Jan 2011 16:29:59 +0000 (16:29 +0000)] 
Comments only

8 years agoFix a buglet in postInlineUnconditionally
simonpj@microsoft.com [Fri, 14 Jan 2011 16:29:27 +0000 (16:29 +0000)] 
Fix a buglet in postInlineUnconditionally

Under obscure circumstances (actually only shown up when fixing something
else) it was possible for a variable binding to be discarded although
it was still used.  See Note [Top level and postInlineUnconditionally]

8 years agocope with empty libraries/stamp directory (in git repo)
Simon Marlow [Fri, 14 Jan 2011 14:24:06 +0000 (14:24 +0000)] 
cope with empty libraries/stamp directory (in git repo)

8 years agoadd .gitignore
Simon Marlow [Fri, 14 Jan 2011 14:23:53 +0000 (14:23 +0000)] 
add .gitignore

8 years agoFix longstanding bug in C-- inlining for functions calls.
Edward Z. Yang [Thu, 13 Jan 2011 13:06:54 +0000 (13:06 +0000)] 
Fix longstanding bug in C-- inlining for functions calls.