[GHC] #12962: No automatic SCC annotations for functions marked INLINABLE

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: | Owner: MikolajKonarski | Type: bug | Status: new Priority: normal | Milestone: Component: Profiling | Version: 8.0.1 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- Judging from .prof files and the -xc and -prof callstacks, GHC adds no automatic SCC annotations for functions marked `INLINABLE`. The user's guide only mentions `INLINE`: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/profiling.ht..., not `INLINABLE`. Is it a bug in documentation or implementation? In my case I managed to work around by using `-fexpose-all-unfoldings` instead of the tons of `INLINABLE` I was using before, but in general case, adding all the SCC annotations by hand seems prohibitive. e.g., in code that needs a lot of `INLINABLE` to enable specialization. Since `-fexpose-all-unfoldings` does not inhibit profiling and compiling with no optimization doesn't help recover it, the culprit is probably not the actual inlining or specialization, but rather handling of the `INLINABLE` pragma itself. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by mpickering): So to be clear here, the problem is that you expect GHC to add cost centres to functions marked `INLINABLE` when using `-fprof-auto`. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by MikolajKonarski): Yes, that's it. I use mostly `-fprof-auto-exported`, but users' guide mentions only `INLINE` as disabling automatic annotations in either case. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by osa1): * cc: osa1 (added) Comment: I'm not sure if this is intentional. `compiler/deSugar/Coverage.hs` is responsible for adding ticks. It's using `BasicTypes.isAnyInlinePragma` for deciding whether to add a tick or not, and that function returns true for both `INLINE` and `INLINABLE`. But if you look at the note `inline sccs`: {{{#!haskell -- Note [inline sccs] -- -- It should be reasonable to add ticks to INLINE functions; however -- currently this tickles a bug later on because the SCCfinal pass -- does not look inside unfoldings to find CostCentres. It would be -- difficult to fix that, because SCCfinal currently works on STG and -- not Core (and since it also generates CostCentres for CAFs, -- changing this would be difficult too). -- -- Another reason not to add ticks to INLINE functions is that this -- sometimes handy for avoiding adding a tick to a particular function -- (see #6131) -- -- So for now we do not add any ticks to INLINE functions at all. }}} it doesn't mention `INLINABLE`. #6131 also doesn't mention `INLINABLE`, maybe it didn't exist at the time. I think it might make sense to add cost centres to `INLINABLE` functions as they may not be inlined. Somewhat related ticket: #10766 (semantics of `INLINE` and `INLINABLE` are not clear). I also looked at the git history. The commit that added the note also added `isAnyInlinePragma` calls, and that functions had same semantics as today. So maybe it's intentional and we should update the documentation. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12963 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by MikolajKonarski): * related: => #12963 @@ -15,0 +15,4 @@ + + Edit: Ufortunately, the workaround by using `-fexpose-all-unfoldings` + turns out to be not acceptable for me, see #12963. I'm also no longer sure + about the last paragraph. New description: Judging from .prof files and the -xc and -prof callstacks, GHC adds no automatic SCC annotations for functions marked `INLINABLE`. The user's guide only mentions `INLINE`: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/profiling.ht..., not `INLINABLE`. Is it a bug in documentation or implementation? In my case I managed to work around by using `-fexpose-all-unfoldings` instead of the tons of `INLINABLE` I was using before, but in general case, adding all the SCC annotations by hand seems prohibitive. e.g., in code that needs a lot of `INLINABLE` to enable specialization. Since `-fexpose-all-unfoldings` does not inhibit profiling and compiling with no optimization doesn't help recover it, the culprit is probably not the actual inlining or specialization, but rather handling of the `INLINABLE` pragma itself. Edit: Ufortunately, the workaround by using `-fexpose-all-unfoldings` turns out to be not acceptable for me, see #12963. I'm also no longer sure about the last paragraph. -- Comment: Ufortunately, the workaround by using `-fexpose-all-unfoldings` turns out to be not acceptable for me, see #12963. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Inlining Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12963 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by mpickering): * keywords: => Inlining -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Inlining Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12963 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj): I think the proposal is that `-fprof-auto` adds cost-centres to INLINABLE (but not INLINE) things. I'm ok with that; I doubt it was intentional to make it so for INLINABLE. Would someone care to make a patch etc? Simon -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Inlining Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12963 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by osa1): I'm a bit busy for next two days, I'll make a patch after that unless someone else does in the meantime. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Inlining Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12963 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by MikolajKonarski): Splendid! (We really need a 'Like' button here.) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Inlining Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12963 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by osa1): There's a test (`profinline001`) that assumes `INLINABLE` functions don't get cost centers. So it seems like this was intentional. Should I still make this change? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:9 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: Type: bug | Status: new Priority: normal | Milestone: 8.2.1 Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Inlining Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12963 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by MikolajKonarski): * milestone: => 8.2.1 -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:10 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: Type: bug | Status: new Priority: normal | Milestone: 8.2.1 Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Inlining Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12963 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Description changed by MikolajKonarski: @@ -19,0 +19,7 @@ + + Edit: `-fexpose-all-unfoldings` plus `-fspecialise-aggressively` is a + perfect workaround. I wish somebody told me earlier. Compared to 600 + `INLINABLE` and `-fexpose-all-unfoldings`, the compilation time is + unchanged (10min) and the program seems a bit faster (not a scientific + benchmark). Profiling works fine with this setup and I don't need to write + `INLINABLE` any more (nor add `SCC` by hand). New description: Judging from .prof files and the -xc and -prof callstacks, GHC adds no automatic SCC annotations for functions marked `INLINABLE`. The user's guide only mentions `INLINE`: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/profiling.ht..., not `INLINABLE`. Is it a bug in documentation or implementation? In my case I managed to work around by using `-fexpose-all-unfoldings` instead of the tons of `INLINABLE` I was using before, but in general case, adding all the SCC annotations by hand seems prohibitive. e.g., in code that needs a lot of `INLINABLE` to enable specialization. Since `-fexpose-all-unfoldings` does not inhibit profiling and compiling with no optimization doesn't help recover it, the culprit is probably not the actual inlining or specialization, but rather handling of the `INLINABLE` pragma itself. Edit: Ufortunately, the workaround by using `-fexpose-all-unfoldings` turns out to be not acceptable for me, see #12963. I'm also no longer sure about the last paragraph. Edit: `-fexpose-all-unfoldings` plus `-fspecialise-aggressively` is a perfect workaround. I wish somebody told me earlier. Compared to 600 `INLINABLE` and `-fexpose-all-unfoldings`, the compilation time is unchanged (10min) and the program seems a bit faster (not a scientific benchmark). Profiling works fine with this setup and I don't need to write `INLINABLE` any more (nor add `SCC` by hand). -- -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.2.1 Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Inlining, | newcomer Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12963 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by mpickering): * keywords: Inlining => Inlining, newcomer Comment: I think change the behaviour and update the test. Seems like an easy ticket for a newcomer. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:12 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.2.1 Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Inlining, | newcomer Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12963 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj):
There's a test (profinline001) that assumes INLINABLE functions don't get cost centers. So it seems like this was intentional. Should I still make this change?
Yes, I think still make the change. Make sure the user manual documents the behaviour. Thanks! Simon -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:13 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: dfeuer Type: bug | Status: new Priority: normal | Milestone: 8.4.1 Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Inlining, | newcomer Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12963 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by dfeuer): * owner: (none) => dfeuer -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:15 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: dfeuer Type: bug | Status: new Priority: normal | Milestone: 8.4.1 Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Inlining, | newcomer Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12963 | Differential Rev(s): Phab:D3550 Wiki Page: | -------------------------------------+------------------------------------- Changes (by dfeuer): * differential: => Phab:D3550 Comment: I can't seem to figure out how to accept the new profiler output. `make accept` doesn't seem to get the job done. I get a bad exit code instead of a diff, and I can't seem to figure out how to run the test by hand (weird messages about `System.IO` not being imported). Unless Harbormaster gives something more useful, I may need some help fixing the test case. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:16 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: dfeuer Type: bug | Status: new Priority: normal | Milestone: 8.4.1 Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Inlining, | newcomer Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12963 | Differential Rev(s): Phab:D3550 Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj): I'm a bit lost on this * Do INLINE functions get cost centres with `-fprof-auto`? * Do INLINABLE functions get cost centres with `-fprof-auto`? * Whatever the answer we need a `Note` in `Coverage.hs` to explain (a) the design choice and (b) how the guard implements it * The user manual should specify what happens. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:17 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: dfeuer Type: bug | Status: new Priority: normal | Milestone: 8.4.1 Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Inlining, | newcomer Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12963 | Differential Rev(s): Phab:D3550 Wiki Page: | -------------------------------------+------------------------------------- Comment (by dfeuer): Simon, there's a Note [inline sccs] about why we don't have them for `INLINE` things: {{{#!hs -- It should be reasonable to add ticks to INLINE functions; however -- currently this tickles a bug later on because the SCCfinal pass -- does not look inside unfoldings to find CostCentres. It would be -- difficult to fix that, because SCCfinal currently works on STG and -- not Core (and since it also generates CostCentres for CAFs, -- changing this would be difficult too). -- -- Another reason not to add ticks to INLINE functions is that this -- sometimes handy for avoiding adding a tick to a particular function -- (see #6131) -- -- So for now we do not add any ticks to INLINE functions at all. }}} Even if dealing with ticks through inlining isn't feasible, this whole thing seems a bit surprising to me because `INLINE` bindings aren't always inlined, and non-`INLINE` bindings often are. Using an `INLINE` annotation for its side effect on SCC annotations seems rather ugly. The current proposed change just does what osa1 seems to suggest, limiting the exclusion to `INLINE` rather than to both `INLINE` and `INLINABLE` in `Coverage.hs`. This appears to affect ticks generally, rather than SCC ticks specifically, but that ''seems'' to my uneducated eye to be the case for the various auto-add options too (see `shouldTickBind` and `mkDensity`). -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:18 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: dfeuer Type: bug | Status: new Priority: normal | Milestone: 8.4.1 Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Inlining, | newcomer Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12963 | Differential Rev(s): Phab:D3550 Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj): Fine -- whatever the resolution: * could the Note be made specific about the INLINE/INLINABLE choice, and point to this ticket? and * could the calls to `isInlinePragma` have a pointer to that Note? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:19 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

Fine -- whatever the resolution:
* could the Note be made specific about the INLINE/INLINABLE choice, and
#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: dfeuer Type: bug | Status: new Priority: normal | Milestone: 8.4.1 Component: Profiling | Version: 8.0.1 Resolution: | Keywords: Inlining, | newcomer Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12963 | Differential Rev(s): Phab:D3550 Wiki Page: | -------------------------------------+------------------------------------- Comment (by dfeuer): Replying to [comment:19 simonpj]: point to this ticket? and
* could the calls to `isInlinePragma` have a pointer to that Note?
Yes, absolutely. I'm just hoping for a bit more clarity on why this is the right way to do it, so I can explain properly in the note. I'll make a stab at it anyway. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:20 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#12962: No automatic SCC annotations for functions marked INLINABLE
-------------------------------------+-------------------------------------
Reporter: MikolajKonarski | Owner: dfeuer
Type: bug | Status: new
Priority: normal | Milestone: 8.4.1
Component: Profiling | Version: 8.0.1
Resolution: | Keywords: Inlining,
| newcomer
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: #12963 | Differential Rev(s): Phab:D3550
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by David Feuer

#12962: No automatic SCC annotations for functions marked INLINABLE -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: dfeuer Type: bug | Status: closed Priority: normal | Milestone: 8.4.1 Component: Profiling | Version: 8.0.1 Resolution: fixed | Keywords: Inlining, | newcomer Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12963 | Differential Rev(s): Phab:D3550 Wiki Page: | -------------------------------------+------------------------------------- Changes (by dfeuer): * status: new => closed * resolution: => fixed -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12962#comment:22 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC