ghc-hetmet.git
16 years agoView patterns, record wildcards, and record puns
Dan Licata [Wed, 10 Oct 2007 15:02:54 +0000 (15:02 +0000)]
View patterns, record wildcards, and record puns
This patch implements three new features:
* view patterns (syntax: expression -> pat in a pattern)
* working versions of record wildcards and record puns
See the manual for detailed descriptions.

Other minor observable changes:
* There is a check prohibiting local fixity declarations
  when the variable being fixed is not defined in the same let
* The warn-unused-binds option now reports warnings for do and mdo stmts

Implementation notes:

* The pattern renamer is now in its own module, RnPat, and the
implementation is now in a CPS style so that the correct context is
delivered to pattern expressions.

* These features required a fairly major upheaval to the renamer.
Whereas the old version used to collect up all the bindings from a let
(or top-level, or recursive do statement, ...) and put them into scope
before renaming anything, the new version does the collection as it
renames.  This allows us to do the right thing with record wildcard
patterns (which need to be expanded to see what names should be
collected), and it allows us to implement the desired semantics for view
patterns in lets.  This change had a bunch of domino effects brought on
by fiddling with the top-level renaming.

* Prior to this patch, there was a tricky bug in mkRecordSelId in HEAD,
which did not maintain the invariant necessary for loadDecl.  See note
[Tricky iface loop] for details.

16 years agoFIX profiling after my storage manager changes
Simon Marlow [Mon, 15 Oct 2007 10:39:39 +0000 (10:39 +0000)]
FIX profiling after my storage manager changes

16 years agoMore docu for skolemOccurs
Manuel M T Chakravarty [Mon, 15 Oct 2007 07:56:44 +0000 (07:56 +0000)]
More docu for skolemOccurs

16 years agoSlightly improved comments in TcTyClsDecls
Manuel M T Chakravarty [Wed, 10 Oct 2007 14:20:23 +0000 (14:20 +0000)]
Slightly improved comments in TcTyClsDecls

16 years agoTcTyFuns: remove some duplicate code
Manuel M T Chakravarty [Thu, 4 Oct 2007 14:23:15 +0000 (14:23 +0000)]
TcTyFuns: remove some duplicate code

16 years agoTcTyFuns.eqInstToRewrite
Manuel M T Chakravarty [Wed, 3 Oct 2007 14:57:15 +0000 (14:57 +0000)]
TcTyFuns.eqInstToRewrite

16 years agoAdd allocateInGen() for allocating in a specific generation, and cleanups
Simon Marlow [Fri, 12 Oct 2007 12:44:13 +0000 (12:44 +0000)]
Add allocateInGen() for allocating in a specific generation, and cleanups
Now allocate() is a synonym for allocateInGen().

I also made various cleanups: there is now less special-case code for
supporting -G1 (two-space collection), and -G1 now works with
-threaded.

16 years agooptimise isAlive()
Simon Marlow [Fri, 12 Oct 2007 10:38:10 +0000 (10:38 +0000)]
optimise isAlive()

16 years agoaccounting wibble: we were missing an alloc_blocks++ in allocateLocal()
Simon Marlow [Fri, 12 Oct 2007 10:17:11 +0000 (10:17 +0000)]
accounting wibble: we were missing an alloc_blocks++ in allocateLocal()

16 years agothreadStackOverflow should be using allocateLocal
Simon Marlow [Fri, 12 Oct 2007 10:04:05 +0000 (10:04 +0000)]
threadStackOverflow should be using allocateLocal

16 years agoFIX #1759 while respecting the ticks
andy@galois.com [Mon, 15 Oct 2007 03:33:19 +0000 (03:33 +0000)]
FIX #1759 while respecting the ticks

16 years agoImproving the combine mode for hpc
andy@galois.com [Sun, 14 Oct 2007 17:10:09 +0000 (17:10 +0000)]
Improving the combine mode for hpc

we now have
Processing Coverage files:
  sum         Sum multiple .tix files in a single .tix file
  combine     Combine two .tix files in a single .tix file
  map         Map a function over a single .tix file

