[Git][ghc/ghc][wip/fix-windows] 19 commits: Add a few missing llvm-targets

Ben Gamari gitlab at gitlab.haskell.org
Fri Jun 14 03:29:37 UTC 2019



Ben Gamari pushed to branch wip/fix-windows at Glasgow Haskell Compiler / GHC


Commits:
5ffc266e by Ben Gamari at 2019-06-13T06:48:13Z
Add a few missing llvm-targets

This should finally fix #14261.

[skip ci]

- - - - -
fc6b23be by Phuong Trinh at 2019-06-13T06:48:50Z
Fix #16525: ObjectCode freed wrongly because of lack of info header check

`checkUnload` currently doesn't check the info header of static objects.
Thus, it may free an `ObjectCode` struct wrongly even if there's still a
live static object whose info header lies in a mapped section of that
`ObjectCode`. This fixes the issue by adding an appropriate check.

- - - - -
a657543c by Ben Gamari at 2019-06-13T06:49:25Z
PrelRules: Ensure that string unpack/append rule fires with source notes

Previously the presence of source notes could hide nested applications
of `unpackFoldrCString#` from our constant folding logic. For instance,
consider the expression:

```haskell
unpackFoldrCString# "foo" c (unpackFoldrCString# "baz" c n)
```

Specifically, ticks appearing in two places can defeat the rule:

  a. Surrounding the inner application of `unpackFoldrCString#`
  b. Surrounding the fold function, `c`

The latter caused the `str_rules` testcase to fail when `base` was built
with `-g3`.

Fixes #16740.

- - - - -
e98d32a6 by David Eichmann at 2019-06-13T06:50:00Z
Hadrian: Track RTS library symlink targets

This requires creating RTS library symlinks when registering, outside
of the rule for the registered library file.

- - - - -
35113117 by Alp Mestanogullari at 2019-06-13T06:50:37Z
Hadrian: Do not allow the Linux jobs to fail anymore

MR !1151 makes the Hadrian/Linux job pass by fixing the last two test failures,
so we can now be stricter and not allow those jobs to fail anymore, easily
letting us see when patches introduce test failures.

- - - - -
70b5eefe by Ben Gamari at 2019-06-13T06:51:13Z
users-guide: Fix a few markup issues

Strangely these were only causing the build to fail in the aarch64-linux
job, despite Sphinx throwing errors in all jobs I checked.

Also changes some `#ifdef`s to `#if defined` to satisfy the linter.

- - - - -
9721b40d by Ben Gamari at 2019-06-13T06:51:13Z
gitlab-ci: Don't build PDF user's guide on AArch64

For reasons I don't understand sphinx seems to fail to produce a .idx
file for makeindex.

- - - - -
d550b771 by Ben Gamari at 2019-06-13T06:51:50Z
Clean up .circleci

Move prepare-system.sh to .gitlab and remove everything else.

- - - - -
c53dfb3b by Ben Gamari at 2019-06-13T15:52:47Z
testsuite: A more portable solution to #9399

Previously we used an awful hybrid batch script/Bourne shell script to
allow this test to run both on Windows and Linux (fixing #9399).
However, this breaks on some libc implementations (e.g. musl). Fix this.

Fixes #16798.

- - - - -
74b5d049 by Ben Gamari at 2019-06-13T15:53:22Z
gitlab-ci: Disable deb9-llvm job, introduce nightly LLVM job

This should help alleviate queue times as the LLVM job is one of the
longest that we have.

- - - - -
5ce63d52 by Ben Gamari at 2019-06-13T15:53:22Z
gitlab-ci: Disable validate-x86_64-linux-deb9 job to reduce load

Enable artifacts on to ensure we have bindist coverage.

- - - - -
f0ad9408 by Ben Gamari at 2019-06-14T03:29:27Z
testsuite: Skip dynamicToo006 when dynamic linking is not available

This was previously failling on Windows.

- - - - -
214c0d99 by Ben Gamari at 2019-06-14T03:29:27Z
testsuite: Mark T3372 as fragile on Windows

On Windows we must lock package databases even when opening for
read-only access. This means that concurrent GHC sessions are very
likely to fail with file lock contention.

See #16773.

- - - - -
fecb4603 by Ben Gamari at 2019-06-14T03:29:27Z
testsuite: Add stderr output for UnsafeInfered02 on Windows

This test uses TemplateHaskell causing GHC to build dynamic objects on
platforms where dynamic linking is available. However, Windows doesn't support
dynamic linking. Consequently the test would fail on Windows with:

```patch
--- safeHaskell/safeInfered/UnsafeInfered02.run/UnsafeInfered02.stderr.normalised	2019-06-04 15:10:10.521594200 +0000
+++ safeHaskell/safeInfered/UnsafeInfered02.run/UnsafeInfered02.comp.stderr.normalised	2019-06-04 15:10:10.523546200 +0000
@@ -1,5 +1,5 @@
-[1 of 2] Compiling UnsafeInfered02_A ( UnsafeInfered02_A.hs, UnsafeInfered02_A.o, UnsafeInfered02_A.dyn_o )
-[2 of 2] Compiling UnsafeInfered02  ( UnsafeInfered02.hs, UnsafeInfered02.o, UnsafeInfered02.dyn_o )
+[1 of 2] Compiling UnsafeInfered02_A ( UnsafeInfered02_A.hs, UnsafeInfered02_A.o )
+[2 of 2] Compiling UnsafeInfered02  ( UnsafeInfered02.hs, UnsafeInfered02.o )

 UnsafeInfered02.hs:4:1:
     UnsafeInfered02_A: Can't be safely imported!
```

The other approach I considered for this issue is to pass `-v0` to GHC.
However, I felt we should probably do this consistently for all of the tests in
this directory and this would take more time than I currently have.

- - - - -
23f66f03 by Ben Gamari at 2019-06-14T03:29:27Z
testsuite: Mark OldModLocation as broken on Windows

Strangely the path it emits contains duplicate path delimiters (#16772),
```patch
--- ghc-api/downsweep/OldModLocation.run/OldModLocation.stderr.normalised	2019-06-04 14:40:26.326075000 +0000
+++ ghc-api/downsweep/OldModLocation.run/OldModLocation.run.stderr.normalised	2019-06-04 14:40:26.328029200 +0000
@@ -1 +1 @@
-[Just "A.hs",Just "mydir/B.hs"]
+[Just "A.hs",Just "mydir//B.hs"]
```

- - - - -
1f70a38e by Ben Gamari at 2019-06-14T03:29:27Z
testsuite: Mark T7170 as broken on Windows

Due to #16801.

- - - - -
278eb794 by Ben Gamari at 2019-06-14T03:29:27Z
testsuite: Mark T7702 as broken on Windows

Due to #16799.

- - - - -
acd586ce by Ben Gamari at 2019-06-14T03:29:27Z
gitlab-ci: Don't allow Windows make job to fail

While linking is still slow (#16084) all of the correctness issues which were
preventing us from being able to enforce testsuite-green on Windows are now
resolved.

- - - - -
0a0d92e3 by Ben Gamari at 2019-06-14T03:29:27Z
testsuite: Mark T15633a and T15633b as fragile on Windows

As noted in #16813, these tests seem to be fragile on Windows.

- - - - -


30 changed files:

- − .circleci/config.yml
- − .circleci/fetch-submodules.sh
- − .circleci/push-test-metrics.sh
- .gitlab-ci.yml
- .circleci/prepare-system.sh → .gitlab/prepare-system.sh
- compiler/prelude/PrelRules.hs
- docs/users_guide/ffi-chap.rst
- docs/users_guide/ghci.rst
- hadrian/src/Hadrian/Utilities.hs
- hadrian/src/Rules/Library.hs
- hadrian/src/Rules/Program.hs
- hadrian/src/Rules/Register.hs
- hadrian/src/Rules/Rts.hs
- libraries/base/tests/all.T
- libraries/base/tests/enum01.hs
- libraries/base/tests/enum02.hs
- libraries/base/tests/enum03.hs
- libraries/base/tests/enum_processor.bat
- libraries/base/tests/enum_processor.py
- libraries/ghc-boot/GHC/PackageDb.hs
- llvm-targets
- rts/CheckUnload.c
- rts/Linker.c
- rts/linker/M32Alloc.c
- testsuite/tests/driver/dynamicToo/dynamicToo006/all.T
- testsuite/tests/ffi/should_run/all.T
- testsuite/tests/ghc-api/downsweep/all.T
- + testsuite/tests/ghci/T16525a/A.hs
- + testsuite/tests/ghci/T16525a/B.hs
- + testsuite/tests/ghci/T16525a/T16525a.script


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/547c48a8b1b0ce7f5f8d8ca0bf8b3ea0aeaa1f71...0a0d92e3f777c39489e768051c7d2af5acc53219

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/547c48a8b1b0ce7f5f8d8ca0bf8b3ea0aeaa1f71...0a0d92e3f777c39489e768051c7d2af5acc53219
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/20190613/09dfe143/attachment.html>


More information about the ghc-commits mailing list