[Git][ghc/ghc][wip/slowtest] 51 commits: TestRunner: Added --chart to display a chart of performance tests

Ben Gamari gitlab at gitlab.haskell.org
Sat Jun 8 17:42:17 UTC 2019



Ben Gamari pushed to branch wip/slowtest at Glasgow Haskell Compiler / GHC


Commits:
286827be by David Eichmann at 2019-06-04T05:09:05Z
TestRunner: Added --chart to display a chart of performance tests

This uses the Chart.js javascript library.
Everything is put into a standalone .html file and opened with the
default browser.
I also simplified the text output to use the same data as the chart.
You can now use a commit range with git's ".." syntax.
The --ci option will use results from CI (you'll need to fetch them
first):

  $ git fetch https://gitlab.haskell.org/ghc/ghc-performance-notes.git refs/notes/perf:refs/notes/ci/perf
  $ python3 testsuite/driver/perf_notes.py --ci --chart --test-env x86_64-darwin --test-name T9630 master~500..master

- - - - -
db78ac6f by Andrew Martin at 2019-06-04T05:09:43Z
Use a better strategy for determining the offset applied to foreign function arguments that have an unlifted boxed type. We used to use the type of the argument. We now use the type of the foreign function. Add a test to confirm that the roundtrip conversion between an unlifted boxed type and Any is sound in the presence of a foreign function call.

- - - - -
114b014f by Alp Mestanogullari at 2019-06-04T05:10:20Z
Hadrian: fix OSX build failure and add an OSX/Hadrian CI job

The OSX build failure introduced in 3aa71a22 was due to a change in the
glob we use to collect libffi shared libraries in hadrian/src/Rules/Libffi.hs.
This commit fixes the problem and adds an OSX CI job that builds GHC with
Hadrian, to make sure we don't break it again.

- - - - -
002594b7 by Xavier Denis at 2019-06-04T18:41:29Z
Add GHCi :instances command

This commit adds the `:instances` command to ghci following proosal
number 41.

This makes it possible to query which instances are available to a given
type.

The output of this command is all the possible instances with type
variables and constraints instantiated.

- - - - -
3ecc03df by Ben Gamari at 2019-06-04T18:42:04Z
gitlab-ci: Run bindisttest during CI

- - - - -
c16f3297 by Ben Gamari at 2019-06-04T18:42:04Z
make: Fix bindist installation

This fixes a few vestigial references to `settings` left over from !655.
Fixes #16715.

- - - - -
ba4e3934 by Alp Mestanogullari at 2019-06-04T18:43:17Z
Hadrian: profiling and debug enabled ways support -eventlog too

- - - - -
567894b4 by Matthew Pickering at 2019-06-07T08:36:32Z
gitlab-ci: Disable darwin hadrian job

See #16771

We don't have enough capacity for the two jobs currently.

[skip ci]

- - - - -
d3915b30 by Andrew Martin at 2019-06-07T14:20:42Z
[skip ci] Improve the documentation of the CNF primops. In this context, the term "size" is ambiguous and is now avoided. Additionally, the distinction between a CNF and the blocks that comprise it has been emphasize. The vocabulary has been made more consistent with the vocabulary in the C source for CNF.

- - - - -
e963beb5 by Sebastian Graf at 2019-06-07T14:21:21Z
TmOracle: Replace negative term equalities by refutable PmAltCons

The `PmExprEq` business was a huge hack and was at the same time vastly
too powerful and not powerful enough to encode negative term equalities,
i.e. facts of the form "forall y. x ≁ Just y".

This patch introduces the concept of 'refutable shapes': What matters
for the pattern match checker is being able to encode knowledge of the
kind "x can no longer be the literal 5". We encode this knowledge in a
`PmRefutEnv`, mapping a set of newly introduced `PmAltCon`s (which are
just `PmLit`s at the moment) to each variable denoting above
inequalities.

So, say we have `x ≁ 42 ∈ refuts` in the term oracle context and
try to solve an equality like `x ~ 42`. The entry in the refutable
environment will immediately lead to a contradiction.

This machinery renders the whole `PmExprEq` and `ComplexEq` business
unnecessary, getting rid of a lot of (mostly dead) code.

See the Note [Refutable shapes] in TmOracle for a place to start.

Metric Decrease:
    T11195

- - - - -
0b7372f6 by Matthew Pickering at 2019-06-07T14:21:57Z
Add HEAP_PROF_SAMPLE_END event to mark end of samples

This allows a user to observe how long a sampling period lasts so that
the time taken can be removed from the profiling output.

Fixes #16697

- - - - -
d1dc0ed7 by Roland Senn at 2019-06-07T14:22:47Z
Fix #16700: Tiny errors in output of GHCi commands :forward and :info

`:info Coercible` now outputs the correct section number of the GHCi User's guide together with the secion title.

`:forward x` gives the correct syntax hint.

- - - - -
387050d0 by John Ericson at 2019-06-07T14:23:23Z
Factor out 'getLibDir' / 'getBaseDir' into a new GHC.BaseDir ghc-boot module

