2016-10-25 20:24:23 +0000 <ryantrinkle> nearly everything fails to specialize
2016-10-25 20:24:23 +0000 <mpickering> And these functions are marked INLINABLE?
2016-10-25 20:24:32 +0000 <ryantrinkle> mpickering: i wrote a compiler plugin that marks *everything* INLINABLE
2016-10-25 20:24:32 +0000 <ezyang> ryantrinkle: You'll probably have to look at GHC source to figure it out
2016-10-25 20:24:48 +0000amyers(~quassel@128.177.89.240.available.zip.zayo.com) (Ping timeout: 244 seconds)
2016-10-25 20:24:56 +0000 <mpickering> and they still fail to specialise? this is surprising
2016-10-25 20:24:56 +0000Cale(~cale@2607:fea8:98e0:c3f:9d8f:73:82cc:fefa)
2016-10-25 20:25:51 +0000 <ezyang> mpickering: not surprising, if it's too big GHC won't want to do it
2016-10-25 20:26:58 +0000 <ryantrinkle> mpickering: yeah, there's still quite a lot of polymorphic use
2016-10-25 20:27:19 +0000 <ryantrinkle> here's my current plugin: http://lpaste.net/302390
2016-10-25 20:27:59 +0000CoderPuppy(~cpup@32.218.118.186) (Ping timeout: 256 seconds)
2016-10-25 20:28:59 +0000 <ryantrinkle> is it possible that that pass is applying too late?
2016-10-25 20:29:07 +0000cpup(~cpup@32.218.118.186)
2016-10-25 20:30:30 +0000newhoggy(~newhoggy@ppp121-45-184-142.bras1.syd2.internode.on.net) (Remote host closed the connection)
2016-10-25 20:30:43 +0000 <mpickering> I don't know when the plugins are run
2016-10-25 20:36:52 +0000tjakway(~tjakway@cpe-68-173-22-111.nyc.res.rr.com) (Ping timeout: 260 seconds)
2016-10-25 20:37:37 +0000Cale(~cale@2607:fea8:98e0:c3f:9d8f:73:82cc:fefa) (Ping timeout: 256 seconds)
2016-10-25 20:37:56 +0000 <mpickering> The order they get run depends on how you write your plugin
2016-10-25 20:38:11 +0000tibbe_(~tibbe@124-149-74-238.dyn.iinet.net.au) (Quit: tibbe_)
2016-10-25 20:38:29 +0000 <ryantrinkle> mpickering: ah, interesting
2016-10-25 20:38:39 +0000 <mpickering> If I am reading it right anyway
2016-10-25 20:38:51 +0000 <mpickering> Can you post more of your source?
2016-10-25 20:39:01 +0000 <ryantrinkle> sure; there's not much more to it, but i'll update
2016-10-25 20:39:08 +0000dju(dju@fsf/member/dju) (Read error: Connection reset by peer)
2016-10-25 20:39:17 +0000 <ryantrinkle> http://lpaste.net/302390
2016-10-25 20:39:19 +0000 <ryantrinkle> (updated)
2016-10-25 20:39:42 +0000 <mpickering> I see, so you do put it at the start
2016-10-25 20:39:55 +0000 <bgamari> wow
2016-10-25 20:39:58 +0000 <ryantrinkle> i think the tricky thing here is that basically everything needs to get pulled into main and specialized
2016-10-25 20:40:04 +0000 <bgamari> apparently Process Explorer has a terrible memory leak
2016-10-25 20:40:11 +0000 <bgamari> which evidently caused the Windows build failures
2016-10-25 20:40:45 +0000 <ryantrinkle> mpickering: it seems like maybe this is due to transitive specialization across multiple modules?
2016-10-25 20:40:49 +0000jfischoff_(~jfischoff@pool-108-41-214-28.nycmny.fios.verizon.net) (Ping timeout: 276 seconds)
2016-10-25 20:41:22 +0000 <ryantrinkle> like, A imports B, B imports reflex-dom:Reflex.Dom.Builder.Immediate, which imports Reflex.Class
2016-10-25 20:41:45 +0000 <ryantrinkle> the functions in there need to get specialized all the way up