ghc.git
12 years agoTeach SpecConstr about Cast 2006-10-05
simonpj@microsoft.com [Thu, 5 Oct 2006 14:36:24 +0000 (14:36 +0000)] 
Teach SpecConstr about Cast

This patch teaches SpecConstr about casts; see Note [SpecConstr for casts]

12 years agoFloat coercions out of lets
simonpj@microsoft.com [Thu, 5 Oct 2006 13:24:37 +0000 (13:24 +0000)] 
Float coercions out of lets

Note [Float coercions]
~~~~~~~~~~~~~~~~~~~~~~
When we find the binding
x = e `cast` co
we'd like to transform it to
x' = e
x = x `cast` co -- A trivial binding
There's a chance that e will be a constructor application or function, or something
like that, so moving the coerion to the usage site may well cancel the coersions
and lead to further optimisation.  Example:

     data family T a :: *
     data instance T Int = T Int

     foo :: Int -> Int -> Int
     foo m n = ...
        where
          x = T m
          go 0 = 0
          go n = case x of { T m -> go (n-m) }
-- This case should optimise

12 years agoRemove unused argument to mkAtomicArgs
simonpj@microsoft.com [Thu, 5 Oct 2006 13:07:52 +0000 (13:07 +0000)] 
Remove unused argument to mkAtomicArgs

12 years agoComments and layout
simonpj@microsoft.com [Thu, 5 Oct 2006 13:07:23 +0000 (13:07 +0000)] 
Comments and layout

12 years agoRemove unused OccInfo (simplification)
simonpj@microsoft.com [Thu, 5 Oct 2006 13:03:27 +0000 (13:03 +0000)] 
Remove unused OccInfo (simplification)

The substitution used to carry "fragile" OccInfo to call sites via the
DoneId constructor of SimplEnv.SimplSR.  This was always a tricky thing
to do, and for some time I've been removing the need for it.

Now at last I think we can nuke it altogether.  Hooray.

I did a full nonfib run, and got zero perf changes.

12 years agoTake 2 on the recursive-rule fix
simonpj@microsoft.com [Thu, 5 Oct 2006 12:10:23 +0000 (12:10 +0000)] 
Take 2 on the recursive-rule fix

This is another attempt to fix the interaction between recursion and
RULES.  I just had it wrong before!  Now the significance of the
flag on IAmALoopBreaker is given in BasicTypes

  | IAmALoopBreaker -- Used by the occurrence analyser to mark loop-breakers
-- in a group of recursive definitions
!RulesOnly -- True <=> This loop breaker mentions the other binders
--     in its recursive group only in its RULES, not
--     in its rhs
--  See OccurAnal Note [RulesOnly]

12 years agoTake advantage of non-rec-ness in occurrence analysis (minor)
simonpj@microsoft.com [Thu, 5 Oct 2006 10:57:21 +0000 (10:57 +0000)] 
Take advantage of non-rec-ness in occurrence analysis (minor)

12 years agoSpelling in comment
simonpj@microsoft.com [Thu, 5 Oct 2006 10:56:40 +0000 (10:56 +0000)] 
Spelling in comment

12 years agoAdd intersectsUFM
simonpj@microsoft.com [Thu, 5 Oct 2006 10:56:15 +0000 (10:56 +0000)] 
Add intersectsUFM

12 years agoMade 'for' a special ID in the grammar.
bjorn@bringert.net [Thu, 21 Sep 2006 05:20:53 +0000 (05:20 +0000)] 
Made 'for' a special ID in the grammar.

12 years agoMerged stand-alone deriving with FC stuff.
bjorn@bringert.net [Wed, 20 Sep 2006 22:39:17 +0000 (22:39 +0000)] 
Merged stand-alone deriving with FC stuff.

12 years agoFirst documentation on stand-alone instance deriving.
bjorn@bringert.net [Tue, 19 Sep 2006 01:06:06 +0000 (01:06 +0000)] 
First documentation on stand-alone instance deriving.

