users_guide: Add note about #367 to Bugs section
authorBen Gamari <bgamari.foss@gmail.com>
Wed, 5 Aug 2015 12:21:28 +0000 (14:21 +0200)
committerBen Gamari <ben@smart-cactus.org>
Wed, 5 Aug 2015 12:45:16 +0000 (14:45 +0200)
This is a long-standing bug and should be mentioned in the users guide,
as noted in #10639.

Test Plan: Carefully check language.

Reviewers: simonpj, rwbarton, austin

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D1127

GHC Trac Issues: #10639, #367

docs/users_guide/bugs.xml

index 8673d71..1b4d5c9 100644 (file)
@@ -476,6 +476,21 @@ checking for duplicates.  The reason for this is efficiency, pure and simple.
 
     <itemizedlist>
       <listitem>
+        <para>GHC's runtime system implements cooperative multitasking, with
+        context switching potentially occurring only when a program allocates.
+        This means that programs that do not allocate may never context switch.
+        See
+        <ulink url="https://ghc.haskell.org/trac/ghc/ticket/367">Trac #367</ulink>
+        for further discussion.
+        </para>
+        <para>If you are hit by this, you may want to compile the affected module
+        with <literal>-fno-omit-yields</literal>. This flag ensures that yield points
+        are inserted at every function entrypoint (at the expense of a bit of
+        performance).
+        </para>
+      </listitem>
+
+      <listitem>
        <para> GHC can warn about non-exhaustive or overlapping
         patterns (see <xref linkend="options-sanity"/>), and usually
         does so correctly.  But not always.  It gets confused by