[Git][ghc/ghc][wip/marge_bot_batch_merge_job] 43 commits: [skip ci] Improve the documentation of the CNF primops. In this context, the...

Marge Bot gitlab at gitlab.haskell.org
Fri Jun 7 21:01:56 UTC 2019



 Marge Bot pushed to branch wip/marge_bot_batch_merge_job at Glasgow Haskell Compiler / GHC


Commits:
d3915b30 by Andrew Martin at 2019-06-07T14:20:42Z
[skip ci] Improve the documentation of the CNF primops. In this context, the term "size" is ambiguous and is now avoided. Additionally, the distinction between a CNF and the blocks that comprise it has been emphasize. The vocabulary has been made more consistent with the vocabulary in the C source for CNF.

- - - - -
e963beb5 by Sebastian Graf at 2019-06-07T14:21:21Z
TmOracle: Replace negative term equalities by refutable PmAltCons

The `PmExprEq` business was a huge hack and was at the same time vastly
too powerful and not powerful enough to encode negative term equalities,
i.e. facts of the form "forall y. x ≁ Just y".

This patch introduces the concept of 'refutable shapes': What matters
for the pattern match checker is being able to encode knowledge of the
kind "x can no longer be the literal 5". We encode this knowledge in a
`PmRefutEnv`, mapping a set of newly introduced `PmAltCon`s (which are
just `PmLit`s at the moment) to each variable denoting above
inequalities.

So, say we have `x ≁ 42 ∈ refuts` in the term oracle context and
try to solve an equality like `x ~ 42`. The entry in the refutable
environment will immediately lead to a contradiction.

This machinery renders the whole `PmExprEq` and `ComplexEq` business
unnecessary, getting rid of a lot of (mostly dead) code.

See the Note [Refutable shapes] in TmOracle for a place to start.

Metric Decrease:
    T11195

- - - - -
0b7372f6 by Matthew Pickering at 2019-06-07T14:21:57Z
Add HEAP_PROF_SAMPLE_END event to mark end of samples

This allows a user to observe how long a sampling period lasts so that
the time taken can be removed from the profiling output.

Fixes #16697

- - - - -
d1dc0ed7 by Roland Senn at 2019-06-07T14:22:47Z
Fix #16700: Tiny errors in output of GHCi commands :forward and :info

`:info Coercible` now outputs the correct section number of the GHCi User's guide together with the secion title.

`:forward x` gives the correct syntax hint.

- - - - -
387050d0 by John Ericson at 2019-06-07T14:23:23Z
Factor out 'getLibDir' / 'getBaseDir' into a new GHC.BaseDir ghc-boot module

ghc-pkg and ghc already both needed this. I figure it is better to
deduplicate, especially seeing that changes to one (FreeBSD CPP) didn't
make it to the other.

Additionally in !1090 I make ghc-pkg look up the settings file, which
makes it use the top dir a bit more widely. If that lands, any
difference in the way they find the top dir would be more noticable.

That change also means sharing more code between ghc and ghc-package
(namely the settings file parsing code), so I'd think it better to get
off the slipperly slope of duplicating code now.

- - - - -
da26ffe7 by Simon Peyton Jones at 2019-06-07T14:24:00Z
Preserve ShadowInfo when rewriting evidence

When the canonicaliser rewrites evidence of a Wanted, it
should preserve the ShadowInfo (ctev_nosh) field.  That is,
a WDerive should rewrite to WDerive, and WOnly to WOnly.

