public inbox for linux-arch@vger.kernel.org
 help / color / mirror / Atom feed
From: Randy Dunlap <rdunlap@infradead.org>
To: Akira Yokosawa <akiyks@gmail.com>
Cc: Mark Rutland <mark.rutland@arm.com>,
	linux-kernel@vger.kernel.org, boqun.feng@gmail.com,
	corbet@lwn.net, keescook@chromium.org,
	linux-arch@vger.kernel.org, linux@armlinux.org.uk,
	linux-doc@vger.kernel.org, paulmck@kernel.org,
	sstabellini@kernel.org, will@kernel.org,
	Peter Zijlstra <peterz@infradead.org>
Subject: Re: [PATCH 24/26] locking/atomic: scripts: generate kerneldoc comments
Date: Fri, 26 May 2023 08:24:57 -0700	[thread overview]
Message-ID: <90e1b43d-92a4-50fc-e82d-4590a9651de1@infradead.org> (raw)
In-Reply-To: <a5405368-d04c-f95c-ad18-95f429120dbe@gmail.com>



On 5/26/23 03:27, Akira Yokosawa wrote:
> Hi Randy,
> 
> On 2023/05/26 13:51, Randy Dunlap wrote:
>> Hi Akira,
>>
>> On 5/25/23 20:17, Akira Yokosawa wrote:
>>> On Wed, 24 May 2023 16:11:52 +0200, Peter Zijlstra wrote:
>>>> On Wed, May 24, 2023 at 11:03:58PM +0900, Akira Yokosawa wrote:
>>>>
>>>>>> * All ops are described as an expression using their usual C operator.
>>>>>>   For example:
>>>>>>
>>>>>>   andnot: "Atomically updates @v to (@v & ~@i)"
>>>>>
>>>>> The kernel-doc script converts "~@i" into reST source of "~**i**",
>>>>> where the emphasis of i is not recognized by Sphinx.
>>>>>
>>>>> For the "@" to work as expected, please say "~(@i)" or "~ @i".
>>>>> My preference is the former.
>>>>
>>>> And here we start :-/ making the actual comment less readable because
>>>> retarded tooling.
>>>>
>>>>>>   inc:    "Atomically updates @v to (@v + 1)"
>>>>>>
>>>>>>   Which may be clearer to non-naative English speakers, and allows all
>>>>>                             non-native
>>>>>
>>>>>>   the operations to be described in the same style.
>>>>>>
>>>>>> * All conditional ops have their condition described as an expression
>>>>>>   using the usual C operators. For example:
>>>>>>
>>>>>>   add_unless: "If (@v != @u), atomically updates @v to (@v + @i)"
>>>>>>   cmpxchg:    "If (@v == @old), atomically updates @v to @new"
>>>>>>
>>>>>>   Which may be clearer to non-naative English speakers, and allows all
>>>>>
>>>>> Ditto.
>>>>
>>>> How about we just keep it as is, and all the rst and html weenies learn
>>>> to use a text editor to read code comments?
>>>
>>> :-) :-) :-)
>>>
>>> It turns out that kernel-doc is aware of !@var [1].
>>> Similar tricks can be added for ~@var.
>>> So let's keep it as is!
>>>
>>> I'll ask documentation forks for updating kernel-doc when this change
>>> is merged eventually.
>>
>> What do you mean by that?
>> What needs to be updated and how?
>  
> I mean, scripts/kernel-doc needs to be updated so that "~@var"
> is converted into "**~var**".
> 
> I think adding "~" to the substitution pattern added in [1] as follows
> should do the trick (not well tested):
> 
> diff --git a/scripts/kernel-doc b/scripts/kernel-doc
> index 2486689ffc7b..eb70c1fd4e86 100755
> --- a/scripts/kernel-doc
> +++ b/scripts/kernel-doc
> @@ -64,7 +64,7 @@ my $type_constant = '\b``([^\`]+)``\b';
>  my $type_constant2 = '\%([-_\w]+)';
>  my $type_func = '(\w+)\(\)';
>  my $type_param = '\@(\w*((\.\w+)|(->\w+))*(\.\.\.)?)';
> -my $type_param_ref = '([\!]?)\@(\w*((\.\w+)|(->\w+))*(\.\.\.)?)';
> +my $type_param_ref = '([\!~]?)\@(\w*((\.\w+)|(->\w+))*(\.\.\.)?)';
>  my $type_fp_param = '\@(\w+)\(\)';  # Special RST handling for func ptr params
>  my $type_fp_param2 = '\@(\w+->\S+)\(\)';  # Special RST handling for structs with func ptr params
>  my $type_env = '(\$\w+)';
> 

At a quick glance, that looks OK.
I haven't had enough coffee yet to be able to read all of that regex though.

Just submit the patch (when it is needed) to see what breaks. :)

>>
>>
>>> [1]: ee2aa7590398 ("scripts: kernel-doc: accept negation like !@var")
>>

Thanks.
-- 
~Randy

  reply	other threads:[~2023-05-26 15:25 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-22 12:24 [PATCH 00/26] locking/atomic: restructuring + kerneldoc Mark Rutland
2023-05-22 12:24 ` [PATCH 01/26] locking/atomic: arm: fix sync ops Mark Rutland
2023-05-22 12:24 ` [PATCH 02/26] locking/atomic: remove fallback comments Mark Rutland
2023-05-22 12:24 ` [PATCH 03/26] locking/atomic: hexagon: remove redundant arch_atomic_cmpxchg Mark Rutland
2023-05-22 12:24 ` [PATCH 04/26] locking/atomic: make atomic*_{cmp,}xchg optional Mark Rutland
2023-05-22 12:24 ` [PATCH 05/26] locking/atomic: arc: add preprocessor symbols Mark Rutland
2023-05-22 12:24 ` [PATCH 06/26] locking/atomic: arm: " Mark Rutland
2023-05-22 12:24 ` [PATCH 07/26] locking/atomic: hexagon: " Mark Rutland
2023-05-22 12:24 ` [PATCH 08/26] locking/atomic: m68k: " Mark Rutland
2023-05-22 12:24 ` [PATCH 09/26] locking/atomic: parisc: " Mark Rutland
2023-05-22 12:24 ` [PATCH 10/26] locking/atomic: sh: " Mark Rutland
2023-05-22 12:24 ` [PATCH 11/26] locking/atomic: sparc: " Mark Rutland
2023-05-22 12:24 ` [PATCH 12/26] locking/atomic: x86: " Mark Rutland
2023-05-22 12:24 ` [PATCH 13/26] locking/atomic: xtensa: " Mark Rutland
2023-05-22 12:24 ` [PATCH 14/26] locking/atomic: scripts: remove bogus order parameter Mark Rutland
2023-05-22 12:24 ` [PATCH 15/26] locking/atomic: scripts: remove leftover "${mult}" Mark Rutland
2023-05-22 12:24 ` [PATCH 16/26] locking/atomic: scripts: factor out order template generation Mark Rutland
2023-05-22 12:24 ` [PATCH 18/26] locking/atomic: treewide: use raw_atomic*_<op>() Mark Rutland
2023-05-22 12:24 ` [PATCH 19/26] locking/atomic: scripts: build raw_atomic_long*() directly Mark Rutland
2023-05-22 12:24 ` [PATCH 21/26] locking/atomic: scripts: split pfx/name/sfx/order Mark Rutland
2023-05-22 12:24 ` [PATCH 22/26] locking/atomic: scripts: simplify raw_atomic_long*() definitions Mark Rutland
2023-05-22 12:24 ` [PATCH 25/26] locking/atomic: docs: Add atomic operations to the driver basic API documentation Mark Rutland
2023-05-24 14:10   ` Akira Yokosawa
2023-05-30 12:33     ` Mark Rutland
2023-05-22 12:24 ` [PATCH 26/26] locking/atomic: treewide: delete arch_atomic_*() kerneldoc Mark Rutland
2023-05-22 20:58 ` [PATCH 00/26] locking/atomic: restructuring + kerneldoc Kees Cook
     [not found] ` <20230522122429.1915021-25-mark.rutland@arm.com>
2023-05-24 14:03   ` [PATCH 24/26] locking/atomic: scripts: generate kerneldoc comments Akira Yokosawa
2023-05-24 14:11     ` Peter Zijlstra
2023-05-26  3:17       ` Akira Yokosawa
2023-05-26  4:51         ` Randy Dunlap
2023-05-26 10:27           ` Akira Yokosawa
2023-05-26 15:24             ` Randy Dunlap [this message]
2023-05-30 12:42             ` Mark Rutland
2023-05-24 14:17   ` Peter Zijlstra

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=90e1b43d-92a4-50fc-e82d-4590a9651de1@infradead.org \
    --to=rdunlap@infradead.org \
    --cc=akiyks@gmail.com \
    --cc=boqun.feng@gmail.com \
    --cc=corbet@lwn.net \
    --cc=keescook@chromium.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=mark.rutland@arm.com \
    --cc=paulmck@kernel.org \
    --cc=peterz@infradead.org \
    --cc=sstabellini@kernel.org \
    --cc=will@kernel.org \
    /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