12 years agoFixed source location and instance origin in stand-alone deriving error messages.
bjorn@bringert.net [Tue, 19 Sep 2006 01:05:35 +0000 (01:05 +0000)] 
Fixed source location and instance origin in stand-alone deriving error messages.

12 years agoAdded type signature for tcSplitSigmaTy.
bjorn@bringert.net [Mon, 18 Sep 2006 23:09:25 +0000 (23:09 +0000)] 
Added type signature for tcSplitSigmaTy.

12 years agoNew syntax for stand-alone deriving. Implemented fully.
bjorn@bringert.net [Mon, 18 Sep 2006 23:08:54 +0000 (23:08 +0000)] 
New syntax for stand-alone deriving. Implemented fully.

12 years agoRenamer part of stand-alone deriving extension.
bjorn@bringert.net [Sun, 17 Sep 2006 21:54:20 +0000 (21:54 +0000)] 
Renamer part of stand-alone deriving extension.

12 years agoAdded parser and abstract syntax support for stand-alone deriving declarations.
bjorn@bringert.net [Sun, 17 Sep 2006 00:09:56 +0000 (00:09 +0000)] 
Added parser and abstract syntax support for stand-alone deriving declarations.

12 years agoComments only
simonpj@microsoft.com [Wed, 4 Oct 2006 21:10:15 +0000 (21:10 +0000)] 
Comments only

12 years agoFix comment in RdrName
simonpj@microsoft.com [Wed, 4 Oct 2006 21:08:45 +0000 (21:08 +0000)] 
Fix comment in RdrName

12 years agoImprove unboxing of strict fields
simonpj@microsoft.com [Wed, 4 Oct 2006 15:27:05 +0000 (15:27 +0000)] 
Improve unboxing of strict fields

Note [Recursive unboxing]
~~~~~~~~~~~~~~~~~~~~~~~~~
Be careful not to try to unbox this!
data T = MkT !T Int
But it's the *argument* type that matters. This is fine:
data S = MkS S !Int
because Int is non-recursive.

Before this patch, we were only doing the unboxing if the *parent*
data type was non-recursive (eg that meant S was not unboxed), but
that is over-conservative.

This showed up with indexed data types (thanks to Roman for finding it)
because indexed data types are conservatively regarded as always recursive.

12 years agoRemove redundant dump
simonpj@microsoft.com [Wed, 4 Oct 2006 15:26:14 +0000 (15:26 +0000)] 
Remove redundant dump

12 years agoTrim imports
simonpj@microsoft.com [Wed, 4 Oct 2006 15:25:21 +0000 (15:25 +0000)] 
Trim imports

12 years agoImprove liberate-case to take account of coercions
simonpj@microsoft.com [Wed, 4 Oct 2006 13:51:55 +0000 (13:51 +0000)] 
Improve liberate-case to take account of coercions

Note [Scrutinee with cast]
~~~~~~~~~~~~~~~~~~~~~~~~~~
Consider this:
    f = \ t -> case (v `cast` co) of
         V a b -> a : f t

Exactly the same optimistaion (unrolling one call to f) will work here,
despite the cast.  See mk_alt_env in the Case branch of libCase.

This patch does the job.  For a change, it was really easy.

12 years agoRemvove totally unused static flags
simonpj@microsoft.com [Wed, 4 Oct 2006 12:48:26 +0000 (12:48 +0000)] 
Remvove totally unused static flags

