| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | | | |
|
| | | | | |
|
| | | | | |
|
| |\ \ \ \ |
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
It turns out that we can use %zu and %llu on Win32, provided we
include PosixSource everywhere we want to use them.
|
| | | | | | |
|
| |/ / / / |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
OS X doesn't understand 'gnu_printf', so we need to onyl use it
conditionally.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
On Win32 it's not recognised, so we unfortunately can't use it
unconditionally.
|
| | | | | |
|
| |\ \ \ \
| | |/ / / |
|
| | |/ /
| | | |
| | | |
| | | |
| | | | |
Extend name lookup for fixity declaration to the TcClsName namespace for
all reader names, instead of only those in DataName.
|
| |\ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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)
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| |\ \ \ \
| | |/ / /
| |/| | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
I've assumed that the definition type is right.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
On Windows, gcc thinks that printf means ms_printf, which is not the
case when we #define _POSIX_SOURCE 1.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| |_|/ /
|/| | | |
|
| | | | |
|
|\ \ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
See Note [Deriving inside TH brackets] in TcInstDcls
Fixes Trac #6005 (again)
|
|/ / / / |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Fixes Trac #6020, #6044
|
|\ \ \ \ |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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)
|
|/ / / / |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* 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)
|
| | | |
| | | |
| | | |
| | | | |
See Note [Splicing Exact names] in RnEnv.
|
|\ \ \ \ |
|
| | |_|/
| |/| | |
|
| |\ \ \ |
|
| | |/ /
| |/| | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Fixes Trac #6039, where we have a bogus kind signature
data T (a :: j k) = MkT
|