[Git][ghc/ghc][wip/fix-windows] 21 commits: Warn about unused packages

Ben Gamari gitlab at gitlab.haskell.org
Wed Jun 12 13:54:25 UTC 2019



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


Commits:
fe7e7e4a by Yuras Shumovich at 2019-06-11T22:39:58Z
Warn about unused packages

Reviewers: bgamari, simonpj

Reviewed By: simonpj

Subscribers: hvr, simonpj, mpickering, rwbarton, carter

GHC Trac Issues: #15838

Differential Revision: https://phabricator.haskell.org/D5285

- - - - -
39f50bff by Alp Mestanogullari at 2019-06-11T22:40:37Z
Refine the GHCI macro into HAVE[_{INTERNAL, EXTERNAL}]_INTERPRETER

As discussed in #16331, the GHCI macro, defined through 'ghci' flags
in ghc.cabal.in, ghc-bin.cabal.in and ghci.cabal.in, is supposed to indicate
whether GHC is built with support for an internal interpreter, that runs in
the same process. It is however overloaded in a few places to mean
"there is an interpreter available", regardless of whether it's an internal
or external interpreter.

For the sake of clarity and with the hope of more easily being able to
build stage 1 GHCs with external interpreter support, this patch splits
the previous GHCI macro into 3 different ones:

- HAVE_INTERNAL_INTERPRETER: GHC is built with an internal interpreter
- HAVE_EXTERNAL_INTERPRETER: GHC is built with support for external interpreters
- HAVE_INTERPRETER: HAVE_INTERNAL_INTERPRETER || HAVE_EXTERNAL_INTERPRETER

- - - - -
45616133 by Alec Theriault at 2019-06-11T22:41:14Z
Make `haddock_testsuite` respect `--test-accept`

Suppose you've made changes that affect the output of `haddockHtmlTest`
so that the following is failing:

    ./hadrian/build.sh -c --only=haddockHtmlTest test

Then, the following will accept new output for Haddock's test cases.

    ./hadrian/build.sh -c --only=haddockHtmlTest test --test-accept