ghc-pkg and ghc already both needed this. I figure it is better to
deduplicate, especially seeing that changes to one (FreeBSD CPP) didn't
make it to the other.

Additionally in !1090 I make ghc-pkg look up the settings file, which
makes it use the top dir a bit more widely. If that lands, any
difference in the way they find the top dir would be more noticable.

That change also means sharing more code between ghc and ghc-package
(namely the settings file parsing code), so I'd think it better to get
off the slipperly slope of duplicating code now.

- - - - -
da26ffe7 by Simon Peyton Jones at 2019-06-07T14:24:00Z
Preserve ShadowInfo when rewriting evidence

When the canonicaliser rewrites evidence of a Wanted, it
should preserve the ShadowInfo (ctev_nosh) field.  That is,
a WDerive should rewrite to WDerive, and WOnly to WOnly.

Previously we were unconditionally making a WDeriv, thereby
rewriting WOnly to WDeriv.  This bit Nick Frisby (issue #16735)
in the context of his plugin, but we don't have a compact test
case.

The fix is simple, but does involve a bit more plumbing,
to pass the old ShadowInfo around, to use when building
the new Wanted.

- - - - -
9bb58799 by Ben Gamari at 2019-06-07T14:24:38Z
Hadrian: Delete target symlink in createFileLinkUntracked

Previously createFileLinkUntracked would fail if the symlink already
existed.

- - - - -
be63d299 by Simon Jakobi at 2019-06-07T14:25:16Z
Fix isValidNatural: The BigNat in NatJ# must have at least 2 limbs

Previously the `integer-gmp` variant of `isValidNatural` would fail to
detect values `<= maxBound::Word` that were incorrectly encoded using
the `NatJ#` constructor.

- - - - -
e87b9f87 by Moritz Angermann at 2019-06-07T14:26:04Z
llvm-targets: Add x86_64 android layout

- - - - -
60db142b by code5hot at 2019-06-07T14:26:46Z
Update Traversable.hs with a note about an intuitive law
- - - - -
f11aca52 by code5hot at 2019-06-07T14:26:46Z
Used terminology from a paper. Added it as a reference.
- - - - -
13b3d45d by code5hot at 2019-06-07T14:26:46Z
remove backticks from markup - it doesn't mean what I think it means
- - - - -
cfd3e0f1 by Zejun Wu at 2019-06-07T14:27:34Z
Pass preprocessor options to C compiler when building foreign C files (#16737)

- - - - -
5991d877 by Ben Gamari at 2019-06-07T14:28:09Z
base: Export Finalizers

As requested in #16750.

- - - - -
3d97bad6 by Alp Mestanogullari at 2019-06-07T14:28:47Z
Hadrian: use deb9 Docker images instead of deb8 for CI jobs

This should fix #16739, where we seem to be getting extra carets in
a test's output because of the gcc that ships with the deb8 image,
whule we're not observing those extra carets in the deb9-based (Make)
jobs.

- - - - -
1afb4995 by Ben Gamari at 2019-06-07T14:29:23Z
gitlab-ci: Create index.html in documentation deployment

Otherwise navigating to https://ghc.gitlab.haskell.org/ghc will result
in a 404.

- - - - -
07dc79c3 by Matthew Pickering at 2019-06-08T17:34:18Z
gitlab-ci: Linters, don't allow to fail

Ben disabled them in cd85f8a71bb56cff332560e1d571b3406789fb71 but didn't
say how or why they were broken.

- - - - -
fd840b64 by Matthew Pickering at 2019-06-08T17:34:18Z
gitlab-ci: Don't run two submodule checking jobs on Marge jobs

- - - - -
310d0c4c by Matthew Pickering at 2019-06-08T17:34:18Z
Fix two lint failures in rts/linker/MachO.c

- - - - -
fe965316 by Ben Gamari at 2019-06-08T17:34:18Z
gitlab-ci: Use --unshallow when fetching for linters

GitLab creates a shallow clone. However, this means that we may not have
the base commit of an MR when linting, causing `git merge-base` to fail.
Fix this by passing `--unshallow` to `git fetch`, ensuring that we have
the entire history.

- - - - -
f58234ea by Ben Gamari at 2019-06-08T17:34:18Z
gitlab-ci: Fix submodule linter

The job script didn't even try to compute the base commit to lint with
respect to.

- - - - -
c392f987 by Ben Gamari at 2019-06-08T17:34:18Z
gitlab-ci: A few clarifying comments

- - - - -
709290b0 by Matthew Pickering at 2019-06-08T17:38:15Z
Remove trailing whitespace

[skip ci]

This should really be caught by the linters! (#16711)

- - - - -
61596adb by Ben Gamari at 2019-06-08T17:42:13Z
gitlab-ci: Test using slowtest in deb9-debug job

- - - - -
f8d03fc2 by Ben Gamari at 2019-06-08T17:42:13Z
testsuite: Mark hWaitForInput-accurate-stdin as broken in threaded ways

As noted in #16535.

- - - - -
df851114 by Ben Gamari at 2019-06-08T17:42:13Z
testsuite: Make closureSize less sensitive to optimisation

- - - - -
186614e1 by Ben Gamari at 2019-06-08T17:42:13Z
process: Bump submodule

 * Skip process005 in ghci way
 * Mark process002 as fragile in threaded2

- - - - -
2e54b505 by Ben Gamari at 2019-06-08T17:42:13Z
testsuite: Mark T13167 as fragile in threaded2

As noted in #16536.

- - - - -
dc5a85d7 by Ben Gamari at 2019-06-08T17:42:13Z
testsuite: Mark T13910 as broken in optasm

Due to #16537.

- - - - -
ee3c34ff by Ben Gamari at 2019-06-08T17:42:13Z
testsuite: Mark T14761c as broken in hpc and optasm ways

As noted in #16540.

- - - - -
a0f02157 by Ben Gamari at 2019-06-08T17:42:13Z
testsuite: Mark T16180 as broken in ghci and ext-interp ways

As noted in #16541.

- - - - -
1e08c40e by Ben Gamari at 2019-06-08T17:42:13Z
testsuite: Omit tcrun022 in hpc way

As noted in #16542, the expected rule doesn't fire. However, this
doesn't seem terribly surpring given the circumstances.

- - - - -
86264099 by Ben Gamari at 2019-06-08T17:42:13Z
testsuite: Mark Overflow as broken in hpc way

As noted in #16543.

- - - - -
9573f2c3 by Ben Gamari at 2019-06-08T17:42:13Z
testsuite: Mark closure_size as broken in threaded2, optasm, dyn ways

As noted in #16531.

- - - - -
764ec2c8 by Ben Gamari at 2019-06-08T17:42:13Z
testsuite: Mark T2783 as fragile in threaded1

It was previously marked as broken but it passes non-deterministically.
See #2783.

- - - - -
89298e9a by Ben Gamari at 2019-06-08T17:42:13Z
testsuite: Skip T7919 in ghci way

It times out pretty reliably. It's not clear that much is gained by
running this test in the ghci way anyways.

- - - - -
b989b4e1 by Ben Gamari at 2019-06-08T17:42:13Z
testsuite: Fix fragile_for test modifier

- - - - -
0a563f5c by Ben Gamari at 2019-06-08T17:42:13Z
Bump unix submodule

Marks posix002 as fragile in threaded2 way due to #16550.

- - - - -
e84e67ea by Ben Gamari at 2019-06-08T17:42:13Z
testsuite: Fix omit_ways usage

omit_ways expects a list but this was broken in several cases.

- - - - -
ee8fba70 by Ben Gamari at 2019-06-08T17:42:13Z
testsuite: Mark threadstatus-T9333 as fragile in ghci way

As noted in #16555.

- - - - -
f3882fa4 by Ben Gamari at 2019-06-08T17:42:13Z
testsuite: Omit profasm way for cc017

cc017 requires TH but we can't load dynamic profiled objects.

- - - - -
70d1f0ca by Ben Gamari at 2019-06-08T17:42:13Z
testsuite: Skip T493 in ghci way.

T493 tests #493, which is an FFI test. FFI tests should be skipped
in ghci way.

- - - - -
dd9b918c by Ben Gamari at 2019-06-08T17:42:13Z
testsuite: Mark T16449_2 as broken due to #16742

- - - - -


30 changed files:

- .gitlab-ci.yml
- compiler/basicTypes/NameEnv.hs
- compiler/cmm/MkGraph.hs
- compiler/codeGen/StgCmmExpr.hs
- compiler/codeGen/StgCmmForeign.hs
- compiler/codeGen/StgCmmPrim.hs
- compiler/deSugar/Check.hs
- compiler/deSugar/DsMonad.hs
- compiler/deSugar/PmExpr.hs
- + compiler/deSugar/PmPpr.hs
- compiler/deSugar/TmOracle.hs
- compiler/ghc.cabal.in
- compiler/ghci/LinkerTypes.hs
- compiler/main/DriverPipeline.hs
- compiler/main/GHC.hs
- compiler/main/HscMain.hs
- compiler/main/HscTypes.hs
- compiler/main/InteractiveEval.hs
- compiler/main/Packages.hs
- compiler/main/SysTools/BaseDir.hs
- compiler/prelude/PrelInfo.hs
- compiler/prelude/primops.txt.pp
- compiler/specialise/Specialise.hs
- compiler/stgSyn/CoreToStg.hs
- compiler/stgSyn/StgSyn.hs
- compiler/typecheck/TcCanonical.hs
- compiler/typecheck/TcEvidence.hs
- compiler/typecheck/TcRnDriver.hs
- compiler/typecheck/TcRnTypes.hs
- compiler/typecheck/TcSMonad.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/3028f75c0462b13fbcf7900dd615ac44a9395730...dd9b918c5098b6d886213bf3f98424dc1c6d1016

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/3028f75c0462b13fbcf7900dd615ac44a9395730...dd9b918c5098b6d886213bf3f98424dc1c6d1016
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/20190608/83523c99/attachment-0001.html>


More information about the ghc-commits mailing list