Where sum joins many .tix files, combine joins two files (with
extra functionality possible), and map just applied a function
to single .tix file.

These changes were improvements driven by hpc use cases.

END OF DESCRIPTION***

Place the long patch description above the ***END OF DESCRIPTION*** marker.
The first line of this file will be the patch name.

This patch contains the following changes:

M ./utils/hpc/Hpc.hs -1 +3
M ./utils/hpc/HpcCombine.hs -33 +84
M ./utils/hpc/HpcFlags.hs -11 +59

16 years agoFix DoCon: Another try at getting extractResults right
simonpj@microsoft.com [Fri, 12 Oct 2007 16:23:25 +0000 (16:23 +0000)]
Fix DoCon: Another try at getting extractResults right

For some reason TcSimplify.extractResults is quite difficult to get right.
This is another attempt; finally I think I have it.

Strangely enough, it's only Sergey's DoCon program that shows up the
bug, which manifested as a failure in the Simplifier

        lookupRecBndr $dGCDRing{v a1Lz} [lid]

But it was due to extractResults producing multiple bindings for
the same dictionary.

Please merge this to the stable branch (after previous patches to
TcSimplify though).

16 years agomention what SCC stands for
Simon Marlow [Thu, 11 Oct 2007 13:57:36 +0000 (13:57 +0000)]
mention what SCC stands for

16 years agoAdd a proper write barrier for MVars
Simon Marlow [Thu, 11 Oct 2007 13:55:05 +0000 (13:55 +0000)]
Add a proper write barrier for MVars
Previously MVars were always on the mutable list of the old
generation, which meant every MVar was visited during every minor GC.
With lots of MVars hanging around, this gets expensive.  We addressed
this problem for MUT_VARs (aka IORefs) a while ago, the solution is to
use a traditional GC write-barrier when the object is modified.  This
patch does the same thing for MVars.

TVars are still done the old way, they could probably benefit from the
same treatment too.

16 years agowe need to #include "Stg.h" first, we can't rely on GHC to inject it
Simon Marlow [Wed, 10 Oct 2007 15:32:44 +0000 (15:32 +0000)]
we need to #include "Stg.h" first, we can't rely on GHC to inject it
This fixes the unreg build, and in general building the RTS code
via-C. I'm not sure at what stage this was broken, but I think it
was working accidentally before.

16 years agoFix Trac #1680; check for unboxed tuples in TcType.marshalableTyCon
simonpj@microsoft.com [Thu, 11 Oct 2007 12:34:26 +0000 (12:34 +0000)]
Fix Trac #1680; check for unboxed tuples in TcType.marshalableTyCon

16 years agoFix Trac #1759: do not let ticks get in the way of spotting trivially-true guards
simonpj@microsoft.com [Wed, 10 Oct 2007 16:47:31 +0000 (16:47 +0000)]
Fix Trac #1759: do not let ticks get in the way of spotting trivially-true guards

GHC spots that an 'otherwise' guard is true, and uses that knowledge to
avoid reporting spurious missing-pattern or overlaps with -Wall.

The HPC ticks were disguising the 'otherwise', which led to this failure.
Now we check.  The key change is defining DsGRHSs.isTrueLHsExpr.

Test is ds062

16 years agoFix Trac #1755; check for stage errors in TH quoted Names
simonpj@microsoft.com [Wed, 10 Oct 2007 15:02:50 +0000 (15:02 +0000)]
Fix Trac #1755; check for stage errors in TH quoted Names

There are a number of situations in which you aren't allowed to use
a quoted Name in a TH program, such as
\x -> 'x
But we weren't checking for that!  Now we are.

Merge to stable branch.

Test is TH_qname.

16 years agocheckWellStaged: reverse comparsion (no change in semantics), plus some comments
simonpj@microsoft.com [Wed, 10 Oct 2007 12:40:13 +0000 (12:40 +0000)]
checkWellStaged: reverse comparsion (no change in semantics), plus some comments

