ghc.git
11 years agoFIX BUILD (Windows): Copy the ln trick used by the GMP build
Simon Marlow [Mon, 14 Apr 2008 17:32:25 +0000 (17:32 +0000)] 
FIX BUILD (Windows): Copy the ln trick used by the GMP build

11 years agoRevive the static argument transformation
simonpj@microsoft.com [Fri, 11 Apr 2008 16:21:37 +0000 (16:21 +0000)] 
Revive the static argument transformation

This patch revives the Static Argument Transformation, thanks to
Max Bolingbroke.  It is enabled with
-fstatic-argument-transformation
or -O2

Headline nofib results

                  Size    Allocs   Runtime
Min             +0.0%    -13.7%    -21.4%
Max             +0.1%     +0.0%     +5.4%
Geometric Mean  +0.0%     -0.2%     -6.9%

11 years agoTransfer strictness and arity info when abstracting over type variables
simonpj@microsoft.com [Fri, 11 Apr 2008 14:24:18 +0000 (14:24 +0000)] 
Transfer strictness and arity info when abstracting over type variables

See Note [transferPolyIdInfo] in Id.lhs, and test
eyeball/demand-on-polymorphic-floatouts.hs

Max Bolingbroke discovered that we were gratuitiously losing strictness
info.  This simple patch fixes it.  But see the above note for things
that are still discarded: worker info and rules.

11 years agoRevive External Core typechecker
Tim Chevalier [Mon, 14 Apr 2008 02:46:48 +0000 (02:46 +0000)] 
Revive External Core typechecker

The typechecker works again! Yay!

Details upon request.

11 years agoEta-expand newtype coercions in External Core
Tim Chevalier [Mon, 14 Apr 2008 03:16:54 +0000 (03:16 +0000)] 
Eta-expand newtype coercions in External Core

Typechecking External Core is easier if we eta-expand axioms
in newtype declarations. For a fuller explanation, see:
http://www.haskell.org/pipermail/cvs-ghc/2008-April/041948.html

11 years agoExtra info in genprimopcode --make-ext-core-source
Tim Chevalier [Mon, 14 Apr 2008 02:54:07 +0000 (02:54 +0000)] 
Extra info in genprimopcode --make-ext-core-source

The ext-core typechecker needs to know what types are
valid for various kinds of literals, so I changed
genprimopcode to dump out that information as well
with --make-ext-core-source.

11 years agoFixing HPCTIXDIR problem with mkdir usage on Windows
andy@galois.com [Fri, 11 Apr 2008 22:05:10 +0000 (22:05 +0000)] 
Fixing HPCTIXDIR problem with mkdir usage on Windows

11 years agoUpdate .darcs-boring with utils/ext-core stuff
Tim Chevalier [Fri, 11 Apr 2008 18:57:34 +0000 (18:57 +0000)] 
Update .darcs-boring with utils/ext-core stuff

11 years agoFIX #2197: an update frame might point to an IND_OLDGEN
Simon Marlow [Fri, 11 Apr 2008 17:34:04 +0000 (17:34 +0000)] 
FIX #2197: an update frame might point to an IND_OLDGEN

11 years agoRejig error reporting in the unifier slightly
simonpj@microsoft.com [Fri, 11 Apr 2008 13:23:50 +0000 (13:23 +0000)] 
Rejig error reporting in the unifier slightly

11 years agoImprove error message layout slightly
simonpj@microsoft.com [Thu, 10 Apr 2008 11:31:05 +0000 (11:31 +0000)] 
Improve error message layout slightly

11 years agoTwo improvements to boxy matching
simonpj@microsoft.com [Thu, 10 Apr 2008 11:28:12 +0000 (11:28 +0000)] 
Two improvements to boxy matching

I can't quite remember what provoked these two changes, but they are in my
tree.
One improves boxy_match (which failed unnecessarily)
One fixes boxy_lub (which was assymetrical)

11 years agoFix Trac #2206: ensure the return type is rigid in a GADT match
simonpj@microsoft.com [Thu, 10 Apr 2008 11:15:14 +0000 (11:15 +0000)] 
Fix Trac #2206: ensure the return type is rigid in a GADT match

