ghc-hetmet.git
17 years agoTell the 6.6 branch where to find extralibs
Ian Lynagh [Wed, 6 Sep 2006 12:46:40 +0000 (12:46 +0000)]
Tell the 6.6 branch where to find extralibs

17 years agoFix exprIsConApp_maybe (wasn't dealing properly with the EqSpec of the DataCon)
simonpj@microsoft.com [Wed, 27 Sep 2006 12:53:08 +0000 (12:53 +0000)]
Fix exprIsConApp_maybe (wasn't dealing properly with the EqSpec of the DataCon)

17 years agounbreak mingw-on-cygwin (/=MSYS) builds
sof@galois.com [Tue, 26 Sep 2006 16:56:31 +0000 (16:56 +0000)]
unbreak mingw-on-cygwin (/=MSYS) builds

17 years agoRename -no-recomp to -fforce-recomp, and document it
Simon Marlow [Wed, 27 Sep 2006 13:27:07 +0000 (13:27 +0000)]
Rename -no-recomp to -fforce-recomp, and document it

17 years agoMake printing of binding results optional in GHCi, and document it
Simon Marlow [Wed, 27 Sep 2006 13:25:50 +0000 (13:25 +0000)]
Make printing of binding results optional in GHCi, and document it
You can say :set -fno-print-bind-result in GHCi to disable this behaviour.
Addresses #887

17 years agoTell the 6.6 branch where to find extralibs
Ian Lynagh [Wed, 6 Sep 2006 12:46:40 +0000 (12:46 +0000)]
Tell the 6.6 branch where to find extralibs

17 years agoChange default repo root for the 6.6 branch
Ian Lynagh [Sat, 2 Sep 2006 17:49:36 +0000 (17:49 +0000)]
Change default repo root for the 6.6 branch

17 years agoAdd source code links to Haddock docs
Simon Marlow [Fri, 8 Sep 2006 11:27:25 +0000 (11:27 +0000)]
Add source code links to Haddock docs

Right now we can only manage to add a source code link for the module,
but that's better than nothing.

I had to put the list of core packages in a Makefile variable,
$(CorePackages), so we'll have to be careful to keep this up to date.
(I could have slurped it out of libraries/core-packages with $(shell),
but that's ugly and really slow on Windows).

There are a couple of new tweakables: CorePackageSourceURL and
ExtraPackageSourceURL in config.mk.in, set these to the appropriate
patterns for generating source links.

(when we merge this patch onto the HEAD we'll have to tweak these
settings).

Unfortunately it still doesn't work for all the modules, because
modules compiled without -cpp don't get any #line directives.  More
hackery required...

17 years agoFix derived instances (again); prevents infinite superclass loop
simonpj@microsoft.com [Tue, 26 Sep 2006 14:42:30 +0000 (14:42 +0000)]
Fix derived instances (again); prevents infinite superclass loop

17 years agoVarious documentation improvements suggested by Bulat Ziganshin
Ian Lynagh [Mon, 25 Sep 2006 23:18:55 +0000 (23:18 +0000)]
Various documentation improvements suggested by Bulat Ziganshin

17 years agoFix comment/code inconsistency spotted by Bulat Ziganshin
Ian Lynagh [Mon, 25 Sep 2006 19:59:25 +0000 (19:59 +0000)]
Fix comment/code inconsistency spotted by Bulat Ziganshin
I'm not sure if this is the example that was intended, but it's at least
now consistent.

17 years agorejig library include/ files
sof@galois.com [Mon, 25 Sep 2006 23:21:25 +0000 (23:21 +0000)]
rejig library include/ files

17 years agoFix newtype deriving properly (un-doing Audreys patch)
simonpj@microsoft.com [Mon, 25 Sep 2006 12:13:51 +0000 (12:13 +0000)]
Fix newtype deriving properly (un-doing Audreys patch)

The newtype-deriving mechanism generates a HsSyn case expression looking
like this
case (d `cast` co) of { ... }
That is, the case expression scrutinises a dictionary.  This is
otherwise never seen in HsSyn, and it made the desugarer
(Check.get_unused_cons) crash in tcTyConAppTyCon.

It would really be better to generate Core in TcInstDecls (the newtype
deriving part) but I'm not going to do that today.  Instead, I made
Check.get_unused_cons a bit more robust.

Audrey tried to fix this over the weekend, but her fix was, alas, utterly
bogus, which caused mysterious failures later.  I completely undid this
change.

Anyway it should work now!

17 years agoDocument -F in the flag reference
Ian Lynagh [Mon, 25 Sep 2006 13:48:16 +0000 (13:48 +0000)]
Document -F in the flag reference

17 years agoAdded Darwinports path to DocBook XSL stylesheets to configure.
bjorn@bringert.net [Mon, 18 Sep 2006 23:28:31 +0000 (23:28 +0000)]
Added Darwinports path to DocBook XSL stylesheets to configure.

17 years agoComment-only: Fix a typo, and note that the PredTy case on SplitTyConApp_maybe was...
audreyt@audreyt.org [Sun, 24 Sep 2006 12:31:51 +0000 (12:31 +0000)]
Comment-only: Fix a typo, and note that the PredTy case on SplitTyConApp_maybe was added as a kluge.

17 years agoIn tcSplittyConApp_maybe, add the PredTy case
audreyt@audreyt.org [Sun, 24 Sep 2006 06:32:08 +0000 (06:32 +0000)]
In tcSplittyConApp_maybe, add the PredTy case
such that this can compile again:

    newtype Moose = MkMoose () deriving (Eq, Ord)

17 years agoFixed DocBook XML once again, "make validate" is your friend!
sven.panne@aedion.de [Sat, 23 Sep 2006 16:50:45 +0000 (16:50 +0000)]
Fixed DocBook XML once again, "make validate" is your friend!

17 years agoTrim more imports
simonpj@microsoft.com [Sat, 23 Sep 2006 07:25:09 +0000 (07:25 +0000)]
Trim more imports

17 years agoFix origin for addDataConStupidTheta
simonpj@microsoft.com [Sat, 23 Sep 2006 07:24:07 +0000 (07:24 +0000)]
Fix origin for addDataConStupidTheta

17 years agoRemove ASSERT from mkDataCon, and add comments to explain why
simonpj@microsoft.com [Sat, 23 Sep 2006 05:30:53 +0000 (05:30 +0000)]
Remove ASSERT from mkDataCon, and add comments to explain why

17 years agoThe unboxed tuple kind is (#), not (##)
simonpj@microsoft.com [Sat, 23 Sep 2006 04:31:30 +0000 (04:31 +0000)]
The unboxed tuple kind is (#), not (##)

17 years agoComplete definition of cmPredX to take account of EqPred
simonpj@microsoft.com [Sat, 23 Sep 2006 04:29:34 +0000 (04:29 +0000)]
Complete definition of cmPredX to take account of EqPred

17 years agoCorrect crucial typo in isSubKind (kc1 -> kc2)!
simonpj@microsoft.com [Sat, 23 Sep 2006 04:28:29 +0000 (04:28 +0000)]
Correct crucial typo in isSubKind (kc1 -> kc2)!

17 years agoRe-work the newtype-deriving support
simonpj@microsoft.com [Sat, 23 Sep 2006 04:05:05 +0000 (04:05 +0000)]
Re-work the newtype-deriving support

The newtype deriving mechanism is much trickier to support than it
seems at first.  Kevin didn't get it quite right when moving to FC,
and I ended up re-writing quite a bit of it.

I think it's right now, but I have not yet tested it thoroughly.

17 years agoAdd TcRnMonad.newSysLocalIds, and use it
simonpj@microsoft.com [Sat, 23 Sep 2006 04:04:16 +0000 (04:04 +0000)]
Add TcRnMonad.newSysLocalIds, and use it

17 years agoRemove dead code concerning coercions from TypeRep
simonpj@microsoft.com [Sat, 23 Sep 2006 04:02:16 +0000 (04:02 +0000)]
Remove dead code concerning coercions from TypeRep

17 years agoMove snocView in the file, nearer the other spliting functions
simonpj@microsoft.com [Sat, 23 Sep 2006 04:01:38 +0000 (04:01 +0000)]
Move snocView in the file, nearer the other spliting functions

17 years agoImprove documentation of newtype-deriving (todo: check formatting still works)
simonpj@microsoft.com [Sat, 23 Sep 2006 04:00:15 +0000 (04:00 +0000)]
Improve documentation of newtype-deriving (todo: check formatting still works)

17 years agoAdd VarSet.disjointVarSet, and use it
simonpj@microsoft.com [Sat, 23 Sep 2006 03:58:29 +0000 (03:58 +0000)]
Add VarSet.disjointVarSet, and use it

17 years agoTrim imports, and remove some dead code
simonpj@microsoft.com [Sat, 23 Sep 2006 03:52:01 +0000 (03:52 +0000)]
Trim imports, and remove some dead code

17 years agoImprove specialisation in SpecConstr
simonpj@microsoft.com [Fri, 22 Sep 2006 19:04:36 +0000 (19:04 +0000)]
Improve specialisation in SpecConstr

This patch enables argToPat to look through let expressions

e.g. f (let v = rhs in \y -> ...v...)

Here we can specialise for f (\y -> ...) because the rule-matcher will
look through the let.

17 years agoRemove duplicate call to getDOpts
simonpj@microsoft.com [Fri, 22 Sep 2006 19:03:50 +0000 (19:03 +0000)]
Remove duplicate call to getDOpts

17 years agoRemove use of isVanillaDataCon, which was wrong under the new FC dispensation
simonpj@microsoft.com [Fri, 22 Sep 2006 19:03:07 +0000 (19:03 +0000)]
Remove use of isVanillaDataCon, which was wrong under the new FC dispensation

17 years agoTrim imports, reformatting
simonpj@microsoft.com [Fri, 22 Sep 2006 19:02:19 +0000 (19:02 +0000)]
Trim imports, reformatting

17 years agoAdd a crucial missing prime in tcConPat
simonpj@microsoft.com [Fri, 22 Sep 2006 18:57:11 +0000 (18:57 +0000)]
Add a crucial missing prime in tcConPat

This fixes a typo -- a missing prime in tcConPat.

The test is gadt18.

While modifying TcPat I also trimmed imports, fixed non-exhaustive
patterns, and improved tracing.

17 years ago64bit fixes for the symbol lookup table
sven.panne@aedion.de [Sat, 23 Sep 2006 16:24:08 +0000 (16:24 +0000)]
64bit fixes for the symbol lookup table

17 years agoIn ByteCodeGen, correctly passthru AnnCast in all relevant places, so the previous...
audreyt@audreyt.org [Sat, 23 Sep 2006 05:28:15 +0000 (05:28 +0000)]
In ByteCodeGen, correctly passthru AnnCast in all relevant places, so the previous band-aid fix is no longer needed.

17 years agoAdd explicit eta-reduction to GHCI's schemeE such that deriving Typeable won't panick.
audreyt@audreyt.org [Sat, 23 Sep 2006 05:09:29 +0000 (05:09 +0000)]
Add explicit eta-reduction to GHCI's schemeE such that deriving Typeable won't panick.

17 years agoRepair "ghci" under FC+AT by handling AnnCast in bytecode generator.
audreyt@audreyt.org [Fri, 22 Sep 2006 04:06:18 +0000 (04:06 +0000)]
Repair "ghci" under FC+AT by handling AnnCast in bytecode generator.

17 years agoFix Linker import when BREAKPOINT is off
Manuel M T Chakravarty [Thu, 21 Sep 2006 21:00:29 +0000 (21:00 +0000)]
Fix Linker import when BREAKPOINT is off

17 years agoExtend IfaceSyn.eqIfTc to cover type kind variants from FC
Manuel M T Chakravarty [Thu, 21 Sep 2006 16:14:00 +0000 (16:14 +0000)]
Extend IfaceSyn.eqIfTc to cover type kind variants from FC

17 years agoUse --export-dynamic to ensure ghci works on newer openbsds
Don Stewart [Thu, 21 Sep 2006 01:01:55 +0000 (01:01 +0000)]
Use --export-dynamic to ensure ghci works on newer openbsds

Changes to the RTLD_DEFAULT semantics broke the trick we used to ensure
libc symbols were available to the ghci linker, in OpenBSD 4.0. We can
fix this by linking the ghc binary itself with --export-dynamic on this
system, removing the need for any magic Linker.c games.

GHCi now works on OpenBSD 4.0

Contributed by Eric Mertens <emertens at gmail.com>

17 years ago* TypeRep.lhs and TypeRep.lhs-boot didn't agree on their signatures (SuperKind vs...
audreyt@audreyt.org [Thu, 21 Sep 2006 01:25:31 +0000 (01:25 +0000)]
* TypeRep.lhs and TypeRep.lhs-boot didn't agree on their signatures (SuperKind vs Kind)

17 years ago* Fix stray comma in HsTypes.lhs's import line.
audreyt@audreyt.org [Thu, 21 Sep 2006 01:13:56 +0000 (01:13 +0000)]
* Fix stray comma in HsTypes.lhs's import line.

17 years agoCorrect substitution into theta types (after merge) After_FC_branch_merge
Manuel M T Chakravarty [Wed, 20 Sep 2006 20:48:05 +0000 (20:48 +0000)]
Correct substitution into theta types (after merge)

17 years agoFix import list of TcTyClsDecls after merge
Manuel M T Chakravarty [Wed, 20 Sep 2006 20:47:44 +0000 (20:47 +0000)]
Fix import list of TcTyClsDecls after merge

17 years agoAdding FamInstEnv & FamInst modules
Manuel M T Chakravarty [Wed, 20 Sep 2006 20:17:27 +0000 (20:17 +0000)]
Adding FamInstEnv & FamInst modules
- They got lost during manual patching, as they are file additions.

17 years agoAdapt FC-code in TcUnify to pre-subsumption
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:57:19 +0000 (18:57 +0000)]
Adapt FC-code in TcUnify to pre-subsumption
Wed Sep 20 04:01:18 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Adapt FC-code in TcUnify to pre-subsumption

17 years agoSome more ASSERTs
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:54:32 +0000 (18:54 +0000)]
Some more ASSERTs
Wed Sep 20 02:52:00 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Some more ASSERTs

17 years agoSPJ's fix to resolve conflict in instFun
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:52:40 +0000 (18:52 +0000)]
SPJ's fix to resolve conflict in instFun
Wed Sep 20 02:27:26 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * SPJ's fix to resolve conflict in instFun

17 years agoAdjust code from manual merges
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:51:09 +0000 (18:51 +0000)]
Adjust code from manual merges
Tue Sep 19 14:12:36 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Adjust code from manual merges

17 years agoAdapt TcFix imports
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:50:41 +0000 (18:50 +0000)]
Adapt TcFix imports
Tue Sep 19 14:11:55 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Adapt TcFix imports

