[GHC] #10555: RULE left-hand side too complicated to desugar

GHC ghc-devs at haskell.org
Sun Jun 21 12:23:34 UTC 2015


#10555: RULE left-hand side too complicated to desugar
-------------------------------------+-------------------------------------
        Reporter:  yongqli           |                   Owner:
            Type:  bug               |                  Status:  new
        Priority:  normal            |               Milestone:
       Component:  Compiler          |                 Version:  7.10.2-rc1
      Resolution:                    |                Keywords:
Operating System:  Unknown/Multiple  |            Architecture:
 Type of failure:  None/Unknown      |  Unknown/Multiple
      Blocked By:                    |               Test Case:  yes
 Related Tickets:                    |                Blocking:
                                     |  Differential Revisions:
-------------------------------------+-------------------------------------
Description changed by yongqli:

Old description:

> GHC version 7.10.1.20150612 breaks the `fast-math` package, which
> compiled fine on GHC 7.10.1. To reproduce, run `cabal install fast-math`.
>
> {{{
>
> Numeric/FastMath/Approximation.hs:60:1: Warning:
>     RULE left-hand side too complicated to desugar
>       Optimised lhs: case /## y2 x of wild_00 { __DEFAULT ->
>                      (case /## y1 x of wild_X2 { __DEFAULT -> +## wild_X2
> }) wild_00
>                      }
>       Orig lhs: case /## y2 x of wild_00 { __DEFAULT ->
>                 (case /## y1 x of wild_00 { __DEFAULT -> +## wild_00 })
> wild_00
>                 }
>
> Numeric/FastMath/Approximation.hs:63:1: Warning:
>     RULE left-hand side too complicated to desugar
>       Optimised lhs: case /## y2 x of wild_00 { __DEFAULT ->
>                      (case /## y1 x of wild_X2 { __DEFAULT -> -## wild_X2
> }) wild_00
>                      }
>       Orig lhs: case /## y2 x of wild_00 { __DEFAULT ->
>                 (case /## y1 x of wild_00 { __DEFAULT -> -## wild_00 })
> wild_00
>                 }
>
> Numeric/FastMath/Approximation.hs:103:1: Warning:
>     RULE left-hand side too complicated to desugar
>       Optimised lhs: case divideFloat# y2 x of wild_00 { __DEFAULT ->
>                      (case divideFloat# y1 x of wild_X2 { __DEFAULT ->
>                       minusFloat# wild_X2
>                       })
>                        wild_00
>                      }
>       Orig lhs: case divideFloat# y2 x of wild_00 { __DEFAULT ->
>                 (case divideFloat# y1 x of wild_00 { __DEFAULT ->
>                  minusFloat# wild_00
>                  })
>                   wild_00
>                 }
> ghc: panic! (the 'impossible' happened)
>   (GHC version 7.10.1.20150612 for x86_64-unknown-linux):
>         Simplifier ticks exhausted
>   When trying RuleFired float commute left *
>   To increase the limit, use -fsimpl-tick-factor=N (default 100)
>   If you need to do this, let GHC HQ know, and what factor you needed
>   To see detailed counts use -ddump-simpl-stats
>   Total ticks: 4004
>
> Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
> }}}

New description:

 GHC version 7.10.1.20150612 breaks the `fast-math` package, which compiled
 fine on GHC 7.10.1.20150519. To reproduce, run `cabal install fast-math`.

 {{{

 Numeric/FastMath/Approximation.hs:60:1: Warning:
     RULE left-hand side too complicated to desugar
       Optimised lhs: case /## y2 x of wild_00 { __DEFAULT ->
                      (case /## y1 x of wild_X2 { __DEFAULT -> +## wild_X2
 }) wild_00
                      }
       Orig lhs: case /## y2 x of wild_00 { __DEFAULT ->
                 (case /## y1 x of wild_00 { __DEFAULT -> +## wild_00 })
 wild_00
                 }

 Numeric/FastMath/Approximation.hs:63:1: Warning:
     RULE left-hand side too complicated to desugar
       Optimised lhs: case /## y2 x of wild_00 { __DEFAULT ->
                      (case /## y1 x of wild_X2 { __DEFAULT -> -## wild_X2
 }) wild_00
                      }
       Orig lhs: case /## y2 x of wild_00 { __DEFAULT ->
                 (case /## y1 x of wild_00 { __DEFAULT -> -## wild_00 })
 wild_00
                 }

 Numeric/FastMath/Approximation.hs:103:1: Warning:
     RULE left-hand side too complicated to desugar
       Optimised lhs: case divideFloat# y2 x of wild_00 { __DEFAULT ->
                      (case divideFloat# y1 x of wild_X2 { __DEFAULT ->
                       minusFloat# wild_X2
                       })
                        wild_00
                      }
       Orig lhs: case divideFloat# y2 x of wild_00 { __DEFAULT ->
                 (case divideFloat# y1 x of wild_00 { __DEFAULT ->
                  minusFloat# wild_00
                  })
                   wild_00
                 }
 ghc: panic! (the 'impossible' happened)
   (GHC version 7.10.1.20150612 for x86_64-unknown-linux):
         Simplifier ticks exhausted
   When trying RuleFired float commute left *
   To increase the limit, use -fsimpl-tick-factor=N (default 100)
   If you need to do this, let GHC HQ know, and what factor you needed
   To see detailed counts use -ddump-simpl-stats
   Total ticks: 4004

 Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
 }}}

--

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10555#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list