[Git][ghc/ghc][wip/marge_bot_batch_merge_job] 9 commits: Improve test runner logging when calculating performance metric baseline #16662
Marge Bot
gitlab at gitlab.haskell.org
Mon May 20 15:24:35 UTC 2019
Marge Bot pushed to branch wip/marge_bot_batch_merge_job at Glasgow Haskell Compiler / GHC
Commits:
5bb80cf2 by David Eichmann at 2019-05-20T14:41:55Z
Improve test runner logging when calculating performance metric baseline #16662
We attempt to get 75 commit hashes via `git log`, but this only gave 10
hashes in a CI run (see #16662). Better logging may help solve this
error if it occurs again in the future.
- - - - -
c65bd6b0 by Sergei Trofimovich at 2019-05-20T15:24:25Z
powerpc32: fix 64-bit comparison (#16465)
On powerpc32 64-bit comparison code generated dangling
target labels. This caused ghc build failure as:
$ ./configure --target=powerpc-unknown-linux-gnu && make
...
SCCs aren't in reverse dependent order
bad blockId n3U
This happened because condIntCode' in PPC codegen generated
label name but did not place the label into `cmp_lo` code block.
The change adds the `cmp_lo` label into the case of negative
comparison.
Signed-off-by: Sergei Trofimovich <slyfox at gentoo.org>
- - - - -
e2b8e245 by Sergei Trofimovich at 2019-05-20T15:24:25Z
powerpc32: fix stack allocation code generation
When ghc was built for powerpc32 built failed as:
It's a fallout of commit 3f46cffcc2850e68405a1
("PPC NCG: Refactor stack allocation code") where
word size used to be
II32/II64
and changed to
II8/panic "no width for given number of bytes"
widthFromBytes ((platformWordSize platform) `quot` 8)
The change restores initial behaviour by removing extra division.
Signed-off-by: Sergei Trofimovich <slyfox at gentoo.org>
- - - - -
167bead0 by Takenobu Tani at 2019-05-20T15:24:27Z
users-guide: Fix directive errors on 8.10
The following sections are not displayed due to a directive error:
* -Wunused-record-wildcards
* -Wredundant-record-wildcards
I changed the location of the `since` directive.
[skip ci]
- - - - -
06967997 by Kirill Elagin at 2019-05-20T15:24:28Z
users-guide: Fix -rtsopts default
- - - - -
28604438 by Javran Cheng at 2019-05-20T15:24:28Z
Fix doc for Data.Function.fix.
Doc-only change.
- - - - -
49fdea88 by Shayne Fletcher at 2019-05-20T15:24:30Z
Update resolver for for happy 1.19.10
- - - - -
5e25f3af by Ben Gamari at 2019-05-20T15:24:30Z
gitlab-ci: Allow Windows Hadrian build to fail
Due to #16574.
- - - - -
79488cca by Ben Gamari at 2019-05-20T15:24:30Z
Update .gitlab-ci.yml
- - - - -
8 changed files:
- .gitlab-ci.yml
- compiler/nativeGen/PPC/CodeGen.hs
- compiler/nativeGen/PPC/Instr.hs
- docs/users_guide/phases.rst
- docs/users_guide/using-warnings.rst
- hadrian/stack.yaml
- libraries/base/Data/Function.hs
- testsuite/driver/perf_notes.py
Changes:
=====================================
.gitlab-ci.yml
=====================================
@@ -560,6 +560,8 @@ validate-x86_64-linux-fedora27:
stage: full-build
variables:
GHC_VERSION: "8.6.2"
+ # due to #16574 this currently fails
+ allow_failure: true
script:
- |
python boot
=====================================
compiler/nativeGen/PPC/CodeGen.hs
=====================================
@@ -949,6 +949,7 @@ condIntCode' True cond W64 x y
, BCC LE cmp_lo Nothing
, CMPL II32 x_lo (RIReg y_lo)
, BCC ALWAYS end_lbl Nothing
+ , NEWBLOCK cmp_lo
, CMPL II32 y_lo (RIReg x_lo)
, BCC ALWAYS end_lbl Nothing
=====================================
compiler/nativeGen/PPC/Instr.hs
=====================================
@@ -98,7 +98,7 @@ ppc_mkStackAllocInstr' platform amount
, STU fmt r0 (AddrRegReg sp tmp)
]
where
- fmt = intFormat $ widthFromBytes ((platformWordSize platform) `quot` 8)
+ fmt = intFormat $ widthFromBytes (platformWordSize platform)
zero = ImmInt 0
tmp = tmpReg platform
immAmount = ImmInt amount
=====================================
docs/users_guide/phases.rst
=====================================
@@ -937,7 +937,7 @@ for example).
:type: dynamic
:category: linking
- :default: all
+ :default: some
This option affects the processing of RTS control options given
either on the command line or via the :envvar:`GHCRTS` environment
=====================================
docs/users_guide/using-warnings.rst
=====================================
@@ -1545,10 +1545,11 @@ of ``-W(no-)*``.
:shortdesc: Warn about record wildcard matches when none of the bound variables
are used.
:type: dynamic
- :since: 8.10.1
:reverse: -Wno-unused-record-wildcards
:category:
+ :since: 8.10.1
+
.. index::
single: unused, warning, record wildcards
@@ -1566,10 +1567,11 @@ of ``-W(no-)*``.
.. ghc-flag:: -Wredundant-record-wildcards
:shortdesc: Warn about record wildcard matches when the wildcard binds no patterns.
:type: dynamic
- :since: 8.10.1
:reverse: -Wno-redundant-record-wildcards
:category:
+ :since: 8.10.1
+
.. index::
single: unused, warning, record wildcards
=====================================
hadrian/stack.yaml
=====================================
@@ -1,7 +1,7 @@
# For more information, see: http://docs.haskellstack.org/en/stable/yaml_configuration.html
# Specifies the GHC version and set of packages available (e.g., lts-3.5, nightly-2015-09-21, ghc-7.10.2)
-resolver: lts-13.14
+resolver: lts-13.21
# Local packages, usually specified by relative directory name
packages:
=====================================
libraries/base/Data/Function.hs
=====================================
@@ -45,7 +45,7 @@ infixl 1 &
-- 120
--
-- Instead of making a recursive call, we introduce a dummy parameter @rec@;
--- when used within 'fix', this parameter then refers to 'fix' argument, hence
+-- when used within 'fix', this parameter then refers to 'fix'’s argument, hence
-- the recursion is reintroduced.
fix :: (a -> a) -> a
fix f = let x = f x in x
=====================================
testsuite/driver/perf_notes.py
=====================================
@@ -297,10 +297,19 @@ def baseline_commit_log(commit):
global _baseline_depth_commit_log
commit = commit_hash(commit)
if not commit in _baseline_depth_commit_log:
- _baseline_depth_commit_log[commit] = \
- subprocess.check_output(['git', 'log', '--format=%H', \
- '-n' + str(BaselineSearchDepth)]) \
- .decode().split('\n')
+ n = BaselineSearchDepth
+ output = subprocess.check_output(['git', 'log', '--format=%H', '-n' + str(n), commit]).decode()
+ hashes = list(filter(is_commit_hash, output.split('\n')))
+
+ # We only got 10 results (expecting 75) in a CI pipeline (issue #16662).
+ # It's unclear from the logs what went wrong. Since no exception was
+ # thrown, we can assume the `git log` call above succeeded. The best we
+ # can do for now is improve logging.
+ actualN = len(hashes)
+ if actualN != n:
+ print("Expected " + str(n) + " hashes, but git gave " + str(actualN) + ":\n" + output)
+ _baseline_depth_commit_log[commit] = hashes
+
return _baseline_depth_commit_log[commit]
# Cache of baseline values. This is a dict of dicts indexed on:
@@ -397,7 +406,9 @@ def baseline_metric(commit, name, test_env, metric, way):
# Searches through previous commits trying local then ci for each commit in.
def search(useCiNamespace, depth):
# Stop if reached the max search depth.
- if depth >= BaselineSearchDepth:
+ # We use len(commit_hashes) instead of BaselineSearchDepth incase
+ # baseline_commit_log() returned fewer than BaselineSearchDepth hashes.
+ if depth >= len(commit_hashes):
return None
# Check for a metric on this commit.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/cb35f2d9f18d8457f7955d2557754f17e4e3e4ac...79488ccac8a5dbc4758339a74da6011c9199fc48
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/cb35f2d9f18d8457f7955d2557754f17e4e3e4ac...79488ccac8a5dbc4758339a74da6011c9199fc48
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/20190520/d2444fee/attachment-0001.html>
More information about the ghc-commits
mailing list