The type argument to LitRubbish should be a fixed RuntimeRep. If it is
not, you can file a bug. I have fixed a related bug in f435d55fe969e7.

Krzysztof

On Thu, Sep 15, 2022 at 1:12 PM Csaba Hruska <csaba.hru...@gmail.com> wrote:
>
> 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 <sam.derbysh...@gmail.com> 
> wrote:
>>
>> 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 <csaba.hru...@gmail.com> 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, <sam.derbysh...@gmail.com> 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 <csaba.hru...@gmail.com> 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
>
> _______________________________________________
> ghc-devs mailing list
> ghc-devs@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to