[Git][ghc/ghc][wip/marge_bot_batch_merge_job] 16 commits: Change zipWith to zipWithEqual in a few places

Marge Bot gitlab at gitlab.haskell.org
Tue Apr 14 19:58:18 UTC 2020



 Marge Bot pushed to branch wip/marge_bot_batch_merge_job 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

- - - - -
8cc5cdf7 by Ben Gamari at 2020-04-14T15:57:57-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.

- - - - -
a4871980 by Ben Gamari at 2020-04-14T15:57:58-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.

- - - - -
33a8db95 by Ben Gamari at 2020-04-14T15:57:59-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.

- - - - -
ac65ee8c by Matthew Pickering at 2020-04-14T15:57:59-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.

- - - - -
aa0c1c72 by Daniel Gröber at 2020-04-14T15:58:08-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

- - - - -
9f00bd86 by Daniel Gröber at 2020-04-14T15:58:08-04:00
rts: Expand and add more notes regarding slop

- - - - -
bf069c94 by Daniel Gröber at 2020-04-14T15:58:09-04:00
rts: allocatePinned: Fix confusion about word/byte units

- - - - -
795ddb33 by Daniel Gröber at 2020-04-14T15:58:09-04:00
rts: Underline some Notes as is conventional

- - - - -
3090e915 by Daniel Gröber at 2020-04-14T15:58:10-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.

- - - - -
b0e2ff82 by Daniel Gröber at 2020-04-14T15:58:10-04:00
Remove call to LDV_RECORD_CREATE for array resizing

- - - - -
4c46841f by Daniel Gröber at 2020-04-14T15:58:10-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.

- - - - -
b48d78d3 by Ryan Scott at 2020-04-14T15:58:10-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
-------------------------

- - - - -


30 changed files:

- compiler/GHC/Core/Coercion/Opt.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/HsToCore/Expr.hs
- compiler/GHC/IfaceToCore.hs
- compiler/GHC/Runtime/Eval.hs
- compiler/GHC/Tc/Deriv/Generate.hs
- compiler/GHC/Tc/Errors.hs
- compiler/GHC/Tc/Gen/Match.hs
- compiler/GHC/Tc/Utils/Zonk.hs
- compiler/ghc.cabal.in
- ghc.mk
- hadrian/src/Builder.hs
- hadrian/src/Rules/SourceDist.hs
- hadrian/src/Settings/Builders/Ghc.hs
- includes/rts/storage/ClosureMacros.h
- includes/rts/storage/GC.h
- libraries/base/Data/Foldable.hs
- libraries/base/GHC/IO/Handle/Lock/LinuxOFD.hsc
- libraries/exceptions
- libraries/ghci/ghci.cabal.in
- libraries/template-haskell/template-haskell.cabal.in
- libraries/text
- rts/Apply.cmm
- rts/LdvProfile.c
- rts/PrimOps.cmm
- rts/ProfHeap.c
- rts/StgCRun.c


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/16928cb1f2933f082aa17a3d9042216b8a5e5726...b48d78d3fa1c4e0b70e9f98478a101fb4dd57ea3

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/16928cb1f2933f082aa17a3d9042216b8a5e5726...b48d78d3fa1c4e0b70e9f98478a101fb4dd57ea3
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/20200414/59e42b39/attachment.html>


More information about the ghc-commits mailing list