11 years agoFix Trac #2205, which I introduced recently
simonpj@microsoft.com [Thu, 10 Apr 2008 09:43:36 +0000 (09:43 +0000)] 
Fix Trac #2205, which I introduced recently

11 years agoEnsure that arity is accurate in back end
simonpj@microsoft.com [Thu, 10 Apr 2008 08:49:30 +0000 (08:49 +0000)] 
Ensure that arity is accurate in back end

See Note [exprArity invariant] in CoreUtils.  In code generated by Happy
I was seeing this after TidyPgm and CorePrep

f :: Any
f {arity 1} = id `cast` unsafe-co

So f claimed to have arity 1 (because exprArity looked inside), but
did not have any top-level lambdas (because its type is Any).

This triggered a slightly-obscure ASSERT failure in CoreToStg

This patch
- makes exprArity trim the arity if the type is not a function
- adds a stronger ASSERT in TidyPgm

It's not the only way to solve this problem (see Note [exprArity invariant])
but it's enough for now.

11 years agoMake the arity and strictness agree, for wired-in bottoming Ids
simonpj@microsoft.com [Thu, 10 Apr 2008 08:26:19 +0000 (08:26 +0000)] 
Make the arity and strictness agree, for wired-in bottoming Ids

11 years agoFix bug in vectorisation of case expressions
Roman Leshchinskiy [Fri, 11 Apr 2008 04:53:07 +0000 (04:53 +0000)] 
Fix bug in vectorisation of case expressions

11 years agoExtend genprimopcode to print primop types for ext-core
Tim Chevalier [Thu, 10 Apr 2008 18:58:10 +0000 (18:58 +0000)] 
Extend genprimopcode to print primop types for ext-core

I added a new flag, --make-ext-core-source, to genprimopcode. It prints out the
type information for primops that the External Core typechecker needs. This
replaces the old mechanism where the ext-core tools had a hard-wired Prims
module that could get out of sync with the old primops.txt. Now, that won't happen.

11 years agoadd pointers to the wiki for the rules about C prototypes
Simon Marlow [Wed, 9 Apr 2008 20:41:43 +0000 (20:41 +0000)] 
add pointers to the wiki for the rules about C prototypes

11 years agoavoid warnings from ffi.h when UseLibFFIForAdjustors=YES
Simon Marlow [Wed, 9 Apr 2008 20:40:48 +0000 (20:40 +0000)] 
avoid warnings from ffi.h when UseLibFFIForAdjustors=YES

11 years agoFIX BUILD (bootstrap with -fvia-C): prototype fixes
Simon Marlow [Wed, 9 Apr 2008 20:37:24 +0000 (20:37 +0000)] 
FIX BUILD (bootstrap with -fvia-C): prototype fixes

11 years agoAnother round of External Core fixes
Tim Chevalier [Thu, 10 Apr 2008 04:37:27 +0000 (04:37 +0000)] 
Another round of External Core fixes

With this patch, GHC should now be printing External Core in a format
that a stand-alone program can parse and typecheck. Major bug fixes:

- The printer now handles qualified/unqualified declarations correctly
   (particularly data constructor declarations)
- It prints newtype declarations with enough information to
  typecheck code that uses the induced coercions (this required a
syntax change)
- It expands type synonyms correctly

Documentation and external tool patches will follow.

11 years agoAdding environment variable HPCTIXDIR, a directory to place tix results.
andy@galois.com [Tue, 8 Apr 2008 23:24:50 +0000 (23:24 +0000)] 
Adding environment variable HPCTIXDIR, a directory to place tix results.

11 years agoFixing hpc combine and hpc map to use the correct help message
andy@galois.com [Tue, 8 Apr 2008 23:20:32 +0000 (23:20 +0000)] 
Fixing hpc combine and hpc map to use the correct help message

11 years agoImport libffi-3.0.4, and use it to provide FFI support in GHCi
Simon Marlow [Tue, 8 Apr 2008 18:34:34 +0000 (18:34 +0000)] 
Import libffi-3.0.4, and use it to provide FFI support in GHCi

This replaces the hand-rolled architecture-specific FFI support in
GHCi with the standard libffi as used in GCJ, Python and other
projects.  I've bundled the complete libffi-3.0.4 tarball in the
source tree in the same way as we do for GMP, the difference being
that we always build and install our own libffi regardless of whether
there's one on the system (it's small, and we don't want
dependency/versioning headaches).

In particular this means that unregisterised builds will now have a
fully working GHCi including FFI out of the box, provided libffi
supports the platform.

There is also code in the RTS to use libffi in place of
rts/Adjustor.c, but it is currently not enabled if we already have
support in Adjustor.c for the current platform.  We need to assess the
performance impact before using libffi here too (in GHCi we don't care
too much about performance).

11 years agoFIX BUILD on non-x86: add missing prototypes
Simon Marlow [Mon, 7 Apr 2008 21:37:48 +0000 (21:37 +0000)] 
FIX BUILD on non-x86: add missing prototypes

11 years agoupdate a comment
Simon Marlow [Mon, 7 Apr 2008 21:24:37 +0000 (21:24 +0000)] 
update a comment

11 years agoremove dead code
Simon Marlow [Thu, 3 Apr 2008 22:34:22 +0000 (22:34 +0000)] 
remove dead code

11 years agoReplace one occurance of CVS with darcs in HACKING
Samuel Bronson [Mon, 7 Apr 2008 22:20:06 +0000 (22:20 +0000)] 
Replace one occurance of CVS with darcs in HACKING

11 years agoRemove GADT refinements, part 5
Manuel M T Chakravarty [Mon, 7 Apr 2008 07:07:28 +0000 (07:07 +0000)] 
Remove GADT refinements, part 5
- TcGadt RIP
- The non-side effecting unification code is now in types/Unify.lhs
  along with the refinement code needed for GADT record selectors.

11 years agoRemove GADT refinements, part 4
Manuel M T Chakravarty [Mon, 3 Mar 2008 06:33:47 +0000 (06:33 +0000)] 
Remove GADT refinements, part 4
- MkId.mkRecordSelId only used a special case of refineGadt, which doesn't
  need full unification.  That special case is now implemented as
  TcGadt.matchRefine and TcGadt.refineGadt can finally go.

11 years agoImprove error message for malformed LANGUAGE pragma
Tim Chevalier [Sun, 6 Apr 2008 20:23:33 +0000 (20:23 +0000)] 
Improve error message for malformed LANGUAGE pragma

I made the error (which previously said "cannot parse LANGUAGE
pragma") slightly more helpful by reminding the user that pragmas
should be comma-separated.

11 years agoImprove error message for non-matching file name
Tim Chevalier [Sun, 6 Apr 2008 19:38:21 +0000 (19:38 +0000)] 
Improve error message for non-matching file name

I changed the "File name does not match module name" error message so
that it prints out both the declared module name and the expected
module name (before, it was only printing the declared module name.)

11 years agoVirtualize the cwd in GHCi
Pepe Iborra [Sat, 5 Apr 2008 14:51:36 +0000 (14:51 +0000)] 
Virtualize the cwd in GHCi

This fixes the issue where :list would stop working if the
program being debugged side-effected the working directory,
and should prevent other similar issues

11 years agoFix rendering of references in :print under -fprint-evld-with-show flag
Pepe Iborra [Wed, 19 Dec 2007 17:44:31 +0000 (17:44 +0000)] 
Fix rendering of references in :print under -fprint-evld-with-show flag

11 years agoFix Trac #2188: scoping in TH declarations quotes
simonpj@microsoft.com [Fri, 4 Apr 2008 20:55:56 +0000 (20:55 +0000)] 
Fix Trac #2188: scoping in TH declarations quotes

This patch fixes a rather tiresome issue, namely the fact that
a TH declaration quote *shadows* bindings in outer scopes:

  f g = [d| f :: Int
            f = g
       g :: Int
            g = 4 |]

Here, the outer bindings for 'f' (top-level) and 'g' (local)
are shadowed, and the inner bindings for f,g should not be
reported as duplicates.  (Remember they are top-level bindings.)

The actual bug was that we'd forgotten to delete 'g' from the
LocalRdrEnv, so the type sig for 'g' was binding to the outer
'g' not the inner one.

11 years agoFix simplifier thrashing
simonpj@microsoft.com [Thu, 3 Apr 2008 22:38:19 +0000 (22:38 +0000)] 
Fix simplifier thrashing

Another example of the simplifier thrashing, getting nowhere.
See SimplUtils, Note [Unsaturated functions]

There's a test at eyeball/inline4.hs

11 years agoFix Trac #2179: error message for main
simonpj@microsoft.com [Thu, 3 Apr 2008 17:37:46 +0000 (17:37 +0000)] 
Fix Trac #2179: error message for main

A short-cut to generate the (runMainIO main) wrapper turned out
to make a bad error message.  This should fix it.

11 years agoFix Trac #2136: reporting of unused variables
simonpj@microsoft.com [Thu, 3 Apr 2008 11:02:50 +0000 (11:02 +0000)] 
Fix Trac #2136: reporting of unused variables

There's a bit of a hack RnBinds.rnValBindsAndThen, documented
in Note [Unused binding hack].  But the hack was over brutal
before, and produced unnecssarily bad (absence of) warnings.
This patch does a bit of refactoring; and fixes the bug in
rnValBindsAndThen.

11 years agoFix Trac #2137: report correct location for shadowed binding
simonpj@microsoft.com [Wed, 2 Apr 2008 15:34:10 +0000 (15:34 +0000)] 
Fix Trac #2137: report correct location for shadowed binding

The error message generation for a shadowed binding was
plain wrong, at least where the shadowed binding isn't
top-level.  Just a typo really -- the fix is trivial.

11 years agoFix Trac #2141: invalid record update
simonpj@microsoft.com [Wed, 2 Apr 2008 13:20:57 +0000 (13:20 +0000)] 
Fix Trac #2141: invalid record update

See Note [Record field lookup] in TcEnv.  The fix here
is quite straightforward.

11 years agoDo not #include external header files when compiling via C
Simon Marlow [Wed, 2 Apr 2008 05:14:12 +0000 (05:14 +0000)] 
Do not #include external header files when compiling via C

This has several advantages:

 - -fvia-C is consistent with -fasm with respect to FFI declarations:
   both bind to the ABI, not the API.

 - foreign calls can now be inlined freely across module boundaries, since
   a header file is not required when compiling the call.

 - bootstrapping via C will be more reliable, because this difference
   in behavour between the two backends has been removed.

There is one disadvantage:

 - we get no checking by the C compiler that the FFI declaration
   is correct.

So now, the c-includes field in a .cabal file is always ignored by
GHC, as are header files specified in an FFI declaration.  This was
previously the case only for -fasm compilations, now it is also the
case for -fvia-C too.

11 years agoDerive a valid Ix instance for data Foo = Foo Int Int
Ian Lynagh [Sun, 30 Mar 2008 18:28:13 +0000 (18:28 +0000)] 
Derive a valid Ix instance for data Foo = Foo Int Int
The old one didn't satisfy the axioms. See trac #2158 for details.

11 years agoRevive External Core parser
Tim Chevalier [Sat, 29 Mar 2008 22:39:48 +0000 (22:39 +0000)] 
Revive External Core parser

Huzzah, the External Core parser will now parse External Core generated by
the HEAD.

Most notably, I rewrote the parser in Parsec, but the old Happy version
remains in the repository.

I checked all the nofib benchmarks and most of the ghc-prim, base and integer
libraries to make sure they parsed; one known bug:
  - Strings like "\x0aE", in which a hex escape code is followed by a
    letter that could be a hex digit, aren't handled properly. I'm
    investigating whether this is a bug in Parsec or expected behavior.

The checker and interpreter still don't work, but should compile.

Please mess around with the parser, report bugs, improve my code, etc.,
if you're so inclined.

11 years agoFix big character literal printing in External Core
Tim Chevalier [Sat, 29 Mar 2008 22:11:09 +0000 (22:11 +0000)] 
Fix big character literal printing in External Core

Characters bigger than '\xff' should be represented as int
literals in External Core. (This was originally fixed five years ago
and broken again four and a half years ago...)

11 years agoExternal Core: don't print superfluous parens in case types
Tim Chevalier [Sat, 29 Mar 2008 19:46:29 +0000 (19:46 +0000)] 
External Core: don't print superfluous parens in case types

The External Core printer was parenthesizing the scrutinee type in case expressions. Since this type is required to be atomic, the parens aren't necessary.

11 years agoDon't import FastString in HsVersions.h
Ian Lynagh [Sat, 29 Mar 2008 18:50:43 +0000 (18:50 +0000)] 
Don't import FastString in HsVersions.h
Modules that need it import it themselves instead.

11 years agoDEBUG removal
Ian Lynagh [Sat, 29 Mar 2008 17:11:35 +0000 (17:11 +0000)] 
DEBUG removal

11 years agoDEBUG removal
Ian Lynagh [Sat, 29 Mar 2008 17:10:13 +0000 (17:10 +0000)] 
DEBUG removal

11 years agoDEBUG removal
Ian Lynagh [Sat, 29 Mar 2008 17:09:35 +0000 (17:09 +0000)] 
DEBUG removal

11 years agoDEBUG removal
Ian Lynagh [Sat, 29 Mar 2008 17:03:41 +0000 (17:03 +0000)] 
DEBUG removal

11 years agoDEBUG removal
Ian Lynagh [Sat, 29 Mar 2008 17:02:27 +0000 (17:02 +0000)] 
DEBUG removal

11 years agoDEBUG removal
Ian Lynagh [Sat, 29 Mar 2008 16:54:12 +0000 (16:54 +0000)] 
DEBUG removal

11 years agoFix typo; spotted by Bdh in #ghc
Ian Lynagh [Sat, 29 Mar 2008 16:53:03 +0000 (16:53 +0000)] 
Fix typo; spotted by Bdh in #ghc

11 years agoDEBUG removal
Ian Lynagh [Sat, 29 Mar 2008 16:48:49 +0000 (16:48 +0000)] 
DEBUG removal

11 years agoDEBUG removal
Ian Lynagh [Sat, 29 Mar 2008 16:44:20 +0000 (16:44 +0000)] 
DEBUG removal

11 years agoRemove a DEBUG use
Ian Lynagh [Sat, 29 Mar 2008 16:42:09 +0000 (16:42 +0000)] 
Remove a DEBUG use

11 years agoRemove a DEBUG
Ian Lynagh [Sat, 29 Mar 2008 16:39:36 +0000 (16:39 +0000)] 
Remove a DEBUG

11 years agoRemove more #ifdef DEBUGs
Ian Lynagh [Sat, 29 Mar 2008 14:57:16 +0000 (14:57 +0000)] 
Remove more #ifdef DEBUGs

11 years agoRemove an #ifdef DEBUG
Ian Lynagh [Sat, 29 Mar 2008 14:55:08 +0000 (14:55 +0000)] 
Remove an #ifdef DEBUG

11 years agoRemove an #ifdef DEBUG
Ian Lynagh [Sat, 29 Mar 2008 14:52:44 +0000 (14:52 +0000)] 
Remove an #ifdef DEBUG

11 years agoRemove an #ifdef DEBUG
Ian Lynagh [Sat, 29 Mar 2008 14:48:44 +0000 (14:48 +0000)] 
Remove an #ifdef DEBUG

11 years agoRemove a #ifdef DEBUG
Ian Lynagh [Sat, 29 Mar 2008 14:46:58 +0000 (14:46 +0000)] 
Remove a #ifdef DEBUG

11 years agoRemove an #ifdef DEBUG
Ian Lynagh [Sat, 29 Mar 2008 14:45:44 +0000 (14:45 +0000)] 
Remove an #ifdef DEBUG

11 years agoRemove some redundant code
Ian Lynagh [Sat, 29 Mar 2008 14:42:26 +0000 (14:42 +0000)] 
Remove some redundant code

11 years agoprelude/PrimOp is now mostly warning-free
Ian Lynagh [Sat, 29 Mar 2008 14:39:14 +0000 (14:39 +0000)] 
prelude/PrimOp is now mostly warning-free
commutableOp seems to be unused, so we're no 100% there yet.

11 years agoFix warnings from primops.txt.pp
Ian Lynagh [Sat, 29 Mar 2008 14:26:37 +0000 (14:26 +0000)] 
Fix warnings from primops.txt.pp

11 years agoUse _ rather than "other" in generated code
Ian Lynagh [Sat, 29 Mar 2008 14:25:08 +0000 (14:25 +0000)] 
Use _ rather than "other" in generated code

11 years agoFix some warnings
Ian Lynagh [Sat, 29 Mar 2008 14:22:19 +0000 (14:22 +0000)] 
Fix some warnings

11 years agoRemove some redundant imports
Ian Lynagh [Sat, 29 Mar 2008 14:18:09 +0000 (14:18 +0000)] 
Remove some redundant imports

11 years agoRemove an #ifdef DEBUG
Ian Lynagh [Sat, 29 Mar 2008 14:17:33 +0000 (14:17 +0000)] 
Remove an #ifdef DEBUG

11 years agoRemove an #ifdef DEBUG
Ian Lynagh [Sat, 29 Mar 2008 14:16:29 +0000 (14:16 +0000)] 
Remove an #ifdef DEBUG

11 years agoRemove some unnecessary imports
Ian Lynagh [Sat, 29 Mar 2008 14:11:45 +0000 (14:11 +0000)] 
Remove some unnecessary imports

11 years agoRemove an unnecessary #ifdef DEBUG
Ian Lynagh [Sat, 29 Mar 2008 14:10:47 +0000 (14:10 +0000)] 
Remove an unnecessary #ifdef DEBUG

11 years agoAnother debugIsOn use
Ian Lynagh [Sat, 29 Mar 2008 14:01:26 +0000 (14:01 +0000)] 
Another debugIsOn use

11 years agoConvert some DEBUG uses to debugIsOn
Ian Lynagh [Sat, 29 Mar 2008 13:59:50 +0000 (13:59 +0000)] 
Convert some DEBUG uses to debugIsOn

11 years agoPut debugIsOn in Util, rather than rely on it being CPPed in
Ian Lynagh [Sat, 29 Mar 2008 13:57:55 +0000 (13:57 +0000)] 
Put debugIsOn in Util, rather than rely on it being CPPed in

11 years agoExternal Core: print function types correctly, improve newtype pretty-printing
Tim Chevalier [Fri, 28 Mar 2008 22:26:30 +0000 (22:26 +0000)] 
External Core: print function types correctly, improve newtype pretty-printing

- In a previous patch I broke the printing of fully-applied arrow
types (e.g., "a -> b" was "(ghczmprim:GHCziPrim a b)") by z-encoding
package names and not updating the primitive module name as defined in
External Core accordingly. Fixed. (Mega sigh...)

- Make newtype decls print slightly more readably.

11 years agoPrint out rational literals correctly in External Core
Tim Chevalier [Fri, 28 Mar 2008 21:19:19 +0000 (21:19 +0000)] 
Print out rational literals correctly in External Core

The External Core printer was printing out rational literals of the
form:
2.0e-2
when the External Core grammar doesn't allow this. (This
bug has apparently been there since the beginning...)

