| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |\ \ |
|
| | | | |
|
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There's only a single compiler backend now, so the 'z' suffix means
nothing. Also, the flags were confusingly named ('cmm-foo' vs
'foo-cmm',) and counter-intuitively, '-ddump-cmm' did not do at all what
you expected since the new backend went live.
Basically, all of the -ddump-cmmz-* flags are now -ddump-cmm-*. Some were
renamed to be more consistent.
This doesn't update the manual; it already mentions '-ddump-cmm' and
that flag implies all the others anyway, which is probably what you
want.
Signed-off-by: Austin Seipp <mad.one@gmail.com>
|
|\ \ \
| |/ / |
|
| | |
| | |
| | |
| | |
| | | |
I'm not sure if making an entirely new HscEnv is too large a hammer,
but it works for now.
|
| | |
| | |
| | |
| | | |
Nothing big here, just tidying up deetails
|
|\ \ \
| |/ /
| | |
| | |
| | | |
Conflicts:
compiler/typecheck/TcTyClsDecls.lhs
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We don't yet have the slow path, for when we have to fall back to
separate compilation.
We also only currently handle the case qhere we're compiling Haskell
code with the NCG.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We need to have WayDyn in the ways in the DynFlags, or the interface
loader will fail.
-dynamic-too now correctly evaluates whether or not it is possible to
build for the dynamic way too, but doesn't actually do so yet.
|
| | |
| | |
| | |
| | |
| | | |
Will be used when we are compiling with -dynamic-too. This needed a
little refactoring of the "addWay" code to allow the code to be shared.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
-debug now only determines whether or not a debug RTS is linked in.
To get main() with debugging symbols you need to explicitly say
-optc-O0 -optc-g
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The situation was pretty dire. The way in which data constructors
were handled, notably the mapping between their *source* argument types
and their *representation* argument types (after seq'ing and unpacking)
was scattered in three different places, and hard to keep in sync.
Now it is all in one place:
* The dcRep field of a DataCon gives its representation,
specified by a DataConRep
* As well as having the wrapper, the DataConRep has a "boxer"
of type DataConBoxer (defined in MkId for loopy reasons).
The boxer used at a pattern match to reconstruct the source-level
arguments from the rep-level bindings in the pattern match.
* The unboxing in the wrapper and the boxing in the boxer are dual,
and are now constructed together, by MkId.mkDataConRep. This is
the key function of this change.
* All the computeBoxingStrategy code in TcTyClsDcls disappears.
Much nicer.
There is a little bit of refactoring left to do; the strange
deepSplitProductType functions are now called only in WwLib, so
I moved them there, and I think they could be tidied up further.
|
| |
| |
| |
| |
| | |
When enabled, this flag causes all strict fields which representation is
smaller or equal to the size of a pointer to be unboxed.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We want to compile the sources only once, and to produce both vanilla
and dyn object files. This means that the sources can't differ for the
two ways.
This needed a bit of a kludge to get keepCAFsForGHCi included only in
the dynamic library.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
DeriveConstants.hs works in a cross-compilation-friendly way. Rather
than running a C program that prints out the constants, we just compile
a C file which has the constants are encoded in symbol sizes. We then
parse the output of 'nm' to find out what the constants are.
Based on work by Gabor Greif <ggreif@gmail.com>.
|
| |
| |
| |
| |
| |
| | |
The wrapper functions can end up in interface files, and thus are
part of the ABI hash. But uniqs easily change for no good reason
when recompiling, which can lead to an ABI hash needlessly changing.
|
| | |
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | | |
With the new register allocation scheme, the LLVM back end must always use
liveness information.
|
|/ / |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
deprecation)
There was a long thread on cvs-ghc which concluded that although it's
the Right Thing to deprecate Rank2Types and PolymorphicComponents, in
favour of RankNTypes, it would cause lots of busy-work for library
authors and the pain isn't worth the gain.
So this patch removes the deprecation, and documents the synonym-ity.
|
|\ \ |
|
| | | |
|
|\ \ \
| |/ / |
|
| | |
| | |
| | |
| | |
| | | |
This means that -static now disables the -fPIC that we're currently
getting by default.
|
|\ \ \
| |/ / |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We were being inconsistent about how we tested whether dump flags
were enabled; in particular, sometimes we also checked the verbosity,
and sometimes we didn't.
This lead to oddities such as "ghc -v4" printing an "Asm code" section
which didn't contain any code, and "-v4" enabled some parts of
"-ddump-deriv" but not others.
Now all the tests use dopt, which also takes the verbosity into account
as appropriate.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
Mostly d -> g (matching DynFlag -> GeneralFlag).
Also renamed if* to when*, matching the Haskell if/when names
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This avoids confusion due to [DynFlag] and DynFlags being completely
different types.
|
| | |
| | |
| | |
| | | |
It was turning on Opt_D_dump_cmmz_cbe rather than Opt_D_dump_cmmz_cfg
|
| | | |
|
| | |
| | |
| | |
| | | |
We instead link objects into a temporary DLL and dlopen that
|
|/ /
| |
| |
| |
| | |
We agreed that it's not worth the bother of trying to maintain all
these distinct flags; RankNTypes will do the job fine. Trac #6032.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
I also removed the default values from the "Discounts and thresholds"
note: most of them were no longer up-to-date.
Along the way I added FloatSuffix to the argument parser, analogous to
IntSuffix.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is an ugly kludge to make a DynFlags value available for the
'trace' functions. It may not be the value we really ought to use,
but it'll be good enough for the pretty-printer to use.
Ideally we'd pass the real DynFlags down to all the trace calls,
but this will do for now at least.
|
| | |
|
|\ \ |
|