Commits on Source (41)
-
0da186c1
-
We already have a function to go from time to ms so use it. Also expand on the state of timer resolution.
074c1ccd -
b69cc884
-
See #17929
d0c3b069 -
It's broken on macOS due and SmartOS due to assembler differences (#15207) so let's be conservative in enabling it. Also, refactor things to make the intent clearer.
5b08e0c0 -
This function has two callsites and is quite large. GCC consequently decides not to inline and warns instead. Given the situation, I can't blame it. Let's just remove the inline specifier.
27cc2e7b -
Not only is this a good idea in general but this should also avoid issue #17950 by ensuring that off_t is 64-bits.
9853fc5e -
The primary reason for this change is that ghcide does not work with relative paths. It also matches what cabal and stack do, they always pass absolute paths.
7b41f21b -
The heap profiler currently cannot traverse pinned blocks because of alignment slop. This used to just be a minor annoyance as the whole block is accounted into a special cost center rather than the respective object's CCS, cf. #7275. However for the new root profiler we would like to be able to visit _every_ closure on the heap. We need to do this so we can get rid of the current 'flip' bit hack in the heap traversal code. Since info pointers are always non-zero we can in principle skip all the slop in the profiler if we can rely on it being zeroed. This assumption caused problems in the past though, commit a586b33f ("rts: Correct handling of LARGE ARR_WORDS in LDV profiler"), part of !1118, tried to use the same trick for BF_LARGE objects but neglected to take into account that shrink*Array# functions don't ensure that slop is zeroed when not compiling with profiling. Later, commit 0c114c65 ("Handle large ARR_WORDS in heap census (fix as we will only be assuming slop is zeroed when profiling is on. This commit also reduces the ammount of slop we introduce in the first place by calculating the needed alignment before doing the allocation for small objects where we know the next available address. For large objects we don't know how much alignment we'll have to do yet since those details are hidden behind the allocateMightFail function so there we continue to allocate the maximum additional words we'll need to do the alignment. So we don't have to duplicate all this logic in the cmm code we pull it into the RTS allocatePinned function instead. Metric Decrease: T7257 haddock.Cabal haddock.base
41230e26 -
15fa9bd6
-
caf3f444
-
c3c0f662
-
The additional commentary introduced by commit 8916e64e ("Implement shrinkSmallMutableArray# and resizeSmallMutableArray#.") unfortunately got this wrong. We set 'prim' to true in overwritingClosureOfs because we _don't_ want to call LDV_recordDead(). The reason is because of this "inherently used" distinction made in the LDV profiler so I rename the variable to be more appropriate.
e149dea9 -
1dd3d18c
-
The comments make it clear LDV_recordDead should not be called for inhererently used closures, so add an assertion to codify this fact.
19de2fb0 -
This requires bumping the `exceptions` and `text` submodules to bring in commits that bump their respective upper version bounds on `template-haskell`. Fixes #17645. Fixes #17696. Note that the new `text` commit includes a fair number of additions to the Haddocks in that library. As a result, Haddock has to do more work during the `haddock.Cabal` test case, increasing the number of allocations it requires. Therefore, ------------------------- Metric Increase: haddock.Cabal -------------------------
0b934e30 -
This fixes several small oversights in the choice of pretty-printing function to use. Fixes #18052.
22cc8e51 -
We've had this longstanding issue in the heap profiler, where the time of the last sample in the profile is sometimes way off causing the rendered graph to be quite useless for long runs. It seems to me the problem is that we use mut_user_time() for the last sample as opposed to getRTSStats(), which we use when calling heapProfile() in GC.c. The former is equivalent to getProcessCPUTime() but the latter does some additional stuff: getProcessCPUTime() - end_init_cpu - stats.gc_cpu_ns - stats.nonmoving_gc_cpu_ns So to fix this just use getRTSStats() in both places.
ec77b2f1 -
85fc32f0
-
There was a small thinko in Core Lint's treatment of `InstCo` coercions that ultimately led to #18065. The fix: add an apostrophe. That's it! Fixes #18065. Co-authored-by:
Simon Peyton Jones <simonpj@microsoft.com>
bfde3b76 -
Also add more documentation.
79e27144 -
2ee96ac1
-
434312e5
-
ddffb227
-
e2586828
-
Show parameters and description of the error code when ffi_prep_cif fails. This may be helpful for debugging #17018.
15ab6cd5 -
Simon Peyton Jones authored
This patch implements GHC Proposal 287: Simplify subsumption and ticket #17775. The highlights are: * No deeplyInstantiate or deeplySkolemise * No tcSubTypeDS Everything else is a knock-on effect. I did a bit of renaming to make things consistent * tcPolyExpr becomes tcCheckPolyExpr ditto tcPolyExprNC * Add new function tcCheckMonoExpr e ty = tcMon0Expr expr (mkCheckExpType ty) and use it This all comopiles, but needs some eta-expansion in haskeline, and doubtless other packages.
916e1fa8 -
Simon Peyton Jones authored
Reviewed the main changes with Richard I had to do eta-expansion in a number of tests: T10283 T10390 T14488 T1634 T4284 T9569a T9834 tc145 tc160 tc208 tc210 twins
94013d6c -
Ben Gamari authoreda33a13f2
-
Simon Peyton Jones authoreda4c47610
-
Simon Peyton Jones authoredc10e7aa6
-
Simon Peyton Jones authored
This just improves error messages, avoiding Couldn't match type ‘Char’ with ‘Show a -> Char’
381b0b47 -
Ryan Scott authored
As well as some miscellaneous fixes needed to make GHC itself compile under simplified subsumption.
47c7c998 -
Simon Peyton Jones authored
* Get expected/actual the right way round * Relevant-bindings fixes
00e216d4 -
Simon Peyton Jones authored
* Made String wired-in, so that "foo" :: String rather than "foo" :: [Char] * isTauTy: account for => * Bring dicts into scope when desugaring HsWrappers: addTyCsDs and hsWrapDictBinders * Improve reporting for occurs checks where skolems are involved e.g. 10715b, mc19, tcfail193, T13674, T4272, T3169, T7758, 7148 Payload is in the first case of mkTyVarEqErr * solveLocalEqualitesX: fail faster. we want to fail fast in T11142 Another example: T15629 And keep all equalities in dropMisleading. This gives better reporting in T12593 for example. * Move checkDataKindSig after the solveEqualities and zonk, obviously! * Move ic_telescope into ForAllSkol; a nice win. * Pretty-printing AbsBinds We are now very close to green
600aa4a9 -
Ömer Sinan Ağacan authored272c664a
-
Simon Peyton Jones authoredbcf1b0ba
-
Simon Peyton Jones authoredf6438742
Showing
- .gitlab-ci.yml 45 additions, 75 deletions.gitlab-ci.yml
- .gitlab/ci.sh 0 additions, 6 deletions.gitlab/ci.sh
- compiler/GHC/Core/Coercion/Opt.hs 5 additions, 6 deletionscompiler/GHC/Core/Coercion/Opt.hs
- compiler/GHC/Core/Lint.hs 6 additions, 6 deletionscompiler/GHC/Core/Lint.hs
- compiler/GHC/Core/Op/FloatIn.hs 5 additions, 2 deletionscompiler/GHC/Core/Op/FloatIn.hs
- compiler/GHC/Core/Op/OccurAnal.hs 1 addition, 1 deletioncompiler/GHC/Core/Op/OccurAnal.hs
- compiler/GHC/Core/Op/SpecConstr.hs 3 additions, 1 deletioncompiler/GHC/Core/Op/SpecConstr.hs
- compiler/GHC/Core/Op/WorkWrap/Lib.hs 1 addition, 2 deletionscompiler/GHC/Core/Op/WorkWrap/Lib.hs
- compiler/GHC/Core/Ppr.hs 9 additions, 5 deletionscompiler/GHC/Core/Ppr.hs
- compiler/GHC/Core/Type.hs 4 additions, 2 deletionscompiler/GHC/Core/Type.hs
- compiler/GHC/Driver/Main.hs 2 additions, 2 deletionscompiler/GHC/Driver/Main.hs
- compiler/GHC/Hs/Binds.hs 4 additions, 3 deletionscompiler/GHC/Hs/Binds.hs
- compiler/GHC/Hs/Expr.hs 64 additions, 36 deletionscompiler/GHC/Hs/Expr.hs
- compiler/GHC/Hs/Instances.hs 3 additions, 0 deletionscompiler/GHC/Hs/Instances.hs
- compiler/GHC/Hs/Types.hs 2 additions, 2 deletionscompiler/GHC/Hs/Types.hs
- compiler/GHC/Hs/Utils.hs 11 additions, 10 deletionscompiler/GHC/Hs/Utils.hs
- compiler/GHC/HsToCore/Arrows.hs 1 addition, 1 deletioncompiler/GHC/HsToCore/Arrows.hs
- compiler/GHC/HsToCore/Binds.hs 5 additions, 4 deletionscompiler/GHC/HsToCore/Binds.hs
- compiler/GHC/HsToCore/Coverage.hs 14 additions, 12 deletionscompiler/GHC/HsToCore/Coverage.hs
- compiler/GHC/HsToCore/Expr.hs 36 additions, 20 deletionscompiler/GHC/HsToCore/Expr.hs