It's now printing rationals in the same form that (show (r::Rational))
does. This requires a parser change as well (soon to come.)

11 years agoChange syntax for qualified names in External Core
Tim Chevalier [Thu, 27 Mar 2008 18:54:36 +0000 (18:54 +0000)] 
Change syntax for qualified names in External Core

Two changes that make the ext-core code uglier but the parser easier:

- Prefix qualified names with "^" so that we can more easily
distinguish a qualified name:
   ^a:Foo.Bar.quux
from an unqualified name:
   a

- z-encode package names ("ghc-prim" was the culprit.)

11 years agoMake use of the SDoc type synonym
Ian Lynagh [Wed, 26 Mar 2008 17:53:06 +0000 (17:53 +0000)] 
Make use of the SDoc type synonym

11 years agoFix warnings in rename/RnTypes
Ian Lynagh [Wed, 26 Mar 2008 17:46:57 +0000 (17:46 +0000)] 
Fix warnings in rename/RnTypes

11 years agoFix warnings in basicTypes/IdInfo
Ian Lynagh [Wed, 26 Mar 2008 17:00:14 +0000 (17:00 +0000)] 
Fix warnings in basicTypes/IdInfo

11 years agoFix warnings in basicTypes/NameEnv
Ian Lynagh [Wed, 26 Mar 2008 16:51:39 +0000 (16:51 +0000)] 
Fix warnings in basicTypes/NameEnv