17 years agoBasic set up for global family instance environment
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:50:19 +0000 (18:50 +0000)]
Basic set up for global family instance environment
Mon Sep 18 19:52:34 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Basic set up for global family instance environment
  Fri Sep 15 15:20:44 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Basic set up for global family instance environment

17 years agoImport/export of data constructors in family instances
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:49:53 +0000 (18:49 +0000)]
Import/export of data constructors in family instances
Mon Sep 18 19:50:42 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Import/export of data constructors in family instances
  Tue Sep 12 13:54:37 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Import/export of data constructors in family instances
    - Data constructors of a data/newtype family F can be exported and imported
      by writing F(..) or F(ConName).
    - This appears the most natural from a user's persepctive - although, it has a
      slightly different flavour than similar import/exports items for closed data
      types.  The data constructors denoted by F(..) vary in dependence on the
      visible data instances.
    - This has been non-trivial to achieve as RnNames derives its knowledge of what
      sub-binders an F(..) item exports/imports from the relation specified by
      Name.nameParent - ie, the constructors of a data/newtype instance need to
      have the family name (not the internal name of the representation tycon) as
      their parent.

    *** WARNING: This patched changes the iface format! ***
    ***          Please re-compile from scratch!     ***

17 years agoUse smart lookup for tycons
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:49:34 +0000 (18:49 +0000)]
Use smart lookup for tycons
Mon Sep 18 19:49:35 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Use smart lookup for tycons
  Tue Sep 12 12:55:10 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Use smart lookup for tycons

