RE: Specialization plugin

2016-10-28 Thread Simon Peyton Jones via ghc-devs
I’d really like to know why INLINABLE pragmas don’t work. Perhaps an example? Only the type checker currently can conjure up dictionaries. It would presumably not be impossible to do so later, but it’d be quite a new thing, involving invoking the constraint solver. The pattern-match overlap ch

Re: Specialization plugin

2016-10-29 Thread Ryan Trinkle
I definitely plan to investigate the INLINABLE thing. In small programs, it all appears to be working as expected. However, in a larger (~50 modules) client project, I think (but have not 100% confirmed) that it is not specializing everything. The Core certainly has a good number of Reflex dicti

Re: Specialization plugin

2016-10-30 Thread Christiaan Baaij
One small question: what's the difference between adding INLINABLE everywhere, and just compiling with -fexpose-all-unfoldings, https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/using-optimisation.html#ghc-flag--fexpose-all-unfoldings? Is there any reason you couldn't use that flag as

Re: Specialization plugin

2016-10-30 Thread Ryan Trinkle
My understanding was that they ought to be the same. However, that didn't seem to be the case. In my small example, where the plugin did work, -fexpose-all-unfoldings did not. On Sun, Oct 30, 2016 at 8:23 AM, Christiaan Baaij < christiaan.ba...@gmail.com> wrote: > One small question: what's the

Re: Specialization plugin

2016-10-31 Thread Matthew Pickering
I am helping Ryan investigate this. See https://ghc.haskell.org/trac/ghc/ticket/12791 for one example which we have identified so far. Matt On Fri, Oct 28, 2016 at 10:14 PM, Simon Peyton Jones via ghc-devs wrote: > I’d really like to know why INLINABLE pragmas don’t work. Perhaps an > example?