12 years agoRemove ILX from the GHC altogether (although I left the source file IlxGen in case...
simonpj@microsoft.com [Wed, 4 Oct 2006 12:32:42 +0000 (12:32 +0000)] 
Remove ILX from the GHC altogether (although I left the source file IlxGen in case anyone wants to see it)

12 years ago-frule-check is not a static flag
simonpj@microsoft.com [Wed, 4 Oct 2006 12:32:22 +0000 (12:32 +0000)] 
-frule-check is not a static flag

12 years agoTidy tyvar OccNames in TcTyClDecl
simonpj@microsoft.com [Wed, 4 Oct 2006 12:12:39 +0000 (12:12 +0000)] 
Tidy tyvar OccNames in TcTyClDecl

We want the universal and existential tyvars of a data constructor to
have distinct OccNames.  It's confusing if they don't (in error messages,
for example), and with the current way of generating IfaceSyn, it actally
generates bogus interface files.  (Which bit Roman.)

When IfaceSyn is full of Names, this won't matter so much, but it still
seems cleaner.

This patch adds a 'tidy' step to the generation of DataCon type
variables in TcTyClDecls.tcResultType

12 years agoImprove pretty printing slightly
simonpj@microsoft.com [Wed, 4 Oct 2006 12:12:24 +0000 (12:12 +0000)] 
Improve pretty printing slightly

12 years agoSecond bite at the rules-only idea
simonpj@microsoft.com [Wed, 4 Oct 2006 11:10:00 +0000 (11:10 +0000)] 
Second bite at the rules-only idea

This is part 2 of the patch that improved the interaction of RULES and
recursion.  It's vital that all Ids that may be referred to from later in
the module are marked 'IAmALoopBreaker' because otherwise we may do
postInlineUnconditionally, and lose the binding altogether.

So I've added a boolean rules-only flag to IAmALoopBreaker.  Now we can
do inlining for rules-only loop-breakers.

12 years agoEliminate case-of-cast
simonpj@microsoft.com [Wed, 4 Oct 2006 11:07:41 +0000 (11:07 +0000)] 
Eliminate case-of-cast

Note [Case of cast]
~~~~~~~~~~~~~~~~~~~
Consider  case (v `cast` co) of x { I# ->
... (case (v `cast` co) of {...}) ...
We'd like to eliminate the inner case.  We can get this neatly by
arranging that inside the outer case we add the unfolding
v |-> x `cast` (sym co)
to v.  Then we should inline v at the inner case, cancel the casts,
and away we go

This patch does the job, fixing a performance hole reported by Roman.

12 years agoFixes for the porting process for 6.6
Ian Lynagh [Tue, 3 Oct 2006 12:42:32 +0000 (12:42 +0000)] 
Fixes for the porting process for 6.6

12 years agoMake recursion and RULES interact better
simonpj@microsoft.com [Tue, 3 Oct 2006 15:30:57 +0000 (15:30 +0000)] 
Make recursion and RULES interact better

See Trac #683

This patch improves the interaction of recursion and RULES; at least I
hope it does.   The problem was that a RULE was being treated uniformly like
an "extra RHS". This worked badly when you have a non-recursive definition
that is made recursive only by RULE.

This patch maeks the occurrence analyser know whether a binder is referred to
only from RULES (the RulesOnly constructor in OccInfo).  Then we can ignore
such edges when deciding on the order of bindings in a letrec, and when
setting the LoopBreaker flag.

The remaining potential problem is this:
rec{ f = ...g...
   ; g = ...f...
     RULE g True = ...
   }

The RULE for g may not be visible in f's rhs.  This is fixable, but not
today.

12 years agoWarning police only
simonpj@microsoft.com [Tue, 3 Oct 2006 13:44:14 +0000 (13:44 +0000)] 
Warning police only

12 years agoFix scoped type variables for expression type signatures
simonpj@microsoft.com [Tue, 3 Oct 2006 13:40:56 +0000 (13:40 +0000)] 
Fix scoped type variables for expression type signatures

I had forgotten to bring scoped type variables into scope at an expression
type signature, such as
e :: forall s. <type>
where 's' should scope over the expression e.

Like everything to do with scoped type variables, fixing this took an
unreasonable amount of work.  I'm sure there must be a better way to
achitect this!

I updated the user manual too.

A test is tc213.

It would be good to push this into 6.6.1

12 years agoTrim imports
simonpj@microsoft.com [Tue, 3 Oct 2006 13:38:45 +0000 (13:38 +0000)] 
Trim imports

12 years agoAdd error check for operators in types
simonpj@microsoft.com [Tue, 3 Oct 2006 08:28:05 +0000 (08:28 +0000)] 
Add error check for operators in types

Fixes Trac #919

12 years agoAdd a C++ phase. Fixes bug #800
Lemmih [Thu, 27 Jul 2006 08:00:23 +0000 (08:00 +0000)] 
Add a C++ phase. Fixes bug #800

12 years agoLatin-1-to-UTF8 pre-processor example for docs from Christian Maeder
Ian Lynagh [Sun, 1 Oct 2006 01:07:00 +0000 (01:07 +0000)] 
Latin-1-to-UTF8 pre-processor example for docs from Christian Maeder

12 years agoadd :edit to the release notes, and improve the docs a bit
Simon Marlow [Fri, 29 Sep 2006 11:21:08 +0000 (11:21 +0000)] 
add :edit to the release notes, and improve the docs a bit

12 years agoSimplify the way in which the coKindFun in CoercionTyCon is handled
simonpj@microsoft.com [Fri, 29 Sep 2006 22:28:45 +0000 (22:28 +0000)] 
Simplify the way in which the coKindFun in CoercionTyCon is handled

Before the coKindFun could be applied to too many arguments;
now it expects exactly the right number of arguments.  That
makes it easier to write the coKindFuns, and localises the work.

12 years agoMatch let before lambda in rule-matching (see comment with Lam case of Rules.match)
simonpj@microsoft.com [Fri, 29 Sep 2006 22:26:45 +0000 (22:26 +0000)] 
Match let before lambda in rule-matching (see comment with Lam case of Rules.match)

12 years agoFix bug in SCRIPT_SHELL patch (| should be ||)
simonpj@microsoft.com [Fri, 29 Sep 2006 22:24:33 +0000 (22:24 +0000)] 
Fix bug in SCRIPT_SHELL patch (| should be ||)

12 years agoAdd missing case for EqPred
simonpj@microsoft.com [Fri, 29 Sep 2006 16:51:18 +0000 (16:51 +0000)] 
Add missing case for EqPred

12 years agoAmplify scoped tyvar changes
simonpj@microsoft.com [Fri, 29 Sep 2006 16:50:38 +0000 (16:50 +0000)] 
Amplify scoped tyvar changes

12 years agoUpdate release notes
simonpj@microsoft.com [Fri, 29 Sep 2006 12:28:55 +0000 (12:28 +0000)] 
Update release notes

12 years agoRemove Linear Implicit Parameters, and all their works
simonpj@microsoft.com [Fri, 29 Sep 2006 16:07:17 +0000 (16:07 +0000)] 
Remove Linear Implicit Parameters, and all their works

Linear implicit parameters have been in GHC quite a while,
but we decided they were a mis-feature and scheduled them for
removal.  This patch does the job.

12 years agoGlobal renamings in HsSyn
simonpj@microsoft.com [Fri, 29 Sep 2006 14:39:10 +0000 (14:39 +0000)] 
Global renamings in HsSyn

12 years agoImprove pretty-printing of Core
simonpj@microsoft.com [Fri, 29 Sep 2006 13:35:49 +0000 (13:35 +0000)] 
Improve pretty-printing of Core

12 years agoAnother correction to the (subtle) exprIsConApp_maybe
simonpj@microsoft.com [Fri, 29 Sep 2006 13:35:12 +0000 (13:35 +0000)] 
Another correction to the (subtle) exprIsConApp_maybe

12 years agoSpelling correction
simonpj@microsoft.com [Fri, 29 Sep 2006 12:36:44 +0000 (12:36 +0000)] 
Spelling correction

12 years agoImprove pretty printing of IfaceSyn
simonpj@microsoft.com [Fri, 29 Sep 2006 12:33:55 +0000 (12:33 +0000)] 
Improve pretty printing of IfaceSyn

12 years agoImprove unification error messages (again) (push to 6.6 branch)
simonpj@microsoft.com [Fri, 29 Sep 2006 12:20:10 +0000 (12:20 +0000)] 
Improve unification error messages (again) (push to 6.6 branch)

12 years ago:edit runs notepad by default on Windows
Simon Marlow [Fri, 29 Sep 2006 10:27:39 +0000 (10:27 +0000)] 
:edit runs notepad by default on Windows

12 years agounbreak :edit patch on Windows
Simon Marlow [Thu, 28 Sep 2006 15:59:51 +0000 (15:59 +0000)] 
unbreak :edit patch on Windows

12 years agoFix #906, and do #914 while I'm in here (it wasn't too hard)
Simon Marlow [Thu, 28 Sep 2006 15:17:05 +0000 (15:17 +0000)] 
Fix #906, and do #914 while I'm in here (it wasn't too hard)

12 years agoAdd basic :edit support
Simon Marlow [Thu, 28 Sep 2006 13:51:56 +0000 (13:51 +0000)] 
Add basic :edit support
Without jumping to line numbers or %-expansion, we could add that later.

12 years agotiny fix in porting docs I just spotted
Simon Marlow [Thu, 28 Sep 2006 10:56:11 +0000 (10:56 +0000)] 
tiny fix in porting docs I just spotted

12 years agoonly make stdin/stdout unbuffered in GHCi, not runghc or ghc -e.
Simon Marlow [Thu, 28 Sep 2006 10:54:03 +0000 (10:54 +0000)] 
only make stdin/stdout unbuffered in GHCi, not runghc or ghc -e.

12 years agotestsuite *is* boring
Simon Marlow [Thu, 28 Sep 2006 10:53:42 +0000 (10:53 +0000)] 
testsuite *is* boring

12 years agofix typo in comment
Andres Loeh [Thu, 14 Sep 2006 23:56:48 +0000 (23:56 +0000)] 
fix typo in comment

12 years agoremove non-boring directories
Norman Ramsey [Fri, 15 Sep 2006 23:49:02 +0000 (23:49 +0000)] 
remove non-boring directories

12 years agoModify toArgs to parse quotes/escapes like /bin/sh
rjmccall@gmail.com [Sun, 17 Sep 2006 00:36:41 +0000 (00:36 +0000)] 
Modify toArgs to parse quotes/escapes like /bin/sh
Addresses ticket #197, which asks for escape sequences to be supported directly (i.e.
not only in dquoted strings) on :load commands in GHCI.  Fix modifies the toArgs
function to parse its input like /bin/sh does, i.e. recognizing escapes anywhere
and treating quoted strings as atomic chunks.  Thus:
  :load a\ b c\"d e" "f
would parse with three arguments, namely 'a b', 'c"d', and 'e f'.

toArgs is used to parse arguments for both :load and :main, but doesn't appear to
be used elsewhere.  I see no harm in modifying both to be consistent -- in fact,
the functionality is probably more useful for :main than for :load.

12 years agoFix mulIntMayOflo on 64-bit arches; fixes trac #867
Ian Lynagh [Thu, 28 Sep 2006 00:48:06 +0000 (00:48 +0000)] 
Fix mulIntMayOflo on 64-bit arches; fixes trac #867
We were assuming we could multiply 2 32-bit numbers without overflowing
a 64-bit number, but we can't as the top bit is the sign bit.

12 years agoHandle clock_gettime failing
Ian Lynagh [Wed, 27 Sep 2006 23:46:30 +0000 (23:46 +0000)] 
Handle clock_gettime failing

12 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

12 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

12 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)

12 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

12 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

12 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

12 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

12 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

12 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...

12 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

12 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

12 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.

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

12 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!

12 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

12 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.

12 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.

12 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)

12 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!

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

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

12 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

12 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 (##)

12 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

12 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)!

12 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.

12 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

12 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

12 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

12 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)

12 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

12 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

12 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.

12 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

12 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

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