[GHC] #10045: type holes related ghc panic
#10045: type holes related ghc panic -------------------------------------+------------------------------------- Reporter: pacak | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.1-rc2 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: Compile-time Unknown/Multiple | crash Test Case: | Blocked By: Blocking: | Related Tickets: Differential Revisions: | -------------------------------------+------------------------------------- {{{ sample.hs:9:13: Couldn't match expected type ‘t’ with actual type ‘()’ ‘t’ is untouchable inside the constraints () bound by the inferred type of foo :: Meta -> t1 at sample.hs:(6,1)-(9,17)ghc: panic! (the 'impossible' happened) (GHC version 7.10.0.0 for x86_64-unknown-linux): No skolem info: t_avJ[sk] Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug sample.hs: module Blah where newtype Meta = Meta () foo (Meta ws1) = let copy :: _ copy w from = copy w 1 in copy ws1 1 }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10045> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#10045: type holes related ghc panic -------------------------------------+------------------------------------- Reporter: pacak | Owner: thomasw Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.1-rc2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: Phab:D646 -------------------------------------+------------------------------------- Changes (by thomasw): * owner: => thomasw * differential: => Phab:D646 -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10045#comment:1> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#10045: type holes related ghc panic -------------------------------------+------------------------------------- Reporter: pacak | Owner: thomasw Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.1-rc2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: Phab:D646 -------------------------------------+------------------------------------- Comment (by Austin Seipp <austin@…>): In [changeset:"e9d72cefeda243d5962d0615fe7ad22ff615d134/ghc"]: {{{ #!CommitTicketReference repository="ghc" revision="e9d72cefeda243d5962d0615fe7ad22ff615d134" Fix #10045 Summary: SPJ's solution is to only bring the `TcId` (which includes the type) of a binder into scope when it had a non-partial type signature. Take care of this by only storing the `TcId` in `TcSigInfo` of non-partial type signatures, hence the change to `sig_poly_id :: Maybe TcId`. Only in case of a `Just` will we bring the `TcId` in scope. We still need to know the name of the binder, even when it has a partial type signature, so add a `sig_name :: Name` field. The field `sig_partial :: Bool` is no longer necessary, so reimplement `isPartialSig` in terms of `sig_poly_id`. Note that the new test case fails, but not because of a panic, but because the `Num a` constraint is missing. Adding an extra-constraints wildcard to `copy`'s signature would fix it. Test Plan: validate Reviewers: simonpj, austin Reviewed By: simonpj Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D646 GHC Trac Issues: #10045 }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10045#comment:2> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#10045: type holes related ghc panic -------------------------------------+------------------------------------- Reporter: pacak | Owner: thomasw Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.1-rc2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: Phab:D646 -------------------------------------+------------------------------------- Comment (by darchon): I'm terribly sorry for, once again, bringing up tickets late in the release cycle... but can the above fix be included in ghc 7.10? I'm getting: {{{ ~/devel/test$ ghci Blah.hs GHCi, version 7.10.0.20150323: http://www.haskell.org/ghc/ :? for help [1 of 1] Compiling Blah ( Blah.hs, interpreted ) Blah.hs:7:17: Found hole ‘_’ with type: t2 -> a1 -> t3 Where: ‘t2’ is a rigid type variable bound by the inferred type of copy :: Num a1 => t2 -> a1 -> t3 at Blah.hs:8:9 ‘t3’ is a rigid type variable bound by the inferred type of copy :: Num a1 => t2 -> a1 -> t3 at Blah.hs:8:9 ‘a1’ is a rigid type variable bound by the inferred type of copy :: Num a1 => t2 -> a1 -> t3 at Blah.hs:8:9 To use the inferred type, enable PartialTypeSignatures Relevant bindings include ws1 :: () (bound at Blah.hs:6:11) foo :: Meta -> t3 (bound at Blah.hs:6:1) In the type signature for ‘copy’: _ In the expression: let copy :: _ copy w from = copy w 1 in copy ws1 1 In an equation for ‘foo’: foo (Meta ws1) = let copy :: _ copy w from = copy w 1 in copy ws1 1 Blah.hs:8:9: No instance for (Num a) When checking that ‘copy’ has the specified type copy :: forall t t1 a. t -> a -> t1 Probable cause: the inferred type is ambiguous In the expression: let copy :: _ copy w from = copy w 1 in copy ws1 1 In an equation for ‘foo’: foo (Meta ws1) = let copy :: _ copy w from = copy w 1 in copy ws1 1 Blah.hs:9:13: Couldn't match expected type ‘t’ with actual type ‘()’ ‘t’ is untouchable inside the constraints () bound by the inferred type of foo :: Meta -> t1 at Blah.hs:(6,1)-(9,17)ghc: panic! (the 'impossible' happened) (GHC version 7.10.0.20150323 for x86_64-apple-darwin): No skolem info: t_avM[sk] Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug }}} Also, this is ''not'' mission critical for me! So if it's postponed to a later release then it's no problem. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10045#comment:3> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#10045: type holes related ghc panic -------------------------------------+------------------------------------- Reporter: pacak | Owner: thomasw Type: bug | Status: new Priority: normal | Milestone: 7.10.1 Component: Compiler | Version: 7.10.1-rc2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: Phab:D646 -------------------------------------+------------------------------------- Changes (by hvr): * milestone: => 7.10.1 -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10045#comment:4> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#10045: type holes related ghc panic -------------------------------------+------------------------------------- Reporter: pacak | Owner: thomasw Type: bug | Status: merge Priority: normal | Milestone: 7.10.1 Component: Compiler | Version: 7.10.1-rc2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: Phab:D646 -------------------------------------+------------------------------------- Changes (by hvr): * status: new => merge -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10045#comment:5> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#10045: type holes related ghc panic -------------------------------------+------------------------------------- Reporter: pacak | Owner: thomasw Type: bug | Status: closed Priority: normal | Milestone: 7.10.2 Component: Compiler | Version: 7.10.1-rc2 Resolution: fixed | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: Phab:D646 -------------------------------------+------------------------------------- Changes (by thoughtpolice): * status: merge => closed * resolution: => fixed Comment: Sorry, the patch in question is a bit tricky to merge as it has some dependencies. We may be able to revisit this one for 7.10.2, so I've pushed it off to said milestone. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10045#comment:7> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#10045: type holes related ghc panic -------------------------------------+------------------------------------- Reporter: pacak | Owner: Type: bug | Status: new Priority: normal | Milestone: 7.10.2 Component: Compiler | Version: 7.10.1-rc2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: Phab:D646 -------------------------------------+------------------------------------- Changes (by thoughtpolice): * owner: thomasw => * status: closed => new * resolution: fixed => -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10045#comment:8> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#10045: type holes related ghc panic -------------------------------------+------------------------------------- Reporter: pacak | Owner: Type: bug | thoughtpolice Priority: normal | Status: new Component: Compiler | Milestone: 7.10.2 Resolution: | Version: 7.10.1-rc2 Operating System: Unknown/Multiple | Keywords: Type of failure: Compile-time | Architecture: crash | Unknown/Multiple Blocked By: | Test Case: Related Tickets: | Blocking: | Differential Revisions: Phab:D646 -------------------------------------+------------------------------------- Changes (by simonpj): * owner: => thoughtpolice -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10045#comment:9> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#10045: type holes related ghc panic -------------------------------------+------------------------------------- Reporter: pacak | Owner: Type: bug | thoughtpolice Priority: normal | Status: merge Component: Compiler | Milestone: 7.10.2 Resolution: | Version: 7.10.1-rc2 Operating System: Unknown/Multiple | Keywords: Type of failure: Compile-time | Architecture: crash | Unknown/Multiple Blocked By: | Test Case: Related Tickets: | Blocking: | Differential Revisions: Phab:D646 -------------------------------------+------------------------------------- Changes (by simonpj): * status: new => merge Comment: I'll put this into the 7.10.2 merge queue so that Austin looks at it again -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10045#comment:10> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#10045: type holes related ghc panic -------------------------------------+------------------------------------- Reporter: pacak | Owner: Type: bug | thoughtpolice Priority: normal | Status: closed Component: Compiler | Milestone: 7.12.1 Resolution: fixed | Version: 7.10.1-rc2 Operating System: Unknown/Multiple | Keywords: Type of failure: Compile-time | Architecture: crash | Unknown/Multiple Blocked By: | Test Case: Related Tickets: | Blocking: | Differential Revisions: Phab:D646 -------------------------------------+------------------------------------- Changes (by thoughtpolice): * status: merge => closed * resolution: => fixed * milestone: 7.10.2 => 7.12.1 Comment: I looked at it again, and I'm still inclined to leave it out. :) It would be possible to remove the bits from the redundant superclass warning patch that touch it, but it looks like there have been some other various changes resulting in quite a few hunks that don't match up. So, unless someone Really Really needs it (or would like to backport the patch themselves!), I'd prefer to keep this one pointed to 7.12.1. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10045#comment:11> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#10045: type holes related ghc panic -------------------------------------+------------------------------------- Reporter: pacak | Owner: thoughtpolice Type: bug | Status: closed Priority: normal | Milestone: 8.0.1 Component: Compiler | Version: 7.10.1-rc2 Resolution: fixed | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D646 -------------------------------------+------------------------------------- Comment (by Simon Peyton Jones <simonpj@…>): In [changeset:"f86fb5e5a0694ea57cace824bbc0dce06bdf0698/ghc" f86fb5e5/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="f86fb5e5a0694ea57cace824bbc0dce06bdf0698" Add regression tests for #10045, #10999 }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10045#comment:13> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#10045: type holes related ghc panic -------------------------------------+------------------------------------- Reporter: pacak | Owner: thoughtpolice Type: bug | Status: closed Priority: normal | Milestone: 8.0.1 Component: Compiler | Version: 7.10.1-rc2 Resolution: fixed | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D646 Wiki Page: | -------------------------------------+------------------------------------- Comment (by jstolarek): Can #10946 be in any way related to this? -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10045#comment:14> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#10045: type holes related ghc panic -------------------------------------+------------------------------------- Reporter: pacak | Owner: thoughtpolice Type: bug | Status: closed Priority: normal | Milestone: 8.0.1 Component: Compiler | Version: 7.10.1-rc2 Resolution: fixed | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D646 Wiki Page: | -------------------------------------+------------------------------------- Comment (by nomeata): Too bad this did not make it into 7.10.3. The bug happens when trying out the code that explains how to derive `unsafeCoerce` from GND+TypeFamilies if we had not roles. (This comment has little nutritional content.) -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10045#comment:15> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
participants (1)
-
GHC