<div dir="ltr">Hi,<div><br></div><div>I'm trying to build an app with the new release candidate and I'm running into a couple of issues, some which I can fix or workaround, some are worrisome and others are blocking me. I'm using Nix, if that matters.</div><div><br></div><div>The fixable</div><div>---------------</div><div><br></div><div>- The expected too strict version bounds. Worked around using doJailbreak, will send PRs to the respective packages with relaxed bounds.</div><div>- A weird kind error when using ConstraintKinds in a propietary package which didn't manifest itself with ghc < 8.2:</div><div><br></div><div>src/Sigym4/Propag/Types.hs:1071:4: error:</div><div>    • Expected a type, but</div><div>      ‘(PropagIOConstraint l a,</div><div>        Missing (PropagIOVector l) (PropagIONullable l a),</div><div>        Elem (PropagIONullable l a) ~ a)’ has kind</div><div>      ‘Constraint’</div><div>    • In the type ‘((PropagIOConstraint l a,</div><div>                     Missing (PropagIOVector l) (PropagIONullable l a),</div><div>                     Elem (PropagIONullable l a) ~ a))’</div><div>      In the type declaration for ‘CanSerialize’</div><div>     |</div><div>1071 |   (( PropagIOConstraint l a</div><div>     |    ^^^^^^^^^^^^^^^^^^^^^^^^...</div><div><br></div><div>src/Sigym4/Propag/Types.hs:1077:4: error:</div><div>    • Expected a constraint,</div><div>        but ‘(CanSerialize l Double, CanSerialize l Int16)’ has kind ‘*’</div><div>    • In the type ‘(CanSerialize l Double, CanSerialize l Int16)’</div><div>      In the type declaration for ‘CanSerializePropagTypes’</div><div>     |</div><div>1077 |    ( CanSerialize l Double</div><div>     |    ^^^^^^^^^^^^^^^^^^^^^^^...</div><div><br></div><div>I cannot link to the source for this package since it belongs to my employer but I think that the interesting code is:</div><div><br></div><div><table class="gmail-highlight gmail-tab-size gmail-js-file-line-container" style="box-sizing:border-box;border-collapse:collapse;color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:14px"><tbody style="box-sizing:border-box"><tr style="box-sizing:border-box"><td id="gmail-LC1070" class="gmail-blob-code gmail-blob-code-inner gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;word-wrap:normal;white-space:pre"><span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(167,29,93)">type</span> <span class="gmail-pl-en" style="box-sizing:border-box;color:rgb(121,93,163)">CanSerialize</span> <span class="gmail-pl-smi" style="box-sizing:border-box;color:rgb(51,51,51)">l</span> <span class="gmail-pl-smi" style="box-sizing:border-box;color:rgb(51,51,51)">a</span> <span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(167,29,93)">=</span></td></tr><tr style="box-sizing:border-box"><td id="gmail-L1071" class="gmail-blob-num gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.298039);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="gmail-LC1071" class="gmail-blob-code gmail-blob-code-inner gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;word-wrap:normal;white-space:pre">  ( <span class="gmail-pl-en" style="box-sizing:border-box;color:rgb(121,93,163)">PropagIOConstraint</span> <span class="gmail-pl-smi" style="box-sizing:border-box;color:rgb(51,51,51)">l</span> <span class="gmail-pl-smi" style="box-sizing:border-box;color:rgb(51,51,51)">a</span></td></tr><tr style="box-sizing:border-box"><td id="gmail-L1072" class="gmail-blob-num gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.298039);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="gmail-LC1072" class="gmail-blob-code gmail-blob-code-inner gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;word-wrap:normal;white-space:pre">  , <span class="gmail-pl-en" style="box-sizing:border-box;color:rgb(121,93,163)">Missing</span> (<span class="gmail-pl-en" style="box-sizing:border-box;color:rgb(121,93,163)">PropagIOVector</span> <span class="gmail-pl-smi" style="box-sizing:border-box;color:rgb(51,51,51)">l</span>) (<span class="gmail-pl-en" style="box-sizing:border-box;color:rgb(121,93,163)">PropagIONullable</span> <span class="gmail-pl-smi" style="box-sizing:border-box;color:rgb(51,51,51)">l</span> <span class="gmail-pl-smi" style="box-sizing:border-box;color:rgb(51,51,51)">a</span>)</td></tr><tr style="box-sizing:border-box"><td id="gmail-L1073" class="gmail-blob-num gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.298039);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="gmail-LC1073" class="gmail-blob-code gmail-blob-code-inner gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;word-wrap:normal;white-space:pre">  , <span class="gmail-pl-en" style="box-sizing:border-box;color:rgb(121,93,163)">Elem</span> (<span class="gmail-pl-en" style="box-sizing:border-box;color:rgb(121,93,163)">PropagIONullable</span> <span class="gmail-pl-smi" style="box-sizing:border-box;color:rgb(51,51,51)">l</span> <span class="gmail-pl-smi" style="box-sizing:border-box;color:rgb(51,51,51)">a</span>) <span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(167,29,93)">~</span> <span class="gmail-pl-smi" style="box-sizing:border-box;color:rgb(51,51,51)">a</span></td></tr><tr style="box-sizing:border-box"><td id="gmail-L1074" class="gmail-blob-num gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.298039);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="gmail-LC1074" class="gmail-blob-code gmail-blob-code-inner gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;word-wrap:normal;white-space:pre">  )
</td></tr></tbody></table></div><div><br></div><div>where PropagIOConstraint, PropagIONullable and PropagIOVector are "standalone" type families and Elem is an associated type family (not from IsList)</div><div> </div><div>Both errors disappear if I give an explicit kind signature like this: "type CanSerialize l a = (..... :: Constraint)". Is this expected behaviour? Should I try to isolate and open a ticket?</div><div><br></div><div>The worrisome</div><div>--------------------</div><div><br></div><div>- I had to disable the tests for two packages since they seem to "hang"  (ie: they never finish running and don't seem to consume any CPU time). These packages are lens-4.15.1 and fingertree-0.1.1.0. Maybe it's a Nix environmental issue, I'm not sure. Can anyone reproduce this?</div><div><br></div><div>The blockers</div><div>-----------------</div><div><br></div><div>- I can't manage to install several packages which include executables (namely, update-nix-fetchgit and snap-server, for the moment) because Cabal says that it cannot find the source for the main module of the executables:</div><div><br></div><div>"Setup: can't find source for Main in ."<br></div><div><br></div><div>It seems that the "hs-source-dir" directive in the .cabal file is not being honored. Maybe a Nix-only issue? Can anyone reproduce this? Any ideas on how can I fix it?</div><div><br></div><div>Thanks very much for GHC, btw :)</div><div><br></div><div>Alberto</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 16, 2017 at 4:47 AM, Ben Gamari <span dir="ltr"><<a href="mailto:ben@well-typed.com" target="_blank">ben@well-typed.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Hello everyone,<br>
<br>
The GHC team is very pleased to announce the second candidate of the<br>
8.2.1 release of the Glasgow Haskell Compiler. Source and binary<br>
distributions are available at<br>
<br>
    <a href="https://downloads.haskell.org/~ghc/8.2.1-rc2/" rel="noreferrer" target="_blank">https://downloads.haskell.org/<wbr>~ghc/8.2.1-rc2/</a><br>
<br>
This is the second of what will likely be either two or three release<br>
candidates leading up the final 8.2.1 release. This release will<br>
feature,<br>
<br>
  * A new type-indexed Typeable implementation<br>
<br>
  * The long awaited Backpack<br>
<br>
  * Deriving strategies for disambiguating DeriveAnyClass,<br>
    GeneralizedNewtypeDeriving, and stock mechanisms<br>
<br>
  * Overloaded record fields<br>
<br>
  * Improved compiler performance<br>
<br>
  * Better code generation through more robust tracking of join points<br>
<br>
  * Compact regions for more efficient garbage collection and serialization<br>
<br>
  * Better support for machines with non-uniform memory architectures<br>
<br>
  * More robust support for levity (e.g. RuntimeRep) polymorphism<br>
<br>
  * A simple interface for streaming eventlog data from live processes<br>
<br>
  * Further refinement of DWARF support<br>
<br>
This candidate fixes most of the issues present in release candidate<br>
one including,<br>
<br>
 * #13233: typePrimRep panic while compiling GHC with profiling enabled<br>
 * #13509: type error involving unboxed tuples<br>
 * #13426: compile-time memory-usage regression<br>
 * #13560: Windows binary distributions carry absolute paths to toolchain<br>
 * #13585: Control.Lens.Wrapped.ala causes compiler panic<br>
 * #13623: Join points produce bad code for stream fusion<br>
<br>
As always, please let us know if you have difficulty. Thanks to everyone<br>
who has contributed!<br>
<br>
Happy testing,<br>
<br>
- Ben<br>
<br>______________________________<wbr>_________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/ghc-devs</a><br>
<br></blockquote></div><br></div>