12 years agoCorrect spelling [Wed, 10 Jan 2007 13:33:24 +0000 (13:33 +0000)] 
Correct spelling

12 years agoSort rules and instances lexicographically in interface files [Wed, 10 Jan 2007 12:43:27 +0000 (12:43 +0000)] 
Sort rules and instances lexicographically in interface files

We should sort rules and instances lexicographically, not by Unique,
in interface files, else we get unnecessary "rules changed" and hence
unnecessary recompilation.

This bug has been there since the interface-file upheaval that put Names
into IfaceSyn.

12 years agoThis patch teaches ghci to announce that a module has beeen loaded in debugging mode
Pepe Iborra [Thu, 11 Jan 2007 11:23:51 +0000 (11:23 +0000)] 
This patch teaches ghci to announce that a module has beeen loaded in debugging mode

Usually ghci announces when a module has been loaded interpreted. Now it will also announce it when the module has been instrumented for debugging

12 years agoFix some text in the GHCi help message that was going over 80 columns
Pepe Iborra [Thu, 11 Jan 2007 11:17:42 +0000 (11:17 +0000)] 
Fix some text in the GHCi help message that was going over 80 columns

12 years agoComments only
Pepe Iborra [Thu, 11 Jan 2007 11:17:07 +0000 (11:17 +0000)] 
Comments only

12 years agoComments only [Thu, 11 Jan 2007 09:16:23 +0000 (09:16 +0000)] 
Comments only

12 years agoMake the LiberateCase transformation understand associated types [Thu, 11 Jan 2007 09:15:33 +0000 (09:15 +0000)] 
Make the LiberateCase transformation understand associated types

Consider this FC program:
data family AT a :: *
data instance AT Int = T1 Int Int

f :: AT Int -> Int
f t = case t of DEFAULT -> <body>

We'd like to replace the DEFAULT by a use of T1, so that if
we scrutinise t inside <body> we share the evaluation:

f t = case (t `cast` co) of T1 x y -> <body>

I decided to do this as part of the liberate-case transformation,
which is already trying to avoid redundant evals.

The new transformation requires knowledge of the family instance
environment, so I had to extend ModGuts to carry the fam_inst_env,
and put that envt into the liberate-case environment.

Otherwise it's all pretty straightforward.

12 years agoAdd comments about invariants [Thu, 11 Jan 2007 09:10:03 +0000 (09:10 +0000)] 
Add comments about invariants

12 years agoComments [Thu, 11 Jan 2007 09:09:22 +0000 (09:09 +0000)] 

12 years agoComments [Thu, 11 Jan 2007 09:08:37 +0000 (09:08 +0000)] 

12 years agoAdd the function TypeRep.pprTypeApp, and use it [Thu, 11 Jan 2007 09:07:04 +0000 (09:07 +0000)] 
Add the function TypeRep.pprTypeApp, and use it

  pprTypeApp :: SDoc -> [Type] -> SDoc
  pprTypeApp pp tys = hang pp 2 (sep (map pprParendType tys))

12 years agoLog message for: Fix a nasty recursive loop in typechecking interface files [Thu, 11 Jan 2007 09:02:52 +0000 (09:02 +0000)] 
Log message for: Fix a nasty recursive loop in typechecking interface files

(Alas, Darcs failed to record my log-message for the above patch,
so this patch is an attempt to add the log message retrospectively.)

Roman found a case where the type-checker for interface files
would go into a loop.  Here it is:

  module BarAT where
    class Foo a where
      data FooT a :: *
      int :: FooT a -> Int

  module Baz where
    import BarAT
    foo :: FooT Int -> Int
    foo = foo

The trouble turned out to be that Foo gives rise to a *newtype*,
and using a newtpe caused a little bit too much strictness in
BuildTyCl.mkNewTyConRhs.  Specifically, mkNewTypeCoercion did pattern
matching, which forced the call to eta_reduce in mkNewTyConRhs.

This is all too delicate really.  But for now I've fixed the bug,
and added an explanatory comment.  I'll add a test for it, in

