
#13479: Core Lint issues during slowtest -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: high | Milestone: 8.2.1 Component: Compiler | Version: 8.1 Resolution: | Keywords: JoinPoints Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash or panic | Test Case: Blocked By: | Blocking: Related Tickets: #10181 | Differential Rev(s): Phab:D3390 Wiki Page: | -------------------------------------+------------------------------------- Comment (by nomeata):
But it's simpler and more direct simply to propagate the "apply to 1 arg" info that we apply to the body of g directly into the RHS of j. Completely ignore the occurrences of j, don't compute their join arity.
I thought about it a bit. This should yield precisely the same analysis result, right? (In particular, when analyzing a join point `j`, then the incoming arity of `j` should always be the incoming arity of the whole `join j = … in …`, plus the arity of `j` itself, so once we are past the lambdas on the RHS of the `j`, we have – as you say – the same informatin. Furthermore, the join point is called once.). So adding this code would (potentially) cut some corners, but it adds complexity to the code without any gain in precision. So unless this there is a compiler performance bottle neck to be fixed, that does not seem to really be a good trade off, does it? (We could omit setting the call arity on join points, or – as now – ignoring it in the simplifier. Doesn’t seem to make a big difference either way.) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13479#comment:12 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler