Simon Peyton Jones [Tue, 1 May 2012 07:17:59 +0000 (08:17 +0100)]
Wibble to pretty printing
Simon Peyton Jones [Tue, 1 May 2012 07:08:13 +0000 (08:08 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Simon Peyton Jones [Tue, 1 May 2012 07:07:52 +0000 (08:07 +0100)]
Tidy up a remaining glitch in unification
There was one place, in type checking parallel list comprehensions
where we were unifying types, but had no convenient way to use the
resulting coercion; instead we just checked that it was Refl. This
was Wrong Wrong; it might fail unpredicably in a GADT-like situation,
and it led to extra error-generation code used only in this one place.
This patch tidies it all up, by moving the 'return' method from the
*comprehension* to the ParStmtBlock. The latter is a new data type,
now used for each sub-chunk of a parallel list comprehension.
Because of the data type change, quite a few modules are touched,
but only in a fairly trivial way. The real changes are in TcMatches
(and corresponding desugaring); plus deleting code from TcUnify.
This patch also fixes the pretty-printing bug in Trac #6060
Ian Lynagh [Mon, 30 Apr 2012 23:25:55 +0000 (00:25 +0100)]
Fix maintenance of n_blocks in the RTS
It was causing assertion failures of
ASSERT(countBlocks(nursery->blocks) == nursery->n_blocks)
at
ghc-stage2: internal error: ASSERTION FAILED: file rts/sm/Sanity.c, line 878
Ian Lynagh [Mon, 30 Apr 2012 21:47:15 +0000 (22:47 +0100)]
More Win32 build fixes
Ian Lynagh [Mon, 30 Apr 2012 19:37:29 +0000 (20:37 +0100)]
Fixes for x86/Linux
Ian Lynagh [Mon, 30 Apr 2012 19:14:36 +0000 (20:14 +0100)]
Fix the stage1 ghc hschooks.c
The stage0 compiler might have a different idea as to what type lnat
corresponds to, so cast the value to the type we want.
Ian Lynagh [Mon, 30 Apr 2012 17:59:24 +0000 (18:59 +0100)]
Fix build of rts/Linker.c on Win32
Ian Lynagh [Mon, 30 Apr 2012 17:04:54 +0000 (18:04 +0100)]
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Ian Lynagh [Mon, 30 Apr 2012 15:54:23 +0000 (16:54 +0100)]
Get GHCi working on Win64
Simon Peyton Jones [Mon, 30 Apr 2012 15:43:02 +0000 (16:43 +0100)]
Document eta expansion under GHC bugs and infelicities
Simon Peyton Jones [Mon, 30 Apr 2012 15:20:01 +0000 (16:20 +0100)]
Egregious typo (fixes Trac #6055)
Simon Peyton Jones [Mon, 30 Apr 2012 12:43:33 +0000 (13:43 +0100)]
Merge branch 'master' of darcs.haskell.org//ghc
Simon Peyton Jones [Mon, 30 Apr 2012 12:40:51 +0000 (13:40 +0100)]
More explicit pretty-printing of promoted TyCons with -dppr-debug
Simon Peyton Jones [Mon, 30 Apr 2012 12:40:23 +0000 (13:40 +0100)]
Make the interface-file deserialisation work right for promoted types (Trac #6054)
GHC currently uses the slightly-dodgy plan that when we proote
a TyCon to be a Kind constructor we leave it with the same Name.
That means that to make sense of a IfaceType we need to know wheter
it is really an IfaceType or an IfaceKind, because in the latter an
occurrence of (say) Maybe will be the *promoted* Maybe.
See Note [Checking IfaceTypes vs IfaceKinds] in TcIface
Simon Peyton Jones [Fri, 27 Apr 2012 17:07:57 +0000 (18:07 +0100)]
Revert "Add -faggressive-primops"
This reverts commit
745ec959ff647c3a455767d20f6f37e9a0cc65aa.
Sigh. Seg fault
Simon Peyton Jones [Fri, 27 Apr 2012 17:07:26 +0000 (18:07 +0100)]
Revert "Refactoring in CoreUtils/CoreArity"
This reverts commit
e3f8557c2aca04cf64eec6a1aacde6e01c0944ff.
Sigh. Seg fault.
Simon Peyton Jones [Fri, 27 Apr 2012 17:06:33 +0000 (18:06 +0100)]
Revert "Make more primops cheaper"
This reverts commit
a365a58eade7cb2c961af8e60c20b7d78b1b7484.
Sigh. Seg fault. Major sigh.
Simon Peyton Jones [Fri, 27 Apr 2012 16:46:43 +0000 (17:46 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Simon Peyton Jones [Fri, 27 Apr 2012 16:45:56 +0000 (17:45 +0100)]
Make more primops cheaper
This puts back the earlier behaviour (pre "aggressive-primop" patch)
whereby most primpos were considered cheap. In the aggressive-primop
patch we made them ones with bigger "code_size" seem not-cheap, but
this slows down fft2 a lot. So I've reverted to the earlier behaviour.
+++ b/compiler/prelude/PrimOp.lhs
@@ -450,6 +450,8 @@ primOpIsCheap op
-- This is vital; see Note [PrimOp can_fail and has_side_effects]
&& not (primOpOutOfLine op)
- -- && primOpCodeSize op <= primOpCodeSizeDefault
+-- Omitting; it makes fft2 run a lot slower by preventing
+-- eta expansion in an inner loop, with a primop cosDouble#
Simon Peyton Jones [Fri, 27 Apr 2012 16:42:22 +0000 (17:42 +0100)]
Comment out a pprTrace unless DEBUG is on (fix Trac #5929)
Simon Peyton Jones [Fri, 27 Apr 2012 16:35:32 +0000 (17:35 +0100)]
Merge branch 'master' of darcs.haskell.org:/home/darcs/ghc
Simon Peyton Jones [Fri, 27 Apr 2012 15:50:09 +0000 (16:50 +0100)]
Pretty printing and debug improvements
Simon Peyton Jones [Fri, 27 Apr 2012 15:28:31 +0000 (16:28 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Simon Peyton Jones [Fri, 27 Apr 2012 15:28:02 +0000 (16:28 +0100)]
Refactoring in CoreUtils/CoreArity
In the previous commit about "aggressive primops" I wanted a new
function CoreUtils.exprCertainlyTerminates. In doing this I ended up
with a significant refactoring in CoreUtils. The new structure has
quite a lot of nice sharing:
exprIsCheap = exprIsCheap' isHNFApp
exprIsExpandable = exprIsCheap' isConLikeApp
exprIsHNF = exprIsHNFlike isHNFApp
exprIsConLike = exprIsHNFlike isConLikeApp
exprCertainlyTerminates = exprIsHNFlike isTerminatingApp
This patch also does some renaming
CheapAppFun --> FunAppAnalyser
isCheapApp --> isHNFApp
isExpandableApp --> isConLikeApp
Simon Peyton Jones [Fri, 27 Apr 2012 15:25:12 +0000 (16:25 +0100)]
Add -faggressive-primops
I'm experimenting with making GHC a bit more aggressive about
a) dropping case expressions if the result is unused
Simplify.rebuildCase, CaseElim equation
b) floating case expressions inwards
FloatIn.fiExpr, AnnCase
In both cases the new behaviour is gotten with a static (debug)
flag -faggressive-primops. The extra "aggression" is to allow
discarding and floating in for side-effecting operations. See
the new, extensive Note [PrimOp can_fail and has_side_effects]
and Note [Aggressive PrimOps] in PrimoOp.
When discarding a case with unused binders, in the lifted-type
case it's definitely ok if the scrutinee terminates; previously
we were checking exprOkForSpeculation, which is significantly
worse.
There's a related change to CoreUtils/CoreArity, but I'll put that
in the next commit.
Simon Peyton Jones [Fri, 27 Apr 2012 15:20:38 +0000 (16:20 +0100)]
Debug printing only
Simon Peyton Jones [Fri, 27 Apr 2012 15:19:51 +0000 (16:19 +0100)]
Small refactoring in kind generalisation of type declarations
Simon Peyton Jones [Fri, 27 Apr 2012 15:19:23 +0000 (16:19 +0100)]
White space and debug printint
Ian Lynagh [Fri, 27 Apr 2012 14:14:47 +0000 (15:14 +0100)]
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Simon Marlow [Fri, 27 Apr 2012 12:20:56 +0000 (13:20 +0100)]
hs_init(): cope with argc and/or argv being NULL (#6006)
Ian Lynagh [Fri, 27 Apr 2012 12:11:50 +0000 (13:11 +0100)]
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Simon Marlow [Fri, 27 Apr 2012 12:07:50 +0000 (13:07 +0100)]
Catch illegal imports earlier (#6007)
Simon Marlow [Fri, 27 Apr 2012 10:12:38 +0000 (11:12 +0100)]
Add a new primop mkWeakNoFinalizer (#5879)
Ian Lynagh [Fri, 27 Apr 2012 10:48:37 +0000 (11:48 +0100)]
Fix build on OS X
Karel Gardas [Wed, 25 Apr 2012 07:04:50 +0000 (09:04 +0200)]
add support for ARM hard-float ABI (fixes #5914)
This patch enhances Platform's ArchARM to include ARM ABI value. It also
tweaks configure machinery to detect hard-float ABI and to set it wherever
needed. Finally when hard-float ABI is in use, pass appropriate compiler
option to the LLVM's llc. Fixes #5914.
Paolo Capriotti [Fri, 27 Apr 2012 08:46:06 +0000 (09:46 +0100)]
Doc: updated list of warnings not enabled by -Wall (#4817)
Paolo Capriotti [Fri, 27 Apr 2012 08:40:40 +0000 (09:40 +0100)]
Flags documentation: -fwarn-unrecognized-pragmas is enabled by -Wall (#6050)
Ian Lynagh [Fri, 27 Apr 2012 00:30:12 +0000 (01:30 +0100)]
Merge branch 'master' of win:c:/ghc/git/cygwin/.
Ian Lynagh [Fri, 27 Apr 2012 00:28:26 +0000 (01:28 +0100)]
Win32 build fix
Ian Lynagh [Fri, 27 Apr 2012 00:27:48 +0000 (01:27 +0100)]
Fix build on Win32, and handle the FMT_* #defines in a slightly nicer way
Ian Lynagh [Thu, 26 Apr 2012 23:25:17 +0000 (00:25 +0100)]
Simplify format specifiers
It turns out that we can use %zu and %llu on Win32, provided we
include PosixSource everywhere we want to use them.
Ian Lynagh [Thu, 26 Apr 2012 22:04:05 +0000 (23:04 +0100)]
Win32 build fix
Ian Lynagh [Thu, 26 Apr 2012 20:49:46 +0000 (21:49 +0100)]
Document the -fwarn-unsupported-calling-conventions flag
Ian Lynagh [Thu, 26 Apr 2012 19:53:18 +0000 (20:53 +0100)]
OS X build fixes
OS X doesn't understand 'gnu_printf', so we need to onyl use it
conditionally.
Ian Lynagh [Thu, 26 Apr 2012 19:46:00 +0000 (20:46 +0100)]
Fix build on OSX: Use the 'z' format specifier modifier when possible
On Win32 it's not recognised, so we unfortunately can't use it
unconditionally.
Ian Lynagh [Thu, 26 Apr 2012 19:24:06 +0000 (20:24 +0100)]
Build fixes
Ian Lynagh [Thu, 26 Apr 2012 18:45:11 +0000 (19:45 +0100)]
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Ian Lynagh [Thu, 26 Apr 2012 18:40:52 +0000 (19:40 +0100)]
Merge win:c:/m64/reg8
Ian Lynagh [Thu, 26 Apr 2012 18:28:39 +0000 (19:28 +0100)]
Add SRC_[CH]C_WARNING_OPTS
This allows you to say things like
SRC_HC_WARNING_OPTS += -fno-warn-unsupported-calling-conventions
in mk/validate.mk.
Unfortunately, we can't just use SRC_HC_OPTS, as that gets put before
the more specific options (e.g. ghc-options in a .cabal file), many of
which include -Wall. So now we have:
ghc $(SRC_HC_OPTS) ... options from .cabal etc ... $(SRC_HC_WARNING_OPTS)
Ian Lynagh [Thu, 26 Apr 2012 17:39:15 +0000 (18:39 +0100)]
Win64 build fix
Simon Peyton Jones [Thu, 26 Apr 2012 17:06:36 +0000 (18:06 +0100)]
Use coreBindsStats more than coreBindsSize
Simon Peyton Jones [Thu, 26 Apr 2012 17:05:54 +0000 (18:05 +0100)]
Tiny refactor
Paolo Capriotti [Wed, 25 Apr 2012 13:10:40 +0000 (14:10 +0100)]
Fix lookup of fixity signatures for type operators (#6027)
Extend name lookup for fixity declaration to the TcClsName namespace for
all reader names, instead of only those in DataName.
Ian Lynagh [Thu, 26 Apr 2012 15:52:44 +0000 (16:52 +0100)]
Fix warnings on Win64
Mostly this meant getting pointer<->int conversions to use the right
sizes. lnat is now size_t, rather than unsigned long, as that seems a
better match for how it's used.
Simon Peyton Jones [Thu, 26 Apr 2012 13:39:59 +0000 (14:39 +0100)]
Make the RHS of a generic FamInst use the same type variables as the LHS!
Simon Peyton Jones [Thu, 26 Apr 2012 12:51:26 +0000 (13:51 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Simon Peyton Jones [Thu, 26 Apr 2012 12:47:54 +0000 (13:47 +0100)]
Do not generate derived instances in TH brackets
See Note [Deriving inside TH brackets] in TcInstDcls
Fixes Trac #6005 (again)
Simon Peyton Jones [Thu, 26 Apr 2012 12:47:20 +0000 (13:47 +0100)]
Remove spurious debug print
Geoffrey Mainland [Thu, 26 Apr 2012 12:00:07 +0000 (13:00 +0100)]
Allow case expressions with a single alternative to be floated in.
This change generalizes support for floating in case expressions. Previously,
case expression with an unlifted scrutinee and a single DEFAULT alternative were
floated in. In particular, this allowed array index operations to be floated
in. We also want to float in SIMD unpack primops, which return an unboxed tuple
of scalars, thus the generalization.
Simon Peyton Jones [Thu, 26 Apr 2012 08:29:29 +0000 (09:29 +0100)]
Improve debug print a bit
Simon Peyton Jones [Thu, 26 Apr 2012 08:29:15 +0000 (09:29 +0100)]
Fix a one-character typo (kv1 should be kv2!)
Fixes Trac #6020, #6044
Simon Peyton Jones [Wed, 25 Apr 2012 14:34:01 +0000 (15:34 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Simon Peyton Jones [Wed, 25 Apr 2012 14:28:28 +0000 (15:28 +0100)]
Fix typo
Simon Marlow [Wed, 25 Apr 2012 13:04:10 +0000 (14:04 +0100)]
make -XNoImplicitPrelude work properly in GHCi
Simon Marlow [Mon, 16 Apr 2012 13:54:45 +0000 (14:54 +0100)]
distclean was removing ghc-pwd/dist, should be ghc-pwd/dist-boot
This has been causing bloat in the src dist for ages.
Noticed while looking at #6009, but I don't think this is the bug
(./configure always removes ghc-pwd/dist-boot before building ghc-pwd)
Simon Peyton Jones [Wed, 25 Apr 2012 11:56:44 +0000 (12:56 +0100)]
More fixes to kind polymorphism, fixes Trac #6035, #6036
* Significant refactoring in tcFamPats and tcConDecl
* It seems that we have to allow KindVars (not just
TcKindVars during kind unification. See
Note [Unifying kind variables] in TcUnify.
* Be consistent about zonkQuantifiedTyVars
* Split the TcType->TcType zonker (in TcMType)
from the TcType->Type zonker (in TcHsSyn)
The clever parameterisation was doing my head in,
and it's only a small function
* Remove some dead code (tcTyVarBndrsGen)
Simon Peyton Jones [Wed, 25 Apr 2012 11:55:41 +0000 (12:55 +0100)]
Fix looking up of Exact RdrNames, fixes Trac #6005
See Note [Splicing Exact names] in RnEnv.
Simon Peyton Jones [Wed, 25 Apr 2012 11:48:46 +0000 (12:48 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Gabriele Keller [Wed, 25 Apr 2012 04:37:26 +0000 (14:37 +1000)]
removed superfluous flag for vectScalarFun
Simon Peyton Jones [Wed, 25 Apr 2012 08:51:54 +0000 (09:51 +0100)]
Merge branch 'master' of darcs.haskell.org//ghc
Simon Peyton Jones [Wed, 25 Apr 2012 08:51:02 +0000 (09:51 +0100)]
Improve pretty-printing
Simon Peyton Jones [Wed, 25 Apr 2012 08:37:53 +0000 (09:37 +0100)]
Better error messages during sort checking of kind signatures
Fixes Trac #6039, where we have a bogus kind signature
data T (a :: j k) = MkT
Simon Peyton Jones [Wed, 25 Apr 2012 08:36:46 +0000 (09:36 +0100)]
Wibble to comment (to keep Haddock happy)
Simon Peyton Jones [Wed, 25 Apr 2012 07:25:27 +0000 (08:25 +0100)]
Merge remote-tracking branch 'origin/master'
Simon Peyton Jones [Wed, 25 Apr 2012 07:21:13 +0000 (08:21 +0100)]
Report deprecations at occurrence sites, not once per module
Fixes Trac #5867, and is generally nicer
David Terei [Tue, 24 Apr 2012 23:08:44 +0000 (16:08 -0700)]
Add experimental GHCi monad.
Modification of previous commit:
e0e99f9948c1eac82cf69dd3cc30cb068e42d45e
Allows setting which monad GHCi runs statements in. Unsupported at this
stage.
Ian Lynagh [Tue, 24 Apr 2012 22:12:25 +0000 (23:12 +0100)]
Add a flag for the unsupported calling convention warning
Ian Lynagh [Tue, 24 Apr 2012 22:10:24 +0000 (23:10 +0100)]
Win64 warning fix
Ian Lynagh [Tue, 24 Apr 2012 19:09:17 +0000 (20:09 +0100)]
It isn't guaranteed that Cabal is warning-free
Ian Lynagh [Tue, 24 Apr 2012 18:14:15 +0000 (19:14 +0100)]
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Ian Lynagh [Tue, 24 Apr 2012 16:19:58 +0000 (17:19 +0100)]
A couple of build fixes for Win64
Ian Lynagh [Tue, 24 Apr 2012 15:45:33 +0000 (16:45 +0100)]
Make the prototype for postHeapEvent match the definition
I've assumed that the definition type is right.
Ian Lynagh [Tue, 24 Apr 2012 15:39:55 +0000 (16:39 +0100)]
Use gnu_printf rather than just printf in function format attributes
On Windows, gcc thinks that printf means ms_printf, which is not the
case when we #define _POSIX_SOURCE 1.
Gabriele Keller [Tue, 24 Apr 2012 14:11:25 +0000 (00:11 +1000)]
Replaced tabs
Gabriele Keller [Tue, 24 Apr 2012 02:15:31 +0000 (12:15 +1000)]
Vectorisation Avoidance
Switched off by default. Use -favoid-vect to activate
Gabriele Keller [Thu, 16 Feb 2012 10:14:06 +0000 (21:14 +1100)]
Partial Vectoriasation
Gabriele Keller [Thu, 16 Feb 2012 10:01:19 +0000 (21:01 +1100)]
Fixed typo (wrong max constant) in Initiialise.hs
Paolo Capriotti [Tue, 24 Apr 2012 09:13:09 +0000 (10:13 +0100)]
Add symbol declaration for __fixunsdfdi in the linker.
Simon Peyton Jones [Tue, 24 Apr 2012 07:06:08 +0000 (08:06 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Ian Lynagh [Mon, 23 Apr 2012 15:11:46 +0000 (16:11 +0100)]
Merge nb:ghc/git/ghc
Ian Lynagh [Mon, 23 Apr 2012 15:05:02 +0000 (16:05 +0100)]
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Paolo Capriotti [Thu, 19 Apr 2012 12:28:47 +0000 (13:28 +0100)]
ghci: write exceptions to stderr (#5980)
Simon Peyton Jones [Mon, 23 Apr 2012 13:35:16 +0000 (14:35 +0100)]
Sort instances by location before printing them
Reduces wobble in error messages, and is better for the programmer
Simon Peyton Jones [Sun, 22 Apr 2012 17:32:50 +0000 (18:32 +0100)]
Tiny refactoring; no change in behaviour
Simon Peyton Jones [Sun, 22 Apr 2012 16:52:55 +0000 (17:52 +0100)]
Respect kind-variable scoping when instantiating dfuns
Fixes Trac #6020
Simon Peyton Jones [Sun, 22 Apr 2012 15:24:07 +0000 (16:24 +0100)]
Empty data types should not be "trimmed" by TidyPgm
That in turn means that you can derive Show etc in other modules,
fixing Trac #6031
Ian Lynagh [Sat, 21 Apr 2012 14:28:27 +0000 (15:28 +0100)]
Add an X86/amd64 implementation for quotRemWord2
Ian Lynagh [Sat, 21 Apr 2012 14:03:23 +0000 (15:03 +0100)]
Add a quotRemWord2 primop
It allows you to do
(high, low) `quotRem` d
provided high < d.
Currently only has an inefficient fallback implementation.
Manuel M T Chakravarty [Sat, 21 Apr 2012 07:43:34 +0000 (17:43 +1000)]
OS X: disable bootstrapping info for 'ar'
Xcode 4.3 installs the command line tools in a different location as earlier versions of Xcode. With the bootstrapping info, the build fails if the bootstrap compiler was built with an older version of Xcode.