[Git][ghc/ghc][wip/ticky-eventlog] 9 commits: testsuite: Move no_lint to the top level, tweak hie002

Ben Gamari gitlab at gitlab.haskell.org
Tue Apr 14 02:04:00 UTC 2020



Ben Gamari pushed to branch wip/ticky-eventlog at Glasgow Haskell Compiler / GHC


Commits:
723062ed by Ömer Sinan Ağacan at 2020-04-10T09:18:14+03:00
testsuite: Move no_lint to the top level, tweak hie002

- We don't want to benchmark linting so disable lints in hie002 perf
  test

- Move no_lint to the top-level to be able to use it in tests other than
  those in `testsuite/tests/perf/compiler`.

- Filter out -dstg-lint in no_lint.

- hie002 allocation numbers on 32-bit are unstable, so skip it on 32-bit

Metric Decrease:
    hie002
    ManyConstructors
    T12150
    T12234
    T13035
    T1969
    T4801
    T9233
    T9961

- - - - -
bcafaa82 by Peter Trommler at 2020-04-10T19:29:33-04:00
Testsuite: mark T11531 fragile

The test depends on a link editor allowing undefined symbols in an ELF
shared object. This is the standard but it seems some distributions
patch their link editor. See the report by @hsyl20 in #11531.

Fixes #11531

- - - - -
0889f5ee by Takenobu Tani at 2020-04-12T11:44:52+09:00
testsuite: Fix comment for a language extension

[skip ci]

- - - - -
cd4f92b5 by Simon Peyton Jones at 2020-04-12T11:20:58-04:00
Significant refactor of Lint

This refactoring of Lint was triggered by #17923, which is
fixed by this patch.

The main change is this.  Instead of
   lintType :: Type -> LintM LintedKind
we now have
   lintType :: Type -> LintM LintedType

Previously, all of typeKind was effectively duplicate in lintType.
Moreover, since we have an ambient substitution, we still had to
apply the substition here and there, sometimes more than once. It
was all very tricky, in the end, and made my head hurt.

Now, lintType returns a fully linted type, with all substitutions
performed on it.  This is much simpler.

The same thing is needed for Coercions.  Instead of
  lintCoercion :: OutCoercion
               -> LintM (LintedKind, LintedKind,
                         LintedType, LintedType, Role)
we now have
  lintCoercion :: Coercion -> LintM LintedCoercion

Much simpler!  The code is shorter and less bug-prone.

There are a lot of knock on effects.  But life is now better.

Metric Decrease:
    T1969

- - - - -
0efaf301 by Josh Meredith at 2020-04-12T11:21:34-04:00
Implement extensible interface files

- - - - -
54ca66a7 by Ryan Scott at 2020-04-12T11:22:10-04:00
Use conLikeUserTyVarBinders to quantify field selector types

This patch:

1. Writes up a specification for how the types of top-level field
   selectors should be determined in a new section of the GHC User's
   Guide, and
2. Makes GHC actually implement that specification by using
   `conLikeUserTyVarBinders` in `mkOneRecordSelector` to preserve the
   order and specificity of type variables written by the user.

Fixes #18023.

- - - - -
35799dda by Ben Gamari at 2020-04-12T11:22:50-04:00
hadrian: Don't --export-dynamic on Darwin

When fixing #17962 I neglected to consider that --export-dynamic is only
supported on ELF platforms.

- - - - -
e8029816 by Alexis King at 2020-04-12T11:23:27-04:00
Add an INLINE pragma to Control.Category.>>>

This fixes #18013 by adding INLINE pragmas to both Control.Category.>>>
and GHC.Desugar.>>>. The functional change in this patch is tiny (just
two lines of pragmas!), but an accompanying Note explains in gory
detail what’s going on.

- - - - -
a643a844 by Ben Gamari at 2020-04-13T22:03:45-04:00
rts: Post ticky entry counts to the eventlog

We currently only post the entry counters, not the other global
counters as in my experience the former are more useful. We use the heap
profiler's census period to decide when to dump.

- - - - -


30 changed files:

- compiler/GHC/Core/ConLike.hs
- compiler/GHC/Core/DataCon.hs
- compiler/GHC/Core/Lint.hs
- compiler/GHC/Core/Type.hs
- compiler/GHC/Driver/Types.hs
- compiler/GHC/HsToCore/Expr.hs
- compiler/GHC/Iface/Binary.hs
- compiler/GHC/Iface/Load.hs
- compiler/GHC/Iface/Make.hs
- compiler/GHC/Tc/TyCl/Utils.hs
- compiler/utils/Binary.hs
- docs/users_guide/8.12.1-notes.rst
- docs/users_guide/extending_ghc.rst
- docs/users_guide/exts/existential_quantification.rst
- + docs/users_guide/exts/field_selectors_and_type_applications.rst
- docs/users_guide/exts/gadt.rst
- docs/users_guide/exts/rank_polymorphism.rst
- docs/users_guide/exts/records.rst
- hadrian/src/Oracles/Setting.hs
- hadrian/src/Settings/Packages.hs
- includes/rts/EventLogFormat.h
- includes/rts/Flags.h
- libraries/base/Control/Category.hs
- libraries/base/GHC/Desugar.hs
- rts/Proftimer.c
- rts/RtsFlags.c
- rts/RtsStartup.c
- rts/Ticky.c
- rts/eventlog/EventLog.c
- rts/eventlog/EventLog.h


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/a905c19a74e5aa21d97fc761bc6b66f4ccbed3dc...a643a844663046e4e27e72d8b490a18f4db481b2

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/a905c19a74e5aa21d97fc761bc6b66f4ccbed3dc...a643a844663046e4e27e72d8b490a18f4db481b2
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/20200413/a8271ada/attachment.html>


More information about the ghc-commits mailing list