[GHC] #14521: Infinite loop at runtime
GHC
ghc-devs at haskell.org
Tue Nov 28 12:19:44 UTC 2017
#14521: Infinite loop at runtime
-------------------------------------+-------------------------------------
Reporter: OlivierSohn | Owner: (none)
Type: bug | Status: new
Priority: high | Milestone: 8.2.3
Component: Compiler | Version: 8.2.2
Resolution: | Keywords:
Operating System: MacOS X | Architecture:
Type of failure: Incorrect result | Unknown/Multiple
at runtime | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Old description:
> Hello,
>
> in https://github.com/OlivierSohn/hamazed/issues/1 I describe the
> following issue:
>
> **(Edit : the same behaviour exists with ghc 8.2.2)**
>
> When compiling on OSX with optimizations (`stack clean && stack build`
> using resolver `lts-9.12` (ghc 8.0.2)), the program loops infinitely
> (400% CPU, and execution is blocked) when an animation is triggered in
> the game. When compiling without optimizations, there is not this bug.
>
> The bug is visible in the full game at this commit :
> https://github.com/OlivierSohn/hamazed/commit/9f25223ef0502f91cd9633654bdb172f714c3920
> (to reproduce, shoot at a number in the game)
>
> And this commit shows a program with minimal code to reproduce the issue
> :
> https://github.com/OlivierSohn/hamazed/commit/30b0f703565a4150d686a36a4dfe9d36ce5989f1
>
> The expected output of the program is
>
> {{{
> Before rendering animations
> animation is rendered
> After rendering animations
> }}}
>
> What I observe is
>
> {{{
> Before rendering animations
> }}}
>
> I found several ways to circumvent the problem, wrote them in the code to
> help debugging.
>
> Also, here is my stack version if it matters:
> {{{
> stack version: `1.3.2, Git revision
> 3f675146590da4f3edf768b89355f798229da2a5 (4395 commits) x86_64
> hpack-0.15.0`
> }}}
>
> Thank you,
> Olivier
New description:
Hello,
For this program : https://github.com/OlivierSohn/hamazed/tree/repro-
ghc-14521-A
The expected output is:
{{{
Before rendering animations
animation is rendered
After rendering animations
}}}
What I observe is when compiling with ghc 8.0.2 or 8.2.2, with
optimizations:
{{{
Before rendering animations
}}}
I found several ways to circumvent the bug, and documented each one in the
source code.
Can someone take a look? Is my program an invalid program that was not
detected by the compiler?
Thank you,
Olivier
--
Comment (by OlivierSohn):
I update the description to reference the branch of the repro case and not
a particular commit, and to be more concise.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14521#comment:17>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list