<div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail_default" style="font-family:tahoma,sans-serif">
The type argument to LitRubbish should be a fixed RuntimeRep. If it is<br>
not, you can file a bug

</div></blockquote><div><br></div><div style="font-family:tahoma,sans-serif" class="gmail_default">Yes!  Please file a bug if you find this.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 15 Sept 2022 at 16:36, Krzysztof Gogolewski <<a href="mailto:krz.gogolewski@gmail.com">krz.gogolewski@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The type argument to LitRubbish should be a fixed RuntimeRep. If it is<br>
not, you can file a bug. I have fixed a related bug in f435d55fe969e7.<br>
<br>
Krzysztof<br>
<br>
On Thu, Sep 15, 2022 at 1:12 PM Csaba Hruska <<a href="mailto:csaba.hruska@gmail.com" target="_blank">csaba.hruska@gmail.com</a>> wrote:<br>
><br>
> 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.<br>
> 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`.<br>
> Thanks for the tips and feedback.<br>
> Regards,<br>
> Csaba<br>
><br>
> On Wed, Sep 14, 2022 at 6:44 PM Sam Derbyshire <<a href="mailto:sam.derbyshire@gmail.com" target="_blank">sam.derbyshire@gmail.com</a>> wrote:<br>
>><br>
>> 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?<br>
>><br>
>> On Wed, 14 Sept 2022 at 18:40, Csaba Hruska <<a href="mailto:csaba.hruska@gmail.com" target="_blank">csaba.hruska@gmail.com</a>> wrote:<br>
>>><br>
>>> Hi,<br>
>>> 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.<br>
>>><br>
>>> On Wed, 14 Sep 2022, 18:19 Sam Derbyshire, <<a href="mailto:sam.derbyshire@gmail.com" target="_blank">sam.derbyshire@gmail.com</a>> wrote:<br>
>>>><br>
>>>> Hi Csaba,<br>
>>>><br>
>>>> I think you want the function typeHasFixedRuntimeRep from GHC.Core.Type.<br>
>>>><br>
>>>> Best,<br>
>>>><br>
>>>> Sam<br>
>>>><br>
>>>> On Wed, 14 Sept 2022 at 18:12, Csaba Hruska <<a href="mailto:csaba.hruska@gmail.com" target="_blank">csaba.hruska@gmail.com</a>> wrote:<br>
>>>>><br>
>>>>> Hello GHC Devs,<br>
>>>>><br>
>>>>> I've noticed that the `isTypeLevPoly` function has been removed from GHC since 9.4.<br>
>>>>> I used it to decide the validity of querying the representation type of every value in the STG IR.<br>
>>>>> It was mandatory to prevent GHC panics, because there are a lot of partial functions in GHC.<br>
>>>>> Is there an alternative to `isTypeLevPoly` in GHC 9.4?<br>
>>>>><br>
>>>>> Best regards,<br>
>>>>> Csaba Hruska<br>
>>>>> _______________________________________________<br>
>>>>> ghc-devs mailing list<br>
>>>>> <a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
>>>>> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
><br>
> _______________________________________________<br>
> ghc-devs mailing list<br>
> <a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
</blockquote></div>