ghc-hetmet.git
13 years agoComments only
simonpj@microsoft.com [Thu, 2 Oct 2008 13:28:33 +0000 (13:28 +0000)]
Comments only

13 years agoZap dead-ness info appropriately in SpecConstr
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.)

13 years agoSuppress invalid Core Lint complaint about lack of constructors
simonpj@microsoft.com [Thu, 2 Oct 2008 13:24:26 +0000 (13:24 +0000)]
Suppress invalid Core Lint complaint about lack of constructors

13 years agoadd some more GC roots (fixes conc048, and possibly some others)
Simon Marlow [Wed, 1 Oct 2008 16:44:27 +0000 (16:44 +0000)]
add some more GC roots (fixes conc048, and possibly some others)

13 years agoDocument +RTS -hT
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

13 years agofix new-qualified-operators link
Simon Marlow [Wed, 1 Oct 2008 16:31:05 +0000 (16:31 +0000)]
fix new-qualified-operators link

13 years agoProper error message for unsupported pattern signatures
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

13 years agoPrevent excessive inlining with DPH
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

13 years agoOn Windows, check that we have a good version of windres when configuring
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

13 years agoCall $(PERL) rather than perl when making the manpage
Ian Lynagh [Tue, 30 Sep 2008 15:50:54 +0000 (15:50 +0000)]
Call $(PERL) rather than perl when making the manpage

13 years agodon't install the installPackage program
Ian Lynagh [Tue, 30 Sep 2008 14:57:14 +0000 (14:57 +0000)]
don't install the installPackage program

13 years agoFix #2637: conc032(threaded2) failure
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.

13 years agoRemove outdated link to OGI webpage
Simon Marlow [Tue, 30 Sep 2008 15:09:12 +0000 (15:09 +0000)]
Remove outdated link to OGI webpage

13 years agoTFs: Fixed InstContextNorm (and simplification of IPs)
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

13 years agoTcSimplify.reduceImplication: clean up
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

13 years agoMake sure to zonk the kind of coercion variables
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

13 years agoRemover PROT_EXEC flag from mmap()
Simon Marlow [Tue, 30 Sep 2008 14:18:42 +0000 (14:18 +0000)]
Remover PROT_EXEC flag from mmap()
Needed for #738 fix

13 years agoFix #2410: carefully generate unique names for CAF CCs
Simon Marlow [Tue, 30 Sep 2008 14:18:12 +0000 (14:18 +0000)]
Fix #2410: carefully generate unique names for CAF CCs

13 years agofix #2594: we were erroneously applying masks, as the reporter suggested
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.

13 years agoUnconditionalize definition of DYNAMIC_* so that libffi.so/.dll is removed even when...
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

13 years agoType families: need to instantiate flexible skolems before other flexibles
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

13 years agoFix warnings
Manuel M T Chakravarty [Mon, 29 Sep 2008 14:22:27 +0000 (14:22 +0000)]
Fix warnings

13 years agoType families: consider subst rules both way
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

13 years agoClean up a bit and improve an error message
pepe [Fri, 26 Sep 2008 21:14:29 +0000 (21:14 +0000)]
Clean up a bit and improve an error message

13 years agoDon't capture error calls in tryUser
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)

13 years agotweaks to this section of the docs
Simon Marlow [Sat, 27 Sep 2008 14:18:34 +0000 (14:18 +0000)]
tweaks to this section of the docs

