simonpj@microsoft.com [Tue, 28 Oct 2008 07:46:39 +0000 (07:46 +0000)]
Remove dead code
simonpj@microsoft.com [Mon, 27 Oct 2008 22:27:38 +0000 (22:27 +0000)]
Fix Trac #2713: refactor and tidy up renaming of fixity decls
In fixing #2713, this patch also eliminates two almost-unused
functions from RnEnv (lookupBndr and lookupBndr_maybe). The
net lines of code is prety much unchanged, but more of them
are comments!
simonpj@microsoft.com [Sat, 25 Oct 2008 17:12:11 +0000 (17:12 +0000)]
Fix Trac #2701: make deriving check better for unlifted args
Getting the automatic deriving mechanism to work really smoothly
is surprisingly hard. I keep finding myself in TcDeriv!
Anyway, this is a nice clean fix to Trac #2701.
Ian Lynagh [Fri, 24 Oct 2008 11:24:00 +0000 (11:24 +0000)]
Use pdflatex rather than latex for building
The Windows builder is having problems running ps2pdf, so this works
aroudn the problem.
Ian Lynagh [Fri, 24 Oct 2008 11:17:50 +0000 (11:17 +0000)]
Remove an unmatched } in core.tex
Ian Lynagh [Fri, 24 Oct 2008 11:14:58 +0000 (11:14 +0000)]
Add a usepackage{url}
Ian Lynagh [Wed, 22 Oct 2008 16:44:23 +0000 (16:44 +0000)]
Update ANNOUNCE
Simon Marlow [Thu, 23 Oct 2008 15:50:17 +0000 (15:50 +0000)]
Fix a bug in the new scheduler
If the current thread blocks, we should yield the Capability
immediately, because the thread and hence possibly the current Task
are now owned by someone else. This worked in the old scheduler, but
we moved where the yield happens in the new scheduler which broke it.
Simon Marlow [Thu, 23 Oct 2008 15:45:51 +0000 (15:45 +0000)]
add an assertion
Simon Marlow [Thu, 23 Oct 2008 08:22:13 +0000 (08:22 +0000)]
fix a warning
Simon Marlow [Wed, 22 Oct 2008 11:52:33 +0000 (11:52 +0000)]
traverse the spark pools only once during GC rather than twice
Simon Marlow [Wed, 22 Oct 2008 09:27:44 +0000 (09:27 +0000)]
Refactoring and reorganisation of the scheduler
Change the way we look for work in the scheduler. Previously,
checking to see whether there was anything to do was a
non-side-effecting operation, but this has changed now that we do
work-stealing. This lead to a refactoring of the inner loop of the
scheduler.
Also, lots of cleanup in the new work-stealing code, but no functional
changes.
One new statistic is added to the +RTS -s output:
SPARKS: 1430 (2 converted, 1427 pruned)
lets you know something about the use of `par` in the program.
berthold@mathematik.uni-marburg.de [Mon, 15 Sep 2008 13:28:46 +0000 (13:28 +0000)]
Work stealing for sparks
Spark stealing support for PARALLEL_HASKELL and THREADED_RTS versions of the RTS.
Spark pools are per capability, separately allocated and held in the Capability
structure. The implementation uses Double-Ended Queues (deque) and cas-protected
access.
The write end of the queue (position bottom) can only be used with
mutual exclusion, i.e. by exactly one caller at a time.
Multiple readers can steal()/findSpark() from the read end
(position top), and are synchronised without a lock, based on a cas
of the top position. One reader wins, the others return NULL for a
failure.
Work stealing is called when Capabilities find no other work (inside yieldCapability),
and tries all capabilities 0..n-1 twice, unless a theft succeeds.
Inside schedulePushWork, all considered cap.s (those which were idle and could
be grabbed) are woken up. Future versions should wake up capabilities immediately when
putting a new spark in the local pool, from newSpark().
Patch has been re-recorded due to conflicting bugfixes in the sparks.c, also fixing a
(strange) conflict in the scheduler.
Simon Marlow [Thu, 23 Oct 2008 08:06:48 +0000 (08:06 +0000)]
include an elapsed time table
Simon Marlow [Thu, 23 Oct 2008 08:06:29 +0000 (08:06 +0000)]
generate a valid summary for older GHC versions too
simonpj@microsoft.com [Wed, 22 Oct 2008 14:51:38 +0000 (14:51 +0000)]
Fix Trac #2714 (a minor wibble)
In boxy_match (which is a pure function used by preSubType) we can
encounter TyVars not just TcTyVars; this patch takes account of that.
Manuel M T Chakravarty [Tue, 21 Oct 2008 13:17:21 +0000 (13:17 +0000)]
Reject programs with superclass equalities for now
- The current implementation of type families cannot properly deal
with superclass equalities. Instead of making a half-hearted attempt at
supporting them, which mostly ends in cryptic error message, rejecting
right away with an appropriate message.
MERGE TO 6.10
Ian Lynagh [Tue, 21 Oct 2008 18:33:17 +0000 (18:33 +0000)]
Fix doc syntax
Ian Lynagh [Tue, 21 Oct 2008 16:25:43 +0000 (16:25 +0000)]
Don't put the README file in the Windows installer; fixes trac #2698
The README file talks about getting and building the sources, which
doesn't make sense for the installer.
simonpj@microsoft.com [Tue, 21 Oct 2008 15:14:01 +0000 (15:14 +0000)]
Comments and parens only
simonpj@microsoft.com [Tue, 21 Oct 2008 14:31:56 +0000 (14:31 +0000)]
Do proper cloning in worker/wrapper splitting
See Note [Freshen type variables] in WwLib. We need to clone type
variables when building a worker/wrapper split, else we simply get
bogus code, admittedly in rather obscure situations. I can't quite
remember what program showed this up, unfortunately, but there
definitely *was* one! (You get a Lint error.)
simonpj@microsoft.com [Tue, 21 Oct 2008 14:30:19 +0000 (14:30 +0000)]
Don't float an expression wrapped in a cast
There is no point in floating out an expression wrapped in a coercion;
If we do we'll transform
lvl = e |> co [_$_]
to
lvl' = e; lvl = lvl' |> co
and then inline lvl. Better just to float out the payload (e).
simonpj@microsoft.com [Tue, 21 Oct 2008 14:29:22 +0000 (14:29 +0000)]
Fix Trac #2668, and refactor TcDeriv
TcDeriv deals with both standalone and ordinary 'deriving';
and with both data types and 'newtype deriving'. The result
is really rather compilcated and ad hoc. Ryan discovered
#2668; this patch fixes that bug, and makes the internal interfces
#more uniform. Specifically, the business of knocking off
type arguments from the instance type until it matches the kind of the
class, is now done by derivTyData, not mkNewTypeEqn, because the
latter is shared with standalone derriving, whree the trimmed
type application is what the user wrote.
simonpj@microsoft.com [Sun, 19 Oct 2008 23:35:11 +0000 (23:35 +0000)]
Spelling error in comment
simonpj@microsoft.com [Sun, 19 Oct 2008 23:33:52 +0000 (23:33 +0000)]
White space only
simonpj@microsoft.com [Sun, 19 Oct 2008 18:42:08 +0000 (18:42 +0000)]
Comments to explain strict overlap checking for type family instances
simonpj@microsoft.com [Tue, 23 Sep 2008 14:05:35 +0000 (14:05 +0000)]
Allow type families to use GADT syntax (and be GADTs)
We've always intended to allow you to use GADT syntax for
data families:
data instance T [a] where
T1 :: a -> T [a]
and indeed to allow data instances to *be* GADTs
data intsance T [a] where
T1 :: Int -> T [Int]
T2 :: a -> b -> T [(a,b)]
This patch fixes the renamer and type checker to allow this.
simonpj@microsoft.com [Tue, 23 Sep 2008 13:54:19 +0000 (13:54 +0000)]
Improve crash message from applyTys and applyTypeToArgs
simonpj@microsoft.com [Sat, 20 Sep 2008 23:22:56 +0000 (23:22 +0000)]
Wibble to ungrammatical error message
simonpj@microsoft.com [Sat, 20 Sep 2008 23:20:24 +0000 (23:20 +0000)]
Comments only: replace ":=:" by "~" (notation for equality predicates)
Manuel M T Chakravarty [Tue, 21 Oct 2008 12:01:07 +0000 (12:01 +0000)]
FIX #2693
- As long as the first reduceContext in tcSimplifyRestricted potentially
performs improvement, we need to zonk again before the second reduceContext.
It would be better to prevent the improvement in the first place, but given
the current situation zonking is definitely the right thing to do.
MERGE TO 6.10
Judah Jacobson [Mon, 20 Oct 2008 16:41:09 +0000 (16:41 +0000)]
Restore the terminal attributes even if ghci does not exit normally.
Manuel M T Chakravarty [Tue, 21 Oct 2008 04:42:13 +0000 (04:42 +0000)]
FIX #2688
- Change in TcSimplify.reduceContext:
We do *not* go around for new extra_eqs. Morally, we should,
but we can't without risking non-termination (see #2688). By
not going around, we miss some legal programs mixing FDs and
TFs, but we never claimed to support such programs in the
current implementation anyway.
MERGE TO 6.10
Thomas Schilling [Tue, 14 Oct 2008 13:40:16 +0000 (13:40 +0000)]
Move documentation within 80 column boundary.
Thomas Schilling [Tue, 14 Oct 2008 13:38:33 +0000 (13:38 +0000)]
Improve haddock documentation for 'GHC.topSortModuleGraph'.
Thomas Schilling [Tue, 14 Oct 2008 13:37:40 +0000 (13:37 +0000)]
Improve haddock documentation for HsExpr module.
Thomas Schilling [Tue, 14 Oct 2008 13:35:56 +0000 (13:35 +0000)]
Improve Haddock-markup for HsDecls module.
Thomas Schilling [Mon, 20 Oct 2008 11:14:10 +0000 (11:14 +0000)]
Run Haddock with compacting GC and show RTS statistics.
Simon Marlow [Mon, 20 Oct 2008 12:11:03 +0000 (12:11 +0000)]
FIX (partially) #2703: bug in stack overflow handling when inside block
As a result of a previous ticket (#767) we disabled the generation of
StackOverflow exceptions when inside a Control.Exception.block, on the
grounds that StackOverflow is like an asynchronous exception. Instead
we just increase the stack size. However, the stack size calculation
was wrong, and ended up not increasing the size of the stack, with the
result that the runtime just kept re-allocating the stack and filling
up memory.
Simon Marlow [Mon, 20 Oct 2008 10:24:22 +0000 (10:24 +0000)]
Re-export Located(..) and related functions
So that clients don't need to import SrcLoc
Simon Marlow [Mon, 20 Oct 2008 10:12:41 +0000 (10:12 +0000)]
whitespace fix
Judah Jacobson [Thu, 16 Oct 2008 02:48:38 +0000 (02:48 +0000)]
FIX #2691: Manually reset the terminal to its initial settings; works around a bug in libedit.
Judah Jacobson [Thu, 16 Oct 2008 01:57:21 +0000 (01:57 +0000)]
Eliminate duplicate flags in the tab completion of ghci's :set command.
Ian Lynagh [Sun, 19 Oct 2008 13:32:08 +0000 (13:32 +0000)]
Add dph haddock docs to the doc index
Ian Lynagh [Fri, 17 Oct 2008 19:59:42 +0000 (19:59 +0000)]
Clean the bootstrapping extensible-exceptions package
Ian Lynagh [Wed, 15 Oct 2008 16:34:12 +0000 (16:34 +0000)]
Fix trac #2687
OtherPunctuation, ConnectorPunctuation and DashPunctuation are now
treated as symbols, rather than merely graphic characters.
Ian Lynagh [Wed, 15 Oct 2008 16:32:35 +0000 (16:32 +0000)]
Fix trac #2680; avoid quadratic behaviour from (++)
Ian Lynagh [Wed, 15 Oct 2008 14:40:23 +0000 (14:40 +0000)]
Fix the build when the bootstrapping compiler has a newer Cabal than us
We need to forcibly use the in-tree Cabal, or we get version mismatch errors
Ian Lynagh [Tue, 14 Oct 2008 11:47:14 +0000 (11:47 +0000)]
Fix the name of prologue.txt when making bindists
simonpj@microsoft.com [Wed, 15 Oct 2008 08:45:01 +0000 (08:45 +0000)]
Comments only
simonpj@microsoft.com [Wed, 15 Oct 2008 08:43:44 +0000 (08:43 +0000)]
Fix Trac #2497; two separate typos in Lexer.x
The patch to switch on lexing of 'forall' inside a RULES pragma
wasn't working. This fixes it so that it does.
simonpj@microsoft.com [Wed, 15 Oct 2008 08:05:09 +0000 (08:05 +0000)]
Update manual: tidy up instances, say more about type families in instance decls
Thomas Schilling [Tue, 14 Oct 2008 21:12:36 +0000 (21:12 +0000)]
Make tags work on Unices, too.
Clemens Fruhwirth [Tue, 14 Oct 2008 14:32:06 +0000 (14:32 +0000)]
Undefine __PIC__ before defining it to work around "multiple definitions of __PIC__" warnings
Clemens Fruhwirth [Tue, 14 Oct 2008 12:51:23 +0000 (12:51 +0000)]
Add "dyn" to GhcRTSWays when compiling --enable-shared
Ian Lynagh [Mon, 13 Oct 2008 23:58:17 +0000 (23:58 +0000)]
Fill out the ghc package's cabal file
Clemens Fruhwirth [Tue, 14 Oct 2008 10:34:59 +0000 (10:34 +0000)]
Patching libffi so it can be built as DLL
libffi-dllize-3.0.6.patch should be pushed upstream
Thomas Schilling [Mon, 13 Oct 2008 17:09:27 +0000 (17:09 +0000)]
Add 'etags' makefile target.
This only works with stage2 since `ghctags' is built against stage1
but not against the bootstrapping compiler. Also note that all of GHC
must typecheck for this target to succeed. Perhaps we should not
overwrite the old TAGS file by default then.
Thomas Schilling [Mon, 13 Oct 2008 17:06:58 +0000 (17:06 +0000)]
Use cabal information to get GHC's flags to `ghctags'.
By giving the dist-directory to ghctags we can get all the GHC API
flags we need in order to load the required modules. The flag name
could perhaps be improved, but apart from that it seems to work well.
Clemens Fruhwirth [Tue, 14 Oct 2008 08:13:00 +0000 (08:13 +0000)]
Version bump for libffi to 3.0.6
Clemens Fruhwirth [Mon, 13 Oct 2008 22:15:30 +0000 (22:15 +0000)]
Encode shared/static configuration into stamps to do the right thing when rebuilding
Ian Lynagh [Mon, 13 Oct 2008 19:59:43 +0000 (19:59 +0000)]
Add a link to the GHC API docs from the library haddock index
Ian Lynagh [Mon, 13 Oct 2008 20:09:27 +0000 (20:09 +0000)]
Link to the GHC API documentation from the main doc page
Ian Lynagh [Mon, 13 Oct 2008 20:06:25 +0000 (20:06 +0000)]
Whitespace only in docs/index.html
Ian Lynagh [Mon, 13 Oct 2008 19:25:48 +0000 (19:25 +0000)]
Tweak gen_contents_index
It now works again after it has been installed, as well as while it is
in a source tree.
After it's been installed it filters out the ghc package, as that
currently swamps everything else in the index.
Clemens Fruhwirth [Mon, 13 Oct 2008 20:16:08 +0000 (20:16 +0000)]
Build fixes for DLLized rts
Clemens Fruhwirth [Mon, 13 Oct 2008 20:14:26 +0000 (20:14 +0000)]
Do not filter the rts from linked libraries in linkDynLib as Windows does not allow unresolved symbols
Clemens Fruhwirth [Mon, 13 Oct 2008 20:09:45 +0000 (20:09 +0000)]
Add HsFFI.o to INSTALL_LIBS
Clemens Fruhwirth [Mon, 13 Oct 2008 16:24:33 +0000 (16:24 +0000)]
Rename symbol macros to a consistant naming scheme
Simon Marlow [Mon, 13 Oct 2008 12:13:39 +0000 (12:13 +0000)]
Fix #2685: two Bool arguments to tidyTypeEnv were the wrong way around
So -XTemplateHaskell was behaving like -fomit-interface-file-pragmas,
and vice versa.
Ian Lynagh [Sat, 11 Oct 2008 19:10:08 +0000 (19:10 +0000)]
Simplify the "is $bindir in $PATH" test
Ian Lynagh [Sat, 11 Oct 2008 19:10:30 +0000 (19:10 +0000)]
Correct the "is $bindir in $PATH" test
We were testing neq instead of eq
pepe [Sat, 11 Oct 2008 11:47:20 +0000 (11:47 +0000)]
Fix a typo which was causing ghci to quit on commands errors
Clemens Fruhwirth [Sat, 11 Oct 2008 07:45:24 +0000 (07:45 +0000)]
Drop libm from the linker dependencies for libffi
Clemens Fruhwirth [Fri, 10 Oct 2008 19:23:18 +0000 (19:23 +0000)]
Do not generate haddock documentation when running install-docs in libffi
Josef Svenningsson [Fri, 10 Oct 2008 15:03:22 +0000 (15:03 +0000)]
When waking up thread blocked on TVars, wake oldest first (#2319)
StgTVarWatchQueue contains the threads blocked on a TVar in order
youngest first. The list has to be traversed backwards to unpark the threads
oldest first.
This improves the fairness when using STM in some situations.
Simon Marlow [Fri, 10 Oct 2008 13:15:45 +0000 (13:15 +0000)]
add readTVarIO :: TVar a -> IO a
Simon Marlow [Fri, 10 Oct 2008 13:15:35 +0000 (13:15 +0000)]
fix #2636: throw missing module errors as SourceErrors, not ErrMsg
Simon Marlow [Wed, 8 Oct 2008 15:47:02 +0000 (15:47 +0000)]
atomicModifyIORef: use a local cas() instead of the global lock
This should improve scaling when using atomicModifyIORef
Clemens Fruhwirth [Fri, 10 Oct 2008 07:31:06 +0000 (07:31 +0000)]
Delay building libffi until package.conf is created and fix bindist
Ian Lynagh [Thu, 9 Oct 2008 16:49:46 +0000 (16:49 +0000)]
Install a versioned ghc-pkg script; fixes trac #2662
Ian Lynagh [Thu, 9 Oct 2008 16:34:51 +0000 (16:34 +0000)]
Fix bindist creation: Only the main RTS was being put in the bindists
Simon Marlow [Thu, 9 Oct 2008 09:11:18 +0000 (09:11 +0000)]
pushAtom: add missing case for MachNullAddr (#2589)
Simon Marlow [Thu, 9 Oct 2008 08:51:18 +0000 (08:51 +0000)]
undo incorrect assertion, and fix comments
Simon Marlow [Thu, 9 Oct 2008 08:50:51 +0000 (08:50 +0000)]
remove old GRAN/PARALLEL_HASKELL code
Manuel M T Chakravarty [Thu, 9 Oct 2008 13:23:28 +0000 (13:23 +0000)]
FIX #2639
MERGE TO 6.10
Manuel M T Chakravarty [Thu, 9 Oct 2008 06:14:35 +0000 (06:14 +0000)]
Cover PredTy case in Type.tyFamInsts
MERGE TO 6.10
Clemens Fruhwirth [Thu, 9 Oct 2008 07:13:42 +0000 (07:13 +0000)]
Drop ghcconfig.h/RtsConfig.h from libffi's package.conf.in
Clemens Fruhwirth [Wed, 8 Oct 2008 23:44:55 +0000 (23:44 +0000)]
Don't use sed's -i flag as Solaris doesn't know it in libffi/Makefile
Clemens Fruhwirth [Wed, 8 Oct 2008 23:29:02 +0000 (23:29 +0000)]
Don't use /dev/null trick to create empty object files in libffi/Makefile
Clemens Fruhwirth [Wed, 8 Oct 2008 17:04:43 +0000 (17:04 +0000)]
Turn libffi into a Haskell package
Thomas Schilling [Wed, 8 Oct 2008 14:40:32 +0000 (14:40 +0000)]
Make 'getModSummary' deterministic.
Thomas Schilling [Tue, 7 Oct 2008 23:56:56 +0000 (23:56 +0000)]
Add accessors to 'HsModule' and haddockify it.
Simon Marlow [Wed, 8 Oct 2008 10:34:32 +0000 (10:34 +0000)]
fix syntax errors in src-dist publish rules
Simon Marlow [Wed, 8 Oct 2008 11:26:27 +0000 (11:26 +0000)]
add comments and an ASSERT_LOCK_HELD()
Simon Marlow [Wed, 8 Oct 2008 11:26:09 +0000 (11:26 +0000)]
Fix #2663: we had a hard-wired capabilities[0]
For some unknown reason in schedulePostRunThread() we were always
passing capabilities[0] rather than the current Capability to
throwToSingleThreaded(). This caused all kinds of weird failures and
crashes in STM code when running on multiple processors.
Simon Marlow [Fri, 3 Oct 2008 15:07:45 +0000 (15:07 +0000)]
Fix #1955 for heap profiles generated by +RTS -hT
Simon Marlow [Tue, 7 Oct 2008 15:10:07 +0000 (15:10 +0000)]
add a section id for +RTS -hT
Simon Marlow [Tue, 7 Oct 2008 15:09:57 +0000 (15:09 +0000)]
update documentation for PostfixOperators
Simon Marlow [Tue, 7 Oct 2008 15:09:43 +0000 (15:09 +0000)]
fix markup