[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