[GHC] #13980: Broken ghc-flag links in the users guide

GHC ghc-devs at haskell.org
Sat Jul 15 18:10:44 UTC 2017


#13980: Broken ghc-flag links in the users guide
-------------------------------------+-------------------------------------
           Reporter:  patrickdoc     |             Owner:  (none)
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Documentation  |           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:
-------------------------------------+-------------------------------------
 I'm working on cleaning up the users guide, and I have come across an
 issue with referencing ghc-flags.
 Essentially, it has to with flags that take arguments. You can see a
 couple examples if you go to the
 flag reference here:
 https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/flags.html
 #redirecting-output

 The top flags all have valid links, but the code to generate them is doing
 it slightly wrong. Let's consider `-o ⟨filename⟩` for instance. There
 needs to be a specific reference name for this flag. This name serves a
 couple purposes. First, it forms the end of the url (i.e.
 .../separate_compilation.html#ghc-flag--o). Second, the form of cross-
 references to it (i.e. {{{:ghc-flag:`-o`}}}).

 There are two options:

 Option 1 (The current system):

 We exclude the arguments from the reference name of the flag. So {{{:ghc-
 flag:`-o`}}} is a valid reference
 that gets rendered as __-o__. The main issue with this system is loss of
 information. If someone wanted to
 include the flags in the link, they would have to do {{{:ghc-flag:`-o
 ⟨filename⟩ <-o>`}}}, which would render as __-o ⟨filename⟩__ but link to
 the same place as __-o__. This also leads to
 possibly different choices for the argument name. In fact, the definition
 has `⟨file⟩` but the reference
 table has `⟨filename⟩`.

 Option 2:

 We include the arguments in the reference name. So to make the reference,
 one would have to match the
 definition exactly: {{{:ghc-flag:`-o ⟨file⟩`}}} which would be rendered as
 __-o ⟨file⟩__, and {{{:ghc-flag:`-o ⟨filename⟩`}}} would not be a valid
 reference. This solves the loss of information issue from option 1, but
 does require the person documenting to check for the exact argument
 wording.

 I would argue for the second option as it is more consistent, but either
 is workable. Also note that the current parser automatically converts <
 (less than) into ⟨, so dealing with special characters is very easy. And
 these issues also apply to flags that use '='. I thought it best to ask
 before I converted everything to one way of dealing with these.

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13980>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list