17 years agoFix type checking of imported data instances
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:49:15 +0000 (18:49 +0000)]
Fix type checking of imported data instances
Mon Sep 18 19:48:41 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Fix type checking of imported data instances
  Mon Sep 11 20:06:51 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Fix type checking of imported data instances
    - When reading a data/newtype instance from an interface, the data constructors
      have their own universals that do not necessarily match up with their tycon's
      type parameters.  (Whereas when type checking source, they are always the
      same.)
    - Hence, we need to be careful when building the wrapper signature of imported
      data constructors from data/newtype instances, and rename the type variables
      in the instance types appropriately.

17 years agoFix category of representation tycon
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:48:59 +0000 (18:48 +0000)]
Fix category of representation tycon
Mon Sep 18 19:48:00 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Fix category of representation tycon
  Mon Sep 11 16:18:51 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Fix category of representation tycon

17 years agoOption -findexed-types
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:48:42 +0000 (18:48 +0000)]
Option -findexed-types
Mon Sep 18 19:42:48 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Option -findexed-types
  Fri Sep  8 21:35:37 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Option -findexed-types
    - Introduced the switch -findexed-types to activate the indexed type family
      framework.
    - The switch enables the special 'family' and allows kind signatures (which are
      currently compulsory for associated families).

17 years agoGet of fam inst index in ifaces
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:48:02 +0000 (18:48 +0000)]
Get of fam inst index in ifaces
Mon Sep 18 19:40:42 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Get of fam inst index in ifaces
  Fri Sep  8 16:31:26 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Get of fam inst index in ifaces
    - Removes the explicit index to get unique names for derived tycons for family
      instances again, following a suggestion by SPJ.
    - We now derive the coercion tycon name from the name of the representation
      tycon, which is in the iface anyways.

    *** WARNING: Change of interface file format! ***
    ***          Recompile from scratch!          ***

