[Git][ghc/ghc][wip/marge_bot_batch_merge_job] 15 commits: Have GHCi use object code for UnboxedTuples modules #15454

Marge Bot gitlab at gitlab.haskell.org
Wed May 22 23:35:58 UTC 2019



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


Commits:
21272670 by Michael Sloan at 2019-05-22T20:37:57Z
Have GHCi use object code for UnboxedTuples modules #15454

The idea is to automatically enable -fobject-code for modules that use
UnboxedTuples, along with all the modules they depend on. When looking
into how to solve this, I was pleased to find that there was already
highly similar logic for enabling code generation when -fno-code is
specified but TemplateHaskell is used.

The state before this patch was that if you used unboxed tuples then you
had to enable `-fobject-code` globally rather than on a per module
basis.

- - - - -
ddae344e by Michael Sloan at 2019-05-22T20:41:31Z
Use datatype for unboxed returns when loading ghc into ghci

See #13101 and #15454

- - - - -
78c3f330 by Kevin Buhr at 2019-05-22T20:45:08Z
Add regression test for old Word32 arithmetic issue (#497)

- - - - -
ecc9366a by Alec Theriault at 2019-05-22T20:48:45Z
RTS: Fix restrictive cast

Commit e75a9afd2989e0460f9b49fa07c1667299d93ee9 added an `unsigned` cast
to account for OSes that have signed `rlim_t` signed. Unfortunately,
the `unsigned` cast has the unintended effect of narrowing `rlim_t` to
only 4 bytes. This leads to some spurious out of memory crashes
(in particular: Haddock crashes with OOM whenn building docs of
`ghc`-the-library).

In this case, `W_` is a better type to cast to: we know it will be
unsigned too and it has the same type as `*len` (so we don't suffer from
accidental narrowing).

- - - - -
2c15b85e by Alp Mestanogullari at 2019-05-22T20:52:22Z
Hadrian: add --test-root-dirs, to only run specific directories of tests

We can specify several of those, by using the flag multiple times or
just once but combining the directories with ':'.

Along the way, this patch also fixes the testsuite-related --only flag,
so that we can use it many times instead of being force to specify a
space-separated list of test in a single --only flag.

- - - - -
6efe04de by Ryan Scott at 2019-05-22T20:56:01Z
Use HsTyPats in associated type family defaults

Associated type family default declarations behave strangely in a
couple of ways:

1. If one tries to bind the type variables with an explicit `forall`,
   the `forall`'d part will simply be ignored. (#16110)
2. One cannot use visible kind application syntax on the left-hand
   sides of associated default equations, unlike every other form
   of type family equation. (#16356)

Both of these issues have a common solution. Instead of using
`LHsQTyVars` to represent the left-hand side arguments of an
associated default equation, we instead use `HsTyPats`, which is what
other forms of type family equations use. In particular, here are
some highlights of this patch:

* `FamEqn` is no longer parameterized by a `pats` type variable, as
  the `feqn_pats` field is now always `HsTyPats`.
* The new design for `FamEqn` in chronicled in
  `Note [Type family instance declarations in HsSyn]`.
* `TyFamDefltEqn` now becomes the same thing as `TyFamInstEqn`. This
  means that many of `TyFamDefltEqn`'s code paths can now reuse the
  code paths for `TyFamInstEqn`, resulting in substantial
  simplifications to various parts of the code dealing with
  associated type family defaults.

Fixes #16110 and #16356.

- - - - -
4ba73e00 by Luite Stegeman at 2019-05-22T20:59:39Z
fix Template Haskell cross compilation on 64 bit compiler with 32 bit target

- - - - -
7948f770 by Sandy Maguire at 2019-05-22T23:35:45Z
Let the specialiser work on dicts under lambdas

Following the discussion under #16473, this change allows the
specializer to work on any dicts in a lambda, not just those that occur
at the beginning. This plays much more nicely for higher-rank
continuations that pack dicts.

- - - - -
73b0ac22 by Alp Mestanogullari at 2019-05-22T23:35:47Z
add an --hadrian mode to ./validate

When the '--hadrian' flag is passed to the validate script, we use hadrian
to build GHC, package it up in a binary distribution and later on run GHC's
testsuite against the said bindist, which gets installed locally in the process.

Along the way, this commit fixes a typo, an omission (build iserv binaries
before producing the bindist archive) and moves the Makefile that enables
'make install' on those bindists from being a list of strings in the code to
an actual file (it was becoming increasingly annoying to work with).

Finally, the Settings.Builders.Ghc part of this patch is necessary for being
able to use the installed binary distribution, in 'validate'.

- - - - -
7093cffa by Iavor Diatchki at 2019-05-22T23:35:49Z
Add a `NOINLINE` pragma on `someNatVal` (#16586)

This fixes #16586, see `Note [NOINLINE someNatVal]` for details.

- - - - -
480acf97 by Moritz Angermann at 2019-05-22T23:35:49Z
Lowercase windows imports

While windows and macOS are currently on case-insensitive file
systems, this poses no issue on those.  When cross compiling from
linux with a case sensitive file system and mingw providing only
lowercase headers, this in fact produces an issue.  As such we just
lowercase the import headers, which should still work fine on a
case insensitive file system and also enable mingw's headers to
be usable porperly.

- - - - -
136d05ad by Moritz Angermann at 2019-05-22T23:35:49Z
Add `keepCAFs` to RtsSymbols

- - - - -
83ba4186 by Joshua Price at 2019-05-22T23:35:51Z
Correct the large tuples section in user's guide

Fixes #16644.

- - - - -
40f37c43 by Krzysztof Gogolewski at 2019-05-22T23:35:51Z
Fix tcfail158 (#15899)

As described in #15899, this test was broken, but now it's back
to normal.

- - - - -
c57d5855 by Sebastian Graf at 2019-05-22T23:35:51Z
Add a pprTraceWith function

- - - - -


30 changed files:

- compiler/basicTypes/UniqSupply.hs
- compiler/deSugar/DsMeta.hs
- compiler/hieFile/HieAst.hs
- compiler/hsSyn/Convert.hs
- compiler/hsSyn/HsDecls.hs
- compiler/hsSyn/HsExtension.hs
- compiler/hsSyn/HsInstances.hs
- compiler/main/GhcMake.hs
- compiler/nativeGen/AsmCodeGen.hs
- compiler/nativeGen/RegAlloc/Linear/State.hs
- compiler/parser/RdrHsSyn.hs
- compiler/rename/RnSource.hs
- compiler/specialise/Specialise.hs
- compiler/typecheck/TcSplice.hs
- compiler/typecheck/TcTyClsDecls.hs
- compiler/utils/Outputable.hs
- docs/users_guide/8.10.1-notes.rst
- docs/users_guide/bugs.rst
- docs/users_guide/ghci.rst
- docs/users_guide/glasgow_exts.rst
- driver/utils/dynwrapper.c
- + hadrian/bindist/Makefile
- hadrian/doc/testsuite.md
- hadrian/src/CommandLine.hs
- hadrian/src/Rules/BinaryDist.hs
- hadrian/src/Settings/Builders/Ghc.hs
- hadrian/src/Settings/Builders/RunTest.hs
- libraries/base/GHC/TypeLits.hs
- libraries/base/GHC/TypeNats.hs
- libraries/template-haskell/Language/Haskell/TH/PprLib.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/7adadc8bd3ff412794adb5ac4a713d55977297ed...c57d58556d6641aabd3d7b0d3387ad7476faab29

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/7adadc8bd3ff412794adb5ac4a713d55977297ed...c57d58556d6641aabd3d7b0d3387ad7476faab29
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/20190522/433f2aad/attachment.html>


More information about the ghc-commits mailing list