[Git][ghc/ghc][wip/T16742] 12 commits: Add a few missing llvm-targets

Ben Gamari gitlab at gitlab.haskell.org
Thu Jun 13 16:08:35 UTC 2019



Ben Gamari pushed to branch wip/T16742 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.

- - - - -
0bd3b9dd by Ben Gamari at 2019-06-13T16:08:28Z
PrelRules: Don't break let/app invariant in shiftRule

Previously shiftRule would rewrite as invalid shift like
```
let x = I# (uncheckedIShiftL# n 80)
in ...
```
to
```
let x = I# (error "invalid shift")
in ...
```
However, this breaks the let/app invariant as `error` is not
okay-for-speculation. There isn't an easy way to avoid this so let's not
try. Instead we just take advantage of the undefined nature of invalid
shifts and return zero.

Fixes #16742.

- - - - -


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/coreSyn/CoreSyn.hs
- compiler/prelude/PrelRules.hs
- compiler/prelude/PrimOp.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
- llvm-targets
- rts/CheckUnload.c
- rts/Linker.c
- rts/linker/M32Alloc.c
- testsuite/tests/codeGen/should_run/T16449_2.hs
- − testsuite/tests/codeGen/should_run/T16449_2.stderr
- + testsuite/tests/codeGen/should_run/T16449_2.stdout
- testsuite/tests/codeGen/should_run/all.T
- + testsuite/tests/ghci/T16525a/A.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/a5f44304119ac8088c034193b13371cacddb14e2...0bd3b9dd0428855b6f72f757c1214b5253aa7753

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/a5f44304119ac8088c034193b13371cacddb14e2...0bd3b9dd0428855b6f72f757c1214b5253aa7753
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/af2f72ec/attachment.html>


More information about the ghc-commits mailing list