Thomas Schilling [Thu, 2 Oct 2008 23:04:12 +0000 (23:04 +0000)]
Let parseModule take a ModSummary like checkAndLoadModule did.
To get the ModSummary for a ModuleName getModSummary can be used.
It's not called find* or lookup* because it assumes that the module is
in the module graph and throws an exception if it cannot be found.
Overall, I'm not quite sure about the usefulness of this function
since the user has no control about which filetype to grab (hs or
hs-boot).
Ian Lynagh [Thu, 2 Oct 2008 20:15:19 +0000 (20:15 +0000)]
Remove some out-of-date entries from .darcs-boring
Manuel M T Chakravarty [Thu, 2 Oct 2008 13:45:39 +0000 (13:45 +0000)]
TFs: Allow repeated variables in left-hand sides of instances
MERGE TO 6.10
Manuel M T Chakravarty [Thu, 2 Oct 2008 07:46:42 +0000 (07:46 +0000)]
Clean up some comments
MERGE TO 6.10
simonpj@microsoft.com [Thu, 2 Oct 2008 13:30:02 +0000 (13:30 +0000)]
Make the new binder-swap stuff in OccurAnal work right for GlobalIds
See Note [Binder swap on GlobalId scrutinees]. I hadn't got this
right before, so repeated cases on imported Ids weren't getting optimised.
simonpj@microsoft.com [Thu, 2 Oct 2008 13:29:29 +0000 (13:29 +0000)]
Minor refactoring only
simonpj@microsoft.com [Thu, 2 Oct 2008 13:28:33 +0000 (13:28 +0000)]
Comments only
simonpj@microsoft.com [Thu, 2 Oct 2008 13:26:57 +0000 (13:26 +0000)]
Zap dead-ness info appropriately in SpecConstr
SpecConstr can make pattern binders come alive, so we must remember
to zap their dead-variable annotation. See extendCaseBndrs.
(This was triggering a Core Lint failure in DPH.)
simonpj@microsoft.com [Thu, 2 Oct 2008 13:24:26 +0000 (13:24 +0000)]
Suppress invalid Core Lint complaint about lack of constructors
Simon Marlow [Wed, 1 Oct 2008 16:44:27 +0000 (16:44 +0000)]
add some more GC roots (fixes conc048, and possibly some others)
Simon Marlow [Wed, 1 Oct 2008 16:32:22 +0000 (16:32 +0000)]
Document +RTS -hT
We forgot to document this in GHC 6.8
Simon Marlow [Wed, 1 Oct 2008 16:31:05 +0000 (16:31 +0000)]
fix new-qualified-operators link
Manuel M T Chakravarty [Wed, 1 Oct 2008 14:43:39 +0000 (14:43 +0000)]
Proper error message for unsupported pattern signatures
- Pattern signatures must be identical to the type expected for the pattern;
see Note [Pattern coercions]
- We now signal an appropriate error if an equality coercion would be needed
(instead of just generating Core that doesn't typecheck)
MERGE TO 6.10
Roman Leshchinskiy [Thu, 2 Oct 2008 01:20:55 +0000 (01:20 +0000)]
Prevent excessive inlining with DPH
This adds a new flag -finline-if-enough-args which disables inlining for
partially applied functions. It is automatically set by -Odph. This is a
temporary hack and should remain undocumented.
MERGE TO 6.10
Ian Lynagh [Wed, 1 Oct 2008 17:11:33 +0000 (17:11 +0000)]
On Windows, check that we have a good version of windres when configuring
Ian Lynagh [Tue, 30 Sep 2008 15:50:54 +0000 (15:50 +0000)]
Call $(PERL) rather than perl when making the manpage
Ian Lynagh [Tue, 30 Sep 2008 14:57:14 +0000 (14:57 +0000)]
don't install the installPackage program
Simon Marlow [Wed, 1 Oct 2008 13:55:49 +0000 (13:55 +0000)]
Fix #2637: conc032(threaded2) failure
There was a race condition whereby a thread doing throwTo could be
blocked on a thread that had finished, and the GC would detect this
as a deadlock rather than raising the pending exception. We can't
close the race, but we can make the right thing happen when the GC
runs later.
Simon Marlow [Tue, 30 Sep 2008 15:09:12 +0000 (15:09 +0000)]
Remove outdated link to OGI webpage
Manuel M T Chakravarty [Wed, 1 Oct 2008 13:13:03 +0000 (13:13 +0000)]
TFs: Fixed InstContextNorm (and simplification of IPs)
MERGE TO 6.10
Manuel M T Chakravarty [Wed, 1 Oct 2008 09:13:15 +0000 (09:13 +0000)]
TcSimplify.reduceImplication: clean up
- This cleans up some of the mess in reduceImplication and documents the
precondition on the form of wanted equalities properly.
- I also made the back off test a bit smarter by allowing to back off in the
presence of wanted equalities as long as none of them got solved in the
attempt. (That should save generating some superfluous bindings.)
MERGE TO 6.10
Manuel M T Chakravarty [Wed, 1 Oct 2008 05:32:43 +0000 (05:32 +0000)]
Make sure to zonk the kind of coercion variables
MERGE TO 6.10
Simon Marlow [Tue, 30 Sep 2008 14:18:42 +0000 (14:18 +0000)]
Remover PROT_EXEC flag from mmap()
Needed for #738 fix
Simon Marlow [Tue, 30 Sep 2008 14:18:12 +0000 (14:18 +0000)]
Fix #2410: carefully generate unique names for CAF CCs
Simon Marlow [Tue, 30 Sep 2008 11:56:11 +0000 (11:56 +0000)]
fix #2594: we were erroneously applying masks, as the reporter suggested
My guess is that this is left over from when we represented Int8 and
friends as zero-extended rather than sign-extended. It's amazing it hasn't
been noticed earlier.
Clemens Fruhwirth [Tue, 30 Sep 2008 08:54:49 +0000 (08:54 +0000)]
Unconditionalize definition of DYNAMIC_* so that libffi.so/.dll is removed even when BuildSharedLibs is reset to NO
Manuel M T Chakravarty [Tue, 30 Sep 2008 05:35:59 +0000 (05:35 +0000)]
Type families: need to instantiate flexible skolems before other flexibles
MERGE TO 6.10
Manuel M T Chakravarty [Mon, 29 Sep 2008 14:22:27 +0000 (14:22 +0000)]
Fix warnings
Manuel M T Chakravarty [Mon, 29 Sep 2008 14:10:40 +0000 (14:10 +0000)]
Type families: consider subst rules both way
- applySubstFam, applySubstVarVar & applySubstVarFam need to return their
second argument -to be put into the todo list- if the rule would be
applicable if the equalities would be supplied in the opposite order.
MERGE TO 6.10
pepe [Fri, 26 Sep 2008 21:14:29 +0000 (21:14 +0000)]
Clean up a bit and improve an error message
pepe [Fri, 26 Sep 2008 20:48:36 +0000 (20:48 +0000)]
Don't capture error calls in tryUser
A previous patch slightly changed the semantics of tryUser.
This patch restores the original behaviour
(as expected in :print)
Simon Marlow [Sat, 27 Sep 2008 14:18:34 +0000 (14:18 +0000)]
tweaks to this section of the docs
Simon Marlow [Sat, 27 Sep 2008 14:18:22 +0000 (14:18 +0000)]
Add -outputdir flag (#2295)
Simon Marlow [Tue, 23 Sep 2008 14:04:49 +0000 (14:04 +0000)]
oops, forgot to add -XNewQualifiedOperators to the flags table
Ian Lynagh [Sat, 27 Sep 2008 15:05:07 +0000 (15:05 +0000)]
Fix making OS X installers from source tarballs
I'm not sure why it works in the HEAD, but when making an installer
from the 6.10.1 beta configure hangs when doing the CHECK_HIST_ERRORS
test (during rl_initialize, I believe). Giving make /dev/null as stdin
fixes it.
Neil Mitchell [Tue, 16 Sep 2008 16:03:11 +0000 (16:03 +0000)]
Make the matching of the filename ghc.exe case insensitive, fixes bug #2603
Simon Marlow [Fri, 26 Sep 2008 23:28:06 +0000 (23:28 +0000)]
Fix #2411: missing case for CATCH_STM_FRAME in raiseAsync()
Bertram Felgenhauer [Thu, 25 Sep 2008 05:38:20 +0000 (05:38 +0000)]
Fix parsing of -ignore-package flag.
Ian Lynagh [Fri, 26 Sep 2008 20:38:32 +0000 (20:38 +0000)]
Add an example of how to use SCCs to the user guide
Ian Lynagh [Fri, 26 Sep 2008 20:02:03 +0000 (20:02 +0000)]
Add some description of the +RTS -t/-s/-S output
Ian Lynagh [Fri, 26 Sep 2008 15:27:31 +0000 (15:27 +0000)]
Remove a redundant options pragma
Ian Lynagh [Fri, 26 Sep 2008 14:05:39 +0000 (14:05 +0000)]
Split ShowVersion etc off into a different type to DoInteractive etc
This fixes trac #1348 (ghci --help gave ghc's help), and also tidies
things up a bit. Things would be even tidier if the usage.txt files were
put into a .hs file, so that ShowUsage wouldn't need to be able to find
the libdir.
Ian Lynagh [Fri, 26 Sep 2008 13:16:09 +0000 (13:16 +0000)]
Pass SRC_HC_OPTS to GHC when building GHC's Main.hs
Ian Lynagh [Fri, 26 Sep 2008 12:44:25 +0000 (12:44 +0000)]
Improve runghc docs; fixes trac #2477
Manuel M T Chakravarty [Thu, 25 Sep 2008 22:53:24 +0000 (22:53 +0000)]
Type families: fixes in flattening & finalisation
* Finalisation didn't do the right thing for equalities x ~ y, where
x was instantiated, but not zonked and y flexible (need to do y := x)
* During flattening we weren't careful enough when turning wanteds
intermediates into locals
Both bugs showed up in a small example of SPJ:
linear :: HasTrie (Basis v) => (Basis v, v)
linear = basisValue
class HasTrie a where
type family Basis u :: *
basisValue :: (Basis v,v)
basisValue = error "urk"
Ian Lynagh [Thu, 25 Sep 2008 16:56:18 +0000 (16:56 +0000)]
Fix the behaviour of flags like --help and --version; fixes trac #2620
They should override other mode flags, not conflict with them
Ian Lynagh [Thu, 25 Sep 2008 13:38:55 +0000 (13:38 +0000)]
Follow the integer package changes
Manuel M T Chakravarty [Thu, 25 Sep 2008 08:41:39 +0000 (08:41 +0000)]
Type families: fix decomposition problem
* Fixes the problem reported in
<http://www.haskell.org/pipermail/haskell-cafe/2008-July/044911.html>
Judah Jacobson [Wed, 24 Sep 2008 21:24:22 +0000 (21:24 +0000)]
Don't exit ghci if :info is called on an undefined identifier.
Ian Lynagh [Wed, 24 Sep 2008 23:05:53 +0000 (23:05 +0000)]
Fix maintainer-clean
Ian Lynagh [Wed, 24 Sep 2008 12:42:55 +0000 (12:42 +0000)]
Use -f when making the runhaskell symlink
Otherwise installation fails if runhaskell already exists.
Ian Lynagh [Wed, 24 Sep 2008 12:41:37 +0000 (12:41 +0000)]
Use -perm -100 rather than -perm /a+x when looking for executable files
/a+x doesn't work on some Solaris and OS X machines. Spotted by
Christian Maeder.
Ian Lynagh [Wed, 24 Sep 2008 12:33:23 +0000 (12:33 +0000)]
Use $(FIND) rather than find, as the former may be gfind
Ian Lynagh [Wed, 24 Sep 2008 12:30:46 +0000 (12:30 +0000)]
Look for gfind as well as find
Ian Lynagh [Wed, 24 Sep 2008 12:25:58 +0000 (12:25 +0000)]
In configure, don't call FPTOOLS_HADDOCK
We now use the in-tree haddock, so we don't need to look for it.
Ian Lynagh [Wed, 24 Sep 2008 12:17:59 +0000 (12:17 +0000)]
Use $(TAR) rather than tar
Fixes problems on Solaris, where we need to use gtar instead of tar
Ian Lynagh [Wed, 24 Sep 2008 12:09:40 +0000 (12:09 +0000)]
Add $(strip) to a Makefile test
Fixes making bindists on solaris. Patch from Christian Maeder.
Ian Lynagh [Wed, 24 Sep 2008 12:08:40 +0000 (12:08 +0000)]
Use test -f rather than test -e, for portability (Solaris)
Ian Lynagh [Tue, 23 Sep 2008 20:57:55 +0000 (20:57 +0000)]
Remove some dependencies on bootstrapping.conf from libraries/Makefile
They were causing some unnecessary work:
Running make in a built tree reregisters the GHC package in
bootstrapping.conf, and the build system thought that this updated
timestamp meant that the configure stamps were out of date. This is
particularly bad for the libraries with configure scripts, as those
take a while to run.
The bootstrapping.conf is built in an earlier phase ("make boot") so
one shouldn't rely on the dependencies anyway.
Ian Lynagh [Tue, 23 Sep 2008 16:56:13 +0000 (16:56 +0000)]
Bump the version number to 6.11
Thomas Schilling [Sun, 21 Sep 2008 08:56:47 +0000 (08:56 +0000)]
Generalise type of 'defaultErrorHandler' so it can be used inside a Ghc session.
Ian Lynagh [Sun, 21 Sep 2008 11:15:08 +0000 (11:15 +0000)]
Make "sh -e boot" work
Ian Lynagh [Sun, 21 Sep 2008 11:14:36 +0000 (11:14 +0000)]
Use -f rather than -e for portability
Ian Lynagh [Sun, 21 Sep 2008 00:04:06 +0000 (00:04 +0000)]
Add some special cases for putting dph in bindists
Ian Lynagh [Sat, 20 Sep 2008 23:29:45 +0000 (23:29 +0000)]
Escape a hash in the Makefile (it was breaking source dist creation)
Simon Marlow [Tue, 23 Sep 2008 17:39:04 +0000 (17:39 +0000)]
Disallow package flags in OPTIONS_GHC pragmas (#2499)
Simon Marlow [Tue, 23 Sep 2008 14:49:56 +0000 (14:49 +0000)]
#2566: emit a warning for 'ghc -c foo.bar'
$ ghc -c foo.bar
Warning: the following files would be used as linker inputs, but linking is not being done: foo.bar
ghc: no input files
Usage: For basic information, try the `--help' option.
Simon Marlow [Mon, 22 Sep 2008 21:09:15 +0000 (21:09 +0000)]
Fix to new executable allocation code (fixed print002 etc.)
The problem here is caused by the fact that info tables include a
relative offset to the string naming the constructor. Executable
memory now resides at two places in the address space: one for writing
and one for executing. In the info tables generated by GHCi, we were
calculating the offset relative to the writable instance, rather than
the executable instance, which meant that the GHCi debugger couldn't
find the names for constructors it found in the heap.
Simon Marlow [Mon, 22 Sep 2008 15:28:27 +0000 (15:28 +0000)]
clean sm/Evac_thr.c and sm/Scav_thr.c
Simon Marlow [Mon, 22 Sep 2008 15:23:40 +0000 (15:23 +0000)]
add -XNewQualifiedOperators (Haskell' qualified operator syntax)
simonpj@microsoft.com [Sat, 20 Sep 2008 21:20:10 +0000 (21:20 +0000)]
Fix Trac #2597 (first bug): correct type checking for empty list
The GHC front end never generates (ExplicitList []), but TH can.
This patch makes the typechecker robust to such programs.
simonpj@microsoft.com [Sat, 20 Sep 2008 21:11:01 +0000 (21:11 +0000)]
Fix Trac #2597 (second bug): complain about an empty DoE block
When converting an empty do-block from TH syntax to HsSyn,
complain rather than crashing.
Ian Lynagh [Sat, 20 Sep 2008 18:35:34 +0000 (18:35 +0000)]
Update dependencies
Ian Lynagh [Sat, 20 Sep 2008 16:29:18 +0000 (16:29 +0000)]
Fix building with GHC 6.6
Ian Lynagh [Sat, 20 Sep 2008 01:06:35 +0000 (01:06 +0000)]
Remove fno-method-sharing from the list of static flags
It is now a dynamic flag
simonpj@microsoft.com [Sat, 20 Sep 2008 17:52:38 +0000 (17:52 +0000)]
Tidy up the treatment of dead binders
This patch does a lot of tidying up of the way that dead variables are
handled in Core. Just the sort of thing to do on an aeroplane.
* The tricky "binder-swap" optimisation is moved from the Simplifier
to the Occurrence Analyser. See Note [Binder swap] in OccurAnal.
This is really a nice change. It should reduce the number of
simplifier iteratoins (slightly perhaps). And it means that
we can be much less pessimistic about zapping occurrence info
on binders in a case expression.
* For example:
case x of y { (a,b) -> e }
Previously, each time around, even if y,a,b were all dead, the
Simplifier would pessimistically zap their OccInfo, so that we
can't see they are dead any more. As a result virtually no
case expression ended up with dead binders. This wasn't Bad
in itself, but it always felt wrong.
* I added a check to CoreLint to check that a dead binder really
isn't used. That showed up a couple of bugs in CSE. (Only in
this sense -- they didn't really matter.)
* I've changed the PprCore printer to print "_" for a dead variable.
(Use -dppr-debug to see it again.) This reduces clutter quite a
bit, and of course it's much more useful with the above change.
* Another benefit of the binder-swap change is that I could get rid of
the Simplifier hack (working, but hacky) in which the InScopeSet was
used to map a variable to a *different* variable. That allowed me
to remove VarEnv.modifyInScopeSet, and to simplify lookupInScopeSet
so that it doesn't look for a fixpoint. This fixes no bugs, but
is a useful cleanup.
* Roman pointed out that Id.mkWildId is jolly dangerous, because
of its fixed unique. So I've
- localied it to MkCore, where it is private (not exported)
- renamed it to 'mkWildBinder' to stress that you should only
use it at binding sites, unless you really know what you are
doing
- provided a function MkCore.mkWildCase that emodies the most
common use of mkWildId, and use that elsewhere
So things are much better
* A knock-on change is that I found a common pattern of localising
a potentially global Id, and made a function for it: Id.localiseId
Ian Lynagh [Fri, 19 Sep 2008 17:46:51 +0000 (17:46 +0000)]
Gix the ghcii script
The ghc executable name doesn't have a version number on Windows, so
don't put one in the script.
Ian Lynagh [Fri, 19 Sep 2008 15:30:10 +0000 (15:30 +0000)]
Create runhaskell as well as runghc
Simon Marlow [Fri, 19 Sep 2008 13:46:02 +0000 (13:46 +0000)]
On Linux use libffi for allocating executable memory (fixed #738)
Simon Marlow [Fri, 19 Sep 2008 10:26:01 +0000 (10:26 +0000)]
Move the context_switch flag into the Capability
Fixes a long-standing bug that could in some cases cause sub-optimal
scheduling behaviour.
Ian Lynagh [Fri, 19 Sep 2008 13:35:55 +0000 (13:35 +0000)]
Fix building the extralibs tarball
We now need to dig the appropriate lines out of packages, rather than
just catting libraries/extra-packages, in order to find out what the
extralibs are.
Ian Lynagh [Fri, 19 Sep 2008 13:03:32 +0000 (13:03 +0000)]
Install libffi when installing frmo a bindist
Ian Lynagh [Fri, 19 Sep 2008 12:55:28 +0000 (12:55 +0000)]
Fix how we put libffi into bindists
Ian Lynagh [Fri, 19 Sep 2008 11:58:31 +0000 (11:58 +0000)]
Don't require Parser.y in a source dist
Ian Lynagh [Fri, 19 Sep 2008 11:58:16 +0000 (11:58 +0000)]
Add HpcParser.hs to source dists
Ian Lynagh [Fri, 19 Sep 2008 11:25:22 +0000 (11:25 +0000)]
Fix the list of generated files that need to go into the source dists
simonpj@microsoft.com [Fri, 19 Sep 2008 09:31:47 +0000 (09:31 +0000)]
Improve documentation of overlapping instances
Ian Lynagh [Thu, 18 Sep 2008 19:44:24 +0000 (19:44 +0000)]
Put generated files in source dists
We don't want to require that users building source dists have alex/happy
Ian Lynagh [Thu, 18 Sep 2008 19:01:16 +0000 (19:01 +0000)]
Add libraries/syb to .darcs-boring
pepe [Thu, 18 Sep 2008 12:21:33 +0000 (12:21 +0000)]
Fix a couple of issues with :print
- Ticket #1995: Unsoundness with newtypes
- Ticket #2475: "Can't unify" error when stopped at an exception
In addition this patch adds the following:
- Unfailingness: RTTI cannot panic anymore.
In case of failure, it recovers gracefully by returning the "I know nothing" type
- A -ddump-rtti flag
pepe [Fri, 18 Apr 2008 17:23:03 +0000 (17:23 +0000)]
wibble
Chaddai Fouche [Thu, 18 Sep 2008 16:52:56 +0000 (16:52 +0000)]
RichTokenStream support
This patch adds support for raw token streams, that contain more
information than normal token streams (they contains comments at
least). The "lexTokenStream" function brings this support to the
Lexer module. In addition to that, functions have been added to
the GHC module to make easier to recover of the token stream of
a module ("getTokenStream").
Building on that, I added what could be called "rich token
stream": token stream to which have been added the source string
corresponding to each token, the function addSourceToToken takes
a StringBuffer and a starting SrcLoc and a token stream and build
this rich token stream. getRichTokenStream is a convenience
function to get a module rich token stream. "showRichTokenStream"
use the SrcLoc information in such a token stream to get a string
similar to the original source (except unsignificant
whitespaces). Thus "putStrLn . showRichTokenStream =<<
getRichTokenStream s mod" should print a valid module source, the
interesting part being to modify the token stream between the get
and the show of course.
Ian Lynagh [Thu, 18 Sep 2008 14:33:12 +0000 (14:33 +0000)]
When passing gcc -B, also tell it where the mingw include directory is
Ian Lynagh [Thu, 18 Sep 2008 14:31:18 +0000 (14:31 +0000)]
Don't put the mingw directory in RTS's package.conf
Ian Lynagh [Thu, 18 Sep 2008 13:44:43 +0000 (13:44 +0000)]
Be more forceful when cleaning in compiler/ and ghc/
Now that the Cabal file is generated by configure, it would be nice
if clean worked even if the cabal file is missing. So now we just rm -rf
the dist directory.
Ian Lynagh [Thu, 18 Sep 2008 13:36:36 +0000 (13:36 +0000)]
Generate ghc.cabal and ghc-bin.cabal with configure
This allows us to put the proper version number into them
Ian Lynagh [Thu, 18 Sep 2008 12:25:16 +0000 (12:25 +0000)]
Make the ghci scripts point to the versioned GHC program, not just "ghc"
simonpj@microsoft.com [Thu, 18 Sep 2008 16:17:19 +0000 (16:17 +0000)]
Fix Trac #1470: improve handling of recursive instances (needed for SYB3)
This bug has been hanging around for a long time, as you'll see by its
number. The fix implements a feature that is really needed by SYB3, to
allow an instance to (rather indirectly) refer to itself. The trickiness
comes when solving the superclass constraints.
The whoel issue is explained in Note [Recursive instances and superclases]
in TcSimplify.
In cracking this one I found I could remove the WantSCs argument to the
ReduceMe flag, which is a worthwhile simplification. Good!
simonpj@microsoft.com [Thu, 18 Sep 2008 15:56:02 +0000 (15:56 +0000)]
Comments only
simonpj@microsoft.com [Thu, 18 Sep 2008 15:52:45 +0000 (15:52 +0000)]
Replace ASSERT with WARN, and explain why
The DPH library tripped an ASSERT. The code is actually OK, but it's
badly-optimised so I changed it to WARN. The issue here is explained
in ClosureInfo, Note [Unsafe coerce complications].