
I've investigated a bit more. You are right `typeHasFixedRuntimeRep` works
fine, the panic was caused by querying the representation type of
`LitRubbish` type argument. In some cases `getRuntimeRep` causes GHC panic
for `LitRubbish` type arguments.
I did solve the issue with special casing the LitRubbish type argument
handling by using only the `runtimeRepPrimRep` function. In the general
case I tested the type with `isUnboxedTupleType` and `isUnboxedSumType`
which rely on `getRuntimeRep`.
Thanks for the tips and feedback.
Regards,
Csaba
On Wed, Sep 14, 2022 at 6:44 PM Sam Derbyshire
Hmm, that's strange, both isTypeLevPoly and typeHasFixedRuntimeRep have the same precondition: the kind of the type is of the form TYPE rep. So they should panic in the same circumstances. Can you give a bit more information? What panics are you running into?
On Wed, 14 Sept 2022 at 18:40, Csaba Hruska
wrote: Hi, Thanks for the tip, I've tried it and it behaves differently than isTypeLevPoly. I can get panic when querying the reptype for fixed reptypes. That means isTypeLevPoly semantically is not the same as the negated result of typeHasFixedRuntimeRep.
On Wed, 14 Sep 2022, 18:19 Sam Derbyshire,
wrote: Hi Csaba,
I think you want the function typeHasFixedRuntimeRep from GHC.Core.Type.
Best,
Sam
On Wed, 14 Sept 2022 at 18:12, Csaba Hruska
wrote: Hello GHC Devs,
I've noticed that the `isTypeLevPoly` function has been removed from GHC since 9.4. I used it to decide the validity of querying the representation type of every value in the STG IR. It was mandatory to prevent GHC panics, because there are a lot of partial functions in GHC. Is there an alternative to `isTypeLevPoly` in GHC 9.4?
Best regards, Csaba Hruska _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs