Skip to content

T3500b exhaust simplifier ticks (loops?) on WAY=optasm

$ make fulltest TEST="T3500b" WAY=optasm

=====> T3500b(optasm) 3767 of 4101 [0, 0, 0] 
cd ./typecheck/should_run && '/home/slyfox/dev/git/ghc-validate/inplace/bin/ghc-stage2' -fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-db -rtsopts -fno-ghci-history -o T3500b T3500b.hs -O -fasm   >T3500b.comp.stderr 2>&1
Compile failed (status 256) errors were:
[1 of 1] Compiling Main             ( T3500b.hs, T3500b.o )
ghc-stage2: panic! (the 'impossible' happened)
  (GHC version 7.9.20140907 for x86_64-unknown-linux):
        Simplifier ticks exhausted
    When trying RuleFired foldr/augment
    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: 12441

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

Attempt to increase -fsimpl-tick-factor does not help copiling sample. Looks like infinite inlining pass.

The test source itself:

{-# LANGUAGE TypeFamilies, FlexibleContexts, UndecidableInstances #-}

module Main where

newtype Mu f = Mu (f (Mu f)) 
     
type family Id m
type instance Id m = m

instance Show (Id (f (Mu f))) => Show (Mu f) where
    show (Mu f) = show f

showMu :: Mu (Either ()) -> String
showMu = show

item :: Mu (Either ())
item = Mu (Right (Mu (Left ())))

main = print (showMu item)
Trac metadata
Trac field Value
Version 7.9
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case T3500b
Differential revisions
BlockedBy
Related
Blocking
CC simonpj
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information