You still do need to make sure those new changes (which show up in
Haddock's tree) get committed though.

Fixes #16694

- - - - -
762098bf by Alp Mestanogullari at 2019-06-11T22:41:52Z
rts/RtsFlags.c: mention that -prof too enables support for +RTS -l

- - - - -
457fe789 by Alp Mestanogullari at 2019-06-11T22:42:30Z
Hadrian: teach the RTS that PROFILING implies TRACING

As discussed in #16744, both the Make and Hadrian build systems
have special code to always pass -eventlog whenever -prof or -debug
are passed. However, there is some similar logic in the RTS itself only
for defining TRACING when the DEBUG macro is defined, but no such logic
is implemented to define TRACING when the PROFILING macro is defined.
This patch adds such a logic and therefore fixes #16744.

- - - - -
cf7f36ae by Ben Gamari at 2019-06-11T22:43:05Z
rts/linker: Mmap into low memory on AArch64

This extends mmapForLinker to use the same low-memory mapping
strategy used on x86_64 on AArch64. See #16784.

- - - - -
0b7f81f5 by Ben Gamari at 2019-06-11T22:43:05Z
rts/linker: Use mmapForLinker to map PLT

The PLT needs to be located within a close distance of
the code calling it under the small memory model.

Fixes #16784.

- - - - -
1389b2cc by Ömer Sinan Ağacan at 2019-06-11T22:43:43Z
Fix an error message in CheckUnload.c:searchHeapBlocks

- - - - -
aad6115a by Alp Mestanogullari at 2019-06-11T22:44:20Z
testsuite/mk/boilerplate.mk: rename 'ghc-config-mk' to 'ghc_config_mk'

Make/shell variable names which contain dashes can cause problems under
some conditions. The 'ghc-config-mk' variable from testsuite/mk/boilerplate.mk
that I made overridable (by Hadrian) in ba0aed2e was working as expected when
our Hadrian/Linux job was based off the deb8 Docker image, but broke when
I switched the job to use our deb9-based image, in 3d97bad6. The exact
circumstances/tool versions that trigger this problem are unknown, but
changing the variable's name to 'ghc_config_mk' lets us work around the issue.

This fixes the annth_compunits and annth_make test failures that showed up
when we switched the Hadrian/Linux job to use the deb9 environment.

- - - - -
9b4ff57d by Ben Gamari at 2019-06-12T11:35:25Z
llvm-targets: Add armv7l-unknown-linux-gnueabi

Fixes #15208.

[skip ci]

- - - - -
c05ca251 by Ben Gamari at 2019-06-12T11:36:01Z
testsuite: Add haddock perf test output to gitignore

[skip ci]

- - - - -
bbc752c5 by Ben Gamari at 2019-06-12T11:36:36Z
rts/linker: Make elf_got.c a bit more legible

- - - - -
217e6db4 by Ben Gamari at 2019-06-12T11:36:36Z
rts/linker: Only mprotect GOT after it is filled

This fixes a regression, introduced by 67c422ca, where we mprotect'd the
global offset table (GOT) region to PROT_READ before we had finished
filling it, resulting in a linker crash.

Fixes #16779.

- - - - -
1219f8e8 by Krzysztof Gogolewski at 2019-06-12T11:37:12Z
Use DeriveFunctor throughout the codebase (#15654)

- - - - -
26398749 by Ben Gamari at 2019-06-12T13:54:16Z
testsuite: Skip dynamicToo006 when dynamic linking is not available

This was previously failling on Windows.

- - - - -
6229e3b8 by Ben Gamari at 2019-06-12T13:54:16Z
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.

- - - - -
ce815fbd by Ben Gamari at 2019-06-12T13:54:16Z
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.

- - - - -
5b37bbc8 by Ben Gamari at 2019-06-12T13:54:17Z
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"]
```

- - - - -
4cd114e1 by Ben Gamari at 2019-06-12T13:54:17Z
testsuite: Mark T7170 as broken on Windows

Due to #16801.

- - - - -
af635867 by Ben Gamari at 2019-06-12T13:54:17Z
testsuite: Mark T7702 as broken on Windows

Due to #16799.

- - - - -
cfa28aa9 by Ben Gamari at 2019-06-12T13:54:17Z
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.

- - - - -


30 changed files:

- .gitlab-ci.yml
- compiler/basicTypes/UniqSupply.hs
- compiler/cmm/CmmLint.hs
- compiler/cmm/Hoopl/Block.hs
- compiler/cmm/PprC.hs
- compiler/codeGen/StgCmmExtCode.hs
- compiler/codeGen/StgCmmMonad.hs
- compiler/coreSyn/CoreLint.hs
- compiler/deSugar/Coverage.hs
- compiler/ghc.cabal.in
- compiler/ghci/ByteCodeAsm.hs
- compiler/ghci/ByteCodeGen.hs
- compiler/ghci/GHCi.hs
- compiler/hsSyn/Convert.hs
- compiler/hsSyn/HsBinds.hs
- compiler/llvmGen/LlvmCodeGen/Base.hs
- compiler/main/Annotations.hs
- compiler/main/CmdLineParser.hs
- compiler/main/DynFlags.hs
- compiler/main/DynamicLoading.hs
- compiler/main/GhcMake.hs
- compiler/main/GhcMonad.hs
- compiler/main/HscTypes.hs
- compiler/main/PipelineMonad.hs
- compiler/main/TidyPgm.hs
- compiler/nativeGen/AsmCodeGen.hs
- compiler/nativeGen/NCGMonad.hs
- compiler/nativeGen/RegAlloc/Linear/State.hs
- compiler/prelude/PrelRules.hs
- compiler/rename/RnExpr.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/62c0248a72fc18cb43f2a87c5b8d5a55ff47351e...cfa28aa9ad83c205d5c5328b290ca90f38e351c2

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/62c0248a72fc18cb43f2a87c5b8d5a55ff47351e...cfa28aa9ad83c205d5c5328b290ca90f38e351c2
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/20190612/1809d902/attachment-0001.html>


More information about the ghc-commits mailing list