<!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/winio
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/3033e0e4940e6ecc43f478f1dcfbd0c3cb1e3ef8">3033e0e4</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2020-07-08T20:36:49-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hadrian: add flag to skip rebuilding dependency information #17636
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b7de4b960a1024adcd0bded6bd320a90979d7ab8">b7de4b96</a></strong>
<div>
<span>by Stefan Schulze Frielinghaus</span>
<i>at 2020-07-09T09:49:22-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix GHCi :print on big-endian platforms

On big-endian platforms executing

  import GHC.Exts
  data Foo = Foo Float# deriving Show
  foo = Foo 42.0#
  foo
  :print foo

results in an arithmetic overflow exception which is caused by function
index where moveBytes equals
  word_size - (r + item_size_b) * 8
Here we have a mixture of units. Both, word_size and item_size_b have
unit bytes whereas r has unit bits.  On 64-bit platforms moveBytes
equals then
  8 - (0 + 4) * 8
which results in a negative and therefore invalid second parameter for a
shiftL operation.

In order to make things more clear the expression
  (word .&. (mask `shiftL` moveBytes)) `shiftR` moveBytes
is equivalent to
  (word `shiftR` moveBytes) .&. mask
On big-endian platforms the shift must be a left shift instead of a
right shift. For symmetry reasons not a mask is used but two shifts in
order to zero out bits. Thus the fixed version equals
  case endian of
    BigEndian    -> (word `shiftL` moveBits) `shiftR` zeroOutBits `shiftL` zeroOutBits
    LittleEndian -> (word `shiftR` moveBits) `shiftL` zeroOutBits `shiftR` zeroOutBits