11 years agoFix warnings in basicTypes/NameSet
Ian Lynagh [Wed, 26 Mar 2008 16:48:37 +0000 (16:48 +0000)] 
Fix warnings in basicTypes/NameSet

11 years agoFix warning in basicTypes/NewDemand
Ian Lynagh [Wed, 26 Mar 2008 16:00:17 +0000 (16:00 +0000)] 
Fix warning in basicTypes/NewDemand

11 years agoFix warnings in basicTypes/VarEnv
Ian Lynagh [Wed, 26 Mar 2008 15:54:12 +0000 (15:54 +0000)] 
Fix warnings in basicTypes/VarEnv

11 years agoFix warnings in basicTypes/VarSet
Ian Lynagh [Wed, 26 Mar 2008 15:51:05 +0000 (15:51 +0000)] 
Fix warnings in basicTypes/VarSet

11 years agomain/BreakArray has no warnings
Ian Lynagh [Wed, 26 Mar 2008 15:47:47 +0000 (15:47 +0000)] 
main/BreakArray has no warnings

11 years agoIn validate settings, make -Werror easier to override
Ian Lynagh [Wed, 26 Mar 2008 14:10:30 +0000 (14:10 +0000)] 
In validate settings, make -Werror easier to override

11 years agoRemove a redundant type sig
Ian Lynagh [Wed, 26 Mar 2008 00:49:32 +0000 (00:49 +0000)] 
Remove a redundant type sig