12 years agoLog-message for: Improve command-line parser (add OptIntSuffix); make -fliberate... [Thu, 11 Jan 2007 09:01:23 +0000 (09:01 +0000)] 
Log-message for: Improve command-line parser (add OptIntSuffix); make -fliberate-case-threshold dynamic

(Alas, Darcs failed to record my log-message for the above patch,
so this patch is an attempt to add the log message retrospectively.)

Parsing options numeric arguments, such as
for dynamic flags wasn't being handled well.  I elaborated the
command-line parser to have a new constructor, OptIntSuffix, for this
case, and did the consequential changes.

This patch also makes the -fliberate-case-threshold flag into a
dynamic flag.

12 years agoImprove command-line parser (add OptIntSuffix); make -fliberate-case-threshold dynamic [Thu, 11 Jan 2007 08:48:51 +0000 (08:48 +0000)] 
Improve command-line parser (add OptIntSuffix); make -fliberate-case-threshold dynamic

12 years agoRemove redundant import [Thu, 11 Jan 2007 08:47:02 +0000 (08:47 +0000)] 
Remove redundant import

12 years agoAdd comments (AT-related) [Thu, 11 Jan 2007 08:46:45 +0000 (08:46 +0000)] 
Add comments (AT-related)

12 years agoSpelling correction only [Thu, 11 Jan 2007 08:45:21 +0000 (08:45 +0000)] 
Spelling correction only

12 years agoFix a nasty recursive loop in typechecking interface files [Thu, 11 Jan 2007 08:29:50 +0000 (08:29 +0000)] 
Fix a nasty recursive loop in typechecking interface files

12 years agoUpdate comments [Thu, 11 Jan 2007 08:29:07 +0000 (08:29 +0000)] 
Update comments

12 years agoChanging bootstrapping for pipes between debugger and debuggee [Wed, 10 Jan 2007 20:26:35 +0000 (20:26 +0000)] 
Changing bootstrapping for pipes between debugger and debuggee

 - Now we use two pipes and a fork rather than use named pipes
 - We use the HPCRIX env var to send the pipe numbers in %d:%d format
 - We now always breakpoint for special events
 - We check to see we are the original process before each breakpoint event
   sub processes are not debugged; this lets us debug the debugger.

12 years agoDynamically allocating the tix box breakpoint array [Tue, 9 Jan 2007 19:46:31 +0000 (19:46 +0000)] 
Dynamically allocating the tix box breakpoint array

12 years agoAdding command channel for the hpc debugger to the hpc part of the RTS [Tue, 9 Jan 2007 19:40:11 +0000 (19:40 +0000)] 
Adding command channel for the hpc debugger to the hpc part of the RTS

12 years agocheckTauTvUpdate: take synonym families into account
Manuel M T Chakravarty [Wed, 10 Jan 2007 18:44:51 +0000 (18:44 +0000)] 
checkTauTvUpdate: take synonym families into account

12 years agoremove old building guide, change links to point to the wiki
Simon Marlow [Wed, 10 Jan 2007 16:11:12 +0000 (16:11 +0000)] 
remove old building guide, change links to point to the wiki

12 years agoFix apparently-long-standing bug in FloatIn [Wed, 10 Jan 2007 11:13:44 +0000 (11:13 +0000)] 
Fix apparently-long-standing bug in FloatIn

The float-in pass wasn't doing the right thing when you have

let x{rule mentions y} = rhs in body

It allowed a binding mentioning y to float into the body, which is
obviously wrong.  I think this bug has been there a long time; I don't
really know why it has not come up before.

It showed up when compiling Text.Regex.Base.Context with WAY=p in
package regex-base.

12 years agoComments only [Wed, 10 Jan 2007 11:13:31 +0000 (11:13 +0000)] 
Comments only

12 years agoHandle synonym families in check_tau_type
Manuel M T Chakravarty [Tue, 9 Jan 2007 21:55:41 +0000 (21:55 +0000)] 
Handle synonym families in check_tau_type

12 years agoPreserve rigidity for GADTs when typechecking explicit tuples [Tue, 9 Jan 2007 13:53:14 +0000 (13:53 +0000)] 
Preserve rigidity for GADTs when typechecking explicit tuples

