| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Function responsible for parsing the static flags, that were spread
across two modules (StaticFlags and StaticFlagParser), are now
in one file. This is analogous to dynamic flags parsing, which is
also contained within a single module.
Signed-off-by: David Terei <davidterei@gmail.com>
|
| |
|
|
|
|
| |
It used to be part-dynamic, part-static.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Get rid of the lookupInInerts stage
* Re-introduce the flat-cache for flattening type-family equations
See Note [Type family equations] in TcSMonad. My previous clever attempt
with organising the work list proved too fragile.
There's a (static) flag -fno-flat-cache to switch if off,
so you can try with and without
* Improve the -ddump-cs-trace output
* The usual round of refactoring
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
We used to use a list lookup that couldn't fail. Now we just use
functions.
There were 3 overlapping entries for WayPar; I've commented out the ones
that were shadowed for now.
|
|
|
|
|
|
| |
To explicitly choose whether you want an unregisterised build you now
need to use the "--enable-unregisterised"/"--disable-unregisterised"
configure flags.
|
|
|
|
|
| |
This is a bit odd by itself, but it's a stepping stone on the way to
putting "target unregisterised" into the settings file.
|
|
|
|
| |
All the flags that 'ways' imply are now dynamic
|
|
|
|
|
|
| |
Hopefully I've kept the logic the same, and we now generate warnings if
the user does -fno-PIC but we ignore them (e.g. because they're on OS X
amd64).
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Also, -read-dot-ghci is now gone. We now have -no-ignore-dot-ghci
instead.
|
|
|
|
| |
This reverts commit 601c983dd0bada6b49bdadd8f172fd4eacac4b0c.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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]
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.
So 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
|
|
|
|
|
|
|
|
| |
is on.
Adding commentary, and fixing a knot-tie related bug.
Commentary only.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This patch disables the use of some GHC extensions in
Safe mode and also the use of certain flags. Some
are disabled completely while others are only allowed
on the command line and not in source PRAGMAS.
We also check that Safe imports are indeed importing
a Safe or Trustworthy module.
|
|
|
|
| |
The flag no longer exists, but we always behave as if it had been used.
|
|
|
|
| |
This just disables the coercion optimiser, mainly for measurements in the paper
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
-dsuppress-all
-dsuppress-type-applications
-dsuppress-idinfo
|
|
|
|
| |
It was always secret, and has now vanished as silently as it came
|
|
|
|
|
| |
and increase its default value. This makes overloaded functions
a bit keener to inline. Which fixes Trac #4321
|
|
|
|
|
|
|
|
|
| |
This major patch implements the new OutsideIn constraint solving
algorithm in the typecheker, following our JFP paper "Modular type
inference with local assumptions".
Done with major help from Dimitrios Vytiniotis and Brent Yorgey.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This change allows the client of CmdLineParser a bit more flexibility,
by giving him an arbitrary computation (not just a deprecation
message) for each flag.
There are several clients, so there are lots of boilerplate changes.
Immediate motivation: if RTS is not profiled, we want to make
Template Haskell illegal. That wasn't with the old setup.
|
|
|
|
|
| |
The default object mode is already HscC, so it's unnecessary, and
-fvia-C generates a deprecated flag warning now.
|
|
|
|
|
|
| |
To get ticky profiling you still have to compile with -ticky (for
those modules that you want to profile), but you can link with either
-debug or -ticky.
|
| |
|
|
|
|
|
| |
Also, -fPIC causes an error if the target is registerised and has no
native code generator.
|
|
|
|
|
|
|
|
| |
Also, I cleaned up some of the way-related infrastructure, removing
two global variables.
There's more that could be done here, but it's a start. The way flags
probably don't need to be static any more.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Generate binary log files from the RTS containing a log of runtime
events with timestamps. The log file can be visualised in various
ways, for investigating runtime behaviour and debugging performance
problems. See for example the forthcoming ThreadScope viewer.
New GHC option:
-eventlog (link-time option) Enables event logging.
+RTS -l (runtime option) Generates <prog>.eventlog with
the binary event information.
This replaces some of the tracing machinery we already had in the RTS:
e.g. +RTS -vg for GC tracing (we should do this using the new event
logging instead).
Event logging has almost no runtime cost when it isn't enabled, though
in the future we might add more fine-grained events and this might
change; hence having a link-time option and compiling a separate
version of the RTS for event logging. There's a small runtime cost
for enabling event-logging, for most programs it shouldn't make much
difference.
(Todo: docs)
|