17 years agoClean up and refactor in SimplUtils.mkCase1 (identity case)
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:47:12 +0000 (18:47 +0000)]
Clean up and refactor in SimplUtils.mkCase1 (identity case)
Mon Sep 18 19:40:05 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Clean up and refactor in SimplUtils.mkCase1 (identity case)
  Wed Sep  6 07:42:45 EDT 2006  simonpj@microsoft.com
    * Clean up and refactor in SimplUtils.mkCase1 (identity case)

17 years agoATs are now implicitTyThings
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:46:45 +0000 (18:46 +0000)]
ATs are now implicitTyThings
Mon Sep 18 19:36:03 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * ATs are now implicitTyThings
  Tue Sep  5 21:09:54 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * ATs are now implicitTyThings

17 years agoStraightened out implicit coercions for indexed types
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:44:04 +0000 (18:44 +0000)]
Straightened out implicit coercions for indexed types
Mon Sep 18 19:35:24 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Straightened out implicit coercions for indexed types
  Mon Sep  4 23:46:14 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Straightened out implicit coercions for indexed types
    - HscTypes.implicitTyThings and LoadIface.ifaceDeclSubBndrs now
      include the coercion of indexed data/newtypes.
    - Name generation for the internal names of indexed data/newtypes now uses
      the same counter that generates the dfun unique indexes (ie, class and type
      instances are counted with the one counter).  We could make this two
      separate counters if that's what's preferred.
    - The unique index of a data/newtype instances needs to go into the iface, so
      that we can generate the same names on slurping in the iface as when the
      original module was generated.  This is a bit yucky, but I don't see a way
      to avoid that (other than putting the full blown internal tycon name and
      coercion name into the iface, which IMHO would be worse).
    - The predicate for when a datacon has a wrapper didn't take GADT
      equations nor whether it comes froma  family instance into account.

    *** WARNING!  This patch changed the interface file format. ***
    ***           Please recompile from scratch.                ***