16 years agoAdd traceTc in tcSimplifyDefault
simonpj@microsoft.com [Wed, 10 Oct 2007 12:39:33 +0000 (12:39 +0000)]
Add traceTc in tcSimplifyDefault

16 years agoImprove pretty-printing of splices in HsSyn
simonpj@microsoft.com [Wed, 10 Oct 2007 12:37:26 +0000 (12:37 +0000)]
Improve pretty-printing of splices in HsSyn

16 years agoFix Trac #1678; be more careful about catching and reporting exceptions in spliced...
simonpj@microsoft.com [Wed, 10 Oct 2007 14:57:05 +0000 (14:57 +0000)]
Fix Trac #1678; be more careful about catching and reporting exceptions in spliced TH monadic computations

Many of the new lines are comments to explain the slightly-convoluted
in which exceptions get propagated out of the Q monad.

This fixes Trac 1679; test is TH_runIO (as well as the exising TH_fail).

Please merge

16 years agoComments only
simonpj@microsoft.com [Wed, 10 Oct 2007 14:56:46 +0000 (14:56 +0000)]
Comments only

16 years agoFIX BUILD (when compiling base via C): declare n_capabilities
Simon Marlow [Wed, 10 Oct 2007 10:37:04 +0000 (10:37 +0000)]
FIX BUILD (when compiling base via C): declare n_capabilities

16 years agoGHCi: use non-updatable thunks for breakpoints
Simon Marlow [Wed, 10 Oct 2007 09:32:41 +0000 (09:32 +0000)]
GHCi: use non-updatable thunks for breakpoints
The extra safe points introduced for breakpoints were previously
compiled as normal updatable thunks, but they are guaranteed
single-entry, so we can use non-updatable thunks here.  This restores
the tail-call property where it was lost in some cases (although stack
squeezing probably often recovered it), and should improve
performance.

16 years agoFIX #1681: withBreakAction had too large a scope in runStmt
Simon Marlow [Wed, 10 Oct 2007 08:58:20 +0000 (08:58 +0000)]
FIX #1681: withBreakAction had too large a scope in runStmt

16 years agotiny refactoring
Simon Marlow [Tue, 9 Oct 2007 14:50:02 +0000 (14:50 +0000)]
tiny refactoring

16 years agosmall reworking of the loop-breaker-choosing algorithm
Simon Marlow [Tue, 9 Oct 2007 14:53:05 +0000 (14:53 +0000)]
small reworking of the loop-breaker-choosing algorithm
Previously inline candidates were given higher preference as
non-loop-breakers than constructor applications, but the reason for
this was that making a wrapper into a loop-breaker is to be avoided at
all costs.  This patch refines the algorithm slightly so that wrappers
are explicitly avoided by giving them a much higher score, and other
inline candidates are given lower scores than constructor
applications.

This makes almost zero difference to a complete nofib run, so it
amounts to just a tidyup.

16 years agoFix warnings when build w/o readline
Manuel M T Chakravarty [Wed, 10 Oct 2007 10:18:40 +0000 (10:18 +0000)]
Fix warnings when build w/o readline

16 years agoUpdate documentation for win32 DLL linking
Clemens Fruhwirth [Wed, 10 Oct 2007 07:44:15 +0000 (07:44 +0000)]
Update documentation for win32 DLL linking

16 years agoFIX: tidy up TcSimplify following equality constraints additions
simonpj@microsoft.com [Wed, 10 Oct 2007 09:33:34 +0000 (09:33 +0000)]
FIX: tidy up TcSimplify following equality constraints additions

The combination of "type refinement" for GADTs and the new equality
constraints has made TcSimplify rather complicated.  And wrong:
it generated bogus code for cholewo-eval.

This patch is still far from entirely satisfactory.  There are
too many places where invariants are unclear, and the code is
still a bit of a mess.  But I believe it's better, and it passes
the regression tests!  So I think it's good enough for the 6.8 release.

Please merge.

The main changes are:

- get rid of extractLocalResults (which was always suspicious)

