<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>



<style>img {
max-width: 100%; height: auto;
}
</style>
</head>
<body>
<div class="content">

<h3>
Ben Gamari pushed to branch wip/8-8-ghci
at <a href="https://gitlab.haskell.org/ghc/ghc">Glasgow Haskell Compiler / GHC</a>
</h3>
<h4>
Commits:
</h4>
<ul>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/334dd6da47326f47ba3425376728feda6245c7c1">334dd6da</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-05-08T13:31:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16603 by documenting some important changes in changelogs

This addresses some glaring omissions from
`libraries/base/changelog.md` and
`docs/users_guide/8.8.1-notes.rst`, fixing #16603 in the process.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/605869c7b776ce6071a31ff447998b081e0354ed">605869c7</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-06-03T21:28:12Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix optSemi type in Parser.y

The definition of 'optSemi' claimed it had type

([Located a],Bool)

Note that its production actually returns ([Located Token],Bool):

  : ';' { ([$1],True) }   -- $1 :: Located Token

Due to an infelicity in the implementation of 'happy -c', it effectively
resulted in 'unsafeCoerce :: Token -> a'.
See https://github.com/simonmar/happy/pull/134

If any consumer of 'optSemi' tried to instantiate 'a' to something not
representationally equal to 'Token', they would experience a segfault.

