<div class="gmail_quote">On Tue, Aug 31, 2010 at 2:06 AM, Simon Peyton-Jones <span dir="ltr">&lt;<a href="mailto:simonpj@microsoft.com">simonpj@microsoft.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">






<div lang="EN-GB" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">I can’t reproduce this.  With the enclosed module and HEAD, I get the warning; but when I add –fspec-constr-count=5, the warning goes away and I get the specialised
 rules.</span></p></div></div></blockquote><div><br></div><div>The compiler behaves as expected on your code, but not on mine. I&#39;ve verified that the -fspec-constr-count argument is indeed being passed along by Cabal to ghc.</div>
<div><br></div><div>In my case, building with -fspec-constr-count=10 eliminates the warnings on most of the functions where the Core name corresponds to something I can see in the source, so almost half the SpecConstr warnings go away.</div>
<div><br></div><div>So, for instance, this one goes away when I increase the count:</div><div><br></div><div><div>    Function `$wconsume{v s1RPo} [lid]&#39;</div><div>      has five call patterns, but the limit is 3</div>
</div><div><br></div><div>However, several warnings remain, and the Core names are unidentifiable. More strangely, the SpecConstr limit reported in the warnings changes from one warning to the next, even within the sequence of warnings emitted during the compilation of a single file. Here&#39;s an excerpt from compiling only Data.Text:</div>
<div><br></div><div><div>    Function `$wa1{v Xvnq} [lid]&#39;</div><div>      has one call pattern, but the limit is 0</div></div><div><br></div><div><div>    Function `$w$j{v Xvob} [lid]&#39;</div><div>      has two call patterns, but the limit is 1</div>
</div><div><br></div><div><div>    Function `$wa1{v Xvov} [lid]&#39;</div><div>      has three call patterns, but the limit is 2</div></div><div><br></div><div>This suggests to me that maybe some config information is being changed in error somewhere?</div>
</div>