12 years agoFix egregious bug in implication constraints [Tue, 9 Jan 2007 13:47:19 +0000 (13:47 +0000)] 
Fix egregious bug in implication constraints

Build an implication constraint if there is a non-trivial
refinement, even if there are no other 'given' constraints.

Test = gadt/set.hs

12 years agoreorganise text in the "using packages" section
Simon Marlow [Tue, 9 Jan 2007 09:17:58 +0000 (09:17 +0000)] 
reorganise text in the "using packages" section

12 years agoUnbreak usage of ASSERTM
Pepe Iborra [Tue, 9 Jan 2007 07:42:58 +0000 (07:42 +0000)] 
Unbreak usage of ASSERTM

12 years agoWhen setting stdout and stderr to NoBuffering in GHCi, do stdin too.
Ian Lynagh [Mon, 8 Jan 2007 16:28:38 +0000 (16:28 +0000)] 
When setting stdout and stderr to NoBuffering in GHCi, do stdin too.
Fixes trac #929.
Merge to 6.6 branch.

12 years agofix version checking of .hi files
Simon Marlow [Mon, 8 Jan 2007 15:10:06 +0000 (15:10 +0000)] 
fix version checking of .hi files
I broke it during my recent interface-file overhaul

12 years agoHave the splitter duplicate the .note.GNU-stack
Ian Lynagh [Mon, 8 Jan 2007 12:59:16 +0000 (12:59 +0000)] 
Have the splitter duplicate the .note.GNU-stack

12 years agoHave the mangler keep .note.GNU-stack
Ian Lynagh [Mon, 8 Jan 2007 12:26:42 +0000 (12:26 +0000)] 
Have the mangler keep .note.GNU-stack

12 years agoTry to emulate the output of 'deriving Show' in the Term pretty printer
Pepe Iborra [Sun, 7 Jan 2007 20:43:19 +0000 (20:43 +0000)] 
Try to emulate the output of 'deriving Show' in the Term pretty printer

12 years agoExtended the debugger documentation with a 'tips' section
Pepe Iborra [Sun, 7 Jan 2007 19:12:27 +0000 (19:12 +0000)] 
Extended the debugger documentation with a 'tips' section

12 years agoMore informative message in a breakpoint
Pepe Iborra [Sat, 6 Jan 2007 10:07:36 +0000 (10:07 +0000)] 
More informative message in a breakpoint

12 years agoReload modules after ':break stop'
Pepe Iborra [Sat, 6 Jan 2007 10:05:09 +0000 (10:05 +0000)] 
Reload modules after ':break stop'

This is necessary to revert CAFs. Previously to this patch the user would get a msg "You may need to reload your modules". This patch takes care of that

12 years agoRemove a tracing statement, change a comment, and make more obvious an unexpected...
Pepe Iborra [Fri, 5 Jan 2007 17:48:58 +0000 (17:48 +0000)] 
Remove a tracing statement, change a comment, and make more obvious an unexpected condition

12 years agoImproved an error message, giving a more concrete suggestion
Pepe Iborra [Fri, 5 Jan 2007 17:45:25 +0000 (17:45 +0000)] 
Improved an error message, giving a more concrete suggestion

12 years agoThis patch fixes ticket #1083 in the ghci debugger
Pepe Iborra [Fri, 5 Jan 2007 17:38:51 +0000 (17:38 +0000)] 
This patch fixes ticket #1083 in the ghci debugger

A module loaded under debugging mode but owning no breakpoints was erroneously identified by ghci as a non-under debugging module, producing a confusing error msg when the user tried to set a breakpoint

The fix inserts an empty list of sites in the module-sites dictionary used by the debugger

12 years agoUpdates to the ghci debugger docs
Pepe Iborra [Sun, 31 Dec 2006 13:28:44 +0000 (13:28 +0000)] 
Updates to the ghci debugger docs