In addition to that, this definition made it impossible to compile Parser.y
without the -c flag (as it's reliant on this bug to cast 'Token' to 'forall
a. a').
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f8d24178f30b7837b35a9ea328bc6f520092ff08">f8d24178</a></strong>
<div>
<span>by Michael Sloan</span>
<i>at 2019-06-04T03:42:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">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.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7258f41bdf8c6a981cb64452d83ac9bdd9b9e38e">7258f41b</a></strong>
<div>
<span>by Michael Sloan</span>
<i>at 2019-06-04T03:42:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add PlainPanic for throwing exceptions without depending on pprint

This commit splits out a subset of GhcException which do not depend on
pretty printing (SDoc), as a new datatype called
PlainGhcException. These exceptions can be caught as GhcException,
because 'fromException' will convert them.

The motivation for this change is that that the Panic module
transitively depends on many modules, primarily due to pretty printing
code.  It's on the order of about 130 modules.  This large set of
dependencies has a few implications:

1. To avoid cycles / use of boot files, these dependencies cannot
throw GhcException.

2. There are some utility modules that use UnboxedTuples and also use
`panic`. This means that when loading GHC into GHCi, about 130
additional modules would need to be compiled instead of
interpreted. Splitting the non-pprint exception throwing into a new
module resolves this issue. See #13101

(cherry picked from commit fe9034e9b4820214a8c703bd8a3146ce6eed37b8)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3be420327adda2236d5c4f5c3a8cec8c572ed93c">3be42032</a></strong>
<div>
<span>by Michael Sloan</span>
<i>at 2019-06-04T03:42:46Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove unnecessary uses of UnboxedTuples pragma (see #13101 / #15454)

Also removes a couple unnecessary MagicHash pragmas

(cherry picked from commit 061276ea5d265eb3c23a3698f0a10f6a764ff4b4)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a675f4987ec329352ba5b3dd654a4809dc04010b">a675f498</a></strong>
<div>
<span>by Michael Sloan</span>
<i>at 2019-06-04T03:42:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Extract out use of UnboxedTuples from GHCi.Leak

See #13101 + #15454 for motivation.  This change reduces the number of
modules that need to be compiled to object code when loading GHC into
GHCi.

(cherry picked from commit c01d5af31c8feb634fc3dffc84e6e7ece61ba190)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7af05bc4f6c78df5d84a71e8e5f60235e3ced269">7af05bc4</a></strong>
<div>
<span>by Michael Sloan</span>
<i>at 2019-06-04T03:42:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use datatype for unboxed returns when loading ghc into ghci

See #13101 and #15454

(cherry picked from commit 64959e51bf17a9f991cc345476a40515e7b32d81)
</pre>
</li>
</ul>
<h4>30 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#2da47fed955dc80b79c67ba640b94aeecf9d5524">
compiler/basicTypes/UniqSupply.hs
</a>
</li>
<li class="file-stats">
<a href="#b9c97a47b4d7d9443a2b066938a6e4433cf11c86">
compiler/codeGen/StgCmmMonad.hs
</a>
</li>
<li class="file-stats">
<a href="#0f33fd88c617246c7f89c4477d2d1d24f942df23">
compiler/ghc.cabal.in
</a>
</li>
<li class="file-stats">
<a href="#78d03dfd32f676836003058b78ec026568dad5e9">
compiler/ghci/ByteCodeLink.hs
</a>
</li>
<li class="file-stats">
<a href="#9d5d4827271e4d5e2f54fe04160bd175fd60bf54">
compiler/ghci/RtClosureInspect.hs
</a>
</li>
<li class="file-stats">
<a href="#3d3edae32c1aa93e3404c2eb85d4718db1ae6b29">
compiler/iface/BinFingerprint.hs
</a>
</li>
<li class="file-stats">
<a href="#b5c3aab16d766666149eb971c126ff3cfc4eccf6">
compiler/main/GhcMake.hs
</a>
</li>
<li class="file-stats">
<a href="#6bafdfb7a5cd7d70cb64f09f197c29291aa0f6b9">
compiler/main/InteractiveEval.hs
</a>
</li>
<li class="file-stats">
<a href="#34189e68ae2846ea6a5011a0869bbf30db1f73e5">
compiler/nativeGen/AsmCodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#23aebcdf16673b735e637debea3f144bd0c88d9b">
compiler/nativeGen/RegAlloc/Linear/State.hs
</a>
</li>
<li class="file-stats">
<a href="#a9d23eb447426d7f3469127262985af461dfad78">
compiler/parser/Parser.y
</a>
</li>
<li class="file-stats">
<a href="#42f7098b2e474179480d39d90b79057ae297eb50">
compiler/utils/Binary.hs
</a>
</li>
<li class="file-stats">
<a href="#853e3f0b2adba3af1c88bbccec2b53c4c5532e39">
compiler/utils/FastString.hs
</a>
</li>
<li class="file-stats">
<a href="#58f771eb1cb2ec7f67a51a429acc590f40617af9">
compiler/utils/Panic.hs
</a>
</li>
<li class="file-stats">
<a href="#f01858d5e76b0e110a569d0c0f37b0729eb29f96">
<span class="new-file">
+
compiler/utils/PlainPanic.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#a259cdc3ba7d22ce8d5138c30f2be8890f63b3ce">
compiler/utils/Pretty.hs
</a>
</li>
<li class="file-stats">
<a href="#2415d91dffced59eb3596f10cf763b89f7fbce62">
compiler/utils/StringBuffer.hs
</a>
</li>
<li class="file-stats">
<a href="#7dc313da4c00f2541cb5e519a5e4a0eac7751a2a">
compiler/utils/Util.hs
</a>
</li>
<li class="file-stats">
<a href="#8d11c404e91070407324f71df4a47224c0887148">
docs/users_guide/8.8.1-notes.rst
</a>
</li>
<li class="file-stats">
<a href="#b02c1c6109c60b8f685234b0dbaabf6c79fed2a2">
docs/users_guide/ghci.rst
</a>
</li>
<li class="file-stats">
<a href="#f9a31247ea7fd73f51ac0f5820839af8332e4eec">
ghc/GHCi/Leak.hs
</a>
</li>
<li class="file-stats">
<a href="#57d22eb49f269b51f07e23c509834d85e25f691e">
ghc/GHCi/UI/Monad.hs
</a>
</li>
<li class="file-stats">
<a href="#b6757016d43d5e2c96de9338245484c3a807a939">
<span class="new-file">
+
ghc/GHCi/Util.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#51d77a90635e9ec3ddfb3918005aecda9cc567c0">
ghc/ghc-bin.cabal.in
</a>
</li>
<li class="file-stats">
<a href="#cea726e2d7b4e04eca93c7e852da5602585a471b">
includes/CodeGen.Platform.hs
</a>
</li>
<li class="file-stats">
<a href="#392e9dfd3417e267d708c5ab16536f2994d43745">
libraries/base/changelog.md
</a>
</li>
<li class="file-stats">
<a href="#ef841e13f21d961d26b6a9372f486f4cca41e903">
<span class="deleted-file">

testsuite/tests/ghci/prog014/prog014.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#26780dc704a4a488bfd751b44cd485d6ae4ebe31">
<span class="deleted-file">

testsuite/tests/ghci/should_fail/T14608.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#c17d9b5e214a37f1ec445d0802510bd5fb5b06db">
testsuite/tests/ghci/should_fail/all.T
</a>
</li>
<li class="file-stats">
<a href="#db5804c1375e94ac5630490bfed7f4a707f0a880">
testsuite/tests/ghci/should_fail/T14608.hs

testsuite/tests/ghci/should_run/T14608.hs
</a>
</li>
</ul>
<h5>The diff was not included because it is too large.</h5>

</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #777;">

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/compare/aa3346be462d6ac5979d07f8cb8ea3c8a79f0e5c...7af05bc4f6c78df5d84a71e8e5f60235e3ced269">View it on GitLab</a>.
<br>
You're receiving this email because of your account on gitlab.haskell.org.
If you'd like to receive fewer emails, you can
adjust your notification settings.


</p>
</div>
</body>
</html>