- instead, treat the 'refinement' along with 'givens', by
  adding a field to RedEnv, red_reft which travels with red_givens

- I also reworked extractResults a bit, which looked wrong to me
  This entailed changing the Given constructor in Avail to take
  an Inst rather than a TcId

16 years agoImprove pretty-printing for HsSyn
simonpj@microsoft.com [Wed, 10 Oct 2007 09:30:58 +0000 (09:30 +0000)]
Improve pretty-printing for HsSyn

16 years agoFix Trac #1746: make rule-matching work properly with Cast expressions
simonpj@microsoft.com [Sat, 29 Sep 2007 10:44:06 +0000 (10:44 +0000)]
Fix Trac #1746: make rule-matching work properly with Cast expressions

The Cast case of the rule-matcher was simply wrong.

This patch fixes it; see Trac #1746.

I also fixed the rule generation in SpecConstr to generate a wild-card
for the cast expression, which we don't want to match on.  This makes
the rule more widely applicable; it wasn't the cause of the bug.

16 years agoSmall comment only
simonpj@microsoft.com [Sat, 29 Sep 2007 10:43:09 +0000 (10:43 +0000)]
Small comment only

16 years agoexport n_capabilities, see #1733
Simon Marlow [Tue, 9 Oct 2007 14:27:01 +0000 (14:27 +0000)]
export n_capabilities, see #1733

16 years agoFIX #1743, create a fresh unique for each Id we bind at a breakpoint
Simon Marlow [Tue, 9 Oct 2007 14:25:54 +0000 (14:25 +0000)]
FIX #1743, create a fresh unique for each Id we bind at a breakpoint

