ghc.git
9 years agoUse bash to run boot-pkgs, the default Solaris shell doesn't support the -ot test...
benl@cse.unsw.edu.au [Wed, 3 Feb 2010 03:07:48 +0000 (03:07 +0000)] 
Use bash to run boot-pkgs, the default Solaris shell doesn't support the -ot test flag

9 years agoDisable -Wcast-align when building the rts
benl@cse.unsw.edu.au [Wed, 3 Feb 2010 02:46:05 +0000 (02:46 +0000)] 
Disable -Wcast-align when building the rts
This flag seems buggy on GCC 4.1.2, which is the only GCC version we
have that can bootstrap the SPARC build. We end up with lots of supurious
warnings of the form "cast increases required alignment of target type".
Some legitimate warnings can be fixed by adding an intermediate cast to
(void*), but we get others in rts/sm/GCUtils.c concerning the gct var
that look innocuous to me. We could enable this again once we deprecate
support for registerised builds on this arch.

9 years agoStifle warning about printf format strings
benl@cse.unsw.edu.au [Wed, 3 Feb 2010 02:31:24 +0000 (02:31 +0000)] 
Stifle warning about printf format strings

9 years agoCast to (void*) to stifle warning about signedness
benl@cse.unsw.edu.au [Wed, 3 Feb 2010 02:30:29 +0000 (02:30 +0000)] 
Cast to (void*) to stifle warning about signedness

9 years agoAdd missing import sm_mutex, which fixes the -fvia-c build
benl@cse.unsw.edu.au [Tue, 2 Feb 2010 05:14:51 +0000 (05:14 +0000)] 
Add missing import sm_mutex, which fixes the -fvia-c build