Fixes #16548 and #14455
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3656dff8259199d0dab2d1a1f1b887c252a9c1a3">3656dff8</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-07-09T09:50:01-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">LLVM: fix MO_S_Mul2 support (#18434)

The value indicating if the carry is useful wasn't taken into account.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d9f095060b0f00d7140f8b0858b7a5dcbffea9ef">d9f09506</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-07-10T10:33:44-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Define multiShotIO and use it in mkSplitUniqueSupply

This patch is part of the ongoing eta-expansion saga;
see #18238.

It implements a neat trick (suggested by Sebastian Graf)
that allows the programmer to disable the default one-shot behaviour
of IO (the "state hack").  The trick is to use a new multiShotIO
function; see Note [multiShotIO].  For now, multiShotIO is defined
here in Unique.Supply; but it should ultimately be moved to the IO
library.

The change is necessary to get good code for GHC's unique supply;
see Note [Optimising the unique supply].

However it makes no difference to GHC as-is.  Rather, it makes
a difference when a subsequent commit

   Improve eta-expansion using ArityType

lands.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bce695cc97cadbc3eced5b53efaaa0ecfd201d61">bce695cc</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-07-10T10:33:44-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make arityType deal with join points

As Note [Eta-expansion and join points] describes,
this patch makes arityType deal correctly with join points.
What was there before was not wrong, but yielded lower
arities than it could.

Fixes #18328

In base GHC this makes no difference to nofib.

        Program           Size    Allocs   Runtime   Elapsed  TotalMem
--------------------------------------------------------------------------------
         n-body          -0.1%     -0.1%     -1.2%     -1.1%      0.0%
--------------------------------------------------------------------------------
            Min          -0.1%     -0.1%    -55.0%    -56.5%      0.0%
            Max          -0.0%      0.0%    +16.1%    +13.4%      0.0%
 Geometric Mean          -0.0%     -0.0%    -30.1%    -31.0%     -0.0%

But it starts to make real difference when we land the change to the
way mkDupableAlts handles StrictArg, in fixing #13253 and friends.
I think this is because we then get more non-inlined join points.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2b7c71cb79095a10b9a5964a5a0676a2a196e92d">2b7c71cb</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-07-11T12:17:02-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve eta-expansion using ArityType

As #18355 shows, we were failing to preserve one-shot info when
eta-expanding.  It's rather easy to fix, by using ArityType more,
rather than just Arity.

This patch is important to suport the one-shot monad trick;
see #18202.  But the extra tracking of one-shot-ness requires
the patch

   Define multiShotIO and use it in mkSplitUniqueSupply

If that patch is missing, ths patch makes things worse in
GHC.Types.Uniq.Supply.  With it, however, we see these improvements

    T3064     compiler bytes allocated -2.2%
    T3294     compiler bytes allocated -1.3%
    T12707    compiler bytes allocated -1.3%
    T13056    compiler bytes allocated -2.2%

Metric Decrease:
    T3064
    T3294
    T12707
    T13056
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/de139cc496c0e0110e252a1208ae346f47f8061e">de139cc4</a></strong>
<div>
<span>by Artem Pelenitsyn</span>
<i>at 2020-07-12T02:53:20-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">add reproducer for #15630
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c4de6a7a5c6433ae8c4df8a9fa09fbd9f3bbd0bf">c4de6a7a</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-12T02:53:55-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Give Uniq[D]FM a phantom type for its key.

This fixes #17667 and should help to avoid such issues going forward.

The changes are mostly mechanical in nature. With two notable
exceptions.

* The register allocator.

  The register allocator references registers by distinct uniques.
  However they come from the types of VirtualReg, Reg or Unique in
  various places. As a result we sometimes cast the key type of the
  map and use functions which operate on the now typed map but take
  a raw Unique as actual key. The logic itself has not changed it
  just becomes obvious where we do so now.

* <Type>Env Modules.

As an example a ClassEnv is currently queried using the types `Class`,
`Name`, and `TyCon`. This is safe since for a distinct class value all
these expressions give the same unique.

    getUnique cls
    getUnique (classTyCon cls)
    getUnique (className cls)
    getUnique (tcName $ classTyCon cls)

This is for the most part contained within the modules defining the
interface. However it requires us to play dirty when we are given a
`Name` to lookup in a `UniqFM Class a` map. But again the logic did
not change and it's for the most part hidden behind the Env Module.

Some of these cases could be avoided by refactoring but this is left
for future work.

We also bump the haddock submodule as it uses UniqFM.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c2cfdfde20d0d6c0e16aa7a84d8ebe51501bcfa8">c2cfdfde</a></strong>
<div>
<span>by Aaron Allen</span>
<i>at 2020-07-13T09:00:33-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Warn about empty Char enumerations (#18402)

Currently the "Enumeration is empty" warning (-Wempty-enumerations)
only fires for numeric literals. This patch adds support for `Char`
literals so that enumerating an empty list of `Char`s will also
trigger the warning.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c3ac87ece2716b83ad886e81c20f4161e8ec0efd">c3ac87ec</a></strong>
<div>
<span>by Stefan Schulze Frielinghaus</span>
<i>at 2020-07-13T09:01:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hadrian: build check-ppr dynamic if GHC is build dynamic

Fixes #18361
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5b0477de787b89a615b21223574513979534d115">5b0477de</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Drop Windows Vista support, require Windows 7
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c25451f6cc78b905b469f240fa9ec17a9fd4d4ce">c25451f6</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Update Windows FileSystem wrapper utilities.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b1d835449df163fe7747a74cd4d14ccf42b19137">b1d83544</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Use SlimReaderLocks and ConditonalVariables provided by the OS instead of emulated ones
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b9d85f5f76b3d61353ccac0ec06e39e450d0714b">b9d85f5f</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Small linker comment and ifdef cleanups
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0ca94e105fd6b1b162d59b58bc409889245ed178">0ca94e10</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Flush event logs eagerly.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/de2f1623bdaf8b4e9a1a9e2a18af6ca3ea49bbba">de2f1623</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Refactor Buffer structures to be able to track async operations
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7038c81e6c4291c97221c1510f9634a3ce572a5b">7038c81e</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Implement new Console API
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/70a5325afd2acc17568b39f3438de247edf01f5f">70a5325a</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Add IOPort synchronization primitive
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8d6c6f45442d3178bb84536b3a6db261aa9b00f4">8d6c6f45</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Add new io-manager cmdline options
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5cc2dd0a4fba248ba28e46106b8554328cc3a845">5cc2dd0a</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Init Windows console Codepage to UTF-8.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4aab8b8f6474730442228b0de33788dbf301d42c">4aab8b8f</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Add unsafeSplat to GHC.Event.Array
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ddc3836cb7a78784e2d4a04682a80391074cb343">ddc3836c</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Add size and iterate to GHC.Event.IntTable.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/93adbcff8093c01e5a0362f98221708a43f6687c">93adbcff</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Switch Testsuite to test winio by default
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1b3874eddb08aef22616dc9635610baad5f030ef">1b3874ed</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Multiple refactorings and support changes.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/000fae31c616a069d98e375d93b2a7dda6f3916e">000fae31</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: core threaded I/O manager
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e28055b234de127357598f4c83ac148640dd21bc">e28055b2</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: core non-threaded I/O manager
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/76b556fab5092d58934857790562f5e2bd18de0e">76b556fa</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Fix a scheduler bug with the threaded-runtime.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8d1384329d4cb3df897f5e549ffbf5f6abcb2767">8d138432</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Relaxing some constraints in io-manager.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c41ed24af074e3609cea35f0488ad6dac1d59281">c41ed24a</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Fix issues with non-threaded I/O manager after split.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4856b4395b1e258b482a878136b0126e9c2348d6">4856b439</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Remove some barf statements that are a bit strict.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6ad5f43794756b58bb04b72283afb92dda5d4e86">6ad5f437</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Expand comments describing non-threaded loop
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0c45acde9955cb32d35aa37ab9a60933135bf03e">0c45acde</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: fix FileSize unstat-able handles
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8abcc5ed318ff26c0d9327e38e815a3ddb137533">8abcc5ed</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Implement new tempfile routines for winio
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7ff397e61930eb126ade2288705fb721e1d77395">7ff397e6</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Fix input truncation when reading from handle.

This was caused by not upholding the read buffer invariant
that bufR == bufL == 0 for empty read buffers.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ddcd0f094242014d9cd694b09c580c101396bdd7">ddcd0f09</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Fix output truncation for writes larger than buffer size
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/001cc0d404e789b96402f4ef39cd53372746996e">001cc0d4</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Rewrite bufWrite.

I think it's far easier to follow the code now.
It's also correct now as I had still missed a spot
where we didn't update the offset.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2ad8c2b78e78e248791414907c64bbbd8657163f">2ad8c2b7</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Fix offset set by bufReadEmpty.

bufReadEmpty returns the bytes read *including* content that
was already buffered,
But for calculating the offset we only care about the number
of bytes read into the new buffer.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5290a44663209cbcab250ef0d1db7439e8b888fc">5290a446</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Clean up code surrounding IOPort primitives.

According to phyx these should only be read and written once per
object. Not neccesarily in that order.

To strengthen that guarantee the primitives will now throw an
exception if we violate this invariant.

As a consequence we can eliminate some code from their primops.
In particular code dealing with multiple queued readers/writers
now simply checks the invariant and throws an exception if it
was violated. That is in contrast to mvars which will do things
like wake up all readers, queue multi writers etc.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bd4755ff104b6a14c1328b11ce6f0753b3b3c19c">bd4755ff</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Fix multi threaded threadDelay and a few other small changes.

Multithreaded threadDelay suffered from a race condition
based on the ioManagerStatus. Since the status isn't needed
for WIO I removed it completely.

This resulted in a light refactoring, as consequence we will always
wake up the IO manager using interruptSystemManager, which uses
`postQueuedCompletionStatus` internally.

I also added a few comments which hopefully makes the code easier to
dive into for the next person diving in.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/52038bde6b62d6ffa9ecce3056985612c643c8f4">52038bde</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">wionio: Make IO subsystem check a no-op on non-windows platforms.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/09fbcd219b931c1995e61b21f12e463f8e10ddc0">09fbcd21</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Set handle offset when opening files in Append mode.

Otherwise we would truncate the file.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/893f9428d45e3248190a405a42f1fcc7edf74a17">893f9428</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Remove debug event log trace
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/94ca99a617353369d376c2c17878c2687a620d89">94ca99a6</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Fix sqrt and openFile009 test cases
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f5ef1e3dd4c19a8a1ad128425cdbf46b2beb6f90">f5ef1e3d</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Allow hp2ps to build with -DDEBUG
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/68dff3217f095e9b8d9fc2fef74c83a5ed6ee2cb">68dff321</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Update output of T9681 since we now actually run it.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/49f86ce3ba8f51ecd2ef1d723609716c7fd04ee6">49f86ce3</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: A few more improvements to the IOPort primitives.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4c074ce27d897f83e54f95a2bc8ac794d29fbdc1">4c074ce2</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Fix expected tempfiles output.

Tempfiles now works properly on windows, as such we can
delete the win32 specific output.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/49e861a63a9e765d453b6dde64614e94a641cd0b">49e861a6</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Assign thread labels to IOManager threads.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/980e63a210ca330ddf79b881a9d55c999f5169f1">980e63a2</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Properly check for the tso of an incall to be zero.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5aa36c81aa6029430fcd3a88fe4f38ef87f1d671">5aa36c81</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Mark FD instances as unsupported under WINIO.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0b17e03da7c9ed4e73e3cf46fec6c51c35e39f3b">0b17e03d</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Fix threadDelay maxBound invocations.

Instead of letting the ns timer overflow now clamp it at
(maxBound :: Word64) ns. That still gives a few hundred
years.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6a75a711b5e378dd1f8a3ee65cd0facb6bb11100">6a75a711</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Add comments/cleanup an import in base
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/39b1f14c88deac2b6cdaa6e6222171045661fb05">39b1f14c</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Mark outstanding_service_requests volatile.

As far as I know C(99) gives no guarantees for code like

    bool condition;

    ...

    while(condition)
        sleep();

that condition will be updated if it's changed by another thread.
So we are explicit here and mark it as volatile, this will force
a reload from memory on each iteration.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/401c890c42ac21702236d095844f861e8a8f07ef">401c890c</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Make last_event a local variable
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b3c67ebe37551a316fa7d4cb2369ef14c5c9c26d">b3c67ebe</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Add comment about thread safety of processCompletion.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d5ff4c02e196e8ee4bd051112ca0b41ae131a862">d5ff4c02</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: nonthreaded: Create io processing threads in main thread.

We now set a flag in the IO thread. The scheduler when looking for work
will check the flag and create/queue threads accordingly.

We used to create these in the IO thread. This improved performance
but caused frequent segfaults. Thread creation/allocation is only safe to
do if nothing currently accesses the storeagemanager. However without
locks in the non-threaded runtime this can't be guaranteed.

This shouldn't change performance all too much.

In the past we had:
* IO: Create/Queue thread.
* Scheduler: Runs a few times. Eventually picks up IO processing thread.

Now it's:
* IO: Set flag to queue thread.
* Scheduler: Pick up flag, if set create/queue thread. Eventually picks up IO processing thread.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d83de953705c32a2094c66c0eb237a8c747c1159">d83de953</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Add an exported isHeapAlloced function to the RTS
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f84a3284dcd46410ba6e4c0e198ee5cc81d0b5a4">f84a3284</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Queue IO processing threads at the front of the queue.

This will unblock the IO thread sooner hopefully leading to higher
throughput in some situations.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/00eb74d97530d7322e901adc720c7d0b9b6fe2f4">00eb74d9</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: ThreadDelay001: Use higher resolution timer.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cc6a9bb6c4c179d6b21cbf7f538f01c538dae613">cc6a9bb6</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Update T9681 output, disable T4808 on windows.

T4808 tests functionality of the FD interface which won't be supported
under WINIO.

T9681 just has it's expected output tweaked.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6653bee36d5bce1b08587aadce2cf00528f7952c">6653bee3</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Wake io manager once per registerTimeout.

Which is implicitly done in editTimeouts, so need to wake it
up twice.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/56cdd4e1e0b863444c1c8d12c66d04fe20547841">56cdd4e1</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Update placeholder comment with actual function name.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2404aa3fb47f8ec1765aeb0a6327b926e920ecc7">2404aa3f</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Always lock win32 event queue
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/08e50974a5faca9ec25ae463a9eb2d9b851c9dcf">08e50974</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:08-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Display thread labels when tracing scheduler events.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c2c976b08b3b1be43f96392551723cc1687d0ef4">c2c976b0</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Refactor non-threaded runner thread and scheduler interface.

Only use a single communication point (registerAlertableWait) to inform
the C side aobut both timeouts to use as well as outstanding requests.

Also queue a haskell processing thread after each return from alertable
waits. This way there is no risk of us missing a timer event.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/722b0b263f5d4c2b5d3c1f73cee0cd6914030c08">722b0b26</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Remove outstanding_requests from runner.

We used a variable to keep track of situations where we got
entries from the IO port, but all of them had already been
canceled. While we can avoid some work that way this case
seems quite rare.

So we give up on tracking this and instead always assume at
least one of the returned entries is valid.

If that's not the case no harm is done, we just perform some
additional work. But it makes the runner easier to reason about.

In particular we don't need to care if another thread modifies
oustanding_requests after we return from waiting on the IO Port.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f375933d6a5a4e988147cff902e8f6f85771d112">f375933d</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Various fixes related to rebase and testdriver
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a9cf0dcfc7dd8c3b97f9034dc635b0e404b3af2f">a9cf0dcf</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Fix rebase artifacts
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f311a21b751bf0462a217991e25a191252ad7e81">f311a21b</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Rename unsafeSplat to unsafeCopyFromBuffer
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7e4351b9f35db712c46fee8cc0d9450aa5dcbf09">7e4351b9</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Remove unused size/iterate operations from IntTable
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f626c60a9813b01c45c9f102a31f77c97a9ae143">f626c60a</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Detect running IO Backend via peeking at RtsConfig
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/95d126afcfed848b570de718e18293ba6f6ebe30">95d126af</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: update temp path so GCC etc can handle it.

Also fix PIPE support, clean up error casting, fix memory leaks
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f5a50b8766e7727395c4363cb5f2b250bff26515">f5a50b87</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Minor comments/renamings
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f737bd3fc427e0ff6ac77b57b799b1aa43006202">f737bd3f</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Checking if an error code indicates completion is now a function.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7f9f6700f1efe55aedc0b6c665710f0b773f6dc7">7f9f6700</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Small refactor in withOverlappedEx
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/215f6a3e2593a12f980e9a99890a20fbef4a5d45">215f6a3e</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: A few comments and commented out dbxIO
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/efbb57f21ac0c265397f23b9183aa7c47befc696">efbb57f2</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Don't drop buffer offset in byteView/cwcharView
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/94feb85dc4cd99be5c3633ab4d2d60fe5ccdfa13">94feb85d</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: revert BHandle changes.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cb4d7f57791e9f404e0c4855e590a30348db9c43">cb4d7f57</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Fix imports
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4242c6c9e55d309ab6cf8bb2908feaa5cc9a7bef">4242c6c9</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: update ghc-cabal to handle new Cabal submodule bump
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2fc38dbeef9229d5aa1c3ae461c814b192d9765e">2fc38dbe</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Only compile sources on Windows
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dca92fdcb0354068104d0c923fa1823b01e7c4f6">dca92fdc</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Actually return Nothing on EOF for non-blocking read
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aa22c560bac614eb8ef27b280e57764fe2180997">aa22c560</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Deduplicate logic in encodeMultiByte[Raw]IO.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9dcc8564dc5823f43c46824df80d55cf234e57ab">9dcc8564</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Deduplicate openFile logic
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/73151376efc507877a4627a4070d3037d2b366bd">73151376</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: fix -werror issue in encoding file
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/34f1b4d75d73fda4f4f91ff84fc37e5de18fc738">34f1b4d7</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Don't mention windows specific functions when building on Linux.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/42a8e579365d2392513323c05cf292d5608fb1e0">42a8e579</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: add a note about file locking in the RTS.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/91344d2ad892fda55e5477ec105c741a9b67a631">91344d2a</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Add version to @since annotation
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3d6b70c26e71a840f9187853706a5ad241bffa44">3d6b70c2</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Rename GHC.Conc.IOCP -> GHC.Conc.WinIO
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2e1e764bb1a2163d0db0a2189bbb3ebf13571044">2e1e764b</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Expand GHC.Conc.POSIX description

It now explains users may not use these functions when
using the old IO manager.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9824bf6f164fc743671e5aa4a915fae7e3ce28db">9824bf6f</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:09-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Fix potential spaceleak in __createUUIDTempFileErrNo
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4032735f81a479e0da24ef71d6453a54befc8965">4032735f</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Remove redundant -Wno-missing-signatures pragmas
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/93c73c58f020942eaefb949d662a45c4c9621f91">93c73c58</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Make it explicit that we only create one IO manager
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/989108cc2aefdf3fe9960b54645ac143ab43daf1">989108cc</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Note why we don't use blocking waits.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4c99210322d705307de7f575da40bbb2ba76c8a6">4c992103</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Remove commented out pragma
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2cd33b0af813e1655b37dc8ce8e5c3fbb2659e8a">2cd33b0a</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Remove redundant buffer write in Handle/Text.hs:bufReadEmpty
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/29e8fc53a0e2dcd1e5b87ae0c579a2eb6b007be2">29e8fc53</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Rename SmartHandles to StdHandles
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/135f7f81255de7bb4d600b5edcc2da875a502d52">135f7f81</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: add comment stating failure behaviour for getUniqueFileInfo.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5ea0f225c9749cc82ccf9af398802bb0b2387ba2">5ea0f225</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Update IOPort haddocks.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/07fb00d50afdc00c5c4b12d476a10c827af1c851">07fb00d5</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Add a note cross reference
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7ee750e539da3961ce317253e067b65258a5281d">7ee750e5</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Name Haskell/OS I/O Manager explicitly in Note
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b4127c30a5b66af337baccb4b0b2ef403e1bf9f8">b4127c30</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Expand BlockedOnIOCompletion description.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b970d4c3e6744121fd844713d320afb52d36091f">b970d4c3</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Remove historical todos
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/24fc5aef17309afd57a0fc987ba75eef51309dc9">24fc5aef</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Update note, remove debugging pragma.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/82d6e86cd009049283eca84559e9ad89ec99a192">82d6e86c</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: flushCharReadBuffer shouldn't need to adjust offsets.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d3478ea3efdd85987a88347daac69cd2fa342f2c">d3478ea3</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Remove obsolete comment about cond. variables
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bfb23977359240153056da6fdd1092c289aa7ab0">bfb23977</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: fix initial linux validate build
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/74f91f867ee7e36ea5538ace30148d4eb98f56ff">74f91f86</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Fix ThreadDelay001 CPP
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cf84607951651484603f38ac6e5d697f2dfb14fd">cf846079</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Fix openFile009 merge conflict leftover
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/32d670a388b786abb5a105483448539896fdd8ee">32d670a3</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Accept T9681 output.

GHC now reports String instead of [Char].
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/275dadb9e59bc83b269cfe9af45cbd774b2888e9">275dadb9</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Fix cabal006 after upgrading cabal submodule

Demand cabal 2.0 syntax instead of >= 1.20 as required by newer cabal versions.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3a7b7e4a39f3751d6420ae2206df45121d49e427">3a7b7e4a</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Fix stderr output for ghci/linking/dyn tests.

We used to filter rtsopts, i opted to instead just accept the warning of it having no effect.
This works both for -rtsopts, as well as -with-rtsopts which winio adds.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/19ccf49095c185f21d686b052a4754d06c079e3e">19ccf490</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Adjust T15261b stdout for --io-manager flag.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/65037599ce9b51121fd63ad5668b752c7714126f">65037599</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Adjust T5435_dyn_asm stderr

The warning about rtsopts having no consequences is expected.
So accept new stderr.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/262784ab88ecdcfdcd14f95abcd528bda8ba53ce">262784ab</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Also accept T7037 stderr
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/93b82ba1fdc4b27f7f5ea8244913e39546e7baf2">93b82ba1</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: fix cabal04 by filtering rts args
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cf915416cfa0721ae9673863b1c952f69d56ce8e">cf915416</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: fix cabal01 by accepting expected stderr
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aec823462660f5a9abcacaf6369d4e601ab6fb2c">aec82346</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: fix safePkg01 by accepting expected stderr
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/475be3ee665f59d4b39e882d5cf0da1482161b08">475be3ee</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: fix T5435_dyn_gcc by accepting expected stderr
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/81b910f8e8b583f0dc412d01b04a51c7353bc7e7">81b910f8</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: fix tempfiles test on linux
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/269514fbb12e5356039091bfeabc838500869993">269514fb</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Accept accepted stderr for T3807
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6decf2ef71f1eac711316adc5269d4eb03ddda2a">6decf2ef</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:10-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Accept accepted stderr for linker_unload
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e87c1a439f63157be17a429b0b802ce1e76c3906">e87c1a43</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-07-13T13:58:11-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Accept accepted stderr for linker_unload_multiple_objs
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8c12391fc9b355aa598f48b39b17df246afccd34">8c12391f</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:11-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: clarify wording on conditional variables.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/78822644e8f526d6d448851024ab0de52b9544a6">78822644</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:11-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: clarify comment on cooked mode.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b206c355a17c70600af56e65e48e3cf7191bfcf2">b206c355</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2020-07-13T13:58:11-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: update lockfile signature and remove mistaken symbol in rts.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d4efcb1d65c39cf124fe29c192f3e95736b4b8c6">d4efcb1d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-13T13:58:11-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">winio: Bump submodules
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9514380ca0f445be9ff21fb0d1b7bedb8a22ca11">9514380c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-13T14:03:54-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Add winio and winio_threaded ways
</pre>
</li>
</ul>
<h4>30 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#836efb6e25a091dcb4ff8e1dbb2f0be6a5cbf14c">
Makefile
</a>
</li>
<li class="file-stats">
<a href="#0887cf39c5cdf9cf8d6758f410d7dab3023c0d77">
compiler/GHC/Builtin/Names.hs
</a>
</li>
<li class="file-stats">
<a href="#8a5cd068459120cddf3814e7b9e02003b87647ba">
compiler/GHC/Builtin/Types/Prim.hs
</a>
</li>
<li class="file-stats">
<a href="#d95fdf6575459444666f72b2281534e0558a4ba0">
compiler/GHC/Builtin/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#451725cc4e5d443a3b7c2adcdf224840f953b7e2">
compiler/GHC/Builtin/primops.txt.pp
</a>
</li>
<li class="file-stats">
<a href="#066085df29cc928ac539d8feae6e5215cbbf1e14">
compiler/GHC/Cmm/LayoutStack.hs
</a>
</li>
<li class="file-stats">
<a href="#71e696f452eb493722d70306c6f304fc9b2f6a95">
compiler/GHC/Cmm/Parser.y
</a>
</li>
<li class="file-stats">
<a href="#b1390f6749e1a2dddcae35f88d55623ea6269f56">
compiler/GHC/Cmm/Sink.hs
</a>
</li>
<li class="file-stats">
<a href="#10b61652f9817945bb54ccf8fc40f8a664ca3c30">
compiler/GHC/CmmToAsm.hs
</a>
</li>
<li class="file-stats">
<a href="#5986ebaacfa99d264abfd2f7ef19d99a64db720f">
compiler/GHC/CmmToAsm/BlockLayout.hs
</a>
</li>
<li class="file-stats">
<a href="#ea29061dab1b843e0ea9294afc614998f3a8d08f">
compiler/GHC/CmmToAsm/Monad.hs
</a>
</li>
<li class="file-stats">
<a href="#eb63fd2d9f8f64c1063f9ce3e162f92c2e6e508c">
compiler/GHC/CmmToAsm/Reg/Graph.hs
</a>
</li>
<li class="file-stats">
<a href="#b5d9809f48ef349a168fb08742fa95fb2a059129">
compiler/GHC/CmmToAsm/Reg/Graph/Coalesce.hs
</a>
</li>
<li class="file-stats">
<a href="#02f4cb4badaefd6ed6f1ae3ff38a357c449fc286">
compiler/GHC/CmmToAsm/Reg/Graph/Spill.hs
</a>
</li>
<li class="file-stats">
<a href="#3aba9ceb20d68f25343fe3a27b2b7a4f8fea68da">
compiler/GHC/CmmToAsm/Reg/Graph/SpillClean.hs
</a>
</li>
<li class="file-stats">
<a href="#18fcc4c56813c879ea69a2e6b2bdf6b09dd037c5">
compiler/GHC/CmmToAsm/Reg/Graph/SpillCost.hs
</a>
</li>
<li class="file-stats">
<a href="#23fa440e58d1f384d18650b52802ad6d03891572">
compiler/GHC/CmmToAsm/Reg/Graph/Stats.hs
</a>
</li>
<li class="file-stats">
<a href="#83a3b2df5c77503c3a8c6df05a7654333d30cac3">
compiler/GHC/CmmToAsm/Reg/Linear.hs
</a>
</li>
<li class="file-stats">
<a href="#e7e32ef13a93a68891f700047f89c45df0e3772d">
compiler/GHC/CmmToAsm/Reg/Linear/Base.hs
</a>
</li>
<li class="file-stats">
<a href="#6b7e521fe89077442c3d86c888eb96793606049a">
compiler/GHC/CmmToAsm/Reg/Linear/JoinToTargets.hs
</a>
</li>
<li class="file-stats">
<a href="#a25615433d8186f543ea64f55fdf156b7b1e6996">
compiler/GHC/CmmToAsm/Reg/Linear/StackMap.hs
</a>
</li>
<li class="file-stats">
<a href="#62e26243bb502b18583ce19f1a921417090459c7">
compiler/GHC/CmmToAsm/Reg/Linear/Stats.hs
</a>
</li>
<li class="file-stats">
<a href="#b4cadffdafb6a1f441fede8639ba742ae903afca">
compiler/GHC/CmmToAsm/Reg/Liveness.hs
</a>
</li>
<li class="file-stats">
<a href="#d0fd0c4522f53657c4f3e9d6433bfc05f0e303df">
<span class="new-file">
+
compiler/GHC/CmmToAsm/Reg/Utils.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#522ba674004d5ebf69a7ec80b0d7c765e08b60cc">
compiler/GHC/CmmToAsm/X86/RegInfo.hs
</a>
</li>
<li class="file-stats">
<a href="#b5ac041c7f79084a7a7626eda4cdadda3457d235">
compiler/GHC/CmmToLlvm/Base.hs
</a>
</li>
<li class="file-stats">
<a href="#a49dbda5c8a9c380f638f55cf5ade791db0017cc">
compiler/GHC/CmmToLlvm/CodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#91648438362e5a35363d2bb7abb04016dedd7d7e">
compiler/GHC/Core/FamInstEnv.hs
</a>
</li>
<li class="file-stats">
<a href="#5596bb0f228bd2a308c4391df97375ae879430a8">
compiler/GHC/Core/InstEnv.hs
</a>
</li>
<li class="file-stats">
<a href="#c3967bb9d3e8f5aae2dd111b5a335b48c21c1999">
compiler/GHC/Core/Opt/Arity.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/5542c1b232f7427f93056e731980fd8e8837ca31...9514380ca0f445be9ff21fb0d1b7bedb8a22ca11">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>