Previously we were unconditionally making a WDeriv, thereby
rewriting WOnly to WDeriv.  This bit Nick Frisby (issue #16735)
in the context of his plugin, but we don't have a compact test
case.

The fix is simple, but does involve a bit more plumbing,
to pass the old ShadowInfo around, to use when building
the new Wanted.

- - - - -
9bb58799 by Ben Gamari at 2019-06-07T14:24:38Z
Hadrian: Delete target symlink in createFileLinkUntracked

Previously createFileLinkUntracked would fail if the symlink already
existed.

- - - - -
be63d299 by Simon Jakobi at 2019-06-07T14:25:16Z
Fix isValidNatural: The BigNat in NatJ# must have at least 2 limbs

Previously the `integer-gmp` variant of `isValidNatural` would fail to
detect values `<= maxBound::Word` that were incorrectly encoded using
the `NatJ#` constructor.

- - - - -
e87b9f87 by Moritz Angermann at 2019-06-07T14:26:04Z
llvm-targets: Add x86_64 android layout

- - - - -
60db142b by code5hot at 2019-06-07T14:26:46Z
Update Traversable.hs with a note about an intuitive law
- - - - -
f11aca52 by code5hot at 2019-06-07T14:26:46Z
Used terminology from a paper. Added it as a reference.
- - - - -
13b3d45d by code5hot at 2019-06-07T14:26:46Z
remove backticks from markup - it doesn't mean what I think it means
- - - - -
cfd3e0f1 by Zejun Wu at 2019-06-07T14:27:34Z
Pass preprocessor options to C compiler when building foreign C files (#16737)

- - - - -
5991d877 by Ben Gamari at 2019-06-07T14:28:09Z
base: Export Finalizers

As requested in #16750.

- - - - -
3d97bad6 by Alp Mestanogullari at 2019-06-07T14:28:47Z
Hadrian: use deb9 Docker images instead of deb8 for CI jobs

This should fix #16739, where we seem to be getting extra carets in
a test's output because of the gcc that ships with the deb8 image,
whule we're not observing those extra carets in the deb9-based (Make)
jobs.

- - - - -
1afb4995 by Ben Gamari at 2019-06-07T14:29:23Z
gitlab-ci: Create index.html in documentation deployment

Otherwise navigating to https://ghc.gitlab.haskell.org/ghc will result
in a 404.

- - - - -
2a29053f by Matthew Pickering at 2019-06-07T21:01:33Z
Remove trailing whitespace

[skip ci]

This should really be caught by the linters! (#16711)

- - - - -
f99c9e9c by Ben Gamari at 2019-06-07T21:01:34Z
gitlab-ci: Test using slowtest in deb9-debug job

- - - - -
7d033488 by Ben Gamari at 2019-06-07T21:01:34Z
testsuite: Mark hWaitForInput-accurate-stdin as broken in threaded ways

As noted in #16535.

- - - - -
92cdf6d7 by Ben Gamari at 2019-06-07T21:01:34Z
testsuite: Make closureSize less sensitive to optimisation

- - - - -
a007d970 by Ben Gamari at 2019-06-07T21:01:34Z
process: Bump submodule

 * Skip process005 in ghci way
 * Mark process002 as fragile in threaded2

- - - - -
a7d20c1b by Ben Gamari at 2019-06-07T21:01:34Z
testsuite: Mark T13167 as fragile in threaded2

As noted in #16536.

- - - - -
dc93ef65 by Ben Gamari at 2019-06-07T21:01:34Z
testsuite: Mark T13910 as broken in optasm

Due to #16537.

- - - - -
de23ef35 by Ben Gamari at 2019-06-07T21:01:34Z
testsuite: Mark T14761c as broken in hpc and optasm ways

As noted in #16540.

- - - - -
aa496014 by Ben Gamari at 2019-06-07T21:01:34Z
testsuite: Mark T16180 as broken in ghci and ext-interp ways

As noted in #16541.

- - - - -
c75a6191 by Ben Gamari at 2019-06-07T21:01:34Z
testsuite: Omit tcrun022 in hpc way

As noted in #16542, the expected rule doesn't fire. However, this
doesn't seem terribly surpring given the circumstances.

- - - - -
f782313e by Ben Gamari at 2019-06-07T21:01:34Z
testsuite: Mark Overflow as broken in hpc way

As noted in #16543.

- - - - -
53e7a906 by Ben Gamari at 2019-06-07T21:01:34Z
testsuite: Mark closure_size as broken in threaded2, optasm, dyn ways

As noted in #16531.

- - - - -
a8bbf562 by Ben Gamari at 2019-06-07T21:01:34Z
testsuite: Mark T2783 as fragile in threaded1

It was previously marked as broken but it passes non-deterministically.
See #2783.

- - - - -
75894070 by Ben Gamari at 2019-06-07T21:01:34Z
testsuite: Skip T7919 in ghci way

It times out pretty reliably. It's not clear that much is gained by
running this test in the ghci way anyways.

- - - - -
81722107 by Ben Gamari at 2019-06-07T21:01:34Z
testsuite: Fix fragile_for test modifier

- - - - -
18a6b937 by Ben Gamari at 2019-06-07T21:01:34Z
Bump unix submodule

Marks posix002 as fragile in threaded2 way due to #16550.

- - - - -
e69ceb05 by Ben Gamari at 2019-06-07T21:01:34Z
testsuite: Fix omit_ways usage

omit_ways expects a list but this was broken in several cases.

- - - - -
b193231b by Ben Gamari at 2019-06-07T21:01:34Z
testsuite: Mark threadstatus-T9333 as fragile in ghci way

As noted in #16555.

- - - - -
38aebda4 by Ben Gamari at 2019-06-07T21:01:34Z
testsuite: Omit profasm way for cc017

cc017 requires TH but we can't load dynamic profiled objects.

- - - - -
9f4bb548 by Ben Gamari at 2019-06-07T21:01:34Z
testsuite: Skip T493 in ghci way.

T493 tests #493, which is an FFI test. FFI tests should be skipped
in ghci way.

- - - - -
c77f45f7 by Ben Gamari at 2019-06-07T21:01:34Z
testsuite: Mark T16449_2 as broken due to #16742

- - - - -
374134f0 by Alp Mestanogullari at 2019-06-07T21:01:36Z
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

- - - - -
61b03456 by nineonine at 2019-06-07T21:01:38Z
Do not report error if Name in pragma is unbound

- - - - -
20efbff7 by David Eichmann at 2019-06-07T21:01:41Z
Hadrian: need CPP preprocessor dependencies #16660

Use the new -include-cpp-deps ghc option (#16521)
when generating .dependencies files in hadrian.
This is version gated as -include-cpp-deps is a
relatively new option.

- - - - -
4861b701 by Matthew Pickering at 2019-06-07T21:01:42Z
hadrian: Properly partition options in sourceArgs

Previously if you build the `ghc` package then it would has the default
opts and the library opts. This is different behaviour to make where the
library opts are only reserved for things in the `libraries`
subdirectory (I believe)

Fixes #16716

- - - - -
be403d5b by Richard Eisenberg at 2019-06-07T21:01:44Z
Comments only: document newtypes' DataConWrapId

- - - - -
66848cbd by Ben Gamari at 2019-06-07T21:01:45Z
Maintain separate flags for C++ compiler invocations

Previously we would pass flags intended for the C compiler to the C++
compiler (see #16738). This would cause, for instance, `-std=gnu99` to
be passed to the C++ compiler, causing spurious test failures. Fix this
by maintaining a separate set of flags for C++ compilation invocations.

- - - - -


30 changed files:

- .gitlab-ci.yml
- aclocal.m4
- compiler/basicTypes/MkId.hs
- compiler/basicTypes/NameEnv.hs
- compiler/cmm/MkGraph.hs
- compiler/codeGen/StgCmmForeign.hs
- compiler/deSugar/Check.hs
- compiler/deSugar/DsMonad.hs
- compiler/deSugar/PmExpr.hs
- + compiler/deSugar/PmPpr.hs
- compiler/deSugar/TmOracle.hs
- compiler/ghc.cabal.in
- compiler/ghci/GHCi.hs
- compiler/ghci/Linker.hs
- compiler/ghci/LinkerTypes.hs
- compiler/main/DriverPipeline.hs
- compiler/main/DynFlags.hs
- compiler/main/DynamicLoading.hs
- compiler/main/HscTypes.hs
- compiler/main/Packages.hs
- compiler/main/Settings.hs
- compiler/main/SysTools.hs
- compiler/main/SysTools/BaseDir.hs
- compiler/main/SysTools/Info.hs
- compiler/main/SysTools/Tasks.hs
- compiler/main/ToolSettings.hs
- compiler/prelude/PrelInfo.hs
- compiler/prelude/primops.txt.pp
- compiler/rename/RnEnv.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/ed03ee3f7c9c919ed679e35beddba901fea0fa56...66848cbddd5f7aaf1f28c2b517f77df593edea8f

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/ed03ee3f7c9c919ed679e35beddba901fea0fa56...66848cbddd5f7aaf1f28c2b517f77df593edea8f
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/20190607/492939b1/attachment-0001.html>


More information about the ghc-commits mailing list