linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
To: Jonathan Corbet <corbet@lwn.net>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>,
	Luc Van Oostenryck <luc.vanoostenryck@gmail.com>,
	Eli Friedman <efriedma@codeaurora.org>,
	Christopher Li <sparse@chrisli.org>,
	Kees Cook <keescook@chromium.org>, Ingo Molnar <mingo@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Masahiro Yamada <yamada.masahiro@socionext.com>,
	Joe Perches <joe@perches.com>,
	Dominique Martinet <asmadeus@codewreck.org>,
	Nick Desaulniers <ndesaulniers@google.com>,
	linux-sparse@vger.kernel.org,
	Linux Doc Mailing List <linux-doc@vger.kernel.org>
Subject: Re: [PATCH v4 12/13] Compiler Attributes: add Doc/process/programming-language.rst
Date: Sun, 9 Sep 2018 21:15:58 +0200	[thread overview]
Message-ID: <CANiq72ngDkFUoROFGPL9A=CQ+X5e6R+pfxuBXWx9DWxoryGnTw@mail.gmail.com> (raw)
In-Reply-To: <20180909121901.5a36d0fd@lwn.net>

Hi Jonathan,

On Sun, Sep 9, 2018 at 8:19 PM, Jonathan Corbet <corbet@lwn.net> wrote:
> On Sat,  8 Sep 2018 23:24:58 +0200
> Miguel Ojeda <miguel.ojeda.sandonis@gmail.com> wrote:
>
>>  Documentation/process/index.rst               |  1 +
>>  .../process/programming-language.rst          | 45 +++++++++++++++++++
>>  2 files changed, 46 insertions(+)
>>  create mode 100644 Documentation/process/programming-language.rst
>>
> So I have some overall thoughts on the documentation; my apologies for
> not getting to this until you got to v4...

No problem at all! :-)

>
> 1) I think the document is mistitled.  It's not really about the language
>    that the kernel used, it's about compiler attributes.  So I would make
>    both the name of the document and it introduction reflect that.

The idea here is to create a document explaining the programming
language that the kernel uses (which we hadn't), taking the chance to
describe the attributes (which in a way are extensions to the C
language); in the future expanding it with other (non-attribute)
extensions that we use. Of course, that is not done, but I thought
starting it was a nice idea (meant for people coming from a C
background that do not know the "dialect" used in Linux).

Also other kind of very commonly used macros and functions used
throughout the kernel could be summarized there as a summary for
newcomers (e.g. stuff like `printk`/`pr_*`, `likely`/`unlikely`,
`panic`, `EXPORT_SYMBOL`, `BUG_ON`/`WARN_ON`...), without writing full
documentation there (but pointing to where they are described, either
in the Docs or a source code if not).

What do you think?

>
> 2) This is an ideal opportunity to document what all of those attributes
>    actually mean.  I would guess that is the information many developers

I thought about that, but the issue is that compilers already describe
them: in the case of GCC, all of them are documented; some are in
clang; icc is not well documented --- see the previous threads about
this), so we would be duplicating that information (and it will become
outdated as compilers are released and improve the documentation).
This is the reason why the series removes most of the copy-pasted
documentation from gcc and instead supplies a link for each attribute
compiler_attributes.h to gcc & clang online docs.

>    will come here looking for, and they'll go away frustrated.  The ideal
>    thing to do, IMO, would be do say what each attribute means (rather
>    than just which compilers support it) in a DOC section in the new
>    compiler_attributes.h header, then use RST directives to pull all that
>    information into this document.

Initially my idea was to provide a table with the name and the links
to each compiler docs; so that it could be easily used. However, when
thinking about it, it seems that most people consulting such file
would come from the actual source code, so they would have to move
from there to the Doc/ file; so I did it the other way around (IIRC
Nick also mentioned his preference for keeping them in the source
code).

