[Git][ghc/ghc][wip/T17775] 41 commits: Change zipWith to zipWithEqual in a few places
Simon Peyton Jones
gitlab at gitlab.haskell.org
Mon Apr 20 16:40:26 UTC 2020
Simon Peyton Jones pushed to branch wip/T17775 at Glasgow Haskell Compiler / GHC
Commits:
0da186c1 by Krzysztof Gogolewski at 2020-04-14T07:55:20-04:00
Change zipWith to zipWithEqual in a few places
- - - - -
074c1ccd by Andreas Klebinger at 2020-04-14T07:55:55-04:00
Small change to the windows ticker.
We already have a function to go from time to ms so use it.
Also expand on the state of timer resolution.
- - - - -
b69cc884 by Alp Mestanogullari at 2020-04-14T07:56:38-04:00
hadrian: get rid of unnecessary levels of nesting in source-dist
- - - - -
d0c3b069 by Julien Debon at 2020-04-14T07:57:16-04:00
doc (Foldable): Add examples to Data.Foldable
See #17929
- - - - -
5b08e0c0 by Ben Gamari at 2020-04-14T23:28:20-04:00
StgCRun: Enable unwinding only on Linux
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.
- - - - -
27cc2e7b by Ben Gamari at 2020-04-14T23:28:57-04:00
rts: Don't mark evacuate_large as inline
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.
- - - - -
9853fc5e by Ben Gamari at 2020-04-14T23:29:48-04:00
base: Enable large file support for OFD locking impl.
Not only is this a good idea in general but this should also avoid
issue #17950 by ensuring that off_t is 64-bits.
- - - - -
7b41f21b by Matthew Pickering at 2020-04-14T23:30:24-04:00
Hadrian: Make -i paths absolute
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.
- - - - -
41230e26 by Daniel Gröber at 2020-04-14T23:31:01-04:00
Zero out pinned block alignment slop when profiling
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 a586b33f8e ("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 0c114c6599 ("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
- - - - -
15fa9bd6 by Daniel Gröber at 2020-04-14T23:31:01-04:00
rts: Expand and add more notes regarding slop
- - - - -
caf3f444 by Daniel Gröber at 2020-04-14T23:31:01-04:00
rts: allocatePinned: Fix confusion about word/byte units
- - - - -
c3c0f662 by Daniel Gröber at 2020-04-14T23:31:01-04:00
rts: Underline some Notes as is conventional
- - - - -
e149dea9 by Daniel Gröber at 2020-04-14T23:31:38-04:00
rts: Fix nomenclature in OVERWRITING_CLOSURE macros
The additional commentary introduced by commit 8916e64e5437 ("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.
- - - - -
1dd3d18c by Daniel Gröber at 2020-04-14T23:31:38-04:00
Remove call to LDV_RECORD_CREATE for array resizing
- - - - -
19de2fb0 by Daniel Gröber at 2020-04-14T23:31:38-04:00
rts: Assert LDV_recordDead is not called for inherently used closures
The comments make it clear LDV_recordDead should not be called for
inhererently used closures, so add an assertion to codify this fact.
- - - - -
0b934e30 by Ryan Scott at 2020-04-14T23:32:14-04:00
Bump template-haskell version to 2.17.0.0
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
-------------------------
- - - - -
22cc8e51 by Ryan Scott at 2020-04-15T17:48:47-04:00
Fix #18052 by using pprPrefixOcc in more places
This fixes several small oversights in the choice of pretty-printing
function to use. Fixes #18052.
- - - - -
ec77b2f1 by Daniel Gröber at 2020-04-15T17:49:24-04:00
rts: ProfHeap: Fix wrong time in last heap profile sample
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.
- - - - -
85fc32f0 by Sylvain Henry at 2020-04-17T12:45:25-04:00
Hadrian: fix dyn_o/dyn_hi rule (#17534)
- - - - -
bfde3b76 by Ryan Scott at 2020-04-17T12:46:02-04:00
Fix #18065 by fixing an InstCo oversight in Core Lint
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 at microsoft.com>
- - - - -
a05348eb by Cale Gibbard at 2020-04-17T13:08:47-04:00
Change the fail operator argument of BindStmt to be a Maybe
Don't use noSyntaxExpr for it. There is no good way to defensively case
on that, nor is it clear one ought to do so.
- - - - -
79e27144 by John Ericson at 2020-04-17T13:08:47-04:00
Use trees that grow for rebindable operators for `<-` binds
Also add more documentation.
- - - - -
18bc16ed by Cale Gibbard at 2020-04-17T13:08:47-04:00
Use FailOperator in more places, define a couple datatypes (XBindStmtRn and XBindStmtTc) to help clarify the meaning of XBindStmt in the renamer and typechecker
- - - - -
84cc8394 by Simon Peyton Jones at 2020-04-18T13:20:29-04:00
Add a missing zonk in tcHsPartialType
I omitted a vital zonk when refactoring tcHsPartialType in
commit 48fb3482f8cbc8a4b37161021e846105f980eed4
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date: Wed Jun 5 08:55:17 2019 +0100
Fix typechecking of partial type signatures
This patch fixes it and adds commentary to explain why.
Fixes #18008
- - - - -
2ee96ac1 by Ben Gamari at 2020-04-18T13:21:05-04:00
gitlab-ci: Bump FreeBSD bootstrap compiler to 8.10.1
- - - - -
434312e5 by Ben Gamari at 2020-04-18T13:21:05-04:00
gitlab-ci: Enable FreeBSD job for so-labelled MRs
- - - - -
ddffb227 by Ben Gamari at 2020-04-18T13:21:05-04:00
gitlab-ci: Use rules syntax for conditional jobs
- - - - -
e2586828 by Ben Gamari at 2020-04-18T13:21:05-04:00
Bump hsc2hs submodule
- - - - -
15ab6cd5 by Ömer Sinan Ağacan at 2020-04-18T13:21:44-04:00
Improve prepForeignCall error reporting
Show parameters and description of the error code when ffi_prep_cif
fails.
This may be helpful for debugging #17018.
- - - - -
916e1fa8 by Simon Peyton Jones at 2020-04-18T22:58:25+01:00
Simplify subsumption
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.
- - - - -
94013d6c by Simon Peyton Jones at 2020-04-18T22:58:27+01:00
Further refactoring and simplification
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
- - - - -
a33a13f2 by Ben Gamari at 2020-04-18T22:58:27+01:00
Bump haskeline submodule
- - - - -
a4c47610 by Simon Peyton Jones at 2020-04-18T22:58:27+01:00
Delete commented-out code
- - - - -
c10e7aa6 by Simon Peyton Jones at 2020-04-18T22:58:27+01:00
Fix (breaking) typo
- - - - -
381b0b47 by Simon Peyton Jones at 2020-04-18T22:58:27+01:00
Improve decomposition for FunTys
This just improves error messages, avoiding
Couldn't match type ‘Char’ with ‘Show a -> Char’
- - - - -
47c7c998 by Ryan Scott at 2020-04-18T22:58:28+01:00
Bump Cabal submodule
As well as some miscellaneous fixes needed to make GHC itself
compile under simplified subsumption.
- - - - -
00e216d4 by Simon Peyton Jones at 2020-04-18T22:58:28+01:00
Wibbles
* Get expected/actual the right way round
* Relevant-bindings fixes
- - - - -
600aa4a9 by Simon Peyton Jones at 2020-04-18T22:59:46+01:00
A lot more wibbles
* 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
- - - - -
272c664a by Ömer Sinan Ağacan at 2020-04-18T22:59:46+01:00
Revert accidental haddock change
- - - - -
bcf1b0ba by Simon Peyton Jones at 2020-04-18T22:59:48+01:00
More wibbles
- - - - -
f6438742 by Simon Peyton Jones at 2020-04-20T16:23:42+01:00
Wibbles
- - - - -
30 changed files:
- .gitlab-ci.yml
- .gitlab/ci.sh
- compiler/GHC/Core/Coercion/Opt.hs
- compiler/GHC/Core/Lint.hs
- compiler/GHC/Core/Op/FloatIn.hs
- compiler/GHC/Core/Op/OccurAnal.hs
- compiler/GHC/Core/Op/SpecConstr.hs
- compiler/GHC/Core/Op/WorkWrap/Lib.hs
- compiler/GHC/Core/Ppr.hs
- compiler/GHC/Core/Type.hs
- compiler/GHC/Driver/Main.hs
- compiler/GHC/Hs/Binds.hs
- compiler/GHC/Hs/Expr.hs
- compiler/GHC/Hs/Instances.hs
- compiler/GHC/Hs/Types.hs
- compiler/GHC/Hs/Utils.hs
- compiler/GHC/HsToCore/Arrows.hs
- compiler/GHC/HsToCore/Binds.hs
- compiler/GHC/HsToCore/Coverage.hs
- compiler/GHC/HsToCore/Expr.hs
- compiler/GHC/HsToCore/Expr.hs-boot
- compiler/GHC/HsToCore/GuardedRHSs.hs
- compiler/GHC/HsToCore/ListComp.hs
- compiler/GHC/HsToCore/PmCheck.hs
- compiler/GHC/HsToCore/Quote.hs
- compiler/GHC/Iface/Ext/Ast.hs
- compiler/GHC/Iface/Load.hs
- compiler/GHC/IfaceToCore.hs
- compiler/GHC/Rename/Expr.hs
- compiler/GHC/Rename/Splice.hs
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/1c64261abb387fc7a5accbb2e41c1ac61b80803c...f6438742bb8c3f6ebbf2bb9e9a8a0a7bd076fe9a
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/1c64261abb387fc7a5accbb2e41c1ac61b80803c...f6438742bb8c3f6ebbf2bb9e9a8a0a7bd076fe9a
You're receiving this email because of your account on gitlab.haskell.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20200420/06ce0c9e/attachment-0001.html>
More information about the ghc-commits
mailing list