[Haskell-cafe] Testing of GHC extensions & optimizations
Rodrigo Stevaux
roehst at gmail.com
Mon Sep 3 13:11:51 UTC 2018
Ok this is the kind of stuff im looking for. This is great. Many thanks for
the insight.
Em seg, 3 de set de 2018 às 04:08, Emil Axelsson <78emil at gmail.com>
escreveu:
> Have a look at Michal Palka's Ph.D. thesis:
>
> https://research.chalmers.se/publication/195849
>
> IIRC, his testing revealed several strictness bugs in GHC when compiling
> with optimization.
>
> / Emil
>
> Den 2018-09-03 kl. 03:40, skrev Rodrigo Stevaux:
> > Thanks for the clarification.
> >
> > What I am hinting at is, the Csmith project caught many bugs in C
> > compilers by using random testing -- feeding random programs and
> > testing if the optimizations preserved program behavior.
> >
> > Haskell, having tens of optimizations, could be a potential
> > application of the same technique.
> >
> > I have no familiarity with the GHC or with any compilers in general; I
> > am just looking for something to study.
> >
> > My questions in its most direct form is, as in your view, could GHC
> > optimizations hide bugs that could be potentially be revealed by
> > exploring program spaces?
> >
> > Em dom, 2 de set de 2018 às 16:58, Sven Panne <svenpanne at gmail.com
> > <mailto:svenpanne at gmail.com>> escreveu:
> >
> > Am So., 2. Sep. 2018 um 20:05 Uhr schrieb Rodrigo Stevaux
> > <roehst at gmail.com <mailto:roehst at gmail.com>>:
> >
> > Hi Omer, thanks for the reply. The tests you run are for
> > regression testing, that is, non-functional aspects, is my
> > understanding right? [...]
> >
> >
> > Quite the opposite, the usual steps are:
> >
> > * A bug is reported.
> > * A regression test is added to GHC's test suite, reproducing
> > the bug
> > (https://ghc.haskell.org/trac/ghc/wiki/Building/RunningTests/Adding
> ).
> > * The bug is fixed.
> >
> > This way it is made sure that the bug doesn't come back later. Do
> > this for a few decades, and you have a very comprehensive test
> > suite for functional aspects. :-) The reasoning behind this:
> > Blindly adding tests is wasted effort most of time, because this
> > way you often test things which only very rarely break: Bugs OTOH
> > hint you very concretely at problematic/tricky/complicated parts
> > of your SW.
> >
> > Catching increases in runtime/memory consumption is a slightly
> > different story, because you have to come up with "typical"
> > scenarios to make useful comparisons. You can have synthetic
> > scenarios for very specific parts of the compiler, too, like
> > pattern matching with tons of constructors, or using gigantic
> > literals, or type checking deeply nested tricky things, etc., but
> > I am not sure if such things are usually called "regression tests".
> >
> > Cheers,
> > S.
> >
> >
> >
> >
> > _______________________________________________
> > Haskell-Cafe mailing list
> > To (un)subscribe, modify options or view archives go to:
> > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> > Only members subscribed via the mailman list are allowed to post.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20180903/28c4aa77/attachment.html>
More information about the Haskell-Cafe
mailing list