[GHC] #11235: Haddock shows no class members

#11235: Haddock shows no class members -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 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: -------------------------------------+------------------------------------- At least since Haddock commit 0fc8cfd532f5dfd12b5504f44a2b3c9fb659cd87 on the `ghc-head` branch Haddock's HTML output has shown no class members. I'll need to work out why this is before the release. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11235 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11235: Haddock shows no class members -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 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 bgamari): It looks like Haddock as GHC commit cd2840a784f4136a8cfdb704124e892430ad9ead works. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11235#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11235: Haddock shows no class members -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 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 bgamari): 1e041b7382b6aa329e4ad9625439f811e0f27232 is bad. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11235#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11235: Haddock shows no class members -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 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 bgamari): bbaf76f949426c91d6abbbc5eced1f705530087b appears to be good. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11235#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11235: Haddock shows no class members -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 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 bgamari): 96621b1b4979f449e873513e9de8d806257c9493 is good. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11235#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11235: Haddock shows no class members -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 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 bgamari): ac1a379363618a6f2f17fff65ce9129164b6ef30 is good. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11235#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11235: Haddock shows no class members
-------------------------------------+-------------------------------------
Reporter: bgamari | Owner: bgamari
Type: task | Status: new
Priority: high | Milestone: 8.0.1
Component: Compiler | Version: 7.10.3
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 bgamari):
{{{
1e041b7382b6aa329e4ad9625439f811e0f27232 is the first bad commit
commit 1e041b7382b6aa329e4ad9625439f811e0f27232
Author: Simon Peyton Jones

#11235: Haddock shows no class members -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 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 bgamari): * cc: simonpj (added) Comment: Simon, I believe this may be the result of your wildcards rework. The issues appears to be that classes' `tcdSigs` have no useful signatures by the time it gets to Haddock (namely `ppClassDecl`). If my debug output is to be believed `tcdSigs` contains only `MinimalSig`s., -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11235#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11235: Haddock shows no class members -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 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 bgamari): It seems the relevant signatures are being dropped by `Haddock.Interface.Create.filterClasses` -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11235#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11235: Haddock shows no class members -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 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 bgamari): In particular I believe the issue is `isVanillaLSig`, which returns `False` for `ClassOpSig`s. Unfortunately doing the obvious thing and letting it return `True` reveals further issues which I am gradually working through. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11235#comment:9 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11235: Haddock shows no class members -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 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 simonpj): That is mysterious indeed. If the other sigs were really getting dropped, ''nothing'' would work. Ah, here's a possibility. The `tcdSigs` for classes used to contain a `TypeSig` for each method, but now it contains a `ClassOpSig`. Maybe Haddock is expecting the former but only finding the latter? In `Haddock.Interface.Create` I see `typeDocs` which might be lacking a `ClassOpSig` case. Possibly also elsewhere in Haddock? Does that give you enough to go on? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11235#comment:10 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11235: Haddock shows no class members -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 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 bgamari): Replying to [comment:10 simonpj]:
Ah, here's a possibility. The `tcdSigs` for classes used to contain a `TypeSig` for each method, but now it contains a `ClassOpSig`. Maybe Haddock is expecting the former but only finding the latter?
Indeed, I've worked that much out and I've found all of the obvious places where this needs to be accounted for. Unfortunately it seems I'm missing one of the non-obvious ones. For those playing along at home I'm working [[http://github.com/bgamari/haddock/tree/work|here]]. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11235#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11235: Haddock shows no class members -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 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 bgamari): Found it. Patches coming. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11235#comment:12 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11235: Haddock shows no class members -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 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 bgamari): simonpj, could you comment on the intended purpose of `isVanillaLSig`? It seems that it is only used by Haddock and is terribly named. I was thinking of either moving it to Haddock, renaming it to `isUserLSig` (e.g. "did the user provide this signature?") or both. Comments? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11235#comment:13 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

simonpj, could you comment on the intended purpose of `isVanillaLSig`? It seems that it is only used by Haddock and is terribly named. I was
#11235: Haddock shows no class members -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 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 simonpj): Replying to [comment:13 bgamari]: thinking of either moving it to Haddock, renaming it to `isUserLSig` (e.g. "did the user provide this signature?") or both. It is ''only'' used in Haddock. I have no idea what it's for. By all means move it, rename it, whatever. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11235#comment:14 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11235: Haddock shows no class members -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: closed Priority: high | Milestone: 8.0.1 Component: Documentation | Version: 7.10.3 Resolution: fixed | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Documentation | Unknown/Multiple bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by bgamari): * status: new => closed * failure: None/Unknown => Documentation bug * component: Compiler => Documentation * resolution: => fixed Comment: This was fixed in the Haddock merge in GHC commit 4c7da9c557ac5990fb4ccdd6145e0d2487a57219. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11235#comment:15 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC