[GHC] #12409: Unboxed tuples have no type representations

GHC ghc-devs at haskell.org
Tue Jul 19 09:21:47 UTC 2016


#12409: Unboxed tuples have no type representations
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.0.2
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:  typeable
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

@@ -18,2 +18,1 @@
- The problem, as usual, is that the tycons are missing from
- `knownKeyNames`.
+ The problem, as usual, is that the tycons are missing from `primTyCons`.

New description:

 This ticket continues with the long tradition of types missing type
 representations (see #12082, #12132, #11120). This time the culprit is
 unboxed tuples,
 {{{
 $ ghci
 GHCi, version 8.0.1: http://www.haskell.org/ghc/  :? for help
 Loaded GHCi configuration from /home/ben/.ghci
 λ> import Data.Typeable
 λ> :set -XUnboxedTuples
 λ> typeRep (Proxy :: Proxy (#Int, Int#))
 ghc: panic! (the 'impossible' happened)
   (GHC version 8.0.1 for x86_64-unknown-linux):
         tyConRep (#,#)

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

 The problem, as usual, is that the tycons are missing from `primTyCons`.

--

Comment (by bgamari):

 > Why does it matter that they are not in `knownKeyNames`?

 Sorry, I had meant `primTyCons` above. The reason is that `TcTypeable`
 uses `primTyCons` as the list of `TyCon`s which are defined in `GHC.Prim`.
 When compiling `GHC.Types` `TcTypeable` generate Typeable representations
 for the types in `primTyCons`. If a primitive TyCon is missing from the
 list then that type's `Typeable` representation will also be missing
 (which I believe is what happened in this bug).

 Ultimately we don't want to add unboxed tuples to `primTyCons` since we
 don't want to add them to the original name cache (as discussed in
 #12357). I have a proposed solution on the way.

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


More information about the ghc-tickets mailing list