12 years agoFixed errors in "clunky" definition for pattern guards [Sun, 7 Jan 2007 21:52:49 +0000 (21:52 +0000)] 
Fixed errors in "clunky" definition for pattern guards
Amusingly, this little error in the GHC manual came from the original
SPJ proposal for pattern guards from 1997 and even slipped into the
Haskell Workshop 2000 paper by SPJ and Martin Erwig.  It's almost 10
years old.

12 years agoRemove the DocEntity type. Fixes the problem with duplicate error messages at [Fri, 5 Jan 2007 17:43:46 +0000 (17:43 +0000)] 
Remove the DocEntity type. Fixes the problem with duplicate error messages at
its root. Also gets rid of the getDeclMainBinder function which isn't needed

12 years agoEagerly raise a blocked exception when entering 'unblock' or exiting 'block'
Simon Marlow [Fri, 5 Jan 2007 13:57:15 +0000 (13:57 +0000)] 
Eagerly raise a blocked exception when entering 'unblock' or exiting 'block'
This fixes #1047

12 years agowrap Main.main in GHC.TopHandler.runIOFastExit
Simon Marlow [Fri, 5 Jan 2007 11:46:08 +0000 (11:46 +0000)] 
wrap Main.main in GHC.TopHandler.runIOFastExit
This is so that exceptions raised by Main.main do exactly the same
thing as they would in a compiled program, including writing the
message to stderr and shutting down with the correct exit code.