11 years agoFix warnings in main/DriverPhases
Ian Lynagh [Tue, 25 Mar 2008 23:58:28 +0000 (23:58 +0000)] 
Fix warnings in main/DriverPhases

11 years agoRemove redundant type sig
Ian Lynagh [Tue, 25 Mar 2008 23:58:01 +0000 (23:58 +0000)] 
Remove redundant type sig

11 years agoFix warnings in main/HscStats
Ian Lynagh [Tue, 25 Mar 2008 23:41:10 +0000 (23:41 +0000)] 
Fix warnings in main/HscStats

11 years agoFix warnings in main/Constants
Ian Lynagh [Tue, 25 Mar 2008 23:30:34 +0000 (23:30 +0000)] 
Fix warnings in main/Constants

11 years agoFix warnings in main/InteractiveEval
Ian Lynagh [Tue, 25 Mar 2008 23:01:53 +0000 (23:01 +0000)] 
Fix warnings in main/InteractiveEval

11 years agoFix warnings in main/Packages
Ian Lynagh [Tue, 25 Mar 2008 22:44:44 +0000 (22:44 +0000)] 
Fix warnings in main/Packages

11 years agoFix warnings in main/PprTyThing
Ian Lynagh [Tue, 25 Mar 2008 22:31:04 +0000 (22:31 +0000)] 
Fix warnings in main/PprTyThing

11 years agoFix warnings in main/StaticFlags
Ian Lynagh [Tue, 25 Mar 2008 22:16:32 +0000 (22:16 +0000)] 
Fix warnings in main/StaticFlags

11 years agoChange syntax for newtypes in External Core
Tim Chevalier [Tue, 25 Mar 2008 17:02:18 +0000 (17:02 +0000)] 
Change syntax for newtypes in External Core

The way that newtype declarations were printed in External Core files was
incomplete, since there was no declaration for the coercion introduced by a
newtype.

For example, the Haskell source:

newtype T a = MkT (a -> a)

foo (MkT x) = x

got printed out in External Core as (roughly):

  %newtype T a = a -> a;

  foo :: %forall t . T t -> t -> t =
    %cast (\ @ t -> a1 @ t)
    (%forall t . T t -> ZCCoT t);

There is no declaration anywhere in the External Core program for :CoT, so
that's bad.

I changed the newtype decl syntax so as to include the declaration for the
coercion axiom introduced by the newtype. Now, it looks like:

  %newtype T a ^ (ZCCoT :: ((T a) :=: (a -> a))) = a -> a;

And an external typechecker could conceivably typecheck code that uses this.

The major changes are to MkExternalCore and PprExternalCore (as well as
ExternalCore, to change the External Core AST.) I also corrected some typos in
comments in other files.

Documentation and external tool changes to follow.