perf regression with TypeFamilies

Harendra Kumar harendra.kumar at gmail.com
Thu Jul 2 10:48:02 UTC 2020


I opened a GHC ticket (https://gitlab.haskell.org/ghc/ghc/-/issues/18414)
with full details.

-harendra

On Tue, 30 Jun 2020 at 18:25, Harendra Kumar <harendra.kumar at gmail.com>
wrote:

> Hi Richard,
>
> I am glad that you are interested in it. It is the runtime performance
> that degrades, and yes it is fully reproducible and publicly shareable, the
> library is open source so anyone can run these benchmarks. I had postponed
> the problem raising an issue to investigate it further here
> https://github.com/composewell/streamly/issues/567 . Since you are
> interested I will investigate it sooner. I have added some perf numbers in
> that issue.
>
> I was also surprised by it, thinking what can type families possibly do to
> degrade run time performance like that. I can try compiling one worst
> affected benchmark code and look at the core-2-core passes to see where it
> makes the difference.
>
> -harendra
>
> On Mon, 29 Jun 2020 at 19:45, Richard Eisenberg <rae at richarde.dev> wrote:
>
>> Hi Harendra,
>>
>> I saw your comment on a ghc proposal (
>> https://github.com/ghc-proposals/ghc-proposals/pull/343#issuecomment-650797297)
>> that said you experienced perf regressions with -XTypeFamilies enabled (but
>> no other changes). Are these reproducible in a way that can be shared
>> publicly? And are the regressions in compile times or run times?
>>
>> -XTypeFamilies enables -XMonoLocalBinds, which disables
>> let-generalization on some nested lets. It is thus just barely conceivable
>> that different Core is produced depending on this extension, and that there
>> may be a possibility of performance changes. But this would be unexpected,
>> and something worth investigating.
>>
>> In other words: if you can, do please post a bug -- simply enabling
>> -XTypeFamilies should not slow anything down!
>>
>> Thanks,
>> Richard
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20200702/eaa3aa3a/attachment.html>


More information about the ghc-devs mailing list