Now, the idea of keeping them in the header but pulling them to the
RST can be a good idea but I was unsure how to do it best. I took a
look at how other RST files did it (the pull), but I thought (maybe
wrongly) that I wouldn't be able to create a nice table (i.e. instead
it would be a long list of attributes, which most people will not use
-- and in my idea of a document describing all the extensions, it
would be taking most of the space), so I discarded it. I am not sure
about the future goals for the Docs/, so excuse me if I have the
completely wrong idea, but in a way, in the current state, I see the
kernel docs as articles/chapters/book on high-level concepts about the
kernel, rather than a technical reference (i.e. the source code with a
better formatting).

Thanks a lot for reviewing!

Cheers,
Miguel

  reply	other threads:[~2018-09-09 19:16 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-08 21:24 [PATCH v4 00/13] Compiler Attributes Miguel Ojeda
2018-09-08 21:24 ` [PATCH v4 01/13] Compiler Attributes: remove unused attributes Miguel Ojeda
2018-09-08 21:24 ` [PATCH v4 02/13] Compiler Attributes: always use the extra-underscores syntax Miguel Ojeda
2018-09-08 21:24 ` [PATCH v4 03/13] Compiler Attributes: remove unneeded tests Miguel Ojeda
2018-09-08 21:24 ` [PATCH v4 04/13] Compiler Attributes: homogenize __must_be_array Miguel Ojeda
2018-09-08 21:24 ` [PATCH v4 05/13] Compiler Attributes: naked was fixed in gcc 4.6 Miguel Ojeda
2018-09-10 17:45   ` Stefan Agner
2018-09-08 21:24 ` [PATCH v4 06/13] Compiler Attributes: naked can be shared Miguel Ojeda
2018-09-10 17:50   ` Stefan Agner
2018-09-08 21:24 ` [PATCH v4 07/13] Compiler Attributes: remove unneeded sparse (__CHECKER__) tests Miguel Ojeda
2018-09-08 21:24 ` [PATCH v4 08/13] Compiler Attributes: add missing SPDX ID in compiler_types.h Miguel Ojeda
2018-09-08 21:24 ` [PATCH v4 09/13] Compiler Attributes: use feature checks instead of version checks Miguel Ojeda
2018-09-08 21:24 ` [PATCH v4 10/13] Compiler Attributes: KENTRY used twice the "used" attribute Miguel Ojeda
2018-09-08 21:24 ` [PATCH v4 11/13] Compiler Attributes: remove uses of __attribute__ from compiler.h Miguel Ojeda
2018-09-08 21:24 ` [PATCH v4 12/13] Compiler Attributes: add Doc/process/programming-language.rst Miguel Ojeda
2018-09-09 18:19   ` Jonathan Corbet
2018-09-09 19:15     ` Miguel Ojeda [this message]
2018-09-08 21:24 ` [PATCH v4 13/13] Compiler Attributes: Add MAINTAINERS entry Miguel Ojeda
2018-09-09  8:02 ` [PATCH v4 00/13] Compiler Attributes Luc Van Oostenryck
2018-09-09 15:21   ` Miguel Ojeda
2018-09-09 16:52 ` Miguel Ojeda
2018-09-10 17:17 ` Nick Desaulniers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CANiq72ngDkFUoROFGPL9A=CQ+X5e6R+pfxuBXWx9DWxoryGnTw@mail.gmail.com' \
    --to=miguel.ojeda.sandonis@gmail.com \
    --cc=arnd@arndb.de \
    --cc=asmadeus@codewreck.org \
    --cc=corbet@lwn.net \
    --cc=efriedma@codeaurora.org \
    --cc=geert@linux-m68k.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=joe@perches.com \
    --cc=keescook@chromium.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sparse@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=luc.vanoostenryck@gmail.com \
    --cc=mingo@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=sparse@chrisli.org \
    --cc=torvalds@linux-foundation.org \
    --cc=yamada.masahiro@socionext.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).