17 years agoFixed two bugs concerning fanilies
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:41:03 +0000 (18:41 +0000)]
Fixed two bugs concerning fanilies
Mon Sep 18 19:34:38 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Fixed two bugs concerning fanilies
  Mon Sep  4 20:59:49 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Fixed two bugs concerning fanilies

17 years agoIndexed newtypes
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:40:35 +0000 (18:40 +0000)]
Indexed newtypes
Mon Sep 18 19:24:27 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Indexed newtypes
  Thu Aug 31 22:09:21 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Indexed newtypes
    - This patch makes indexed newtypes work
    - Only lightly tested
    - We need to distinguish between open and closed newtypes in a number of
      places, because looking through newtypes doesn't work easily for open ones.

17 years agoCheck category of type instances and some newtype family fixes
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:40:13 +0000 (18:40 +0000)]
Check category of type instances and some newtype family fixes
Mon Sep 18 19:23:39 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Check category of type instances and some newtype family fixes
  Thu Aug 31 16:54:14 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Check category of type instances and some newtype family fixes

17 years agoBetter error message for indexes that must be variables
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:39:52 +0000 (18:39 +0000)]
Better error message for indexes that must be variables
Mon Sep 18 19:19:10 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Better error message for indexes that must be variables
  Wed Aug 30 20:21:33 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Better error message for indexes that must be variables

17 years agoChecking conformance of AT indexes with instance heads
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:39:37 +0000 (18:39 +0000)]
Checking conformance of AT indexes with instance heads
Mon Sep 18 19:18:18 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Checking conformance of AT indexes with instance heads
  Wed Aug 30 20:13:52 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Checking conformance of AT indexes with instance heads

17 years agoWarn of missing ATs and complain about bad ATs
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:38:51 +0000 (18:38 +0000)]
Warn of missing ATs and complain about bad ATs
Mon Sep 18 19:17:18 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Warn of missing ATs and complain about bad ATs
  Mon Aug 28 22:26:22 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Warn of missing ATs and complain about bad ATs

17 years agoCheck that AT instance is in a class
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:38:35 +0000 (18:38 +0000)]
Check that AT instance is in a class
Mon Sep 18 19:16:40 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Check that AT instance is in a class
  Sat Aug 26 21:49:56 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Check that AT instance is in a class

17 years agoKind sig for toplevel family decls is optional
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:38:13 +0000 (18:38 +0000)]
Kind sig for toplevel family decls is optional
Mon Sep 18 19:13:47 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Kind sig for toplevel family decls is optional
  Sat Aug 26 19:03:50 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Kind sig for toplevel family decls is optional
    - Kind sigs are still compulsory for AT family decls.  Changing this is more
      tricky, as AT decls don't have the family keyword and hence look like empty
      data decls.  That impacts reduce/reduce conflicts and/or the criteria for
      checking whether a TyData variant is a family signature.
    - Also removed iso from the syntax (it's still in the lexer in case we want to
      resurrect it).

