| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Conflicts:
compiler/typecheck/TcCanonical.lhs
compiler/typecheck/TcSMonad.lhs
|
| | | | | | |
|
| | | | | | |
|
|\ \ \ \ \ \
| | |_|_|_|/
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Conflicts:
compiler/cmm/CmmLint.hs
compiler/cmm/OldCmm.hs
compiler/codeGen/CgMonad.lhs
compiler/main/CodeOutput.lhs
|
| | |_|_|/
| |/| | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This patch defines a flag -fno-warn-pointless-pragmas, and uses it to
disable some warnings in the containers package.
Along the way, also made a ContainsDynFlags class, and added a
HasDynFlags instance for IOEnv (and thus TcRnIf and DsM).
|
| | | | | |
|
| | |_|/
| |/| | |
|
| | | |
| | | |
| | | |
| | | | |
Fixes: #5733
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Another portabilty regression: before Platform we used to use elf_OBJ_FORMAT:
#if linux_TARGET_OS || freebsd_TARGET_OS || openbsd_TARGET_OS || solaris2_TARGET_OS
#define elf_OBJ_FORMAT 1
#endif
which defaults to undefined on unknown platforms. Defaulting to
non-ELF is correct, it just means that we won't rely on ELF-specific
functionality. I've added a comment to explain that.
|
| | |/
| |/|
| | |
| | |
| | | |
Now target32bit works for all targets without any manual intervention,
as it should do. #5735 was a portability regression.
|
| | |
| | |
| | |
| | |
| | | |
and add intWithCommas to Outputable for printing
large Int/Integers
|
| | | |
|
| |\ \
| | |/ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We already have a class OutputableBndr; this patch adds
methods pprInfixOcc and pprPrefixOcc, so that we can get
rid of the hideous hack (the old) Outputable.pprHsVar.
The hack was exposed by Trac #5657, which is thereby fixed.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is so that we can process the Stg code in constant space. Before
we were generating all the C-- up front, leading to a large space
leak.
I haven't converted the LLVM or C back ends to the incremental scheme,
but it's not hard to do.
|
| | | |
|
| |/
|/| |
|
|/ |
|
|
|
|
| |
Patch from Michal Terepeta <michal.terepeta@gmail.com>
|
|
|
|
| |
.ident directives are usually ignored by as(1), and in some cases (like Darwin/PPC) they even raise an error.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I tried this out on the panic we're currently getting for #3103:
ghc-stage2: panic! (the 'impossible' happened)
(GHC version 7.3.20111128 for x86_64-unknown-linux):
tcIfaceGlobal (local): not found:
base:GHC.Word.W#{d 6w}
[(32R, Type constructor `base:GHC.Word.Word{tc 32R}'),
(r6O, Identifier `base:GHC.Word.$fNumWord{v r6O}'),
(r6P, Identifier `base:GHC.Word.$fEqWord{v r6P}'),
(r6Q, Identifier `base:GHC.Word.$fNumWord1{v r6Q}'),
(r6R, Identifier `base:GHC.Word.$fNumWord2{v r6R}'),
(r6S, Data constructor `base:GHC.Word.W#{d r6S}'),
(r6U, Identifier `base:GHC.Word.W#{v r6U}'),
(r75, Identifier `base:GHC.Word.$fNumWord_$csignum{v r75}'),
(r76, Identifier `base:GHC.Word.$fEqWord_$c/={v r76}'),
(r77, Identifier `base:GHC.Word.$fEqWord_$c=={v r77}')]
{ Main.main
GHC.defaultErrorHandler
GHC.runGhc
GhcMonad.>>=
GhcMonad.>>=.\
Main.main'
Main.doMake
GhcMake.load
GhcMake.load2
GhcMake.upsweep
GhcMake.upsweep.upsweep'
GhcMake.reTypecheckLoop
GhcMake.typecheckLoop
GhcMake.typecheckLoop.\
TcRnMonad.initIfaceCheck
TcRnMonad.initTcRnIf
IOEnv.runIOEnv
IOEnv.thenM
IOEnv.thenM.\
TcIface.typecheckIface
TcIface.typecheckIface.\
LoadIface.loadDecls
LoadIface.loadDecl
TcIface.tcIfaceDecl
TcIface.tc_iface_decl
TcIface.tcIdInfo
MonadUtils.foldlM
TcIface.tcIdInfo.tcPrag
TcIface.tcUnfolding
TcIface.tcPragExpr
TcIface.tcIfaceExpr
TcIface.tcIfaceAlt
TcIface.tcIfaceDataCon }
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
0) Typo in panic message.
1) prioritization of equalities over family equalities in the worklists.
2) rewriting of inert substitutions and solveds on-the-spot instead of
kicking them out in the inerts. This required a monadic map over
substitutions hence the modifications in UniqFM.
3) Just comments and removing stale commented code.
4) Useful SCC for simplifyInfer.
5) Making CoreStats outputable.
|
|
|
|
|
| |
Based on a patch from Arnaud Degroote <degroote@NetBSD.org> in
trac #5480.
|
|
|
|
| |
hppa1, m68k
|
| |
|
|
|
|
|
|
|
|
|
| |
This big patch implements a kind-polymorphic core for GHC. The current
implementation focuses on making sure that all kind-monomorphic programs still
work in the new core; it is not yet guaranteed that kind-polymorphic programs
(using the new -XPolyKinds flag) will work.
For more information, see http://haskell.org/haskellwiki/GHC/Kinds
|
| |
|
| |
|
| |
|
|
|
|
|
| |
We only use it for "compiler" sources, i.e. not for libraries.
Many modules have a -fno-warn-tabs kludge for now.
|
| |
|
|
|
|
|
|
| |
We used to have a hack for Foreign.C.Types and System.Posix.Types,
but I've removed that now. We also mark any constructors that we look
through as "used", so that we don't get warnings about unused imports.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This reverts commit f75f26cc4eed3c3cfc256ebfb9e77b8e82a766fc.
On second thoughts, this does make sense, for unregisterised via-C
OSes at least.
|
|
|
|
|
|
|
| |
This reverts commit 2dea11a442e1d14d86fa661804de06a721943bf0.
On second thoughts, this does make sense, for unregisterised via-C
arches at least.
|
|
|
|
|
|
|
| |
It doesn't make sense. If platformArch is ArchUnknown then we don't know
the answer to any questions about the arch. So now if we don't recognise
the arch we just fail, and the new arch will need to be added to the
datatype.
|
|
|
|
|
|
| |
It doesn't make sense. If platformOS is OSUnknown then we don't know the
answer to any questions about the OS. So now if we don't recognise the
OS we just fail, and the new OS will need to be added to the datatype.
|
|
|
|
| |
And some knock-on changes
|
|
|
|
|
|
|
|
| |
Outputable.quotes claimed to drop the quotes if the enclosed thing has
a trailing single quote; but its implementation checked for
a *leading* quote.
Fixes Trac #5509
|
|
|
|
|
|
|
|
| |
representation
This lets IfaceType be dumber, with fewer special cases, because deserialization for more
wired-in names will work. Once we have polymorphic kinds we will be able to replace IfaceTyCon
with a simple IfExtName.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is work mostly done by Daniel Winograd-Cort during his
internship at MSR Cambridge, with some further refactoring by me.
This commit adds support to GHCi for most top-level declarations that
can be used in Haskell source files. Class, data, newtype, type,
instance are all supported, as are Type Family-related declarations.
The current set of declarations are shown by :show bindings. As with
variable bindings, entities bound by newer declarations shadow earlier
ones.
Tests are in testsuite/tests/ghci/scripts/ghci039--ghci054.
Documentation to follow.
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
compiler/iface/BuildTyCl.lhs
compiler/iface/MkIface.lhs
compiler/iface/TcIface.lhs
compiler/typecheck/TcTyClsDecls.lhs
compiler/types/Class.lhs
compiler/utils/Util.lhs
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Basically as documented in http://hackage.haskell.org/trac/ghc/wiki/KindFact,
this patch adds a new kind Constraint such that:
Show :: * -> Constraint
(?x::Int) :: Constraint
(Int ~ a) :: Constraint
And you can write *any* type with kind Constraint to the left of (=>):
even if that type is a type synonym, type variable, indexed type or so on.
The following (somewhat related) changes are also made:
1. We now box equality evidence. This is required because we want
to give (Int ~ a) the *lifted* kind Constraint
2. For similar reasons, implicit parameters can now only be of
a lifted kind. (?x::Int#) => ty is now ruled out
3. Implicit parameter constraints are now allowed in superclasses
and instance contexts (this just falls out as OK with the new
constraint solver)
Internally the following major changes were made:
1. There is now no PredTy in the Type data type. Instead
GHC checks the kind of a type to figure out if it is a predicate
2. There is now no AClass TyThing: we represent classes as TyThings
just as a ATyCon (classes had TyCons anyway)
3. What used to be (~) is now pretty-printed as (~#). The box
constructor EqBox :: (a ~# b) -> (a ~ b)
4. The type LCoercion is used internally in the constraint solver
and type checker to represent coercions with free variables
of type (a ~ b) rather than (a ~# b)
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Basically, now you can write:
class Cls a where
type Typ a
type Typ a = Just a
And now if an instance does not specify an explicit associated type
instance, one will be generated afresh based on that default. So for
example this instance:
instance Cls Int where
Will be equivalent to this one:
instance Cls Int where
type Typ Int = Just Int
|