<div dir="ltr">Hi Omer, thanks for the reply. The tests you run are for regression testing, that is, non-functional aspects, is my understanding right? What about testing that optimizations and extensions are correct from a functional aspect?<br></div><br><div class="gmail_quote"><div dir="ltr">Em sáb, 1 de set de 2018 às 08:32, Ömer Sinan Ağacan <<a href="mailto:omeragacan@gmail.com">omeragacan@gmail.com</a>> escreveu:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
Here are a few things we do regarding compiler/runtime performance:<br>
<br>
- Each commit goes through some set of tests, some of which also check max.<br>
  residency, total allocations etc. of the compiler or the compiled program,<br>
  and fail if those numbers are more than the allowed amount. See [1] for an<br>
  example.<br>
<br>
- There's <a href="https://perf.haskell.org/ghc/" rel="noreferrer" target="_blank">https://perf.haskell.org/ghc/</a> which does some testing on every<br>
  commit. I don't know what exactly it's doing (hard to tell from the web page,<br>
  but I guess it's only running a few select tests/benchmarks?). I've<br>
  personally never used it, I just know that it exists.<br>
<br>
- Most of the time if a patch is expected to change compiler or runtime<br>
  performance the author submits nofib results and updates the perf tests in the<br>
  test suite for new numbers. This process is manual and sometimes contributors<br>
  are asked for nofib numbers by reviewers etc. See [2,3] for nofib.<br>
<br>
We currently don't use random testing.<br>
<br>
[1]: <a href="https://github.com/ghc/ghc/blob/565ef4cc036905f9f9801c1e775236bb007b026c/testsuite/tests/perf/compiler/all.T#L30" rel="noreferrer" target="_blank">https://github.com/ghc/ghc/blob/565ef4cc036905f9f9801c1e775236bb007b026c/testsuite/tests/perf/compiler/all.T#L30</a><br>
[2]: <a href="https://github.com/ghc/nofib" rel="noreferrer" target="_blank">https://github.com/ghc/nofib</a><br>
[3]: <a href="https://ghc.haskell.org/trac/ghc/wiki/Building/RunningNoFib" rel="noreferrer" target="_blank">https://ghc.haskell.org/trac/ghc/wiki/Building/RunningNoFib</a><br>
<br>
Ömer<br>
<br>
Rodrigo Stevaux <<a href="mailto:roehst@gmail.com" target="_blank">roehst@gmail.com</a>>, 31 Ağu 2018 Cum, 20:54 tarihinde şunu yazdı:<br>
><br>
> Hi,<br>
><br>
> For those familiar with GHC source code & internals, how are extensions & optimizations tested? And what are the quality policies for accepting new code into GHC?<br>
><br>
> I am interested in testing compilers in general using random testing. Is it used on GHC?<br>
><br>
><br>
> _______________________________________________<br>
> Haskell-Cafe mailing list<br>
> To (un)subscribe, modify options or view archives go to:<br>
> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
> Only members subscribed via the mailman list are allowed to post.<br>
</blockquote></div>