[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