9 years agoFix typo in error message (#3848)
Simon Marlow [Sat, 30 Jan 2010 09:46:28 +0000 (09:46 +0000)] 
Fix typo in error message (#3848)

9 years agoFix Trac #3831: blowup in SpecConstr
simonpj@microsoft.com [Mon, 1 Feb 2010 00:24:20 +0000 (00:24 +0000)] 
Fix Trac #3831: blowup in SpecConstr

It turned out that there were two bugs.  First, we were getting an
exponential number of specialisations when we had a deep nest of
join points.  See Note [Avoiding exponential blowup]. I fixed this
by dividing sc_count (in ScEnv) by the number of specialisations
when recursing.  Crude but effective.

Second, when making specialisations I was looking at the result of
applying specExpr to the RHS of the function, whereas I should have
been looking at the original RHS.  See Note [Specialise original
body].

There's a tantalising missed opportunity here, though.  In this
example (recorded as a test simplCore/should_compile/T3831), each join
point has *exactly one* call pattern, so we should really just
specialise for that alone, in which case there's zero code-blow-up.
In particular, we don't need the *original* RHS at all.  I need to think
more about how to exploit this.

But the blowup is now limited, so compiling terminfo with -O2 works again.

9 years agoRe-read pragmas after preprocessing (#2464, #3674, #3457)
Simon Marlow [Fri, 29 Jan 2010 11:40:50 +0000 (11:40 +0000)] 
Re-read pragmas after preprocessing (#2464, #3674, #3457)
This was a lot easier than I imagined.

9 years agotweak the totally-bogus arbitrary stack-squeezing heuristic to fix #2797
Simon Marlow [Thu, 28 Jan 2010 12:44:54 +0000 (12:44 +0000)] 
tweak the totally-bogus arbitrary stack-squeezing heuristic to fix #2797
In #2797, a program that ran in constant stack space when compiled
needed linear stack space when interpreted.  It turned out to be
nothing more than stack-squeezing not happening.  We have a heuristic
to avoid stack-squeezing when it would be too expensive (shuffling a
large amount of memory to save a few words), but in some cases even
expensive stack-squeezing is necessary to avoid linear stack usage.
One day we should implement stack chunks, which would make this less
expensive.

9 years agofix warning on Windows
Simon Marlow [Wed, 27 Jan 2010 16:29:54 +0000 (16:29 +0000)] 
fix warning on Windows

9 years agofix Windows build (GHC.Conc.runHandlers is Unix-only)
Simon Marlow [Wed, 27 Jan 2010 14:57:18 +0000 (14:57 +0000)] 
fix Windows build (GHC.Conc.runHandlers is Unix-only)

9 years agoDon't Terminate the ticker thread (#3748)
Simon Marlow [Wed, 27 Jan 2010 13:54:30 +0000 (13:54 +0000)] 
Don't Terminate the ticker thread (#3748)

9 years agoWin32 yieldThread(): use SwitchToThread() instead of Sleep(0)
Simon Marlow [Wed, 27 Jan 2010 13:31:06 +0000 (13:31 +0000)] 
Win32 yieldThread(): use SwitchToThread() instead of Sleep(0)

9 years agofix warnings
Simon Marlow [Wed, 27 Jan 2010 13:30:40 +0000 (13:30 +0000)] 
fix warnings

9 years agocatch SIGHUP and SIGTERM and raise an exception (#3656)
Simon Marlow [Wed, 27 Jan 2010 14:04:38 +0000 (14:04 +0000)] 
catch SIGHUP and SIGTERM and raise an exception (#3656)

9 years agodefine INFINITY and NAN if they don't exist (#2929)
Simon Marlow [Wed, 27 Jan 2010 13:36:32 +0000 (13:36 +0000)] 
define INFINITY and NAN if they don't exist (#2929)

9 years agoremove suspicious whitespace-only lines
Simon Marlow [Wed, 27 Jan 2010 13:30:08 +0000 (13:30 +0000)] 
remove suspicious whitespace-only lines

9 years agoaddCoverageTicksToBinds: tolerate a non-existent .hs file (#3803)
Simon Marlow [Wed, 27 Jan 2010 11:32:05 +0000 (11:32 +0000)] 
addCoverageTicksToBinds: tolerate a non-existent .hs file (#3803)

9 years agoavoid using non-standard %zd format specifier (#3804)
Simon Marlow [Tue, 26 Jan 2010 16:33:22 +0000 (16:33 +0000)] 
avoid using non-standard %zd format specifier (#3804)

9 years agoFix signal segfaults on Solaris (#3790)
Simon Marlow [Tue, 26 Jan 2010 15:54:49 +0000 (15:54 +0000)] 
Fix signal segfaults on Solaris (#3790)

9 years agocomment-out an incorrect assertion
Simon Marlow [Tue, 26 Jan 2010 15:01:03 +0000 (15:01 +0000)] 
comment-out an incorrect assertion

9 years agoFix a deadlock, and possibly other problems
Simon Marlow [Tue, 26 Jan 2010 15:00:37 +0000 (15:00 +0000)] 
Fix a deadlock, and possibly other problems
After a bound thread had completed, its TSO remains in the heap until
it has been GC'd, although the associated Task is returned to the
caller where it is freed and possibly re-used.

The bug was that GC was following the pointer to the Task and updating
the TSO field, meanwhile the Task had already been recycled (it was
being used by exitScheduler()). Confusion ensued, leading to a very
occasional deadlock at shutdown, but in principle it could result in
other crashes too.

The fix is to remove the link between the TSO and the Task when the
TSO has completed and the call to schedule() has returned; see
comments in Schedule.c.

9 years agoWhen acquiring a spinlock, yieldThread() every 1000 spins (#3553, #3758)
Simon Marlow [Fri, 22 Jan 2010 16:49:11 +0000 (16:49 +0000)] 
When acquiring a spinlock, yieldThread() every 1000 spins (#3553, #3758)

This helps when the thread holding the lock has been descheduled,
which is the main cause of the "last-core slowdown" problem.  With
this patch, I get much better results with -N8 on an 8-core box,
although some benchmarks are still worse than with 7 cores.

I also added a yieldThread() into the any_work() loop of the parallel
GC when it has no work to do. Oddly, this seems to improve performance
on the parallel GC benchmarks even when all the cores are busy.
Perhaps it is due to reducing contention on the memory bus.

9 years ago'store' should be static (#3835)
Simon Marlow [Fri, 22 Jan 2010 16:48:34 +0000 (16:48 +0000)] 
'store' should be static (#3835)

9 years agoAdd some missing getStablePtr()s for CAFs that the RTS refers to
Simon Marlow [Fri, 22 Jan 2010 14:36:58 +0000 (14:36 +0000)] 
Add some missing getStablePtr()s for CAFs that the RTS refers to

A recent patch ("Refactor CoreArity a bit") changed the arity of
GHC.Conc.runSparks such that it became a CAF, and the RTS was not
explicitly retaining it, which led to a crash when the CAF got GC'd.
While fixing this I found a couple of other closures that the RTS
refers to which weren't getting the correct CAF treatment.

9 years agoRemove an out-of-date comment
Ian Lynagh [Fri, 22 Jan 2010 13:08:53 +0000 (13:08 +0000)] 
Remove an out-of-date comment

9 years agofix build on Windows
Simon Marlow [Fri, 22 Jan 2010 12:10:16 +0000 (12:10 +0000)] 
fix build on Windows

9 years agofix warning on Windows
Simon Marlow [Fri, 22 Jan 2010 12:03:28 +0000 (12:03 +0000)] 
fix warning on Windows

9 years agoFix docs for sizeofByteArray#/sizeofMutableByteArray# (#3800)
Simon Marlow [Tue, 19 Jan 2010 10:38:25 +0000 (10:38 +0000)] 
Fix docs for sizeofByteArray#/sizeofMutableByteArray# (#3800)
In 6.14.1 we'll switch these primops to return the exact byte size,
but for 6.12.2 we need to fix the docs.

9 years agoInclude regex.h in Linker.c on OS X too
Ian Lynagh [Wed, 20 Jan 2010 20:19:58 +0000 (20:19 +0000)] 
Include regex.h in Linker.c on OS X too

9 years agoWe no longer need a prototype for __eprintf
Ian Lynagh [Wed, 20 Jan 2010 19:50:24 +0000 (19:50 +0000)] 
We no longer need a prototype for __eprintf
It looks like it was only needed on OSX, but it has a prototype in
assert.h which now gets #included.

9 years agoFix build
Ian Lynagh [Wed, 20 Jan 2010 16:31:01 +0000 (16:31 +0000)] 
Fix build
Remove a prototype of a function that wasn't defined

9 years agoFIX #2615 (linker scripts in .so files)
howard_b_golden@yahoo.com [Wed, 16 Dec 2009 18:51:55 +0000 (18:51 +0000)] 
FIX #2615 (linker scripts in .so files)
This patch does not apply to Windows. It only applies to systems with
ELF binaries.

This is a patch to rts/Linker.c to recognize linker scripts in .so
files and find the real target .so shared library for loading.

9 years agoFix Trac #3813: unused variables in GHCi bindings
simonpj@microsoft.com [Wed, 20 Jan 2010 09:45:33 +0000 (09:45 +0000)] 
Fix Trac #3813: unused variables in GHCi bindings

In a GHCi stmt we don't want to report unused variables,
because we don't know the scope of the binding, eg

Prelude> x <- blah

Fixing this needed a little more info about the context of the stmt,
thus the new constructor GhciStmt in the HsStmtContext type.

9 years agoFix Trac #3823, plus warning police in TcRnDriver
simonpj@microsoft.com [Wed, 20 Jan 2010 09:42:21 +0000 (09:42 +0000)] 
Fix Trac #3823, plus warning police in TcRnDriver

The immediate reason for this patch is to fix #3823. This was
rather easy: all the work was being done but I was returning
type_env2 rather than type_env3.

An unused-veriable warning would have shown this up, so I fixed all
the other warnings in TcRnDriver.  Doing so showed up at least two
genuine lurking bugs.  Hurrah.

9 years agoChange how RTS libraries get installed; fixes trac #3794
Ian Lynagh [Tue, 19 Jan 2010 23:26:23 +0000 (23:26 +0000)] 
Change how RTS libraries get installed; fixes trac #3794

9 years agoEscape some more $s in makefiles, for consistency
Ian Lynagh [Tue, 19 Jan 2010 22:55:33 +0000 (22:55 +0000)] 
Escape some more $s in makefiles, for consistency

9 years agoEscape some $s in makefiles for consistency
Ian Lynagh [Tue, 19 Jan 2010 22:14:40 +0000 (22:14 +0000)] 
Escape some $s in makefiles for consistency

9 years agoAllow GNU-standard --host, --build, --target configure options (#3637)
Simon Marlow [Tue, 19 Jan 2010 10:28:19 +0000 (10:28 +0000)] 
Allow GNU-standard --host, --build, --target configure options (#3637)
Patch contributed by asuffield@suffields.me.uk

9 years agoUpdate some comments about how autoconf/configure works
Ian Lynagh [Mon, 18 Jan 2010 14:59:59 +0000 (14:59 +0000)] 
Update some comments about how autoconf/configure works

9 years agoFix a warning message
Ian Lynagh [Mon, 18 Jan 2010 14:20:20 +0000 (14:20 +0000)] 
Fix a warning message
We were printing the wrong value, so getting confusing messages like:
    Function `$wa{v s17LO} [lid]'
        has 2 call pattterns, but the limit is 3

9 years agoTeach the alternative layout rule about mdo and rec
Ian Lynagh [Sat, 16 Jan 2010 21:55:45 +0000 (21:55 +0000)] 
Teach the alternative layout rule about mdo and rec

9 years agoTeach the alternative layout rule about $( ... )
Ian Lynagh [Sat, 16 Jan 2010 21:39:41 +0000 (21:39 +0000)] 
Teach the alternative layout rule about $( ... )
It thought the ) needed to close something, but the $( hadn't
opened anything.

9 years agoFix typo
Ian Lynagh [Sat, 16 Jan 2010 13:49:15 +0000 (13:49 +0000)] 
Fix typo

9 years agoRemove declaration of non-existent mark_splim
Simon Marlow [Thu, 31 Dec 2009 10:42:41 +0000 (10:42 +0000)] 
Remove declaration of non-existent mark_splim

9 years agofix a comment
Simon Marlow [Wed, 30 Dec 2009 15:08:52 +0000 (15:08 +0000)] 
fix a comment

9 years agoremove an unnecessary debug trace, duplicated by a traceSchedEvent
Simon Marlow [Wed, 30 Dec 2009 15:08:32 +0000 (15:08 +0000)] 
remove an unnecessary debug trace, duplicated by a traceSchedEvent

9 years agohide modules properly with haddock
Simon Marlow [Wed, 13 Jan 2010 21:03:11 +0000 (21:03 +0000)] 
hide modules properly with haddock

9 years agofix for HSCOLOUR_SRCS=NO
Simon Marlow [Wed, 13 Jan 2010 19:15:55 +0000 (19:15 +0000)] 
fix for HSCOLOUR_SRCS=NO

9 years agoDo some recompilation avoidance in GHC.loadModule
Simon Marlow [Tue, 12 Jan 2010 22:58:53 +0000 (22:58 +0000)] 
Do some recompilation avoidance in GHC.loadModule
GHC.loadModule compiles a module after it has been parsed and
typechecked explicity. If we are compiling to object code and there is
a valid object file already on disk, then we can skip the compilation
step. This is useful in Haddock, when processing a package that uses
Template Haskell and hence needs actual compilation, and the package
has already been compiled.

As usual, the recomp avoidance can be disabled with -fforce-recomp.

9 years agoInvoke Haddock directly from the build system, instead of via Cabal
Simon Marlow [Tue, 12 Jan 2010 22:55:48 +0000 (22:55 +0000)] 
Invoke Haddock directly from the build system, instead of via Cabal

Partly this is cleaner as we only have to preprocess the source files
once, but also it is necessary to avoid Haddock recompiling source
files when Template Haskell is in use, saving some time in validate
and fixing a problem whereby when HADDOCK_DOCS=YES, make always
re-haddocks the DPH packages.  This also needs an additional fix to
GHC.

HsColour support still uses Cabal, and hence preprocesses the source
files again. We could move this into the build system too, but there
is a version dependency that would mean adding extra autoconf stuff.

9 years agorefactoring while I try to make sense of the hsc interface
Simon Marlow [Mon, 4 Jan 2010 11:28:33 +0000 (11:28 +0000)] 
refactoring while I try to make sense of the hsc interface

9 years agoFix running in-place gen_contents_index; trac #3716
Ian Lynagh [Fri, 8 Jan 2010 13:34:16 +0000 (13:34 +0000)] 
Fix running in-place gen_contents_index; trac #3716
It was making incorrect URLs due to a shell script error.

9 years agoRespect SPECIALISE pragmas even for apparently-non-overloaded things
simonpj@microsoft.com [Fri, 8 Jan 2010 08:45:47 +0000 (08:45 +0000)] 
Respect SPECIALISE pragmas even for apparently-non-overloaded things

This is an implementation matter really (the key word is "apparently"!).
See Note [Specialising in no-dict case] in DsBinds.

It showed up when compiling GHC.Float.

9 years agoComment out debug warnings; they are fine
simonpj@microsoft.com [Fri, 8 Jan 2010 08:44:28 +0000 (08:44 +0000)] 
Comment out debug warnings; they are fine

9 years agoImprove error locations
simonpj@microsoft.com [Thu, 7 Jan 2010 15:32:34 +0000 (15:32 +0000)] 
Improve error locations

More on Trac #597

9 years agoSpelling error in comment
simonpj@microsoft.com [Thu, 7 Jan 2010 15:11:27 +0000 (15:11 +0000)] 
Spelling error in comment

9 years agoA little refactoring, plus improve error locations
simonpj@microsoft.com [Thu, 7 Jan 2010 15:11:13 +0000 (15:11 +0000)] 
A little refactoring, plus improve error locations

Fixes some sub-items of Trac #597

9 years agoClarify error message (Trac #3805)
simonpj@microsoft.com [Thu, 7 Jan 2010 15:10:02 +0000 (15:10 +0000)] 
Clarify error message (Trac #3805)

9 years agoComments only
simonpj@microsoft.com [Thu, 7 Jan 2010 15:09:39 +0000 (15:09 +0000)] 
Comments only

9 years agoSpecConstr: Remove -fspec-inline-join-points, and add let-binding specialisation
simonpj@microsoft.com [Wed, 6 Jan 2010 16:52:51 +0000 (16:52 +0000)] 
SpecConstr: Remove -fspec-inline-join-points, and add let-binding specialisation

The -fspec-inline-join-point thing was a gross hack intended to help
Roman play around, but he's not using it and it was a terribly blunt
instrument so I've nuked it.

Instead I've re-instated the let-binding specialiser.
See Note [Local let bindings]

9 years agoMake SpecConstr more informative output when there are too many specialisations
simonpj@microsoft.com [Wed, 6 Jan 2010 16:10:26 +0000 (16:10 +0000)] 
Make SpecConstr more informative output when there are too many specialisations

It now says something like

  SpecConstr
    Function `happyDoAction'
      has 17 call pattterns, but the limit is 3
    Use -fspec-constr-count=n to set the bound
    Use -dppr-debug to see specialisations

Previously it just silently did no specialisation

9 years agoMake view patterns right-associate
simonpj@microsoft.com [Wed, 6 Jan 2010 16:06:42 +0000 (16:06 +0000)] 
Make view patterns right-associate

So that you can write

   f (v1 -> v2 -> pat)

9 years agoImprove the handling of default methods
simonpj@microsoft.com [Wed, 6 Jan 2010 16:06:03 +0000 (16:06 +0000)] 
Improve the handling of default methods

See the long Note [INLINE and default methods].

This patch changes a couple of data types, with a knock-on effect on
the format of interface files.  A lot of files get touched, but is a
relatively minor change.  The main tiresome bit is the extra plumbing
to communicate default methods between the type checker and the
desugarer.

9 years agoPatch for shared libraries support on FreeBSD
Ian Lynagh [Wed, 6 Jan 2010 18:53:21 +0000 (18:53 +0000)] 
Patch for shared libraries support on FreeBSD
From Maxime Henrion <mhenrion@gmail.com>

9 years agoFollowing Simon M's "take newCAF() out from sm_mutex" patch
dias@cs.tufts.edu [Tue, 5 Jan 2010 21:15:43 +0000 (21:15 +0000)] 
Following Simon M's "take newCAF() out from sm_mutex" patch

9 years agoVery minor refactoring
simonpj@microsoft.com [Tue, 5 Jan 2010 10:18:33 +0000 (10:18 +0000)] 
Very minor refactoring

9 years agoUndo the fix for Trac #3772 and do it a new way
simonpj@microsoft.com [Tue, 5 Jan 2010 10:16:00 +0000 (10:16 +0000)] 
Undo the fix for Trac #3772 and do it a new way

The main idea is that I'm now treating a single-method dictionary very
much like a multi-method dictionary.  In particular, it respond to
exprIsConApp_maybe, even though newtypes aren't *really* proper
constructors.

See long comments with Note [Single-method classes] for why
this slight hack is justified.

9 years agoFix warnings
simonpj@microsoft.com [Tue, 5 Jan 2010 10:09:45 +0000 (10:09 +0000)] 
Fix warnings

9 years agoImprove error message (idea in Trac #3805)
simonpj@microsoft.com [Tue, 5 Jan 2010 09:55:32 +0000 (09:55 +0000)] 
Improve error message (idea in Trac #3805)

If we see

   foreign export ccall foo :: ...blah...

we now use the "foreign" to suggest -XForeignFunctionInterface

9 years agoComments only
simonpj@microsoft.com [Tue, 5 Jan 2010 09:53:56 +0000 (09:53 +0000)] 
Comments only

9 years agoContinue refactoring the core-to-core pipeline
simonpj@microsoft.com [Thu, 24 Dec 2009 15:46:43 +0000 (15:46 +0000)] 
Continue refactoring the core-to-core pipeline

This patch mainly concerns the plumbing for running
the passes and printing intermediate output

9 years agoA bunch of stuff relating to substitutions on core
simonpj@microsoft.com [Thu, 24 Dec 2009 15:39:49 +0000 (15:39 +0000)] 
A bunch of stuff relating to substitutions on core

* I was debugging so I added some call-site info
  (that touches a lot of code)

* I used substExpr a bit less in Simplify, hoping to
  make the simplifier a little faster and cleaner

9 years agoRefactor CoreArity a bit
simonpj@microsoft.com [Thu, 24 Dec 2009 15:34:48 +0000 (15:34 +0000)] 
Refactor CoreArity a bit

I was experimenting with making coercions opaque to
arity.  I think this is ultimately the right thing to do
but I've left the functionality unchanged for now.

9 years agoWibbles to inlining for small functions
simonpj@microsoft.com [Tue, 22 Dec 2009 16:27:31 +0000 (16:27 +0000)] 
Wibbles to inlining for small functions

See Note [INLINE for small functions]

9 years agoPrint out a bit more info with the "arity decrease" waring
simonpj@microsoft.com [Tue, 22 Dec 2009 16:26:06 +0000 (16:26 +0000)] 
Print out a bit more info with the "arity decrease" waring

9 years agoMove isDictTy from TcType to Type
simonpj@microsoft.com [Tue, 22 Dec 2009 16:25:50 +0000 (16:25 +0000)] 
Move isDictTy from TcType to Type

9 years agoAllow instance heads to use infix syntax
simonpj@microsoft.com [Tue, 22 Dec 2009 16:23:25 +0000 (16:23 +0000)] 
Allow instance heads to use infix syntax

  class C a b
  instance Int `C` Bool

This was accidentally disallowed before.

9 years agoFix pretty-printer
simonpj@microsoft.com [Tue, 22 Dec 2009 16:21:30 +0000 (16:21 +0000)] 
Fix pretty-printer

9 years agoFix Trac #3792: check for qualified names in import items
simonpj@microsoft.com [Mon, 4 Jan 2010 21:59:50 +0000 (21:59 +0000)] 
Fix Trac #3792: check for qualified names in import items

9 years agoFix bugs in STG Lint
simonpj@microsoft.com [Mon, 4 Jan 2010 21:46:59 +0000 (21:46 +0000)] 
Fix bugs in STG Lint

The Stg Lint failure reported in Trac #3789 were bogus.
This patch fixes STG Lint, which must have been unused
for ages.

9 years agoRefactor PackageTarget back into StaticTarget
Ben.Lippmeier@anu.edu.au [Mon, 4 Jan 2010 03:15:06 +0000 (03:15 +0000)] 
Refactor PackageTarget back into StaticTarget

9 years agoFollow PackageTarget changes in pprCEntity
Ben.Lippmeier@anu.edu.au [Sat, 2 Jan 2010 23:50:53 +0000 (23:50 +0000)] 
Follow PackageTarget changes in pprCEntity

9 years agoAssume CmmLabels have dynamic linkage on non-Windows
Ben.Lippmeier.anu.edu.au [Sat, 2 Jan 2010 10:03:34 +0000 (10:03 +0000)] 
Assume CmmLabels have dynamic linkage on non-Windows

9 years agoFollow PackageTarget change in byte code generator
Ben.Lippmeier@anu.edu.au [Sat, 2 Jan 2010 09:30:46 +0000 (09:30 +0000)] 
Follow PackageTarget change in byte code generator

9 years agoWhen compiling viac, don't need to emit prototypes for symbols in the RTS
Ben.Lippmeier@anu.edu.au [Sat, 2 Jan 2010 09:29:57 +0000 (09:29 +0000)] 
When compiling viac, don't need to emit prototypes for symbols in the RTS

9 years agoFollow ForeignLabel changes in PPC NCG
Ben.Lippmeier@anu.edu.au [Sat, 2 Jan 2010 06:23:15 +0000 (06:23 +0000)] 
Follow ForeignLabel changes in PPC NCG

9 years agoTag ForeignCalls with the package they correspond to
Ben.Lippmeier@anu.edu.au [Sat, 2 Jan 2010 05:37:54 +0000 (05:37 +0000)] 
Tag ForeignCalls with the package they correspond to

9 years agoNicer panic message
Ben.Lippmeier@anu.edu.au [Tue, 29 Dec 2009 10:35:18 +0000 (10:35 +0000)] 
Nicer panic message

9 years agoTypo in comment
Ben.Lippmeier@anu.edu.au [Tue, 29 Dec 2009 05:18:58 +0000 (05:18 +0000)] 
Typo in comment

10 years agoWindows DLLs: use DLL aware runSparks_closure instead of base_GHCziConc_runSparks_clo...
Ben.Lippmeier@anu.edu.au [Mon, 23 Nov 2009 05:15:10 +0000 (05:15 +0000)] 
Windows DLLs: use DLL aware runSparks_closure instead of base_GHCziConc_runSparks_closure directly

9 years agolocateOneObj: don't look for dynamic libs in static mode
Simon Marlow [Sun, 3 Jan 2010 22:36:37 +0000 (22:36 +0000)] 
locateOneObj: don't look for dynamic libs in static mode
also replace picIsOn with isDynamicGhcLib, as __PIC__ is not the
correct test for whether the GHC library is dynamically linked.

9 years agoSubstantial improvements to coercion optimisation
simonpj@microsoft.com [Mon, 4 Jan 2010 08:21:55 +0000 (08:21 +0000)] 
Substantial improvements to coercion optimisation

The main purpose of this patch is to add a bunch of new rules
to the coercion optimiser.  They are documented in the (revised)
Appendix of the System FC paper.

Some code has moved about:

- OptCoercion is now a separate module, mainly because it
  now uses tcMatchTy, which is defined in Unify, so OptCoercion
  must live higehr up in the hierarchy

- Functions that manipulate Kinds has moved from
  Type.lhs to Coercion.lhs.  Reason: the function typeKind
  now needs to call coercionKind.  And in any case, a Kind is
  a flavour of Type, so it builds on top of Type; indeed Coercions
  and Kinds are both flavours of Type.

  This change required fiddling with a number of imports, hence
  the one-line changes to otherwise-unrelated modules

- The representation of CoTyCons in TyCon has changed.   Instead of
  an extensional representation (a kind checker) there is now an
  intensional representation (namely TyCon.CoTyConDesc).  This was
  needed for one of the new coercion optimisations.

9 years agoWhitespace only
Ian Lynagh [Sat, 2 Jan 2010 22:05:56 +0000 (22:05 +0000)] 
Whitespace only

9 years agoUse a shell script, rather than perl script, to make flags.xsl
Ian Lynagh [Thu, 31 Dec 2009 15:50:04 +0000 (15:50 +0000)] 
Use a shell script, rather than perl script, to make flags.xsl

9 years agoRolling back: Make FastString thread-safe.
Simon Marlow [Thu, 31 Dec 2009 16:46:51 +0000 (16:46 +0000)] 
Rolling back: Make FastString thread-safe.

This patch was the cause of the compile-time performance regression in
#3796.  My guess is that it is due to the use of unsafePerformIO which
traverses the stack up to the first update frame, and perhaps we have
a deep stack when reading the dictionary from a .hi file.  In any
case, since we're not relying on thread safety for FastStrings, I
think the safest thing to do is back this out until we can investigate
further.

9 years agotake newCAF() out from sm_mutex; use the capability-local mut list instead
Simon Marlow [Thu, 31 Dec 2009 16:02:23 +0000 (16:02 +0000)] 
take newCAF() out from sm_mutex; use the capability-local mut list instead

9 years agoUse local mut lists in UPD_IND(), also clean up Updates.h
Simon Marlow [Thu, 31 Dec 2009 11:34:35 +0000 (11:34 +0000)] 
Use local mut lists in UPD_IND(), also clean up Updates.h

9 years agouse local mut lists rather than global mut lists in sequential GC
Simon Marlow [Thu, 31 Dec 2009 11:31:18 +0000 (11:31 +0000)] 
use local mut lists rather than global mut lists in sequential GC

9 years agoAllow throwTo() to be called without a source thread
Simon Marlow [Fri, 18 Dec 2009 16:32:00 +0000 (16:32 +0000)] 
Allow throwTo() to be called without a source thread
Returns false if the exception could not be thrown becuase the tartget
thread was running.  Not used yet, but might come in handy later.