<div dir="ltr">As can probably be gathered from the tone of my earlier comment that was cherry picked in Oleg's post, I'm +1 on this. It is a small improvement we can make in the user experience at very little cost, bringing us one step closer to the baseline functionality folks expect of most any language these days.<div><br></div><div>-Edward</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, May 30, 2021 at 10:54 AM Andreas Abel <<a href="mailto:andreas.abel@ifi.lmu.de">andreas.abel@ifi.lmu.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">+1 Such a change is very welcome! --Andreas<br>
<br>
On 2021-05-30 15:52, Oleg Grenrus wrote:<br>
> I'm proposing to add HasCallStack constraint for partial functions<br>
> in base package for functions in Data.List and Data.List.NonEmpty:<br>
> <br>
> - head, tail, init, last, ...<br>
> - foldr1, foldl1, maximum, minimum, ...<br>
> - (!!)<br>
> <br>
> ---<br>
> <br>
> The previous discussions started by Luo Chen can be found at<br>
> <a href="https://gitlab.haskell.org/ghc/ghc/-/issues/17040" rel="noreferrer" target="_blank">https://gitlab.haskell.org/ghc/ghc/-/issues/17040</a> (from August 2019)<br>
> <br>
> and libraries list from June 2019<br>
> <a href="https://mail.haskell.org/pipermail/libraries/2019-June/029652.html" rel="noreferrer" target="_blank">https://mail.haskell.org/pipermail/libraries/2019-June/029652.html</a><br>
> <br>
> ---<br>
> <br>
> My motivation comes from seeing GHCJS failing with<br>
> "Prelude.!! negative index" exception and<br>
> cabal-install with head of empty list.<br>
> <br>
> ---<br>
> <br>
> In #17040 issue Ben Gamari comments [1]<br>
> <br>
>> In general, adding HasCallStack constraints on things like simple<br>
>> non-recursive functions like fromJust and head seems like a reasonable<br>
>> trade-off; these functions will essentially always inline and<br>
>> consequently the cost of the constraint will vanish.<br>
> <br>
> Such patch is now available at<br>
> <a href="https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5833" rel="noreferrer" target="_blank">https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5833</a><br>
> <br>
> After accepting few changed test outputs, no further changes were needed.<br>
> <br>
> ---<br>
> <br>
> Ben continues:<br>
> <br>
>> Adding HasCallStack constraints on typeclass-overloaded methods isn't<br>
>> as clear. After all, it's quite likely that these functions will be<br>
>> reached by dynamic dispatch which will become more expensive with the<br>
>> additional callstack argument.<br>
> <br>
> I agree. Foldable.foldr1 may not be partial, e.g. it isn't for NonEmpty.<br>
> <br>
> More correct approach would be to add Foldable1 [2] class to base, and<br>
> in some distant future remove potentially partial members from Foldable.<br>
> <br>
> Therefore my patch _does not change_ Foldable.<br>
> <br>
>> nofib may not be a very good test for this patch as it doesn't contain<br>
>> many uses of the affected functions<br>
> <br>
> Indeed. These functions are hardly ever in tight performance critical<br>
> code, thus I'm skeptical about they affecting a code written by<br>
> performance aware people. Re-implementing `head` in a loop where it<br>
> causes performance regression is trivial.<br>
> <br>
> I have run `nofib` anyway. Results are at the end.<br>
> <br>
>> I think it would be a good idea to start with a minimal patch adding<br>
>> constraints to the simple cases. We should then verify that the patch<br>
>> doesn't affect the Core produced by typical use-cases (perhaps even<br>
>> adding tests such that these don't regress). Once we know that the<br>
>> simple cases are safe we can move on to the harder cases.<br>
> <br>
> Such patch is now available at<br>
> <a href="https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5833" rel="noreferrer" target="_blank">https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5833</a><br>
> <br>
> ---<br>
> <br>
> Let me go through other comments in previous discussions, to have fuller<br>
> overview.<br>
> <br>
> ---<br>
> <br>
> Some people are in favour, e.g.<br>
> - Simon Jakobi,<br>
> <a href="https://mail.haskell.org/pipermail/libraries/2019-June/029655.html" rel="noreferrer" target="_blank">https://mail.haskell.org/pipermail/libraries/2019-June/029655.html</a><br>
> - Hécate, <a href="https://gitlab.haskell.org/ghc/ghc/-/issues/17040#note_355561" rel="noreferrer" target="_blank">https://gitlab.haskell.org/ghc/ghc/-/issues/17040#note_355561</a><br>
> <br>
> ---<br>
> <br>
> Richard [3] thinks that e.g. a year prior addition of HasCallStack to<br>
> fromJust<br>
> [4] is not a right thing.<br>
> <br>
>> I don't have any particular insight to how to do call stacks better --<br>
>> and I am swayed by the argument that we need call stacks even in<br>
>> production -- but I don't think HasCallStack is the way. That was<br>
>> always meant as just a small hack!<br>
> <br>
> This patch is indeed more pragmatic than elegant, but takes us from<br>
> takes us from spending potentially many hours finding the source of a<br>
> crash to being pointed at the very line where it happens directly, which<br>
> is invaluable for production systems. I.e. let not (unknown) perfect be<br>
> an enemy of good solution.<br>
> <br>
> ---<br>
> <br>
> In fromJust issue discussion [4] Ben comments<br>
> <br>
>> However, I should emphasize to that we don't want to simply scatter<br>
>> HasCallStacks on every partial function. We should be thoughtful and<br>
>> deliberate (and probably consult with the CLC) when making changes<br>
>> like this.<br>
> <br>
> This email is indeed a request for CLC to comment.<br>
> <br>
> ---<br>
> <br>
> Edward Kmett comments was in favour [5]<br>
> <br>
>> I’m starting to warm to the idea of putting HasCallStack constraints<br>
>> on the obviously partial combinators in base if we can demonstrate<br>
>> that the performance impact isn't bad in practice, and even really, to<br>
>> some extent if there is a somewhat middling impact on the performance<br>
>> of code that leans on these hard to debug combinators, so long as the<br>
>> performance of their more total siblings remains unaffected. The<br>
>> impact on the perceived debuggability of Haskell seems _likely_ to<br>
>> significantly outweigh the performance concerns.<br>
> <br>
> The results (to follow) shows that impact isn't bad.<br>
> <br>
>> Heck, off of the HEAD of cabal, which we’re encouraging folks to build<br>
>> to play with the ghc 8.8.1 alpha, just today we ran into an issue<br>
>> where the very build system we are using spat out an oh so informative<br>
>> “Prelude.foldr1: Empty list” when using a pkgconfig-depends stanza<br>
>> that didnt include any explicit bounds.<br>
> <br>
> ---<br>
> <br>
> David Feuer is worried about performance of recursive functions [6]<br>
> <br>
>> As I recall, the main things to watch out for, performance-wise, are<br>
>> recursive definitions. When we throw an error from a library function,<br>
>> we *typically* mean that the caller made a mistake. We don't want to<br>
>> build up the call stacks we'd need to debug the library function<br>
>> itself, unless we're actually doing so (in which case we can edit it<br>
>> in, of course).<br>
> <br>
> In current base implementation all recursive functions (like foldr1, or<br>
> !!) have internal workers, so the callstack is not building-up.<br>
> <br>
> Eric Seidel comments later [8]<br>
> <br>
>> What I remember finding back then was that there was a small overhead<br>
>> for non-recursive functions like `head` but a substantial overhead for<br>
>> recursive functions.<br>
> <br>
>> I'd suggest extra care around recursive functions ((!!) comes to<br>
>> mind). Perhaps rewrite them to use an inner recursive loop that does<br>
>> not extend the CallStack (this might produce nicer stacktraces<br>
>> anyway).<br>
> <br>
> That is how (!!) is currently written in base. It has an inner worker.<br>
> (His benchmark link is not valid anymore, so I cannot tell what !!<br>
> variant he benchmarked).<br>
> <br>
> ---<br>
> <br>
> Matthew Pickering comments [7] about -xc RTS flag.<br>
> <br>
>> I find this thread a bit concerning. In my opinion the current best<br>
>> way to get call stacks on exceptions is with `-xc`. Adding runtime<br>
>> overhead to every user program is not acceptable.<br>
> <br>
> -xc requires recompiling the program for profiling.<br>
> <br>
> He continues with<br>
> <br>
>> There is an argument that it would be good to disentangle `-xc` from<br>
>> `prof` but you would still have to compile `base` in this way which<br>
>> instruments these partial functions (as a user can not do it herself).<br>
>> I'm not too sure on the details but I don't think -xc uses any<br>
>> information from the profiling header so the fact it's connected with<br>
>> -prof seems more like convenience than necessity.<br>
> <br>
> If that work is done, we can drop HasCallStack from partial functions,<br>
> until then again let not perfect be the enemy of good.<br>
> <br>
> For example, me seeing GHCJS throwing on !!, of Edward cabal-install on<br>
> foldr1 doesn't help. Rebuilding cabal-install with profiling is viable<br>
> (but not for an average person who downloads it with ghcup),<br>
> rebuilding GHCJS for profiling is a skill few people have.<br>
> <br>
> Already in his original proposal Luo Chen says:<br>
> <br>
>> When we run a long running program, such as a web service, it is not<br>
>> easy to reproduce the issue, most of the time, you have no chance to<br>
>> recompile or restart your program to debug, all you can rely on is the<br>
>> printed logs, this makes -xc not as useful as HasCallStack.<br>
> <br>
> ---<br>
> <br>
> People are worried about performance.<br>
> GHC itself uses some of the a affected functions.<br>
> There are 30 foldr1, some head and tail calls, and also !! in `compiler/`<br>
> <br>
> The performance metrics in MR do not regress.<br>
> GHC is not slowed down.<br>
> <br>
> I also run `nofib` using `--cachegrind -s Norm -j 16`, geometric means:<br>
> <br>
> - allocations: -0.12%<br>
> - instructions: +0.05%<br>
> - LLC cache misses: +0.58%<br>
> - L1 cache misses: +0.03%<br>
> <br>
> And also using `--perf` (without `-j`):<br>
> <br>
> - perf instructions: +0.02%<br>
> - perf cycles: -0.80%<br>
> <br>
> I don't know if this in bounds of "small changes to GHC".<br>
> For me this looks acceptable.<br>
> <br>
> ---<br>
> <br>
> There is also off-thread blog post from 2018.<br>
> <a href="https://neilmitchell.blogspot.com/2018/03/safe-library-with-better-stack-traces.html" rel="noreferrer" target="_blank">https://neilmitchell.blogspot.com/2018/03/safe-library-with-better-stack-traces.html</a><br>
> referencing e.g.<br>
> <a href="https://hackage.haskell.org/package/extra-1.7.9/docs/Data-List-Extra.html#v:maximumOn" rel="noreferrer" target="_blank">https://hackage.haskell.org/package/extra-1.7.9/docs/Data-List-Extra.html#v:maximumOn</a><br>
> and <a href="https://hackage.haskell.org/package/safe" rel="noreferrer" target="_blank">https://hackage.haskell.org/package/safe</a><br>
> <br>
> safe library has plenty of reverse dependencies:<br>
> <a href="https://packdeps.haskellers.com/reverse/safe" rel="noreferrer" target="_blank">https://packdeps.haskellers.com/reverse/safe</a>, and extra is used by shake.<br>
> <br>
> ---<br>
> <br>
> In summary:<br>
> <br>
> - fromJust has HasCallStack, head doesn't. Let us fix this.<br>
> - Ben asked for patch so we can test performance, now such patch exists,<br>
> and it passes GHC CI.<br>
> - GHC itself uses partial functions, its performance metrics don't<br>
> regress<br>
> - -prof and +RTS -xc is an option, but it needs special build of an<br>
> executable.<br>
> - This is ultimately for CLC to decide, so chessai, emilypi please tell<br>
> your opinion.<br>
> <br>
> Discussion period one month, until 2021-06-30 (end of June this year).<br>
> <br>
> Oleg<br>
> <br>
> [1]: <a href="https://gitlab.haskell.org/ghc/ghc/-/issues/17040#note_231634" rel="noreferrer" target="_blank">https://gitlab.haskell.org/ghc/ghc/-/issues/17040#note_231634</a><br>
> [2]: <a href="https://mail.haskell.org/pipermail/libraries/2019-November/030059.html" rel="noreferrer" target="_blank">https://mail.haskell.org/pipermail/libraries/2019-November/030059.html</a><br>
> <a href="https://gitlab.haskell.org/ghc/ghc/-/issues/13573" rel="noreferrer" target="_blank">https://gitlab.haskell.org/ghc/ghc/-/issues/13573</a><br>
> [3]: <a href="https://gitlab.haskell.org/ghc/ghc/-/issues/17040#note_218035" rel="noreferrer" target="_blank">https://gitlab.haskell.org/ghc/ghc/-/issues/17040#note_218035</a><br>
> [4]: <a href="https://gitlab.haskell.org/ghc/ghc/-/issues/15559" rel="noreferrer" target="_blank">https://gitlab.haskell.org/ghc/ghc/-/issues/15559</a><br>
> [5]: <a href="https://mail.haskell.org/pipermail/libraries/2019-June/029665.html" rel="noreferrer" target="_blank">https://mail.haskell.org/pipermail/libraries/2019-June/029665.html</a><br>
> [6]: <a href="https://mail.haskell.org/pipermail/libraries/2019-June/029666.html" rel="noreferrer" target="_blank">https://mail.haskell.org/pipermail/libraries/2019-June/029666.html</a><br>
> [7]: <a href="https://mail.haskell.org/pipermail/libraries/2019-June/029672.html" rel="noreferrer" target="_blank">https://mail.haskell.org/pipermail/libraries/2019-June/029672.html</a><br>
> [8]: <a href="https://mail.haskell.org/pipermail/libraries/2019-June/029667.html" rel="noreferrer" target="_blank">https://mail.haskell.org/pipermail/libraries/2019-June/029667.html</a><br>
> <br>
> ---<br>
> <br>
> # bytes allocated<br>
> <br>
> +-------------------------------++--+-------------+------------------+<br>
> | || | master/ | callstack/ (rel) |<br>
> +===============================++==+=============+==================+<br>
> | imaginary/bernouilli || | 2.823e9 | 0.00% |<br>
> | imaginary/digits-of-e1 || | 1.069e9 | 0.00% |<br>
> | imaginary/digits-of-e2 || | 2.152e9 | 0.00% |<br>
> | imaginary/exp3_8 || | 5.888e9 | 0.00% |<br>
> | imaginary/gen_regexps || | 9.104e8 | 0.00% |<br>
> | imaginary/integrate || | 3.768e9 | 0.00% |<br>
> | imaginary/kahan || | 49088.000 | 0.00% |<br>
> | imaginary/paraffins || | 3.829e9 | 0.00% |<br>
> | imaginary/primes || | 2.928e9 | 0.00% |<br>
> | imaginary/queens || | 6.709e8 | 0.00% |<br>
> | imaginary/rfib || | 139952.000 | 0.00% |<br>
> | imaginary/tak || | 97344.000 | 0.00% |<br>
> | imaginary/wheel-sieve1 || | 1.344e8 | 0.00% |<br>
> | imaginary/wheel-sieve2 || | 2.430e9 | 0.00% |<br>
> | imaginary/x2n1 || | 2.561e8 | 0.00% |<br>
> | parallel/blackscholes || | 1.980e9 | 0.00% |<br>
> | parallel/coins || | 5.252e9 | 0.00% |<br>
> | parallel/gray || | 2.010e9 | +0.00% |<br>
> | parallel/mandel || | 8.524e9 | 0.00% |<br>
> | parallel/matmult || | 8.974e7 | 0.00% |<br>
> | parallel/minimax || | 2.212e10 | 0.00% |<br>
> | parallel/nbody || | 1498304.000 | 0.00% |<br>
> | parallel/parfib || | 3.651e8 | 0.00% |<br>
> | parallel/partree || | 3.290e9 | 0.00% |<br>
> | parallel/prsa || | 2.097e9 | 0.00% |<br>
> | parallel/queens || | 6.846e8 | 0.00% |<br>
> | parallel/ray || | 1.357e10 | 0.00% |<br>
> | parallel/sumeuler || | 1785016.000 | 0.00% |<br>
> | parallel/transclos || | 8.976e9 | 0.00% |<br>
> | real/anna || | 2.022e9 | +0.01% |<br>
> | real/ben-raytrace || | 3.418e10 | 0.00% |<br>
> | real/bspt || | 3.747e9 | 0.00% |<br>
> | real/cacheprof || | 2.689e9 | 0.00% |<br>
> | real/compress || | 2.807e9 | 0.00% |<br>
> | real/compress2 || | 3.436e9 | 0.00% |<br>
> | real/eff/CS || | 1.601e8 | 0.00% |<br>
> | real/eff/CSD || | 1.600e9 | 0.00% |<br>
> | real/eff/FS || | 1.760e9 | 0.00% |<br>
> | real/eff/S || | 2.401e8 | 0.00% |<br>
> | real/eff/VS || | 4.831e8 | 0.00% |<br>
> | real/eff/VSD || | 50736.000 | 0.00% |<br>
> | real/eff/VSM || | 4.001e8 | 0.00% |<br>
> | real/fem || | 4.947e9 | -2.81% |<br>
> | real/fluid || | 2.169e9 | -0.00% |<br>
> | real/fulsom || | 1.961e9 | 0.00% |<br>
> | real/gamteb || | 4.447e9 | 0.00% |<br>
> | real/gg || | 2.654e9 | 0.00% |<br>
> | real/grep || | 4.623e9 | 0.00% |<br>
> | real/hidden || | 5.100e9 | 0.00% |<br>
> | real/hpg || | 3.160e9 | -0.10% |<br>
> | real/infer || | 1.731e9 | 0.00% |<br>
> | real/lift || | 2.761e9 | 0.00% |<br>
> | real/linear || | 5.412e9 | -0.07% |<br>
> | real/maillist || | 3.331e9 | 0.00% |<br>
> | real/mkhprog || | 9748392.000 | 0.00% |<br>
> | real/parser || | 2.666e9 | 0.00% |<br>
> | real/pic || | 1.469e9 | 0.00% |<br>
> | real/prolog || | 2.922e9 | -0.02% |<br>
> | real/reptile || | 5.121e9 | 0.00% |<br>
> | real/rsa || | 8.414e8 | 0.00% |<br>
> | real/scs || | 4.044e9 | 0.00% |<br>
> | real/smallpt || | 2.874e9 | 0.00% |<br>
> | real/symalg || | 3.195e8 | 0.00% |<br>
> | real/veritas || | 4.172e9 | 0.00% |<br>
> | shootout/binary-trees || | 4.300e9 | 0.00% |<br>
> | shootout/fannkuch-redux || | 69144.000 | -0.03% |<br>
> | shootout/fasta || | 1.718e9 | +0.00% |<br>
> | shootout/k-nucleotide || | 7.081e7 | +0.00% |<br>
> | shootout/n-body || | 130608.000 | 0.00% |<br>
> | shootout/pidigits || | 1.027e10 | 0.00% |<br>
> | shootout/reverse-complement || | 59768.000 | 0.00% |<br>
> | shootout/spectral-norm || | 178112.000 | 0.00% |<br>
> | smp/callback001 || | 1.114e9 | 0.00% |<br>
> | smp/callback002 || | 3.264e9 | 0.00% |<br>
> | smp/chan || | 1.240e9 | 0.00% |<br>
> | smp/sieve || | 1.410e9 | 0.00% |<br>
> | smp/threads001 || | 1.072e10 | 0.00% |<br>
> | smp/threads003 || | 3.051e8 | -0.01% |<br>
> | smp/threads006 || | 2.242e8 | 0.00% |<br>
> | smp/threads007 || | 1.778e9 | -0.00% |<br>
> | spectral/ansi || | 6.713e9 | 0.00% |<br>
> | spectral/atom || | 3.580e9 | 0.00% |<br>
> | spectral/awards || | 4.759e9 | 0.00% |<br>
> | spectral/banner || | 6.156e9 | 0.00% |<br>
> | spectral/boyer || | 4.665e9 | 0.00% |<br>
> | spectral/boyer2 || | 1.153e9 | 0.00% |<br>
> | spectral/calendar || | 7.102e9 | 0.00% |<br>
> | spectral/cichelli || | 1.969e9 | 0.00% |<br>
> | spectral/circsim || | 4.850e9 | 0.00% |<br>
> | spectral/clausify || | 2.095e9 | 0.00% |<br>
> | spectral/constraints || | 4.872e9 | 0.00% |<br>
> | spectral/cryptarithm1 || | 5.981e9 | 0.00% |<br>
> | spectral/cryptarithm2 || | 3.663e9 | 0.00% |<br>
> | spectral/cse || | 3.802e9 | 0.00% |<br>
> | spectral/dom-lt || | 3.890e9 | 0.00% |<br>
> | spectral/eliza || | 4.102e9 | +0.00% |<br>
> | spectral/exact-reals || | 9.584e8 | -0.00% |<br>
> | spectral/expert || | 2.090e9 | 0.00% |<br>
> | spectral/fft2 || | 1.431e9 | -0.22% |<br>
> | spectral/fibheaps || | 4.737e9 | 0.00% |<br>
> | spectral/fish || | 6.193e9 | 0.00% |<br>
> | spectral/gcd || | 2.069e9 | 0.00% |<br>
> | spectral/hartel/comp_lab_zift || | 4.740e9 | 0.00% |<br>
> | spectral/hartel/event || | 3.635e9 | -12.13% |<br>
> | spectral/hartel/fft || | 1.611e9 | 0.00% |<br>
> | spectral/hartel/genfft || | 8.020e9 | 0.00% |<br>
> | spectral/hartel/ida || | 3.515e9 | 0.00% |<br>
> | spectral/hartel/listcompr || | 6.157e9 | 0.00% |<br>
> | spectral/hartel/listcopy || | 6.758e9 | 0.00% |<br>
> | spectral/hartel/nucleic2 || | 2.965e9 | 0.00% |<br>
> | spectral/hartel/parstof || | 1.368e9 | 0.00% |<br>
> | spectral/hartel/sched || | 3.675e9 | 0.00% |<br>
> | spectral/hartel/solid || | 3.509e9 | 0.00% |<br>
> | spectral/hartel/transform || | 3.959e9 | 0.00% |<br>
> | spectral/hartel/typecheck || | 2.570e9 | 0.00% |<br>
> | spectral/hartel/wang || | 4.735e9 | 0.00% |<br>
> | spectral/hartel/wave4main || | 1.147e9 | 0.00% |<br>
> | spectral/integer || | 3.260e9 | 0.00% |<br>
> | spectral/knights || | 1.094e9 | 0.00% |<br>
> | spectral/lambda || | 2.950e9 | 0.00% |<br>
> | spectral/last-piece || | 6.852e8 | 0.00% |<br>
> | spectral/lcss || | 6.565e9 | 0.00% |<br>
> | spectral/life || | 6.799e9 | 0.00% |<br>
> | spectral/mandel || | 1.972e9 | 0.00% |<br>
> | spectral/mandel2 || | 5.231e8 | 0.00% |<br>
> | spectral/mate || | 4.598e9 | 0.00% |<br>
> | spectral/minimax || | 2.683e9 | 0.00% |<br>
> | spectral/multiplier || | 2.850e9 | 0.00% |<br>
> | spectral/para || | 4.056e9 | 0.00% |<br>
> | spectral/power || | 1.428e9 | 0.00% |<br>
> | spectral/pretty || | 136880.000 | -0.11% |<br>
> | spectral/primetest || | 8.455e8 | 0.00% |<br>
> | spectral/puzzle || | 1.809e9 | 0.00% |<br>
> | spectral/rewrite || | 1.694e9 | 0.00% |<br>
> | spectral/scc || | 58280.000 | 0.00% |<br>
> | spectral/simple || | 2.316e9 | 0.00% |<br>
> | spectral/sorting || | 3.078e9 | 0.00% |<br>
> | spectral/sphere || | 2.298e9 | 0.00% |<br>
> | spectral/treejoin || | 2.796e9 | 0.00% |<br>
> +===============================++==+=============+==================+<br>
> | geom mean || | -0.12% | |<br>
> +-------------------------------++--+-------------+------------------+<br>
> <br>
> # instructions<br>
> <br>
> +-------------------------------++--+------------+------------------+<br>
> | || | master/ | callstack/ (rel) |<br>
> +===============================++==+============+==================+<br>
> | imaginary/bernouilli || | 7.057e9 | +0.00% |<br>
> | imaginary/digits-of-e1 || | 5.549e9 | -0.00% |<br>
> | imaginary/digits-of-e2 || | 5.555e9 | -0.01% |<br>
> | imaginary/exp3_8 || | 8.779e9 | +0.03% |<br>
> | imaginary/gen_regexps || | 8.650e9 | -0.00% |<br>
> | imaginary/integrate || | 6.276e9 | +0.00% |<br>
> | imaginary/kahan || | 6.707e9 | +0.00% |<br>
> | imaginary/paraffins || | 8.089e9 | -0.00% |<br>
> | imaginary/primes || | 8.278e9 | +0.01% |<br>
> | imaginary/queens || | 1.010e10 | -0.00% |<br>
> | imaginary/rfib || | 5.299e9 | +0.00% |<br>
> | imaginary/tak || | 5.867e9 | +0.00% |<br>
> | imaginary/wheel-sieve1 || | 6.615e9 | +0.04% |<br>
> | imaginary/wheel-sieve2 || | 6.286e9 | +0.02% |<br>
> | imaginary/x2n1 || | 7.452e9 | +0.00% |<br>
> | parallel/blackscholes || | 8.022e9 | +0.00% |<br>
> | parallel/coins || | 1.149e10 | +0.00% |<br>
> | parallel/gray || | 6.141e9 | +0.14% |<br>
> | parallel/mandel || | 3.288e10 | -0.01% |<br>
> | parallel/matmult || | 1.115e10 | -0.00% |<br>
> | parallel/minimax || | 3.863e10 | -0.08% |<br>
> | parallel/nbody || | 7.939e8 | +0.00% |<br>
> | parallel/parfib || | 2.231e10 | +0.00% |<br>
> | parallel/partree || | 7.347e9 | +0.01% |<br>
> | parallel/prsa || | 1.811e10 | -0.00% |<br>
> | parallel/queens || | 1.037e10 | +0.00% |<br>
> | parallel/ray || | 1.299e10 | +0.00% |<br>
> | parallel/sumeuler || | 3.483e9 | +0.00% |<br>
> | parallel/transclos || | 1.982e10 | +0.00% |<br>
> | real/anna || | 5.343e9 | +0.05% |<br>
> | real/ben-raytrace || | 1.215e11 | +0.00% |<br>
> | real/bspt || | 9.226e9 | -0.00% |<br>
> | real/cacheprof || | 6.763e9 | +0.02% |<br>
> | real/compress || | 5.820e9 | -0.00% |<br>
> | real/compress2 || | 4.569e9 | +0.00% |<br>
> | real/eff/CS || | 7.758e8 | +0.00% |<br>
> | real/eff/CSD || | 3.745e9 | +0.00% |<br>
> | real/eff/FS || | 2.799e9 | +0.00% |<br>
> | real/eff/S || | 4.334e9 | +0.00% |<br>
> | real/eff/VS || | 2.221e9 | +0.01% |<br>
> | real/eff/VSD || | 8.075e7 | +0.00% |<br>
> | real/eff/VSM || | 9.635e8 | +0.00% |<br>
> | real/fem || | 6.649e9 | -0.64% |<br>
> | real/fluid || | 3.904e9 | -0.00% |<br>
> | real/fulsom || | 2.490e9 | +0.00% |<br>
> | real/gamteb || | 1.013e10 | +0.01% |<br>
> | real/gg || | 7.253e9 | +0.01% |<br>
> | real/grep || | 7.546e9 | +0.00% |<br>
> | real/hidden || | 7.198e9 | +1.64% |<br>
> | real/hpg || | 4.966e9 | +0.88% |<br>
> | real/infer || | 8.318e9 | +0.00% |<br>
> | real/lift || | 4.430e9 | -0.00% |<br>
> | real/linear || | 8.436e9 | +1.97% |<br>
> | real/maillist || | 1.974e9 | +0.05% |<br>
> | real/mkhprog || | 2.249e7 | +0.00% |<br>
> | real/parser || | 5.178e9 | -0.00% |<br>
> | real/pic || | 3.268e9 | -0.00% |<br>
> | real/prolog || | 5.742e9 | +0.01% |<br>
> | real/reptile || | 6.046e9 | +0.00% |<br>
> | real/rsa || | 7.191e9 | +0.00% |<br>
> | real/scs || | 6.174e9 | +0.00% |<br>
> | real/smallpt || | 1.128e10 | +0.00% |<br>
> | real/symalg || | 8.230e9 | +0.00% |<br>
> | real/veritas || | 4.832e9 | -0.01% |<br>
> | shootout/binary-trees || | 1.073e10 | +0.01% |<br>
> | shootout/fannkuch-redux || | 1.909e10 | -0.00% |<br>
> | shootout/fasta || | 4.189e9 | +0.00% |<br>
> | shootout/k-nucleotide || | 4.219e9 | +0.01% |<br>
> | shootout/n-body || | 3.721e9 | +0.00% |<br>
> | shootout/pidigits || | 8.084e9 | +0.00% |<br>
> | shootout/reverse-complement || | 781364.000 | +0.51% |<br>
> | shootout/spectral-norm || | 4.252e9 | +0.00% |<br>
> | smp/callback001 || | 1.573e9 | +0.01% |<br>
> | smp/callback002 || | 2.621e9 | +0.00% |<br>
> | smp/chan || | 8.718e9 | +2.56% |<br>
> | smp/sieve || | 5.538e9 | -0.87% |<br>
> | smp/threads001 || | 5.139e9 | -0.00% |<br>
> | smp/threads003 || | 2.903e9 | -0.05% |<br>
> | smp/threads006 || | 7.402e8 | +0.01% |<br>
> | smp/threads007 || | 4.090e9 | -0.00% |<br>
> | spectral/ansi || | 5.961e9 | -0.00% |<br>
> | spectral/atom || | 5.861e9 | +0.01% |<br>
> | spectral/awards || | 8.744e9 | +0.00% |<br>
> | spectral/banner || | 8.824e9 | +0.23% |<br>
> | spectral/boyer || | 7.657e9 | -0.00% |<br>
> | spectral/boyer2 || | 8.881e9 | -0.00% |<br>
> | spectral/calendar || | 7.546e9 | -0.00% |<br>
> | spectral/cichelli || | 8.625e9 | +0.01% |<br>
> | spectral/circsim || | 6.850e9 | +0.00% |<br>
> | spectral/clausify || | 6.223e9 | -0.00% |<br>
> | spectral/constraints || | 8.314e9 | +0.14% |<br>
> | spectral/cryptarithm1 || | 7.787e9 | -0.00% |<br>
> | spectral/cryptarithm2 || | 6.761e9 | +0.00% |<br>
> | spectral/cse || | 6.358e9 | -0.00% |<br>
> | spectral/dom-lt || | 7.774e9 | -0.00% |<br>
> | spectral/eliza || | 8.273e9 | +0.00% |<br>
> | spectral/exact-reals || | 5.597e9 | +0.01% |<br>
> | spectral/expert || | 5.087e9 | +0.04% |<br>
> | spectral/fft2 || | 8.831e9 | +0.31% |<br>
> | spectral/fibheaps || | 8.011e9 | -0.00% |<br>
> | spectral/fish || | 7.314e9 | -0.00% |<br>
> | spectral/gcd || | 6.386e9 | -0.00% |<br>
> | spectral/hartel/comp_lab_zift || | 8.717e9 | -0.00% |<br>
> | spectral/hartel/event || | 9.071e9 | -2.06% |<br>
> | spectral/hartel/fft || | 3.239e9 | +0.00% |<br>
> | spectral/hartel/genfft || | 1.020e10 | +0.00% |<br>
> | spectral/hartel/ida || | 5.413e9 | -0.30% |<br>
> | spectral/hartel/listcompr || | 6.142e9 | +0.02% |<br>
> | spectral/hartel/listcopy || | 6.757e9 | +0.02% |<br>
> | spectral/hartel/nucleic2 || | 4.402e9 | +0.00% |<br>
> | spectral/hartel/parstof || | 5.555e9 | -0.00% |<br>
> | spectral/hartel/sched || | 5.800e9 | +0.00% |<br>
> | spectral/hartel/solid || | 5.845e9 | +0.24% |<br>
> | spectral/hartel/transform || | 5.709e9 | -0.00% |<br>
> | spectral/hartel/typecheck || | 5.841e9 | +0.00% |<br>
> | spectral/hartel/wang || | 8.731e9 | +0.12% |<br>
> | spectral/hartel/wave4main || | 6.024e9 | -0.00% |<br>
> | spectral/integer || | 7.068e9 | -0.00% |<br>
> | spectral/knights || | 8.294e9 | -0.00% |<br>
> | spectral/lambda || | 8.081e9 | +0.00% |<br>
> | spectral/last-piece || | 1.878e9 | +0.00% |<br>
> | spectral/lcss || | 8.761e9 | -0.00% |<br>
> | spectral/life || | 9.136e9 | -0.00% |<br>
> | spectral/mandel || | 7.037e9 | +0.00% |<br>
> | spectral/mandel2 || | 3.957e9 | +0.00% |<br>
> | spectral/mate || | 7.565e9 | +0.01% |<br>
> | spectral/minimax || | 8.649e9 | -0.00% |<br>
> | spectral/multiplier || | 6.096e9 | +0.00% |<br>
> | spectral/para || | 6.561e9 | +0.00% |<br>
> | spectral/power || | 6.749e9 | -0.00% |<br>
> | spectral/pretty || | 851224.000 | +0.17% |<br>
> | spectral/primetest || | 7.391e9 | -0.00% |<br>
> | spectral/puzzle || | 6.401e9 | +0.00% |<br>
> | spectral/rewrite || | 5.553e9 | +0.67% |<br>
> | spectral/scc || | 774059.000 | +0.49% |<br>
> | spectral/simple || | 1.214e10 | +0.01% |<br>
> | spectral/sorting || | 9.074e9 | -0.00% |<br>
> | spectral/sphere || | 5.371e9 | -0.00% |<br>
> | spectral/treejoin || | 9.768e9 | +0.00% |<br>
> +===============================++==+============+==================+<br>
> | geom mean || | +0.05% | |<br>
> +-------------------------------++--+------------+------------------+<br>
> <br>
> <br>
> <br>
> # LLC cache misses<br>
> <br>
> +-------------------------------++--+-------------+------------------+<br>
> | || | master/ | callstack/ (rel) |<br>
> +===============================++==+=============+==================+<br>
> | imaginary/bernouilli || | 4964.000 | +1.37% |<br>
> | imaginary/digits-of-e1 || | 4863.000 | -0.35% |<br>
> | imaginary/digits-of-e2 || | 4958.000 | +1.63% |<br>
> | imaginary/exp3_8 || | 4513.000 | +0.42% |<br>
> | imaginary/gen_regexps || | 4535.000 | +0.09% |<br>
> | imaginary/integrate || | 4733.000 | +1.08% |<br>
> | imaginary/kahan || | 4447.000 | -0.13% |<br>
> | imaginary/paraffins || | 4826.000 | -0.08% |<br>
> | imaginary/primes || | 4876.000 | +0.94% |<br>
> | imaginary/queens || | 4541.000 | -0.07% |<br>
> | imaginary/rfib || | 4485.000 | -0.13% |<br>
> | imaginary/tak || | 4461.000 | +0.25% |<br>
> | imaginary/wheel-sieve1 || | 4865.000 | +1.29% |<br>
> | imaginary/wheel-sieve2 || | 4893.000 | +1.25% |<br>
> | imaginary/x2n1 || | 4630.000 | +0.22% |<br>
> | parallel/blackscholes || | 12862.000 | +0.30% |<br>
> | parallel/coins || | 6455583.000 | +0.00% |<br>
> | parallel/gray || | 6372.000 | +1.77% |<br>
> | parallel/mandel || | 852468.000 | -0.02% |<br>
> | parallel/matmult || | 4615.000 | -0.30% |<br>
> | parallel/minimax || | 4617.000 | +0.84% |<br>
> | parallel/nbody || | 4455.000 | -0.04% |<br>
> | parallel/parfib || | 4528.000 | +0.22% |<br>
> | parallel/partree || | 4627.000 | +0.43% |<br>
> | parallel/prsa || | 4619.000 | +0.54% |<br>
> | parallel/queens || | 4528.000 | +1.37% |<br>
> | parallel/ray || | 4626.000 | +0.35% |<br>
> | parallel/sumeuler || | 4446.000 | +0.13% |<br>
> | parallel/transclos || | 4741.000 | -0.17% |<br>
> | real/anna || | 6443.000 | +5.34% |<br>
> | real/ben-raytrace || | 6819.000 | -0.13% |<br>
> | real/bspt || | 5195.000 | -0.21% |<br>
> | real/cacheprof || | 6734.000 | +1.62% |<br>
> | real/compress || | 4914.000 | +0.53% |<br>
> | real/compress2 || | 4783.000 | -0.25% |<br>
> | real/eff/CS || | 4439.000 | +0.38% |<br>
> | real/eff/CSD || | 4446.000 | 0.00% |<br>
> | real/eff/FS || | 4451.000 | -0.04% |<br>
> | real/eff/S || | 5619842.000 | -0.00% |<br>
> | real/eff/VS || | 1254362.000 | +0.00% |<br>
> | real/eff/VSD || | 4403.000 | -0.43% |<br>
> | real/eff/VSM || | 4445.000 | -0.11% |<br>
> | real/fem || | 4967.000 | +2.07% |<br>
> | real/fluid || | 6117.000 | +0.85% |<br>
> | real/fulsom || | 5060.000 | -0.10% |<br>
> | real/gamteb || | 5615.000 | +0.64% |<br>
> | real/gg || | 5242.000 | +0.88% |<br>
> | real/grep || | 4866.000 | +0.62% |<br>
> | real/hidden || | 5576.000 | +2.06% |<br>
> | real/hpg || | 5614.000 | +2.92% |<br>
> | real/infer || | 4833.000 | -0.14% |<br>
> | real/lift || | 4809.000 | +1.48% |<br>
> | real/linear || | 5368.000 | +4.53% |<br>
> | real/maillist || | 12942.000 | +0.32% |<br>
> | real/mkhprog || | 4483.000 | +0.20% |<br>
> | real/parser || | 5309.000 | +1.64% |<br>
> | real/pic || | 4937.000 | +0.81% |<br>
> | real/prolog || | 4843.000 | +1.03% |<br>
> | real/reptile || | 5548.000 | -0.43% |<br>
> | real/rsa || | 4667.000 | +0.26% |<br>
> | real/scs || | 5667.000 | +1.48% |<br>
> | real/smallpt || | 5836.000 | +1.29% |<br>
> | real/symalg || | 5422.000 | +0.30% |<br>
> | real/veritas || | 6984.000 | +2.61% |<br>
> | shootout/binary-trees || | 5079.000 | +0.73% |<br>
> | shootout/fannkuch-redux || | 4478.000 | -0.51% |<br>
> | shootout/fasta || | 4625.000 | -0.13% |<br>
> | shootout/k-nucleotide || | 1161663.000 | -2.58% |<br>
> | shootout/n-body || | 4512.000 | +0.04% |<br>
> | shootout/pidigits || | 4651.000 | -0.39% |<br>
> | shootout/reverse-complement || | 4416.000 | 0.00% |<br>
> | shootout/spectral-norm || | 4477.000 | +0.25% |<br>
> | smp/callback001 || | 488453.000 | -0.01% |<br>
> | smp/callback002 || | 4513.000 | -0.11% |<br>
> | smp/chan || | 1.110e7 | +7.03% |<br>
> | smp/sieve || | 4555.000 | +0.72% |<br>
> | smp/threads001 || | 4481.000 | +0.49% |<br>
> | smp/threads003 || | 83898.000 | -1.63% |<br>
> | smp/threads006 || | 1804659.000 | +0.49% |<br>
> | smp/threads007 || | 2427701.000 | -0.24% |<br>
> | spectral/ansi || | 4759.000 | +0.27% |<br>
> | spectral/atom || | 4691.000 | +0.62% |<br>
> | spectral/awards || | 4717.000 | +1.14% |<br>
> | spectral/banner || | 5056.000 | +1.21% |<br>
> | spectral/boyer || | 5045.000 | +0.06% |<br>
> | spectral/boyer2 || | 4832.000 | -0.04% |<br>
> | spectral/calendar || | 4622.000 | +0.74% |<br>
> | spectral/cichelli || | 4728.000 | +1.67% |<br>
> | spectral/circsim || | 40269.000 | -1.55% |<br>
> | spectral/clausify || | 4835.000 | -0.17% |<br>
> | spectral/constraints || | 4871.000 | +1.44% |<br>
> | spectral/cryptarithm1 || | 4562.000 | +0.18% |<br>
> | spectral/cryptarithm2 || | 4600.000 | +0.07% |<br>
> | spectral/cse || | 4534.000 | +0.33% |<br>
> | spectral/dom-lt || | 5179.000 | +0.10% |<br>
> | spectral/eliza || | 4968.000 | +0.34% |<br>
> | spectral/exact-reals || | 4840.000 | +1.34% |<br>
> | spectral/expert || | 4770.000 | +2.81% |<br>
> | spectral/fft2 || | 5296.000 | +1.91% |<br>
> | spectral/fibheaps || | 4858.000 | +0.02% |<br>
> | spectral/fish || | 4687.000 | +0.04% |<br>
> | spectral/gcd || | 4575.000 | +0.22% |<br>
> | spectral/hartel/comp_lab_zift || | 4960.000 | +0.58% |<br>
> | spectral/hartel/event || | 4875.000 | +0.96% |<br>
> | spectral/hartel/fft || | 5121.000 | +0.70% |<br>
> | spectral/hartel/genfft || | 4875.000 | +0.04% |<br>
> | spectral/hartel/ida || | 4877.000 | +0.84% |<br>
> | spectral/hartel/listcompr || | 4651.000 | +1.76% |<br>
> | spectral/hartel/listcopy || | 4649.000 | +1.96% |<br>
> | spectral/hartel/nucleic2 || | 5998.000 | +0.68% |<br>
> | spectral/hartel/parstof || | 5583.000 | -0.05% |<br>
> | spectral/hartel/sched || | 4856.000 | -0.23% |<br>
> | spectral/hartel/solid || | 5282.000 | +1.21% |<br>
> | spectral/hartel/transform || | 4875.000 | +1.56% |<br>
> | spectral/hartel/typecheck || | 4724.000 | +0.95% |<br>
> | spectral/hartel/wang || | 4993.000 | +2.38% |<br>
> | spectral/hartel/wave4main || | 4877.000 | -0.04% |<br>
> | spectral/integer || | 4619.000 | -0.13% |<br>
> | spectral/knights || | 4694.000 | +0.58% |<br>
> | spectral/lambda || | 4984.000 | +0.66% |<br>
> | spectral/last-piece || | 4869.000 | -0.21% |<br>
> | spectral/lcss || | 4876.000 | +0.04% |<br>
> | spectral/life || | 4884.000 | +1.29% |<br>
> | spectral/mandel || | 4900.000 | +0.16% |<br>
> | spectral/mandel2 || | 4479.000 | -0.13% |<br>
> | spectral/mate || | 5086.000 | +1.83% |<br>
> | spectral/minimax || | 4605.000 | -0.04% |<br>
> | spectral/multiplier || | 4672.000 | +0.98% |<br>
> | spectral/para || | 4935.000 | +0.83% |<br>
> | spectral/power || | 4918.000 | +0.18% |<br>
> | spectral/pretty || | 4432.000 | +0.14% |<br>
> | spectral/primetest || | 5021.000 | -0.04% |<br>
> | spectral/puzzle || | 4603.000 | +0.04% |<br>
> | spectral/rewrite || | 4618.000 | +0.97% |<br>
> | spectral/scc || | 4415.000 | +0.34% |<br>
> | spectral/simple || | 2413361.000 | -1.18% |<br>
> | spectral/sorting || | 5357.000 | -1.55% |<br>
> | spectral/sphere || | 5717.000 | +0.84% |<br>
> | spectral/treejoin || | 5130.000 | +0.02% |<br>
> +===============================++==+=============+==================+<br>
> | geom mean || | +0.58% | |<br>
> +-------------------------------++--+-------------+------------------+<br>
> <br>
> <br>
> <br>
> # L1 cache misses<br>
> <br>
> +-------------------------------++--+-------------+------------------+<br>
> | || | master/ | callstack/ (rel) |<br>
> +===============================++==+=============+==================+<br>
> | imaginary/bernouilli || | 4.235e7 | +0.13% |<br>
> | imaginary/digits-of-e1 || | 3708507.000 | -0.06% |<br>
> | imaginary/digits-of-e2 || | 2.913e7 | -0.16% |<br>
> | imaginary/exp3_8 || | 1.881e8 | -0.07% |<br>
> | imaginary/gen_regexps || | 2.915e7 | -0.05% |<br>
> | imaginary/integrate || | 1341520.000 | -4.99% |<br>
> | imaginary/kahan || | 7577.000 | +0.15% |<br>
> | imaginary/paraffins || | 5.994e7 | -0.02% |<br>
> | imaginary/primes || | 1.165e8 | -0.01% |<br>
> | imaginary/queens || | 315321.000 | -0.94% |<br>
> | imaginary/rfib || | 7833.000 | -0.46% |<br>
> | imaginary/tak || | 7688.000 | +0.03% |<br>
> | imaginary/wheel-sieve1 || | 7508229.000 | +0.51% |<br>
> | imaginary/wheel-sieve2 || | 4.338e7 | -0.02% |<br>
> | imaginary/x2n1 || | 129793.000 | +0.50% |<br>
> | parallel/blackscholes || | 1.550e7 | -0.16% |<br>
> | parallel/coins || | 3.952e7 | +0.26% |<br>
> | parallel/gray || | 1.736e7 | +1.38% |<br>
> | parallel/mandel || | 1.356e7 | +0.20% |<br>
> | parallel/matmult || | 5.267e8 | -0.01% |<br>
> | parallel/minimax || | 1.140e8 | -0.14% |<br>
> | parallel/nbody || | 1.248e7 | -0.02% |<br>
> | parallel/parfib || | 252463.000 | +6.49% |<br>
> | parallel/partree || | 5.642e7 | +0.08% |<br>
> | parallel/prsa || | 5700667.000 | +0.27% |<br>
> | parallel/queens || | 3129546.000 | +0.19% |<br>
> | parallel/ray || | 1.260e7 | +4.27% |<br>
> | parallel/sumeuler || | 35221.000 | -0.07% |<br>
> | parallel/transclos || | 1.863e7 | +0.17% |<br>
> | real/anna || | 3.737e7 | +0.10% |<br>
> | real/ben-raytrace || | 6.695e7 | +0.59% |<br>
> | real/bspt || | 1.492e8 | +0.01% |<br>
> | real/cacheprof || | 5.661e7 | -0.24% |<br>
> | real/compress || | 3.247e7 | -2.71% |<br>
> | real/compress2 || | 2.717e7 | +0.13% |<br>
> | real/eff/CS || | 54141.000 | -0.28% |<br>
> | real/eff/CSD || | 532877.000 | -0.07% |<br>
> | real/eff/FS || | 512883.000 | +0.18% |<br>
> | real/eff/S || | 1.412e7 | -0.07% |<br>
> | real/eff/VS || | 6730192.000 | -0.42% |<br>
> | real/eff/VSD || | 7449.000 | -0.30% |<br>
> | real/eff/VSM || | 121912.000 | -0.22% |<br>
> | real/fem || | 3.841e7 | +6.86% |<br>
> | real/fluid || | 1.579e7 | +0.91% |<br>
> | real/fulsom || | 1.036e7 | +0.03% |<br>
> | real/gamteb || | 3.473e7 | -0.02% |<br>
> | real/gg || | 7.439e7 | +0.09% |<br>
> | real/grep || | 7.940e7 | +0.08% |<br>
> | real/hidden || | 1.074e7 | +0.20% |<br>
> | real/hpg || | 1.757e7 | +0.32% |<br>
> | real/infer || | 2.006e8 | -0.02% |<br>
> | real/lift || | 2.741e7 | +0.20% |<br>
> | real/linear || | 8.899e7 | +1.27% |<br>
> | real/maillist || | 9646364.000 | -0.06% |<br>
> | real/mkhprog || | 11950.000 | +3.72% |<br>
> | real/parser || | 1.269e7 | +0.92% |<br>
> | real/pic || | 4.450e7 | -0.24% |<br>
> | real/prolog || | 2.973e7 | -0.34% |<br>
> | real/reptile || | 1.945e7 | -0.07% |<br>
> | real/rsa || | 1310283.000 | -0.18% |<br>
> | real/scs || | 1.916e7 | +0.06% |<br>
> | real/smallpt || | 7088127.000 | +0.47% |<br>
> | real/symalg || | 5981494.000 | -0.11% |<br>
> | real/veritas || | 1.860e7 | -1.22% |<br>
> | shootout/binary-trees || | 3.661e7 | +0.01% |<br>
> | shootout/fannkuch-redux || | 7741.000 | -0.62% |<br>
> | shootout/fasta || | 5.215e7 | +0.01% |<br>
> | shootout/k-nucleotide || | 1.247e7 | +0.01% |<br>
> | shootout/n-body || | 8025.000 | +0.04% |<br>
> | shootout/pidigits || | 2.316e8 | +0.02% |<br>
> | shootout/reverse-complement || | 7627.000 | -0.20% |<br>
> | shootout/spectral-norm || | 21764.000 | +0.23% |<br>
> | smp/callback001 || | 5824201.000 | +0.07% |<br>
> | smp/callback002 || | 8288204.000 | -0.09% |<br>
> | smp/chan || | 2.846e7 | +2.62% |<br>
> | smp/sieve || | 5.400e7 | -1.10% |<br>
> | smp/threads001 || | 2.312e7 | +0.45% |<br>
> | smp/threads003 || | 4.773e7 | -0.22% |<br>
> | smp/threads006 || | 9331792.000 | +0.02% |<br>
> | smp/threads007 || | 2.721e7 | +0.36% |<br>
> | spectral/ansi || | 6.940e7 | -0.01% |<br>
> | spectral/atom || | 1.248e8 | +0.01% |<br>
> | spectral/awards || | 7810137.000 | -1.82% |<br>
> | spectral/banner || | 3.727e7 | +2.57% |<br>
> | spectral/boyer || | 2.284e7 | -0.19% |<br>
> | spectral/boyer2 || | 3.926e7 | -0.63% |<br>
> | spectral/calendar || | 7366268.000 | -0.91% |<br>
> | spectral/cichelli || | 1.797e7 | +0.02% |<br>
> | spectral/circsim || | 9.138e7 | +0.07% |<br>
> | spectral/clausify || | 6134801.000 | -0.11% |<br>
> | spectral/constraints || | 2.950e7 | +0.38% |<br>
> | spectral/cryptarithm1 || | 3139494.000 | +0.08% |<br>
> | spectral/cryptarithm2 || | 3481535.000 | +0.35% |<br>
> | spectral/cse || | 4798864.000 | -7.01% |<br>
> | spectral/dom-lt || | 2.556e7 | -0.11% |<br>
> | spectral/eliza || | 1.921e7 | +1.14% |<br>
> | spectral/exact-reals || | 2391927.000 | +1.24% |<br>
> | spectral/expert || | 2.311e7 | -0.08% |<br>
> | spectral/fft2 || | 1.917e8 | +0.81% |<br>
> | spectral/fibheaps || | 5.236e7 | -0.06% |<br>
> | spectral/fish || | 8017906.000 | +0.13% |<br>
> | spectral/gcd || | 1652038.000 | +0.07% |<br>
> | spectral/hartel/comp_lab_zift || | 6.167e7 | -0.11% |<br>
> | spectral/hartel/event || | 4.857e7 | -2.47% |<br>
> | spectral/hartel/fft || | 3.723e7 | -0.04% |<br>
> | spectral/hartel/genfft || | 2.201e7 | +1.31% |<br>
> | spectral/hartel/ida || | 1.316e7 | +0.16% |<br>
> | spectral/hartel/listcompr || | 9143834.000 | +1.54% |<br>
> | spectral/hartel/listcopy || | 1.018e7 | +2.27% |<br>
> | spectral/hartel/nucleic2 || | 1.035e7 | -2.83% |<br>
> | spectral/hartel/parstof || | 2.290e7 | -2.36% |<br>
> | spectral/hartel/sched || | 6090930.000 | -0.15% |<br>
> | spectral/hartel/solid || | 3.408e7 | +0.00% |<br>
> | spectral/hartel/transform || | 2.255e7 | +0.25% |<br>
> | spectral/hartel/typecheck || | 1.447e7 | -1.37% |<br>
> | spectral/hartel/wang || | 1.089e8 | +0.19% |<br>
> | spectral/hartel/wave4main || | 8.229e7 | +0.29% |<br>
> | spectral/integer || | 1101168.000 | -0.06% |<br>
> | spectral/knights || | 3.424e7 | +0.92% |<br>
> | spectral/lambda || | 6.667e7 | +0.14% |<br>
> | spectral/last-piece || | 3620219.000 | -0.43% |<br>
> | spectral/lcss || | 7.252e7 | -0.26% |<br>
> | spectral/life || | 1.231e8 | -0.11% |<br>
> | spectral/mandel || | 741678.000 | +0.09% |<br>
> | spectral/mandel2 || | 311375.000 | +0.79% |<br>
> | spectral/mate || | 4858523.000 | -1.23% |<br>
> | spectral/minimax || | 1172869.000 | +0.51% |<br>
> | spectral/multiplier || | 1.060e8 | +0.03% |<br>
> | spectral/para || | 5.089e7 | +0.15% |<br>
> | spectral/power || | 4.488e7 | -0.00% |<br>
> | spectral/pretty || | 7649.000 | +0.38% |<br>
> | spectral/primetest || | 500918.000 | +1.32% |<br>
> | spectral/puzzle || | 3210919.000 | -0.09% |<br>
> | spectral/rewrite || | 825290.000 | -7.73% |<br>
> | spectral/scc || | 7483.000 | +0.16% |<br>
> | spectral/simple || | 8.786e7 | +0.01% |<br>
> | spectral/sorting || | 1.261e8 | -0.02% |<br>
> | spectral/sphere || | 4854033.000 | +0.43% |<br>
> | spectral/treejoin || | 8.455e7 | +0.03% |<br>
> +===============================++==+=============+==================+<br>
> | geom mean || | +0.03% | |<br>
> +-------------------------------++--+-------------+------------------+<br>
> <br>
> <br>
> # perf instructions<br>
> <br>
> +-------------------------------++--+-------------+------------------+<br>
> | || | master/ | callstack/ (rel) |<br>
> +===============================++==+=============+==================+<br>
> | imaginary/bernouilli || | 7.085e9 | -0.22% |<br>
> | imaginary/digits-of-e1 || | 5.547e9 | -0.03% |<br>
> | imaginary/digits-of-e2 || | 5.549e9 | -0.06% |<br>
> | imaginary/exp3_8 || | 8.785e9 | -0.06% |<br>
> | imaginary/gen_regexps || | 8.650e9 | -0.04% |<br>
> | imaginary/integrate || | 6.260e9 | +0.20% |<br>
> | imaginary/kahan || | 6.699e9 | +0.16% |<br>
> | imaginary/paraffins || | 8.112e9 | -0.24% |<br>
> | imaginary/primes || | 8.244e9 | -0.24% |<br>
> | imaginary/queens || | 1.009e10 | +0.04% |<br>
> | imaginary/rfib || | 5.298e9 | +0.14% |<br>
> | imaginary/tak || | 5.861e9 | +0.10% |<br>
> | imaginary/wheel-sieve1 || | 6.662e9 | -0.76% |<br>
> | imaginary/wheel-sieve2 || | 6.278e9 | +0.38% |<br>
> | imaginary/x2n1 || | 7.453e9 | -0.12% |<br>
> | parallel/blackscholes || | 8.096e9 | -0.18% |<br>
> | parallel/coins || | 1.194e10 | -0.03% |<br>
> | parallel/gray || | 6.154e9 | -0.07% |<br>
> | parallel/mandel || | 3.293e10 | +0.12% |<br>
> | parallel/matmult || | 1.118e10 | +0.06% |<br>
> | parallel/minimax || | 3.867e10 | -0.11% |<br>
> | parallel/nbody || | 7.934e8 | +0.05% |<br>
> | parallel/parfib || | 2.232e10 | -0.01% |<br>
> | parallel/partree || | 7.358e9 | +0.02% |<br>
> | parallel/prsa || | 1.808e10 | +0.14% |<br>
> | parallel/queens || | 1.037e10 | -0.03% |<br>
> | parallel/ray || | 1.301e10 | +0.01% |<br>
> | parallel/sumeuler || | 3.487e9 | -0.01% |<br>
> | parallel/transclos || | 1.983e10 | -0.02% |<br>
> | real/anna || | 5.334e9 | +0.27% |<br>
> | real/ben-raytrace || | 1.216e11 | -0.02% |<br>
> | real/bspt || | 9.224e9 | -0.05% |<br>
> | real/cacheprof || | 6.735e9 | -0.46% |<br>
> | real/compress || | 5.810e9 | +0.07% |<br>
> | real/compress2 || | 4.580e9 | -0.21% |<br>
> | real/eff/CS || | 7.582e8 | +1.19% |<br>
> | real/eff/CSD || | 3.758e9 | -0.56% |<br>
> | real/eff/FS || | 2.792e9 | +0.02% |<br>
> | real/eff/S || | 4.760e9 | -0.60% |<br>
> | real/eff/VS || | 2.285e9 | +0.20% |<br>
> | real/eff/VSD || | 8.315e7 | +0.02% |<br>
> | real/eff/VSM || | 9.480e8 | +1.48% |<br>
> | real/fem || | 6.641e9 | -0.53% |<br>
> | real/fluid || | 3.914e9 | +0.00% |<br>
> | real/fulsom || | 2.497e9 | -0.22% |<br>
> | real/gamteb || | 1.013e10 | -0.01% |<br>
> | real/gg || | 7.243e9 | +0.12% |<br>
> | real/grep || | 7.563e9 | -0.10% |<br>
> | real/hidden || | 7.209e9 | +1.57% |<br>
> | real/hpg || | 4.982e9 | +0.91% |<br>
> | real/infer || | 8.312e9 | +0.11% |<br>
> | real/lift || | 4.441e9 | -0.18% |<br>
> | real/linear || | 8.438e9 | +1.90% |<br>
> | real/maillist || | 4.297e9 | -0.94% |<br>
> | real/mkhprog || | 2.874e7 | -0.06% |<br>
> | real/parser || | 5.177e9 | +0.14% |<br>
> | real/pic || | 3.265e9 | +0.10% |<br>
> | real/prolog || | 5.755e9 | -0.18% |<br>
> | real/reptile || | 6.050e9 | +0.07% |<br>
> | real/rsa || | 7.177e9 | +0.03% |<br>
> | real/scs || | 6.184e9 | -0.23% |<br>
> | real/smallpt || | 1.129e10 | -0.16% |<br>
> | real/symalg || | 8.247e9 | -0.14% |<br>
> | real/veritas || | 4.833e9 | -0.01% |<br>
> | shootout/binary-trees || | 1.071e10 | +0.12% |<br>
> | shootout/fannkuch-redux || | 1.912e10 | +0.12% |<br>
> | shootout/fasta || | 4.273e9 | -0.50% |<br>
> | shootout/k-nucleotide || | 4.227e9 | -1.34% |<br>
> | shootout/n-body || | 3.725e9 | -0.23% |<br>
> | shootout/pidigits || | 8.095e9 | -0.04% |<br>
> | shootout/reverse-complement || | 3245583.000 | -2.41% |<br>
> | shootout/spectral-norm || | 4.238e9 | -0.15% |<br>
> | smp/callback001 || | 1.601e9 | +0.55% |<br>
> | smp/callback002 || | 2.619e9 | +0.19% |<br>
> | smp/chan || | 7.817e9 | -0.01% |<br>
> | smp/sieve || | 2.361e9 | +0.85% |<br>
> | smp/threads001 || | 5.145e9 | +0.17% |<br>
> | smp/threads003 || | 2.922e9 | -0.06% |<br>
> | smp/threads006 || | 1.081e9 | +4.82% |<br>
> | smp/threads007 || | 4.328e9 | +0.63% |<br>
> | spectral/ansi || | 5.961e9 | +0.21% |<br>
> | spectral/atom || | 5.864e9 | -0.10% |<br>
> | spectral/awards || | 8.749e9 | -0.02% |<br>
> | spectral/banner || | 8.862e9 | +0.12% |<br>
> | spectral/boyer || | 7.669e9 | -0.09% |<br>
> | spectral/boyer2 || | 8.888e9 | +0.04% |<br>
> | spectral/calendar || | 7.541e9 | +0.13% |<br>
> | spectral/cichelli || | 8.675e9 | -0.17% |<br>
> | spectral/circsim || | 6.901e9 | +0.12% |<br>
> | spectral/clausify || | 6.227e9 | -0.09% |<br>
> | spectral/constraints || | 8.308e9 | +0.36% |<br>
> | spectral/cryptarithm1 || | 7.804e9 | -0.23% |<br>
> | spectral/cryptarithm2 || | 6.757e9 | +0.11% |<br>
> | spectral/cse || | 6.357e9 | +0.01% |<br>
> | spectral/dom-lt || | 7.774e9 | +0.17% |<br>
> | spectral/eliza || | 8.279e9 | -0.12% |<br>
> | spectral/exact-reals || | 5.599e9 | -0.07% |<br>
> | spectral/expert || | 5.096e9 | -0.09% |<br>
> | spectral/fft2 || | 8.818e9 | +0.48% |<br>
> | spectral/fibheaps || | 8.019e9 | -0.12% |<br>
> | spectral/fish || | 7.319e9 | -0.03% |<br>
> | spectral/gcd || | 6.381e9 | +0.26% |<br>
> | spectral/hartel/comp_lab_zift || | 8.747e9 | -0.45% |<br>
> | spectral/hartel/event || | 9.153e9 | -1.50% |<br>
> | spectral/hartel/fft || | 3.237e9 | -0.02% |<br>
> | spectral/hartel/genfft || | 1.020e10 | +0.14% |<br>
> | spectral/hartel/ida || | 5.420e9 | -0.32% |<br>
> | spectral/hartel/listcompr || | 6.143e9 | +0.12% |<br>
> | spectral/hartel/listcopy || | 6.759e9 | +0.01% |<br>
> | spectral/hartel/nucleic2 || | 4.413e9 | -0.67% |<br>
> | spectral/hartel/parstof || | 5.552e9 | +0.04% |<br>
> | spectral/hartel/sched || | 5.807e9 | -0.02% |<br>
> | spectral/hartel/solid || | 5.850e9 | +0.22% |<br>
> | spectral/hartel/transform || | 5.713e9 | -0.01% |<br>
> | spectral/hartel/typecheck || | 5.844e9 | -0.04% |<br>
> | spectral/hartel/wang || | 8.727e9 | +0.29% |<br>
> | spectral/hartel/wave4main || | 6.034e9 | -0.20% |<br>
> | spectral/integer || | 7.048e9 | +0.64% |<br>
> | spectral/knights || | 8.310e9 | -0.08% |<br>
> | spectral/lambda || | 8.091e9 | -0.12% |<br>
> | spectral/last-piece || | 1.877e9 | +0.11% |<br>
> | spectral/lcss || | 8.776e9 | -0.10% |<br>
> | spectral/life || | 9.143e9 | -0.05% |<br>
> | spectral/mandel || | 7.015e9 | +0.24% |<br>
> | spectral/mandel2 || | 3.957e9 | +0.03% |<br>
> | spectral/mate || | 7.573e9 | +0.11% |<br>
> | spectral/minimax || | 8.645e9 | +0.10% |<br>
> | spectral/multiplier || | 6.097e9 | +0.06% |<br>
> | spectral/para || | 6.562e9 | +0.03% |<br>
> | spectral/power || | 6.758e9 | -0.23% |<br>
> | spectral/pretty || | 3371581.000 | -0.75% |<br>
> | spectral/primetest || | 7.409e9 | -0.04% |<br>
> | spectral/puzzle || | 6.405e9 | -0.19% |<br>
> | spectral/rewrite || | 5.558e9 | +0.62% |<br>
> | spectral/scc || | 3244220.000 | -1.55% |<br>
> | spectral/simple || | 1.220e10 | +0.25% |<br>
> | spectral/sorting || | 9.082e9 | -0.05% |<br>
> | spectral/sphere || | 5.371e9 | -0.18% |<br>
> | spectral/treejoin || | 9.881e9 | -0.07% |<br>
> +===============================++==+=============+==================+<br>
> | geom mean || | +0.02% | |<br>
> +-------------------------------++--+-------------+------------------+<br>
> <br>
> <br>
> <br>
> # perf cycles<br>
> <br>
> +-------------------------------++--+-------------+------------------+<br>
> | || | master/ | callstack/ (rel) |<br>
> +===============================++==+=============+==================+<br>
> | imaginary/bernouilli || | 3.726e9 | +0.96% |<br>
> | imaginary/digits-of-e1 || | 2.561e9 | +3.96% |<br>
> | imaginary/digits-of-e2 || | 2.828e9 | -1.96% |<br>
> | imaginary/exp3_8 || | 3.231e9 | +2.40% |<br>
> | imaginary/gen_regexps || | 4.250e9 | +0.26% |<br>
> | imaginary/integrate || | 2.968e9 | -9.55% |<br>
> | imaginary/kahan || | 3.062e9 | -0.40% |<br>
> | imaginary/paraffins || | 3.083e9 | -1.94% |<br>
> | imaginary/primes || | 2.593e9 | +1.49% |<br>
> | imaginary/queens || | 4.713e9 | -0.75% |<br>
> | imaginary/rfib || | 3.942e9 | -0.09% |<br>
> | imaginary/tak || | 4.385e9 | -0.60% |<br>
> | imaginary/wheel-sieve1 || | 4.582e9 | -43.27% |<br>
> | imaginary/wheel-sieve2 || | 2.563e9 | -2.37% |<br>
> | imaginary/x2n1 || | 2.867e9 | +0.10% |<br>
> | parallel/blackscholes || | 4.854e9 | -1.40% |<br>
> | parallel/coins || | 4.809e9 | -0.08% |<br>
> | parallel/gray || | 3.600e9 | +2.96% |<br>
> | parallel/mandel || | 1.481e10 | -1.08% |<br>
> | parallel/matmult || | 1.570e10 | -2.83% |<br>
> | parallel/minimax || | 2.420e10 | +7.85% |<br>
> | parallel/nbody || | 4.377e8 | +1.37% |<br>
> | parallel/parfib || | 1.752e10 | +0.16% |<br>
> | parallel/partree || | 3.345e9 | +2.19% |<br>
> | parallel/prsa || | 7.052e9 | +6.03% |<br>
> | parallel/queens || | 4.686e9 | +0.06% |<br>
> | parallel/ray || | 9.246e9 | -2.73% |<br>
> | parallel/sumeuler || | 4.166e9 | -1.20% |<br>
> | parallel/transclos || | 1.095e10 | +1.05% |<br>
> | real/anna || | 5.456e9 | -0.28% |<br>
> | real/ben-raytrace || | 6.268e10 | +2.87% |<br>
> | real/bspt || | 3.695e9 | -0.12% |<br>
> | real/cacheprof || | 3.822e9 | +5.28% |<br>
> | real/compress || | 2.389e9 | -0.41% |<br>
> | real/compress2 || | 3.284e9 | -4.00% |<br>
> | real/eff/CS || | 1.825e8 | +0.07% |<br>
> | real/eff/CSD || | 1.185e9 | -0.92% |<br>
> | real/eff/FS || | 9.959e8 | +8.14% |<br>
> | real/eff/S || | 2.161e9 | +3.14% |<br>
> | real/eff/VS || | 9.353e8 | -4.17% |<br>
> | real/eff/VSD || | 2.326e7 | +3.42% |<br>
> | real/eff/VSM || | 3.006e8 | -15.15% |<br>
> | real/fem || | 3.274e9 | -5.66% |<br>
> | real/fluid || | 3.224e9 | -2.00% |<br>
> | real/fulsom || | 1.922e9 | -1.85% |<br>
> | real/gamteb || | 5.555e9 | -0.95% |<br>
> | real/gg || | 3.717e9 | +6.49% |<br>
> | real/grep || | 3.266e9 | -4.20% |<br>
> | real/hidden || | 5.666e9 | -6.63% |<br>
> | real/hpg || | 3.082e9 | +8.56% |<br>
> | real/infer || | 4.526e9 | +4.02% |<br>
> | real/lift || | 3.450e9 | -0.91% |<br>
> | real/linear || | 6.195e9 | -3.28% |<br>
> | real/maillist || | 3.815e9 | -3.44% |<br>
> | real/mkhprog || | 1.859e7 | -4.29% |<br>
> | real/parser || | 3.315e9 | +1.96% |<br>
> | real/pic || | 2.259e9 | -2.02% |<br>
> | real/prolog || | 4.197e9 | +0.39% |<br>
> | real/reptile || | 3.234e9 | -1.87% |<br>
> | real/rsa || | 2.852e9 | -1.52% |<br>
> | real/scs || | 2.870e9 | -2.91% |<br>
> | real/smallpt || | 7.328e9 | +0.78% |<br>
> | real/symalg || | 3.427e9 | +0.10% |<br>
> | real/veritas || | 2.909e9 | +0.50% |<br>
> | shootout/binary-trees || | 5.018e9 | -0.06% |<br>
> | shootout/fannkuch-redux || | 1.014e10 | -2.68% |<br>
> | shootout/fasta || | 2.439e9 | +1.45% |<br>
> | shootout/k-nucleotide || | 3.488e9 | +4.66% |<br>
> | shootout/n-body || | 2.098e9 | -0.03% |<br>
> | shootout/pidigits || | 3.265e9 | -0.18% |<br>
> | shootout/reverse-complement || | 3311908.000 | -6.15% |<br>
> | shootout/spectral-norm || | 1.525e9 | +0.62% |<br>
> | smp/callback001 || | 8.318e8 | +9.35% |<br>
> | smp/callback002 || | 1.337e9 | +5.34% |<br>
> | smp/chan || | 3.236e9 | -0.99% |<br>
> | smp/sieve || | 7.368e8 | -0.27% |<br>
> | smp/threads001 || | 2.874e9 | -0.77% |<br>
> | smp/threads003 || | 1.841e9 | -0.36% |<br>
> | smp/threads006 || | 1.144e9 | +2.09% |<br>
> | smp/threads007 || | 3.534e9 | +3.85% |<br>
> | spectral/ansi || | 1.973e9 | -2.41% |<br>
> | spectral/atom || | 2.944e9 | -0.80% |<br>
> | spectral/awards || | 5.452e9 | -11.68% |<br>
> | spectral/banner || | 4.185e9 | -0.68% |<br>
> | spectral/boyer || | 4.195e9 | -1.23% |<br>
> | spectral/boyer2 || | 4.586e9 | -1.21% |<br>
> | spectral/calendar || | 3.726e9 | -1.97% |<br>
> | spectral/cichelli || | 4.325e9 | -0.26% |<br>
> | spectral/circsim || | 5.746e9 | -0.23% |<br>
> | spectral/clausify || | 3.735e9 | +0.10% |<br>
> | spectral/constraints || | 5.202e9 | +2.10% |<br>
> | spectral/cryptarithm1 || | 3.909e9 | -4.03% |<br>
> | spectral/cryptarithm2 || | 3.759e9 | -1.27% |<br>
> | spectral/cse || | 4.564e9 | -2.83% |<br>
> | spectral/dom-lt || | 4.830e9 | -0.05% |<br>
> | spectral/eliza || | 4.631e9 | -6.18% |<br>
> | spectral/exact-reals || | 3.471e9 | -0.08% |<br>
> | spectral/expert || | 4.020e9 | -1.27% |<br>
> | spectral/fft2 || | 4.706e9 | -1.71% |<br>
> | spectral/fibheaps || | 4.492e9 | +0.55% |<br>
> | spectral/fish || | 4.004e9 | +3.76% |<br>
> | spectral/gcd || | 3.413e9 | -2.86% |<br>
> | spectral/hartel/comp_lab_zift || | 5.377e9 | +4.10% |<br>
> | spectral/hartel/event || | 5.456e9 | -1.84% |<br>
> | spectral/hartel/fft || | 1.732e9 | +0.20% |<br>
> | spectral/hartel/genfft || | 5.124e9 | +2.82% |<br>
> | spectral/hartel/ida || | 4.414e9 | +2.00% |<br>
> | spectral/hartel/listcompr || | 3.458e9 | +3.84% |<br>
> | spectral/hartel/listcopy || | 3.776e9 | -4.30% |<br>
> | spectral/hartel/nucleic2 || | 4.137e9 | +4.49% |<br>
> | spectral/hartel/parstof || | 4.609e9 | -0.54% |<br>
> | spectral/hartel/sched || | 4.245e9 | -0.19% |<br>
> | spectral/hartel/solid || | 3.587e9 | +1.04% |<br>
> | spectral/hartel/transform || | 3.793e9 | +4.13% |<br>
> | spectral/hartel/typecheck || | 4.627e9 | -1.51% |<br>
> | spectral/hartel/wang || | 4.369e9 | -1.01% |<br>
> | spectral/hartel/wave4main || | 4.844e9 | -5.68% |<br>
> | spectral/integer || | 3.150e9 | -5.21% |<br>
> | spectral/knights || | 4.198e9 | +21.03% |<br>
> | spectral/lambda || | 3.534e9 | +1.90% |<br>
> | spectral/last-piece || | 1.134e9 | +0.65% |<br>
> | spectral/lcss || | 3.905e9 | -0.64% |<br>
> | spectral/life || | 5.646e9 | -6.52% |<br>
> | spectral/mandel || | 3.529e9 | -6.31% |<br>
> | spectral/mandel2 || | 2.570e9 | -0.24% |<br>
> | spectral/mate || | 5.761e9 | +4.42% |<br>
> | spectral/minimax || | 4.569e9 | -1.24% |<br>
> | spectral/multiplier || | 3.060e9 | +6.04% |<br>
> | spectral/para || | 4.232e9 | +1.90% |<br>
> | spectral/power || | 3.808e9 | -1.38% |<br>
> | spectral/pretty || | 3403388.000 | -22.39% |<br>
> | spectral/primetest || | 3.203e9 | -4.45% |<br>
> | spectral/puzzle || | 4.362e9 | -0.34% |<br>
> | spectral/rewrite || | 3.840e9 | +4.16% |<br>
> | spectral/scc || | 3133857.000 | +1.57% |<br>
> | spectral/simple || | 7.219e9 | -1.59% |<br>
> | spectral/sorting || | 4.285e9 | -0.29% |<br>
> | spectral/sphere || | 3.674e9 | -3.88% |<br>
> | spectral/treejoin || | 4.910e9 | +0.19% |<br>
> +===============================++==+=============+==================+<br>
> | geom mean || | -0.80% | |<br>
> +-------------------------------++--+-------------+------------------+<br>
> <br>
> _______________________________________________<br>
> Libraries mailing list<br>
> <a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br>
> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
> <br>
_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
</blockquote></div>