17 years agoFixed bug in coercion for indexed data types
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:37:42 +0000 (18:37 +0000)]
Fixed bug in coercion for indexed data types
Mon Sep 18 19:12:51 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Fixed bug in coercion for indexed data types
  Fri Aug 25 16:45:29 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Fixed bug in coercion for indexed data types
    - Significant examples are starting to work; eg, generic finite maps:

    class GMapKey k where
      data GMap k :: * -> *
      empty       :: GMap k v
      lookup      :: k -> GMap k v -> Maybe v
      insert      :: k -> v -> GMap k v -> GMap k v

    instance GMapKey Int where
      data GMap Int v        = GMapInt (Map.Map Int v)
      empty                  = GMapInt Map.empty
      lookup k (GMapInt m)   = Map.lookup k m
      insert k v (GMapInt m) = GMapInt (Map.insert k v m)

    instance GMapKey Char where
      data GMap Char v        = GMapChar (GMap Int v)
      empty                   = GMapChar empty
      lookup k (GMapChar m)   = lookup (ord k) m
      insert k v (GMapChar m) = GMapChar (insert (ord k) v m)

    instance GMapKey () where
      data GMap () v           = GMapUnit (Maybe v)
      empty                    = GMapUnit Nothing
      lookup () (GMapUnit v)   = v
      insert () v (GMapUnit _) = GMapUnit $ Just v

    instance (GMapKey a, GMapKey b) => GMapKey (a, b) where
      data GMap (a, b) v            = GMapPair (GMap a (GMap b v))
      empty                 = GMapPair empty
      lookup (a, b) (GMapPair gm)   = lookup a gm >>= lookup b
      insert (a, b) v (GMapPair gm) = GMapPair $ case lookup a gm of
         Nothing  -> insert a (insert b v empty) gm
         Just gm2 -> insert a (insert b v gm2  ) gm

    instance (GMapKey a, GMapKey b) => GMapKey (Either a b) where
      data GMap (Either a b) v                = GMapEither (GMap a v) (GMap b v)
      empty                                   = GMapEither empty empty
      lookup (Left  a) (GMapEither gm1  _gm2) = lookup a gm1
      lookup (Right b) (GMapEither _gm1 gm2 ) = lookup b gm2
      insert (Left  a) v (GMapEither gm1 gm2) = GMapEither (insert a v gm1) gm2
      insert (Right a) v (GMapEither gm1 gm2) = GMapEither gm1 (insert a v gm2)

17 years agoPattern matching of indexed data types
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:37:17 +0000 (18:37 +0000)]
Pattern matching of indexed data types
Mon Sep 18 19:11:24 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Pattern matching of indexed data types
  Thu Aug 24 14:17:44 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Pattern matching of indexed data types
    - This patch is the last major puzzle piece to type check and desugar indexed
      data types (both toplevel and associated with a class).
    - However, it needs more testing - esp wrt to accumlating CoPats - and some
      static sanity checks for data instance declarations are still missing.
    - There are now two detailed notes in MkIds and TcPat on how the worker/wrapper
      and coercion story for indexed data types works.

17 years agoIntroduce coercions for data instance decls
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:36:46 +0000 (18:36 +0000)]
Introduce coercions for data instance decls
Mon Sep 18 19:07:30 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Introduce coercions for data instance decls
  Tue Aug 22 20:33:46 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Introduce coercions for data instance decls
    - data instance declarations implicitly generate a coercion moving between the
      representation type and family instance type.
    - The coercion is *implicitly* generated when type checking both source and
      ifaces.  Ie, we don't safe it in ifaces - this is really exactly as newtype
      coercions are handled.
    - The previous addition of the instance types to DataCons has been moved to
      the representation TyCon.  This is more efficient as it is shared between all
      constructors of one representation tycon and it also gathers everything about
      data instances (family tycon, instance types, and coercion) in one place: the
      algTcParent field of TyCon.
    - The coercion is already used in the datacon wrappers, but not yet during type
      checking pattern matching of indexed data types.
    - The code has only been lightly tested, but doesn't seem to break features not
      related to indexed types.  For indexed data types only the pattern matching
      tc code (in TcPat.tcConPat) and some well-formedness checks are still
      missing.  And there will surely be some bugs to fix.  (newtypes still require
      some more work.)

        ** WARNING: Interface file format changed! **
        **          Recompile from scratch!        **