13 years agoAdd -outputdir flag (#2295)
Simon Marlow [Sat, 27 Sep 2008 14:18:22 +0000 (14:18 +0000)]
Add -outputdir flag (#2295)

13 years agooops, forgot to add -XNewQualifiedOperators to the flags table
Simon Marlow [Tue, 23 Sep 2008 14:04:49 +0000 (14:04 +0000)]
oops, forgot to add -XNewQualifiedOperators to the flags table

13 years agoFix making OS X installers from source tarballs
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.

13 years agoMake the matching of the filename ghc.exe case insensitive, fixes bug #2603
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

13 years agoFix #2411: missing case for CATCH_STM_FRAME in raiseAsync()
Simon Marlow [Fri, 26 Sep 2008 23:28:06 +0000 (23:28 +0000)]
Fix #2411: missing case for CATCH_STM_FRAME in raiseAsync()

13 years agoFix parsing of -ignore-package flag.
Bertram Felgenhauer [Thu, 25 Sep 2008 05:38:20 +0000 (05:38 +0000)]
Fix parsing of -ignore-package flag.

13 years agoAdd an example of how to use SCCs to the user guide
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

13 years agoAdd some description of the +RTS -t/-s/-S output
Ian Lynagh [Fri, 26 Sep 2008 20:02:03 +0000 (20:02 +0000)]
Add some description of the +RTS -t/-s/-S output

13 years agoRemove a redundant options pragma
Ian Lynagh [Fri, 26 Sep 2008 15:27:31 +0000 (15:27 +0000)]
Remove a redundant options pragma

13 years agoSplit ShowVersion etc off into a different type to DoInteractive etc
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.

13 years agoPass SRC_HC_OPTS to GHC when building GHC's Main.hs
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

13 years agoImprove runghc docs; fixes trac #2477
Ian Lynagh [Fri, 26 Sep 2008 12:44:25 +0000 (12:44 +0000)]
Improve runghc docs; fixes trac #2477

13 years agoType families: fixes in flattening & finalisation
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"

13 years agoFix the behaviour of flags like --help and --version; fixes trac #2620
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

13 years agoFollow the integer package changes
Ian Lynagh [Thu, 25 Sep 2008 13:38:55 +0000 (13:38 +0000)]
Follow the integer package changes

13 years agoType families: fix decomposition problem
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>

13 years agoDon't exit ghci if :info is called on an undefined identifier.
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.

13 years agoFix maintainer-clean
Ian Lynagh [Wed, 24 Sep 2008 23:05:53 +0000 (23:05 +0000)]
Fix maintainer-clean

13 years agoUse -f when making the runhaskell symlink
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.

13 years agoUse -perm -100 rather than -perm /a+x when looking for executable files
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.

13 years agoUse $(FIND) rather than find, as the former may be gfind
Ian Lynagh [Wed, 24 Sep 2008 12:33:23 +0000 (12:33 +0000)]
Use $(FIND) rather than find, as the former may be gfind

13 years agoLook for gfind as well as find
Ian Lynagh [Wed, 24 Sep 2008 12:30:46 +0000 (12:30 +0000)]
Look for gfind as well as find

13 years agoIn configure, don't call FPTOOLS_HADDOCK
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.

13 years agoUse $(TAR) rather than tar
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

13 years agoAdd $(strip) to a Makefile test
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.

13 years agoUse test -f rather than test -e, for portability (Solaris)
Ian Lynagh [Wed, 24 Sep 2008 12:08:40 +0000 (12:08 +0000)]
Use test -f rather than test -e, for portability (Solaris)

13 years agoRemove some dependencies on bootstrapping.conf from libraries/Makefile
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.

13 years agoBump the version number to 6.11
Ian Lynagh [Tue, 23 Sep 2008 16:56:13 +0000 (16:56 +0000)]
Bump the version number to 6.11

13 years agoGeneralise type of 'defaultErrorHandler' so it can be used inside a Ghc session.
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.

13 years agoMake "sh -e boot" work
Ian Lynagh [Sun, 21 Sep 2008 11:15:08 +0000 (11:15 +0000)]
Make "sh -e boot" work

13 years agoUse -f rather than -e for portability
Ian Lynagh [Sun, 21 Sep 2008 11:14:36 +0000 (11:14 +0000)]
Use -f rather than -e for portability

13 years agoAdd some special cases for putting dph in bindists
Ian Lynagh [Sun, 21 Sep 2008 00:04:06 +0000 (00:04 +0000)]
Add some special cases for putting dph in bindists

13 years agoEscape a hash in the Makefile (it was breaking source dist creation)
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)

13 years agoDisallow package flags in OPTIONS_GHC pragmas (#2499)
Simon Marlow [Tue, 23 Sep 2008 17:39:04 +0000 (17:39 +0000)]
Disallow package flags in OPTIONS_GHC pragmas (#2499)

13 years ago#2566: emit a warning for 'ghc -c foo.bar'
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.

13 years agoFix to new executable allocation code (fixed print002 etc.)
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.

13 years agoclean sm/Evac_thr.c and sm/Scav_thr.c
Simon Marlow [Mon, 22 Sep 2008 15:28:27 +0000 (15:28 +0000)]
clean sm/Evac_thr.c and sm/Scav_thr.c

13 years agoadd -XNewQualifiedOperators (Haskell' qualified operator syntax)
Simon Marlow [Mon, 22 Sep 2008 15:23:40 +0000 (15:23 +0000)]
add -XNewQualifiedOperators (Haskell' qualified operator syntax)

13 years agoFix Trac #2597 (first bug): correct type checking for empty list
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.

13 years agoFix Trac #2597 (second bug): complain about an empty DoE block
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.

13 years agoUpdate dependencies
Ian Lynagh [Sat, 20 Sep 2008 18:35:34 +0000 (18:35 +0000)]
Update dependencies

13 years agoFix building with GHC 6.6
Ian Lynagh [Sat, 20 Sep 2008 16:29:18 +0000 (16:29 +0000)]
Fix building with GHC 6.6

13 years agoRemove fno-method-sharing from the list of static flags
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

13 years agoTidy up the treatment of dead binders
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

13 years agoGix the ghcii script
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.

13 years agoCreate runhaskell as well as runghc
Ian Lynagh [Fri, 19 Sep 2008 15:30:10 +0000 (15:30 +0000)]
Create runhaskell as well as runghc

13 years agoOn Linux use libffi for allocating executable memory (fixed #738)
Simon Marlow [Fri, 19 Sep 2008 13:46:02 +0000 (13:46 +0000)]
On Linux use libffi for allocating executable memory (fixed #738)

13 years agoMove the context_switch flag into the Capability
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.

13 years agoFix building the extralibs tarball
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.

13 years agoInstall libffi when installing frmo a bindist
Ian Lynagh [Fri, 19 Sep 2008 13:03:32 +0000 (13:03 +0000)]
Install libffi when installing frmo a bindist

13 years agoFix how we put libffi into bindists
Ian Lynagh [Fri, 19 Sep 2008 12:55:28 +0000 (12:55 +0000)]
Fix how we put libffi into bindists

13 years agoDon't require Parser.y in a source dist 6_10_branch_has_been_forked
Ian Lynagh [Fri, 19 Sep 2008 11:58:31 +0000 (11:58 +0000)]
Don't require Parser.y in a source dist

13 years agoAdd HpcParser.hs to source dists
Ian Lynagh [Fri, 19 Sep 2008 11:58:16 +0000 (11:58 +0000)]
Add HpcParser.hs to source dists

13 years agoFix the list of generated files that need to go into the 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

13 years agoImprove documentation of overlapping instances
simonpj@microsoft.com [Fri, 19 Sep 2008 09:31:47 +0000 (09:31 +0000)]
Improve documentation of overlapping instances

13 years agoPut generated files in source dists
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

13 years agoAdd libraries/syb to .darcs-boring
Ian Lynagh [Thu, 18 Sep 2008 19:01:16 +0000 (19:01 +0000)]
Add libraries/syb to .darcs-boring

13 years agoFix a couple of issues with :print
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

13 years agowibble
pepe [Fri, 18 Apr 2008 17:23:03 +0000 (17:23 +0000)]
wibble

13 years agoRichTokenStream support
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.

13 years agoWhen passing gcc -B, also tell it where the mingw include directory is
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

13 years agoDon't put the mingw directory in RTS's package.conf
Ian Lynagh [Thu, 18 Sep 2008 14:31:18 +0000 (14:31 +0000)]
Don't put the mingw directory in RTS's package.conf

13 years agoBe more forceful when cleaning in compiler/ and ghc/
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.

13 years agoGenerate ghc.cabal and ghc-bin.cabal with configure
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

13 years agoMake the ghci scripts point to the versioned GHC program, not just "ghc"
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"

13 years agoFix Trac #1470: improve handling of recursive instances (needed for SYB3)
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!

13 years agoComments only
simonpj@microsoft.com [Thu, 18 Sep 2008 15:56:02 +0000 (15:56 +0000)]
Comments only

13 years agoReplace ASSERT with WARN, and explain why
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].

13 years agoAdd a missing "prime" (env' --> env'') thereby fixing a tripping WARN. Hurrah!
simonpj@microsoft.com [Thu, 18 Sep 2008 15:51:44 +0000 (15:51 +0000)]
Add a missing "prime" (env' --> env'') thereby fixing a tripping WARN.  Hurrah!

13 years agoFix nasty infelicity: do not short-cut empty substitution in the simplifier
simonpj@microsoft.com [Wed, 17 Sep 2008 16:29:10 +0000 (16:29 +0000)]
Fix nasty infelicity: do not short-cut empty substitution in the simplifier

I was perplexed about why an arity-related WARN was tripping. It took
me _day_ (sigh) to find that it was because SimplEnv.substExpr was taking
a short cut when the substitution was empty, thereby not subsituting for
Ids in scope, which must be done (CoreSubst Note [Extending the Subst]).

The fix is a matter of deleting the "optimisation".  Same with
CoreSubst.substSpec, although I don't know if that actually caused a
probem.

13 years agoAvoid arity reduction when doing eta-reduce
simonpj@microsoft.com [Wed, 17 Sep 2008 16:27:04 +0000 (16:27 +0000)]
Avoid arity reduction when doing eta-reduce

We like things with high arity, so when doing eta reduction
it's probably a good idea to avoid reducing arity.

13 years agoAdd extra WARN test
simonpj@microsoft.com [Wed, 17 Sep 2008 16:24:34 +0000 (16:24 +0000)]
Add extra WARN test

This warning tests that the arity of a function does not decrease.
And that it's at least as great as the strictness signature.

Failing this test isn't a disater, but it's distinctly odd and
usually indicates that not enough information is getting propagated
around, and hence you may get more simplifier iterations.

13 years agoComments only
simonpj@microsoft.com [Wed, 17 Sep 2008 16:23:50 +0000 (16:23 +0000)]
Comments only

13 years agoRe-adjust interaction between -ddump flags and force-recompilation
simonpj@microsoft.com [Wed, 17 Sep 2008 16:19:20 +0000 (16:19 +0000)]
Re-adjust interaction between -ddump flags and force-recompilation

If you say -ddump-xx we effectively add -fforce-recomp, so that you
see your dump output.  But this works badly in --make mode, because
you get the ddump output for every module, which is probably not what
you want.  This patch forces recompilation with -ddump-X only in one-shot
mode.

Of course, this only affects people using -ddump options.