16 years agoremove vestiges of way 'u' (see #1008)
Simon Marlow [Tue, 9 Oct 2007 13:09:42 +0000 (13:09 +0000)]
remove vestiges of way 'u' (see #1008)

16 years agoalso call initMutex on every task->lock, see #1391
Simon Marlow [Tue, 9 Oct 2007 12:24:09 +0000 (12:24 +0000)]
also call initMutex on every task->lock, see #1391

16 years agoremove the "-unreg" flag and the unregisterised way, see #1008
Simon Marlow [Tue, 9 Oct 2007 12:23:38 +0000 (12:23 +0000)]
remove the "-unreg" flag and the unregisterised way, see #1008

16 years agowarning removal
Simon Marlow [Tue, 9 Oct 2007 10:51:38 +0000 (10:51 +0000)]
warning removal

16 years agowarning removal
Simon Marlow [Wed, 3 Oct 2007 17:00:05 +0000 (17:00 +0000)]
warning removal

16 years agorefactoring only: use the parameterised InstalledPackageInfo
Simon Marlow [Wed, 3 Oct 2007 16:35:36 +0000 (16:35 +0000)]
refactoring only: use the parameterised InstalledPackageInfo
This required moving PackageId from PackageConfig to Module

16 years agowarning removal
Simon Marlow [Wed, 3 Oct 2007 17:40:16 +0000 (17:40 +0000)]
warning removal

16 years agowarning removal
Simon Marlow [Wed, 3 Oct 2007 17:34:48 +0000 (17:34 +0000)]
warning removal

16 years agowarning removal
Simon Marlow [Wed, 3 Oct 2007 17:32:02 +0000 (17:32 +0000)]
warning removal

16 years agowarning removal
Simon Marlow [Wed, 3 Oct 2007 17:27:15 +0000 (17:27 +0000)]
warning removal

16 years agoremove most warnings
Simon Marlow [Wed, 3 Oct 2007 09:08:04 +0000 (09:08 +0000)]
remove most warnings

16 years agomkIfaceExports: sort the children of AvailTC
Simon Marlow [Tue, 2 Oct 2007 11:49:17 +0000 (11:49 +0000)]
mkIfaceExports: sort the children of AvailTC
This fixes a problem with spurious recompilations: each time a module
was recompiled, the order of the children would change, causing extra
recompilation.

MERGE TO STABLE

16 years agoerror message fix (#1758)
Simon Marlow [Mon, 8 Oct 2007 13:49:58 +0000 (13:49 +0000)]
error message fix (#1758)

16 years agoFIX validate for PPC Mac OS X - RegAllocStats.hs
Thorkil Naur [Fri, 5 Oct 2007 14:41:05 +0000 (14:41 +0000)]
FIX validate for PPC Mac OS X - RegAllocStats.hs

16 years agoFIX validate for PPC Mac OS X - RegAllocLinear.hs
Thorkil Naur [Fri, 5 Oct 2007 14:36:07 +0000 (14:36 +0000)]
FIX validate for PPC Mac OS X - RegAllocLinear.hs

16 years agoFIX validate for PPC Mac OS X - Linker.c
Thorkil Naur [Fri, 5 Oct 2007 14:49:08 +0000 (14:49 +0000)]
FIX validate for PPC Mac OS X - Linker.c

16 years agoFIX validate for PPC Mac OS X - Evac.h
Thorkil Naur [Fri, 5 Oct 2007 14:44:54 +0000 (14:44 +0000)]
FIX validate for PPC Mac OS X - Evac.h

16 years agoFIX #1748: -main-is wasn't handling the case of a single hierarchical module
Simon Marlow [Mon, 8 Oct 2007 13:13:05 +0000 (13:13 +0000)]
FIX #1748: -main-is wasn't handling the case of a single hierarchical module
test case is driver062.5

16 years agoFIX BUILD FD_SETSIZE signed
jochemberndsen@dse.nl [Thu, 27 Sep 2007 13:26:49 +0000 (13:26 +0000)]
FIX BUILD FD_SETSIZE signed
On FreeBSD FD_SETSIZE is unsigned. Cast it to a signed int
for portability.

16 years agoFIX BUILD addDLL returns const char*
jochemberndsen@dse.nl [Thu, 27 Sep 2007 13:26:19 +0000 (13:26 +0000)]
FIX BUILD addDLL returns const char*
addDLL returns const char*, not just a char*.
Fix compiler warning

16 years agoFIX BUILD `set -o igncr'-issue on FreeBSD
jochemberndsen@dse.nl [Wed, 26 Sep 2007 20:37:50 +0000 (20:37 +0000)]
FIX BUILD `set -o igncr'-issue on FreeBSD
`set -o igncr' does not work on non-cygwin-systems.
Fail silently if this command does not work, instead
of aborting the build.

16 years agocomment-out "use vars" in 3 places (see #1739)
Simon Marlow [Mon, 8 Oct 2007 11:57:40 +0000 (11:57 +0000)]
comment-out "use vars" in 3 places (see #1739)

16 years agoChange DOCOPTIONS pragma to DOC_OPTIONS
David Waern [Tue, 2 Oct 2007 14:38:49 +0000 (14:38 +0000)]
Change DOCOPTIONS pragma to DOC_OPTIONS

MERGE TO STABLE

16 years agoFIX: parsing of doc options
David Waern [Tue, 2 Oct 2007 14:37:13 +0000 (14:37 +0000)]
FIX: parsing of doc options

Lexing of the doc options pragma was changed, but but no change was
made to the parser to reflect that. This patch fixes this problem.

MERGE TO STABLE

16 years agoFIX: add missing case to OccName.isSymOcc
David Waern [Tue, 2 Oct 2007 14:34:59 +0000 (14:34 +0000)]
FIX: add missing case to OccName.isSymOcc

16 years agoRemove warnings from WwLib
Manuel M T Chakravarty [Tue, 2 Oct 2007 13:07:36 +0000 (13:07 +0000)]
Remove warnings from WwLib

16 years agoFIX: mkWWcpr takes open alg types into account
Manuel M T Chakravarty [Tue, 2 Oct 2007 13:04:07 +0000 (13:04 +0000)]
FIX: mkWWcpr takes open alg types into account
- This fixed the failures of GMapAssoc and GMapTop for optmising ways

MERGE TO STABLE

16 years agoFIX #1738: KPush rule of FC must take dataConEqTheta into account
Manuel M T Chakravarty [Mon, 1 Oct 2007 15:43:43 +0000 (15:43 +0000)]
FIX #1738: KPush rule of FC must take dataConEqTheta into account

MERGE TO STABLE

16 years agoFIX #1729: Don't try to expand syn families with -XLiberalTypeSynonyms
Manuel M T Chakravarty [Sat, 29 Sep 2007 12:26:24 +0000 (12:26 +0000)]
FIX #1729: Don't try to expand syn families with -XLiberalTypeSynonyms

MERGE TO STABLE

16 years agoSome more traceTcs
Manuel M T Chakravarty [Sat, 29 Sep 2007 12:19:41 +0000 (12:19 +0000)]
Some more traceTcs

16 years agoFIX: Make boxy splitters aware of type families
Manuel M T Chakravarty [Fri, 28 Sep 2007 22:55:41 +0000 (22:55 +0000)]
FIX: Make boxy splitters aware of type families

MERGE TO STABLE

16 years agoFinally, I managed to squash an infamous bug in :print
Pepe Iborra [Thu, 27 Sep 2007 15:13:00 +0000 (15:13 +0000)]
Finally, I managed to squash an infamous bug in :print

  It turns out the newtype handling code in :print
  was slipping non mutable Tyvars in the types reconstructed.
  The error message eventually produced was rather obscure:

  [src/Tp.hs:75:28-64] *MainTp> :p x
  *** Exception: No match in record selector Var.tcTyVarDetails
  [src/Tp.hs:75:28-64] *MainTp>

  Due to non mutable tyvars, unifyType was failing.
  A well placed assertion in the unifyType code would have made
   my life much easier.
  Which reminds me I should install a -ddump-* system in the
  RTTI subsystem, or future hackers will run away in swearing.

MERGE TO STABLE

16 years agoBe a bit more flexible in terminal identification for do_bold
Pepe Iborra [Thu, 27 Sep 2007 14:15:49 +0000 (14:15 +0000)]
Be a bit more flexible in terminal identification for do_bold

  In Os X for instance, by default we have TERM=xterm-color

MERGE TO STABLE

16 years agohtml_installed_root shouldn't contain $$pkgid
Ian Lynagh [Thu, 27 Sep 2007 13:04:27 +0000 (13:04 +0000)]
html_installed_root shouldn't contain $$pkgid
This actually didn't break anything, as the shell expanded $pkgid to the
empty string, but it was still wrong.

16 years agoComments and debug output only
simonpj@microsoft.com [Thu, 27 Sep 2007 11:08:42 +0000 (11:08 +0000)]
Comments and debug output only

16 years agofurther stub filename fix: I managed to break non-stubdir -fvia-C compilation
Simon Marlow [Thu, 27 Sep 2007 10:25:39 +0000 (10:25 +0000)]
further stub filename fix: I managed to break non-stubdir -fvia-C compilation

16 years agoalso acquire/release task->lock across fork()
Simon Marlow [Thu, 27 Sep 2007 09:13:31 +0000 (09:13 +0000)]
also acquire/release task->lock across fork()
further attempt to fix #1391 on MacOS

16 years agoFIX -stubdir bug: the .hc file was #including the wrong _stub.h filename
Simon Marlow [Wed, 26 Sep 2007 13:45:39 +0000 (13:45 +0000)]
FIX -stubdir bug: the .hc file was #including the wrong _stub.h filename
Using -stubdir together with hierarchical modules, -fvia-C, and --make
is essentially broken in 6.6.x.  Recently discovered by Cabal's use of
-stubdir.

Test cases: driver027/driver028 (I've updated them to use -fvia-C, in
order to test for this bug).

16 years agoAdd STANDARD_OPTS to SRC_HC_OPTS in rts/Makefile so we get -I../includes for .cmm...
Ian Lynagh [Wed, 26 Sep 2007 12:26:37 +0000 (12:26 +0000)]
Add STANDARD_OPTS to SRC_HC_OPTS in rts/Makefile so we get -I../includes for .cmm files
Patch from Clemens Fruhwirth

16 years agofix #1734, panic in :show modules after load failure
Simon Marlow [Wed, 26 Sep 2007 10:07:32 +0000 (10:07 +0000)]
fix #1734, panic in :show modules after load failure

16 years agoRemove current package from preloaded package set
Clemens Fruhwirth [Wed, 26 Sep 2007 08:48:02 +0000 (08:48 +0000)]
Remove current package from preloaded package set

16 years agoFixing #1340, adding HPC Documentation
andy@galois.com [Wed, 26 Sep 2007 05:53:31 +0000 (05:53 +0000)]
Fixing #1340, adding HPC Documentation

16 years agofix to previous fix to THUNK_SELECTOR machinery 2007-09-25
Simon Marlow [Tue, 25 Sep 2007 13:26:00 +0000 (13:26 +0000)]
fix to previous fix to THUNK_SELECTOR machinery
It turns out I didn't get it quite right in the case of compacting
collection.  This should make it work again.

16 years agoBe more specific about file-header pragmas
simonpj@microsoft.com [Mon, 24 Sep 2007 16:28:47 +0000 (16:28 +0000)]
Be more specific about file-header pragmas

Document the rules for pragmas that must occur at the top of a file.

Please merge this patch

16 years agocomments only: point to relevant bug reports
Simon Marlow [Mon, 24 Sep 2007 10:33:23 +0000 (10:33 +0000)]
comments only: point to relevant bug reports

16 years agoFIX #1038: failure of selector-thunk machinery to do its job
Simon Marlow [Mon, 17 Sep 2007 15:18:34 +0000 (15:18 +0000)]
FIX #1038: failure of selector-thunk machinery to do its job
After a couple of abortive attempts, I think I've got this right.
When the GC sees a chain of the form

   snd (_, snd (_, snd (_, ...)))

it can now deal with an arbitrary nesting depth, whereas previously it
had a depth limit which was necessitated by the use of recursion.  Now
we chain all the selector thunks together in the heap, and go back and
update them all when we find the value at the end of the chain.

While I was here I removed some old cruft in eval_thunk_selector()
which was carefully manintaing invariants that aren't necessary any
more, the main one being that evacuate() can safely be passed a
to-space pointer now.

In addition to validate I've tested building a stage3 compiler with
and without +RTS -c, so I'm reasonably sure this is safe.

16 years agoattempt to fix #1391, hold locks across fork() and initialize them in the child
Simon Marlow [Fri, 14 Sep 2007 14:55:19 +0000 (14:55 +0000)]
attempt to fix #1391, hold locks across fork() and initialize them in the child

16 years agoPut packages in ../$$pkgid not ../$$pkg
Ian Lynagh [Sun, 23 Sep 2007 20:49:40 +0000 (20:49 +0000)]
Put packages in ../$$pkgid not ../$$pkg

16 years agoNotice when C modules have changed when deciding whether or not to link
Ian Lynagh [Sun, 23 Sep 2007 18:16:20 +0000 (18:16 +0000)]
Notice when C modules have changed when deciding whether or not to link
Based on a patch from Lemmih

16 years agoWhitespace changes only
Ian Lynagh [Sun, 23 Sep 2007 17:42:42 +0000 (17:42 +0000)]
Whitespace changes only

16 years agoRemove remaining bits of bindist "make in-place"
Ian Lynagh [Sun, 23 Sep 2007 16:36:40 +0000 (16:36 +0000)]
Remove remaining bits of bindist "make in-place"

16 years agoAdd an entry for strings treated as ISO-8859-1 to the users guide bug list
Ian Lynagh [Sun, 23 Sep 2007 13:18:45 +0000 (13:18 +0000)]
Add an entry for strings treated as ISO-8859-1 to the users guide bug list

16 years agoFix bug #1725 (Haddock links between packages)
sven.panne@aedion.de [Sun, 23 Sep 2007 12:06:36 +0000 (12:06 +0000)]
Fix bug #1725 (Haddock links between packages)
Resolving this bug is a bit tricky, it boils down to the question: Should the
Haddock links between packages include the package version or not?

Pro: We can differentiate between various versions of the same package,
installed all at once. (How often does this really happen in practice?)

Cons: When package A refers to a package B, and B is later upgraded, links
in A's documentation will break. Furthermore, if an *additional* version of
B is installed, which version should A refer to?

Because IMHO it is not clear what to do when version numbers are included,
let's leave them out. If somebody has a better idea, feel free to submit a
better patch.

MERGE TO STABLE

16 years agoUnbreak "dist" target for fresh trees
sven.panne@aedion.de [Sun, 23 Sep 2007 09:43:58 +0000 (09:43 +0000)]
Unbreak "dist" target for fresh trees
The previous hack to include Parser.hs in source distros broke the possibility
of doing a "make dist" in a fresh tree, i.e. one which has just been checked
out and configured, but *not* built. Of course you will need Happy for such a
source distro later, but at least the freedom to do this is important.

The ultimate goal should be that something like "make dist" will work in a
freshly checked out tree, with no prerequisite steps (this is very common in
most projects). We should move towards that goal, not away from it...

MERGE TO STABLE

16 years agomake stamp.inplace-gcc-lib copy $(LD) instead of $(GccDir)ld.exe to avoid building...
shelarcy [Thu, 20 Sep 2007 13:01:59 +0000 (13:01 +0000)]
make stamp.inplace-gcc-lib copy $(LD) instead of $(GccDir)ld.exe to avoid building problem

16 years agoRemoved duplicate entry for derbugging flag -ddump-tc from the user guide
v.dijk.bas@gmail.com [Thu, 20 Sep 2007 12:13:06 +0000 (12:13 +0000)]
Removed duplicate entry for derbugging flag -ddump-tc from the user guide

16 years agoFix building with compilers which don't have an integer for a patch level
Ian Lynagh [Fri, 21 Sep 2007 16:53:16 +0000 (16:53 +0000)]
Fix building with compilers which don't have an integer for a patch level

16 years agoMove OPTIONS pragmas above comments
Ian Lynagh [Fri, 21 Sep 2007 16:35:52 +0000 (16:35 +0000)]
Move OPTIONS pragmas above comments
Fixes building with -Werror (i.e. validate) and GHC < 6.6

16 years agomassive convulsion in ZipDataflow
Norman Ramsey [Fri, 21 Sep 2007 13:41:24 +0000 (13:41 +0000)]
massive convulsion in ZipDataflow

After my talk, I got the idea of 'shallow rewriting' for the
dataflow framework.  Here it is implemented, along with
some related ideas late making Graph and not LGraph primary.

The only bad thing is that the whole bit is stitched together
out of ill-fitting pieces, kind of like Frankenstein's monster.
A new ZipDataflow will rise out of the ashes.

16 years agoincomplete start on set of intervals for stack model
Norman Ramsey [Fri, 21 Sep 2007 13:40:35 +0000 (13:40 +0000)]
incomplete start on set of intervals for stack model

16 years agoSmall changes to mk-ing flow graphs
simonpj@microsoft.com [Wed, 19 Sep 2007 15:05:44 +0000 (15:05 +0000)]
Small changes to mk-ing flow graphs

- ZipCfg: add mkBlockId :: Unique -> BlockId
- MkZipCfg: change sequence --> catAGrpahs
- MkZipCfgCmm: add mkCmmIfThen

Not fully validated, but I don't think anything will break

16 years agoMostly comments, following NR/SPJ meeting
simonpj@microsoft.com [Wed, 19 Sep 2007 15:03:45 +0000 (15:03 +0000)]
Mostly comments, following NR/SPJ meeting

16 years agoRemove a redundant part of distrib/Makefile's "make install"
Ian Lynagh [Thu, 20 Sep 2007 18:39:03 +0000 (18:39 +0000)]
Remove a redundant part of distrib/Makefile's "make install"