17 years agoFixed two data family bugs
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:36:27 +0000 (18:36 +0000)]
Fixed two data family bugs
Mon Sep 18 19:06:51 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Fixed two data family bugs
  Mon Aug 21 15:16:16 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Fixed two data family bugs
    - Too liberal pattern matching in `tcTyClDecl1'
    - Open TyCons must always be exposed (ie, never be turned into abstract tycons
      during tidying)

17 years agoFix the tyvars used for data con signatures
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:36:11 +0000 (18:36 +0000)]
Fix the tyvars used for data con signatures
Mon Sep 18 19:06:12 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Fix the tyvars used for data con signatures
  Sat Aug 19 17:19:25 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Fix the tyvars used for data con signatures

17 years agoExtend TyCons and DataCons to represent data instance decls
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:35:34 +0000 (18:35 +0000)]
Extend TyCons and DataCons to represent data instance decls
Mon Sep 18 19:05:18 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Extend TyCons and DataCons to represent data instance decls
  Fri Aug 18 19:11:37 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Extend TyCons and DataCons to represent data instance decls
    - This is a faily involved patch, but it is not entirely complete:
      + The data con wrapper code for instance data cons needs to apply the
        coercions (which we still have to generate).
      + There are still bugs, but it doesn't seem to affect the compilation of
        code that doesn't use type families.

    ** WARNING: Yet another change of the iface format.  **
    **          Recompile everything.                    **

17 years agoFix TcSplice after some type family related changes
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:35:18 +0000 (18:35 +0000)]
Fix TcSplice after some type family related changes
Mon Sep 18 19:04:12 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Fix TcSplice after some type family related changes
  Wed Aug 16 19:51:27 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Fix TcSplice after some type family related changes

17 years agoMake sure ATs are included into the temporary env for tc knot tying
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:35:03 +0000 (18:35 +0000)]
Make sure ATs are included into the temporary env for tc knot tying
Mon Sep 18 19:03:31 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Make sure ATs are included into the temporary env for tc knot tying
  Wed Aug 16 17:52:40 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Make sure ATs are included into the temporary env for tc knot tying

17 years agoExtend Class.Class to include the TyCons of ATs
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:34:46 +0000 (18:34 +0000)]
Extend Class.Class to include the TyCons of ATs
Mon Sep 18 18:58:51 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Extend Class.Class to include the TyCons of ATs
  Wed Aug 16 16:15:31 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Extend Class.Class to include the TyCons of ATs

17 years agoFix kind lookup in kcIdxTyPats
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:34:23 +0000 (18:34 +0000)]
Fix kind lookup in kcIdxTyPats
Mon Sep 18 18:58:14 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Fix kind lookup in kcIdxTyPats
  Tue Aug 15 21:02:34 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Fix kind lookup in kcIdxTyPats

17 years agoExtended TyCon and friends to represent family declarations
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:34:00 +0000 (18:34 +0000)]
Extended TyCon and friends to represent family declarations
Mon Sep 18 18:50:35 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Extended TyCon and friends to represent family declarations
  Tue Aug 15 16:52:31 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Extended TyCon and friends to represent family declarations

17 years agoKind and type checking of indexed types
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:33:33 +0000 (18:33 +0000)]
Kind and type checking of indexed types
Mon Sep 18 18:39:03 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Kind and type checking of indexed types
  Fri Aug 11 16:09:13 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Kind and type checking of indexed types
    - Type checking of kind signatures
    - Kind and type checking of instances of indexed types
    - Validity checks for ATs are still *missing* (ie, that the type indexes
      coincide with the class parameters and that the defined ATs really belong to
      the class).

17 years agoAnother comment
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:31:56 +0000 (18:31 +0000)]
Another comment
Mon Sep 18 17:45:06 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Another comment
  Wed Aug  9 04:48:18 EDT 2006  simonpj@microsoft.com
    * Another comment

17 years agoAdd missing co_vars to tcIfaceDataAlt
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:31:39 +0000 (18:31 +0000)]
Add missing co_vars to tcIfaceDataAlt
Mon Sep 18 17:44:24 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Add missing co_vars to tcIfaceDataAlt
  Wed Aug  9 04:45:33 EDT 2006  simonpj@microsoft.com
    * Add missing co_vars to tcIfaceDataAlt

17 years agoComments only
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:30:51 +0000 (18:30 +0000)]
Comments only
Mon Sep 18 17:43:31 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Comments only
  Wed Aug  9 04:45:19 EDT 2006  simonpj@microsoft.com
    * Comments only

17 years agoSmall refactoring
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:27:08 +0000 (18:27 +0000)]
Small refactoring
Mon Sep 18 17:41:37 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Small refactoring
  Wed Aug  9 04:41:54 EDT 2006  simonpj@microsoft.com
    * Small refactoring

17 years agoTAG HEAD merge 6 Aug 06 completed
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:26:27 +0000 (18:26 +0000)]
TAG HEAD merge 6 Aug 06 completed

17 years agoMissing change re additional info in TcTyThing
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:24:02 +0000 (18:24 +0000)]
Missing change re additional info in TcTyThing
Mon Sep 18 17:28:37 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Missing change re additional info in TcTyThing
  Mon Aug  7 14:22:08 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Missing change re additional info in TcTyThing

17 years agoComplete OccName->FS change in TcIface
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:23:42 +0000 (18:23 +0000)]
Complete OccName->FS change in TcIface
Mon Sep 18 17:27:42 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Complete OccName->FS change in TcIface
  Mon Aug  7 13:03:26 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Complete OccName->FS change in TcIface

17 years agoMissing imports in CoreUtils
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:23:24 +0000 (18:23 +0000)]
Missing imports in CoreUtils
Mon Sep 18 17:27:00 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Missing imports in CoreUtils
  Mon Aug  7 11:15:54 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Missing imports in CoreUtils

17 years agoRemoved spurious + due to manual patching
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:23:03 +0000 (18:23 +0000)]
Removed spurious + due to manual patching
Mon Sep 18 17:25:23 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Removed spurious + due to manual patching
  Mon Aug  7 11:07:37 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Removed spurious + due to manual patching

17 years agoMakefile comment
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:21:54 +0000 (18:21 +0000)]
Makefile comment
Mon Sep 18 17:23:13 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Makefile comment
  Sun Aug  6 21:03:20 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Makefile comment
    Fri Aug  4 11:44:49 EDT 2006  kevind@bu.edu

17 years agoFix newtype deriving bug
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:21:26 +0000 (18:21 +0000)]
Fix newtype deriving bug
Mon Sep 18 17:22:43 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Fix newtype deriving bug
  Sun Aug  6 21:02:35 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Fix newtype deriving bug
    Fri Aug  4 06:45:21 EDT 2006  kevind@bu.edu

17 years agoInclude the existential dictionaries in dataConOrigInstPat
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:20:48 +0000 (18:20 +0000)]
Include the existential dictionaries in dataConOrigInstPat
Mon Sep 18 17:22:14 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Include the existential dictionaries in dataConOrigInstPat
  Sun Aug  6 20:59:00 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Include the existential dictionaries in dataConOrigInstPat
    Fri Aug  4 04:24:25 EDT 2006  simonpj@microsoft.com

17 years agoComments about datacon worker and wrappers
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:20:26 +0000 (18:20 +0000)]
Comments about datacon worker and wrappers
Mon Sep 18 17:21:20 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Comments about datacon worker and wrappers
  Sun Aug  6 20:57:48 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Comments about datacon worker and wrappers
    Fri Aug  4 04:23:28 EDT 2006  simonpj@microsoft.com

17 years agoMake newtype Coercion eta-contract if the tails of lhs and rhs match up
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:19:59 +0000 (18:19 +0000)]
Make newtype Coercion eta-contract if the tails of lhs and rhs match up
Mon Sep 18 17:20:17 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Make newtype Coercion eta-contract if the tails of lhs and rhs match up
  Sun Aug  6 20:57:10 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Make newtype Coercion eta-contract if the tails of lhs and rhs match up
    Thu Aug  3 12:26:52 EDT 2006  kevind@bu.edu

17 years agoFlip direction of newtype coercions, fix some comments
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:19:12 +0000 (18:19 +0000)]
Flip direction of newtype coercions, fix some comments
Mon Sep 18 17:19:19 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Flip direction of newtype coercions, fix some comments
  Sun Aug  6 20:56:23 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Flip direction of newtype coercions, fix some comments
    Thu Aug  3 10:53:37 EDT 2006  kevind@bu.edu

17 years agoChagne newtype wrapper into worker
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:17:22 +0000 (18:17 +0000)]
Chagne newtype wrapper into worker
Mon Sep 18 17:17:57 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Chagne newtype wrapper into worker
  Sun Aug  6 20:55:30 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Chagne newtype wrapper into worker
    Wed Aug  2 11:54:28 EDT 2006  kevind@bu.edu

17 years agoClean up unused imports, definitions and arguments
Manuel M T Chakravarty [Wed, 20 Sep 2006 18:17:04 +0000 (18:17 +0000)]
Clean up unused imports, definitions and arguments
Mon Sep 18 17:17:20 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Clean up unused imports, definitions and arguments
  Sun Aug  6 20:54:31 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
    * Clean up unused imports, definitions and arguments
    Wed Aug  2 11:05:33 EDT 2006  kevind@bu.edu