12 years agodisable an incorrect ASSERTion in the non-THREADED_RTS case (bug #1067)
Simon Marlow [Fri, 5 Jan 2007 12:34:03 +0000 (12:34 +0000)] 
disable an incorrect ASSERTion in the non-THREADED_RTS case (bug #1067)

12 years agoHsSyn clean up for indexed types
Manuel M T Chakravarty [Fri, 5 Jan 2007 01:26:19 +0000 (01:26 +0000)] 
HsSyn clean up for indexed types
- This patch cleans up the HsSyn representation of type family declarations.
- The new representation is not only less delicate, it also simplified teh code
  a bit.
- I took the opportunity of stream lining the terminology and function names
  at the same time.
- I also updated the description on the wiki at

12 years agoFix and improve deriving for indexed data types
Manuel M T Chakravarty [Thu, 4 Jan 2007 01:31:56 +0000 (01:31 +0000)] 
Fix and improve deriving for indexed data types
- The test for being able to derive the requested classes needs to be made
  with the representation tycon (not the family tycon).
- Standalone deriving for indexed types requires the instance types in the
  derive clause to match a data/newtype instance exactly (modulo alpha).

12 years agoRecord-ise the liberate-case envt, in preparation for new stuff [Wed, 3 Jan 2007 17:59:32 +0000 (17:59 +0000)] 
Record-ise the liberate-case envt, in preparation for new stuff

12 years agoAdd a type synonym for FamInstEnvs [Wed, 3 Jan 2007 17:59:13 +0000 (17:59 +0000)] 
Add a type synonym for FamInstEnvs

12 years agoComments only [Wed, 3 Jan 2007 17:56:38 +0000 (17:56 +0000)] 
Comments only

12 years agoComments only [Wed, 3 Jan 2007 17:55:58 +0000 (17:55 +0000)] 
Comments only

12 years agoBe more relaxed about reporting ambiguous class methods [Wed, 3 Jan 2007 16:07:03 +0000 (16:07 +0000)] 
Be more relaxed about reporting ambiguous class methods
(MERGE to STABLE branch, pls)

This patch makes us a bit more relaxed about ambiguous
class method types.  See tc223 for an example.

Reported by Yitzchak Gale

12 years agoFix bug in cast optimisation; fixes Trac #995 [Wed, 3 Jan 2007 15:35:30 +0000 (15:35 +0000)] 
Fix bug in cast optimisation; fixes Trac #995

There was a plain bug in the cast-optimiation code -- a call to
splitCoercionKind_maybe instead of coercionKind!  Result was that
we missed useful opportunities to move casts around.  Trac #995
is an example, but I bet there are more.

12 years agoFix stupid error in rehashing TcRnDriver (fixes TH test errors) [Wed, 3 Jan 2007 12:15:40 +0000 (12:15 +0000)] 
Fix stupid error in rehashing TcRnDriver (fixes TH test errors)

12 years agoFix several bugs related to finding free variables [Wed, 3 Jan 2007 11:50:09 +0000 (11:50 +0000)] 
Fix several bugs related to finding free variables

Now that coercion variables mention types, a type-lambda binder can
have free variables.  This patch adjusts the free-variable finder
to take account of this, by treating Ids and TyVars more uniformly.

In addition, I fixed a bug in the specialiser that was missing a
free type variable in a binder.  And a bug in tyVarsOfInst that
was missing the type variables in the kinds of the quantified tyvars.

12 years agoComments only [Wed, 3 Jan 2007 10:35:24 +0000 (10:35 +0000)] 
Comments only

12 years agoMake warnings come out in deterministic order [Wed, 3 Jan 2007 10:24:38 +0000 (10:24 +0000)] 
Make warnings come out in deterministic order

Fixes Trac #1053

12 years agoChange to Unix line-line-endings [Wed, 3 Jan 2007 10:24:19 +0000 (10:24 +0000)] 
Change to Unix line-line-endings

12 years agoAdd newline at end [Wed, 3 Jan 2007 10:24:08 +0000 (10:24 +0000)] 
Add newline at end

12 years agoBetter error messages for deriving [Wed, 3 Jan 2007 09:54:12 +0000 (09:54 +0000)] 
Better error messages for deriving

12 years agoFix another buglet in HsDoc stuff [Wed, 3 Jan 2007 09:40:58 +0000 (09:40 +0000)] 
Fix another buglet in HsDoc stuff

A 'foreign export' represents an *occurrence* of a Haskell name,
not a *binding* site for the Haskell name.

(This was making cc012 fail; Trac #1054.

12 years agoComments only [Wed, 3 Jan 2007 08:25:17 +0000 (08:25 +0000)] 
Comments only

12 years agoStandalone deriving wibbles: keyword is 'derive' not 'derived'; and add flag document... [Tue, 2 Jan 2007 16:17:52 +0000 (16:17 +0000)] 
Standalone deriving wibbles: keyword is 'derive' not 'derived'; and add flag documentation

12 years agoDocmunent stand-alone deriving [Tue, 2 Jan 2007 16:12:18 +0000 (16:12 +0000)] 
Docmunent stand-alone deriving

I also re-organised the type-system extension section, which has grown rather big.

12 years agoBig tidy-up of deriving code [Tue, 2 Jan 2007 15:46:10 +0000 (15:46 +0000)] 
Big tidy-up of deriving code

This tidy-up, triggered by Trac #1068, re-factors the way that 'deriving'
happens.  It took me way longer than I had intended.  The main changes,
by far are to TcDeriv; everyting else is a minor consequence.

While I was at it, I changed the syntax for standalone deriving, so that
it goes
derive instance Show (T a)

(instead of "derive Show for T").  However, there's still an implicit
context, generated by the deriving code, and I wonder if it shouldn't really
derive instance (..) => Show (T a)
but I have left it simple for now.

I also added a function Type.substTyVars, and used it here and there, which
led to some one-line changes otherwise unrelated (sorry).

Loose ends:
  * 'deriving Typeable' for indexed data types is still not right
  * standalone deriving should be documented

12 years agoFixed bug #744 (ghc-pkg lies about location of haddock-interfaces and haddock-html) [Tue, 2 Jan 2007 13:46:22 +0000 (13:46 +0000)] 
Fixed bug #744 (ghc-pkg lies about location of haddock-interfaces and haddock-html)

12 years agoAdded ghc man page to RPM [Tue, 2 Jan 2007 13:45:46 +0000 (13:45 +0000)] 
Added ghc man page to RPM

12 years agoAdded the GHC commentary to the RPM [Tue, 2 Jan 2007 13:42:38 +0000 (13:42 +0000)] 
Added the GHC commentary to the RPM

12 years agoStylistic change: Use %{_prefix} instead of %{prefix} [Tue, 2 Jan 2007 13:40:33 +0000 (13:40 +0000)] 
Stylistic change: Use %{_prefix} instead of %{prefix}

12 years agoThe ghc package is not relocatable (yet), so don't claim that this is the case [Tue, 2 Jan 2007 13:39:23 +0000 (13:39 +0000)] 
The ghc package is not relocatable (yet), so don't claim that this is the case

12 years agoRemoved some trailing spaces [Tue, 2 Jan 2007 13:38:09 +0000 (13:38 +0000)] 
Removed some trailing spaces

12 years agoUpdate reference to to refer to instead
Ian Lynagh [Sun, 31 Dec 2006 14:34:43 +0000 (14:34 +0000)] 
Update reference to to refer to instead

12 years agoWarning police: Added missing #include [Sat, 30 Dec 2006 13:30:57 +0000 (13:30 +0000)] 
Warning police: Added missing #include

12 years agoStandardized Makefile for man page [Sat, 30 Dec 2006 11:56:23 +0000 (11:56 +0000)] 
Standardized Makefile for man page
Use our standard build machinery for building, installing and cleaning the
man page. Do not use deprecated -<num> option for 'head'. Use $(RM) instead
of explicit 'rm -f' for better portability.

Note that we always build/install the man page with the 'install-docs' target
now, this is the usual behaviour. "GhcManpages is dead, Jim..."

This patch should unbreak 'make dist', too.

12 years agoMake dicts for arbitrary type equalities
Manuel M T Chakravarty [Fri, 29 Dec 2006 20:33:00 +0000 (20:33 +0000)] 
Make dicts for arbitrary type equalities

12 years agoEqPred pretty prints as ~ and equalities without brackets
Manuel M T Chakravarty [Fri, 29 Dec 2006 20:17:51 +0000 (20:17 +0000)] 
EqPred pretty prints as ~ and equalities without brackets

12 years agoConstruction of EqPred dictionaries
Manuel M T Chakravarty [Fri, 29 Dec 2006 18:13:57 +0000 (18:13 +0000)] 
Construction of EqPred dictionaries

12 years agodata family declarations are fine without any type arguments
Manuel M T Chakravarty [Fri, 29 Dec 2006 18:11:22 +0000 (18:11 +0000)] 
data family declarations are fine without any type arguments

12 years agoAdd missing case for documented types in the type desugarer [Fri, 29 Dec 2006 16:32:24 +0000 (16:32 +0000)] 
Add missing case for documented types in the type desugarer

12 years agoAvoid duplicate error report when renaming HsDoc stuff [Fri, 29 Dec 2006 14:15:57 +0000 (14:15 +0000)] 
Avoid duplicate error report when renaming HsDoc stuff

This patch is a bit of a hack to avoid a duplicate error when checking
class C a where
  op :: a -> a
  op2 x = x
(This is tcfail077)

For reasons I don't understand, the decl of op2 generates an HsDeclEntity,
and that gives a renamer error which duplicates the (better) one that
comes from rnMethodBinds.

A better fix might be to get rid of HsDeclEntities altogether.

12 years agoAdd newline to end of file [Fri, 29 Dec 2006 13:34:56 +0000 (13:34 +0000)] 
Add newline to end of file

12 years agoAdding a GENERATED pragma [Fri, 29 Dec 2006 07:29:48 +0000 (07:29 +0000)] 
Adding a GENERATED pragma

Adding a {-# GENERATED "SourceFile" SourceSpan #-} <expr> pragma.
This will be used to generate coverage for tool generated (or quoted) code.
The pragma states the the expression was generated/quoted from the stated
source file and source span.

12 years agoParse and desugar equational constraints
Manuel M T Chakravarty [Thu, 28 Dec 2006 01:03:48 +0000 (01:03 +0000)] 
Parse and desugar equational constraints
- With -findexed-types, equational constraints can appear in contexts
  wherever class predicates are allowed.
- The two argument types need to be boxed and rank 0.

12 years agoRemove a reference to GHC.Exts.Ptr in stage1
Pepe Iborra [Fri, 22 Dec 2006 16:55:41 +0000 (16:55 +0000)] 
Remove a reference to GHC.Exts.Ptr in stage1

Hopefully this will help to restore ability to build HEAD on GHC 5.0x systems

12 years agoHandle LongArg's in the FFI on x86
Ian Lynagh [Fri, 22 Dec 2006 14:15:54 +0000 (14:15 +0000)] 
Handle LongArg's in the FFI on x86

12 years agoImprove documentation about packages [Fri, 22 Dec 2006 14:15:51 +0000 (14:15 +0000)] 
Improve documentation about packages

12 years agoRemove ' in cpp error
Ian Lynagh [Fri, 22 Dec 2006 13:39:40 +0000 (13:39 +0000)] 
Remove ' in cpp error

12 years agoDocumentation for class contexts in data-constructor declarations [Fri, 22 Dec 2006 09:34:31 +0000 (09:34 +0000)] 
Documentation for class contexts in data-constructor declarations

12 years agoAllow a word-sized argument for STKCHECK
Ian Lynagh [Thu, 21 Dec 2006 02:38:25 +0000 (02:38 +0000)] 
Allow a word-sized argument for STKCHECK

12 years agoParse and use ghci nofib output
Ian Lynagh [Wed, 20 Dec 2006 22:07:15 +0000 (22:07 +0000)] 
Parse and use ghci nofib output

12 years agoAdd hook to fam inst consistency check to GHCi/--make
Manuel M T Chakravarty [Thu, 21 Dec 2006 00:40:58 +0000 (00:40 +0000)] 
Add hook to fam inst consistency check to GHCi/--make

12 years agoFix import lists
Pepe Iborra [Wed, 20 Dec 2006 04:24:17 +0000 (04:24 +0000)] 
Fix import lists

12 years agoDeriving for indexed newtypes
Manuel M T Chakravarty [Tue, 19 Dec 2006 21:30:17 +0000 (21:30 +0000)] 
Deriving for indexed newtypes
- The isomorphism-based newtype-deriving isn't very useful for indexed types
  right now as it rejects all recursive declarations, and we have to mark
  all indexed type instances as recurrsive as we can't guarantee that future
  instances aren't going to make them part of a recursive group.

12 years agoFixed uninitialised FunBind fun_tick field
Manuel M T Chakravarty [Tue, 19 Dec 2006 19:25:06 +0000 (19:25 +0000)] 
Fixed uninitialised FunBind fun_tick field

12 years agoAdd HscTypes.hi-boot-6 so builds with older GHCs succeed
Ian Lynagh [Tue, 19 Dec 2006 15:59:54 +0000 (15:59 +0000)] 
Add HscTypes.hi-boot-6 so builds with older GHCs succeed

12 years agoDeriving for indexed data types
Manuel M T Chakravarty [Mon, 18 Dec 2006 21:12:05 +0000 (21:12 +0000)] 
Deriving for indexed data types
- This patch implements deriving clauses for data instance declarations
  (toplevel and associated)
- Doesn't support standalone deriving.  This could be easily supported,
  but requires an extension of the syntax of standalone deriving clauses.
  Björn, fancy adding this?
- We cannot derive Typeable.  This seems a problem of notation, more than
  anything else.  Why?  For a binary vanilla data type "T a b", we would
  generate an instance Typeable2 T; ie, the instance is for the constructor
  alone.  In the case of a family instance, such as (S [a] (Maybe b)), we
  simply have no means to denote the associated constuctor.  It appears to
  require type level lambda - something like (/\a b. S [a] (Maybe b).
- Derivings are for *individual* family *instances*, not for entire families.
  Currently, I know of no simple translation of class instances for entire
  families to System F_C.  This actually seems to be similar to implementing
  open data types à la Löh & Hinze.
- This patch only covers data types, not newtypes.

12 years agoDon't overwrite old memory with 0xaa when doing a realloc
Ian Lynagh [Mon, 18 Dec 2006 15:24:23 +0000 (15:24 +0000)] 
Don't overwrite old memory with 0xaa when doing a realloc