<div dir="ltr">Hello all, <div><br></div><div>I just installed the new Haskell platform for OS X.</div><div><br></div><div>It seems to have caused a major performance regression for a program I'm working on, making it well over 25x slower.</div><div><br></div><div>The culprit appears to be that the new GHC (7.10.2) fails to specialize an imported function. If I manually add a SPECIALIZE pragma, performance goes back to around what it used to be. </div><div><br></div><div>The code in question is located at <a href="https://github.com/wyager/HNet">https://github.com/wyager/HNet</a> .</div><div><br></div><div>As it stands, the code takes about 30 seconds to run on my machine. With the previous haskell-platform, it only took about .9 seconds. </div><div><br></div><div>If I modify Operations.hs and uncomment the SPECIALIZE pragma, runtime goes down to about 1.1 seconds (still slower for some reason, but not awful).</div><div><br></div><div>To test, compile with -O2 (as the program makes heavy use of Data.Vector, which requires -fspec-constr for performance).<br></div><div><br></div><div><br></div><div><br></div><div>Additionally, my experience doesn't seem to match <a href="https://downloads.haskell.org/~ghc/7.8.4/docs/html/users_guide/pragmas.html#specialize-pragma">https://downloads.haskell.org/~ghc/7.8.4/docs/html/users_guide/pragmas.html#specialize-pragma</a> in that if I add an INLINABLE pragma at the site of (••)'s definition and then try to SPECIALIZE it in a different file after importing, GHC tells me "Warning: SPECIALISE pragma on INLINE function probably won't fire: ‘••’". </div><div><br></div><div>Cheers,</div><div>Will</div></div>