#4903: Inliner looping when specialising across modules (with GADTs and other
extensions)
---------------------------------------------+------------------------------
Reporter: dreixel | Owner: simonpj
Type: bug | Status: new
Priority: normal | Milestone: 7.2.1
Component: Compiler | Version: 7.1
Resolution: | Keywords:
Testcase: simplCore/should_compile/T4903 | Blockedby:
Difficulty: | Os: Unknown/Multiple
Blocking: | Architecture: Unknown/Multiple
Failure: Compile-time crash |
---------------------------------------------+------------------------------
Comment(by dreixel):
I now have an example which is simpler and shows a regression from 7.0.
This fragment in particular illustrates how compilation can fail both on
7.0 and 7.1, or only on 7.1:
{{{
tree :: Tree
-- |tree = undefined| compiles both with 7.0 and 7.1
tree = treeN 0 where
treeN 0 = undefined
treeN n = Bin (treeN 0) (treeN 0)
-- Replacing the line above with the line below makes 7.0 loop
-- treeN n = Bin (treeN (n-1)) (treeN (n-1))
}}}
Note that 7.0 is not behaving correctly for all cases, either, so this is
not "just" a regression. Attaching test files.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4903#comment:8>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs