[PATCH] Port GCC documentation to Sphinx

Martin Liška mliska@suse.cz
Thu Jul 1 16:04:24 GMT 2021


On 7/1/21 5:44 PM, Eli Zaretskii wrote:
>> Cc: joseph@codesourcery.com, gcc@gcc.gnu.org, gcc-patches@gcc.gnu.org
>> From: Martin Liška <mliska@suse.cz>
>> Date: Thu, 1 Jul 2021 16:14:30 +0200
>>
>>>> If I understand the notes correct, the '.' should be also hidden by e.g. Emacs.
>>>
>>> No, it doesn't.  The actual text in the Info file is:
>>>
>>>      *note -std: f.‘=iso9899:1990’
>>>
>>> and the period after " f" isn't hidden.  Where does that "f" come from
>>> and what is its purpose here? can it be removed (together with the
>>> period)?
>>
>> It's name of the anchor used for the @ref. The names are automatically generated
>> by makeinfo. So there's an example:
>>
>> This is the warning level of @ref{e,,-Wshift-overflow3} and …
>>
>> becomes in info:
>> This is the warning level of *note -Wshift-overflow3: e. and …
>>
>> I can ask the question at Sphinx, the Emacs script should hide that.
> 
> Emacs doesn't hide the period.  But there shouldn't be a period to
> begin with, since it's the middle of a sentence.  The correct way of
> writing this in Texinfo is to have some punctuation: a comma or a
> semi-colon, after the closing brace, like this:
> 
>    This is the warning level of @ref{e,,-Wshift-overflow3}, and …

I don't see why we should put a comma after an option reference.

> 
> Does Sphinx somehow generate the period if there's no comma, or does
> it do it unconditionally, i.e. even if there is a punctuation after
> the closing brace?

It's all related to Texinfo. Sphinx generates e.g.
Enabled by @ref{7,,-Wall} and something else.

as documented here:
https://www.gnu.org/software/texinfo/manual/texinfo/html_node/_0040ref.html

Then it ends with the following info output:

      Enabled by *note -Wall: 7. and something else.

So the period is added by Texinfo. If I put comma after a reference, then
the period is not added there.

> 
>>> This actually raises a more general issue with this Sphinx porting
>>> initiative: what will be the canonical style guide for maintaining the
>>> GCC manual in Sphinx, or more generally for writing GNU manuals in
>>> Sphinx?  For Texinfo, we have the Texinfo manual, which both documents
>>> the language and provides style guidelines for how to use Texinfo for
>>> producing good manuals.  Contributors to GNU manuals are using those
>>> guidelines for many years.  Is there, or will there be, an equivalent
>>> style guide for Sphinx?  If not, how will the future contributors to
>>> the GCC manuals know what are the writing and style conventions?
>>
>> No, I'm not planning any extra style guide. We will you standard Sphinx RST
>> manual and one can find many tutorials about how to do it.
> 
> Are you sure everything there is good for our manuals?  Did you
> compare the style conventions there with what we have in the Texinfo
> manual?

I'm not sure, but I made the conversion from Texinfo as close as possible to RST files.
I see the documentation markup natural and it matches with we write documentation
in Texinfo.

> 
> Moreover, this means people who contribute to other manuals will now
> have to learn two different styles, no?  And that's in addition to
> learning one more language.

Yes, people will have to learn RST. Similarly to git conversion, people also
had to learn another version control system (we used svn).

> 
>>> That is why I recommended to discuss this on the Texinfo list: that's
>>> the place where such guidelines are discussed, and where we have
>>> experts who understand the effects and consequences of using this or
>>> that style.  The current style in GNU manuals is to have the menus as
>>> we see them in the existing GCC manuals: with a short description.
>>> Maybe there are good reasons to deviate from that style, but
>>> shouldn't this be at least presented and discussed, before the
>>> decision is made?  GCC developers are not the only ones who will be
>>> reading the future GCC manuals.
>>>
>>
>> That seems to me a subtle adjustment and it's standard way how people generate
>> TOC in Sphinx. See e.g. the Linux kernel documentation:
>> https://www.kernel.org/doc/html/latest/
> 
> I don't think the GCC manuals should necessarily be bound by the
> Sphinx standards.  Where those standards are sub-optimal, it is
> perfectly okay for GCC (and other projects) to deviate.  GCC and other
> GNU manuals used a certain style and convention for decades, so
> there's more than enough experience and tradition to build on.

What type of conversions and style are going to change with conversion to Sphinx?
Do you see any of them worse than what we have now?

> 
> I will no longer pursue this point, but let me just say that I
> consider it a mistake to throw away all the experience collected using
> Texinfo just because Sphinx folks have other traditions and
> conventions.  It might be throwing the baby with the bathwater.
> 

Again, please show up concrete examples. What you describe is very theoretical.

Thanks,
Martin


More information about the Gcc mailing list