[commit: ghc] master: Improve documentation of infinite inlining bug (d2e6a3b)

git at git.haskell.org git at git.haskell.org
Mon Mar 2 16:39:51 UTC 2015


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/d2e6a3b5edd687f2a384cd6671a519e222f664b8/ghc

>---------------------------------------------------------------

commit d2e6a3b5edd687f2a384cd6671a519e222f664b8
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Mon Mar 2 16:30:36 2015 +0000

    Improve documentation of infinite inlining bug
    
    This fixes the documentation suggestion in Trac #10105


>---------------------------------------------------------------

d2e6a3b5edd687f2a384cd6671a519e222f664b8
 docs/users_guide/bugs.xml | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/docs/users_guide/bugs.xml b/docs/users_guide/bugs.xml
index a23c75c..1e948e6 100644
--- a/docs/users_guide/bugs.xml
+++ b/docs/users_guide/bugs.xml
@@ -503,7 +503,7 @@ checking for duplicates.  The reason for this is efficiency, pure and simple.
 
       <listitem>
 	<para>GHC's inliner can be persuaded into non-termination
-        using the standard way to encode recursion via a data type:</para>
+        using the standard way to encode recursion via a data type:
 <programlisting>
   data U = MkU (U -> Bool)
 
@@ -513,8 +513,18 @@ checking for duplicates.  The reason for this is efficiency, pure and simple.
   x :: Bool
   x = russel (MkU russel)
 </programlisting>
-
-        <para>We have never found another class of programs, other
+        The non-termination is reported like this:
+<programlisting>
+ghc: panic! (the 'impossible' happened)
+  (GHC version 7.10.1 for x86_64-unknown-linux):
+	Simplifier ticks exhausted
+  When trying UnfoldingDone x_alB
+  To increase the limit, use -fsimpl-tick-factor=N (default 100)
+</programlisting>
+        with the panic being reported no matter how high a <literal>-fsimpl-tick-factor</literal> you supply.
+        </para>
+        <para>
+        We have never found another class of programs, other
         than this contrived one, that makes GHC diverge, and fixing
         the problem would impose an extra overhead on every
         compilation.  So the bug remains un-fixed.  There is more



More information about the ghc-commits mailing list