From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Jonathan Corbet <corbet@lwn.net>
Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
Akira Yokosawa <akiyks@gmail.com>
Subject: Re: [PATCH 05/12] docs: kdoc: remove the "struct_actual" machinery
Date: Thu, 10 Jul 2025 08:11:42 +0200 [thread overview]
Message-ID: <20250710081142.0b0102ca@foz.lan> (raw)
In-Reply-To: <20250702223524.231794-6-corbet@lwn.net>
Em Wed, 2 Jul 2025 16:35:17 -0600
Jonathan Corbet <corbet@lwn.net> escreveu:
> The code goes out of its way to create a special list of parameters in
> entry.struct_actual that is just like entry.parameterlist, but with extra
> junk. The only use of that information, in check_sections(), promptly
> strips all the extra junk back out. Drop all that extra work and just use
> parameterlist.
>
> No output changes.
LGTM.
Reviewed-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
>
> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
> ---
> scripts/lib/kdoc/kdoc_parser.py | 32 ++------------------------------
> 1 file changed, 2 insertions(+), 30 deletions(-)
>
> diff --git a/scripts/lib/kdoc/kdoc_parser.py b/scripts/lib/kdoc/kdoc_parser.py
> index 608f3a1045dc..b28f056365cb 100644
> --- a/scripts/lib/kdoc/kdoc_parser.py
> +++ b/scripts/lib/kdoc/kdoc_parser.py
> @@ -116,7 +116,6 @@ class KernelEntry:
>
> self._contents = []
> self.sectcheck = ""
> - self.struct_actual = ""
> self.prototype = ""
>
> self.warnings = []
> @@ -366,15 +365,6 @@ class KernelDoc:
> org_arg = KernRe(r'\s\s+').sub(' ', org_arg)
> self.entry.parametertypes[param] = org_arg
>
> - def save_struct_actual(self, actual):
> - """
> - Strip all spaces from the actual param so that it looks like
> - one string item.
> - """
> -
> - actual = KernRe(r'\s*').sub("", actual, count=1)
> -
> - self.entry.struct_actual += actual + " "
>
> def create_parameter_list(self, ln, decl_type, args,
> splitter, declaration_name):
> @@ -420,7 +410,6 @@ class KernelDoc:
> param = arg
>
> dtype = KernRe(r'([^\(]+\(\*?)\s*' + re.escape(param)).sub(r'\1', arg)
> - self.save_struct_actual(param)
> self.push_parameter(ln, decl_type, param, dtype,
> arg, declaration_name)
>
> @@ -437,7 +426,6 @@ class KernelDoc:
>
> dtype = KernRe(r'([^\(]+\(\*?)\s*' + re.escape(param)).sub(r'\1', arg)
>
> - self.save_struct_actual(param)
> self.push_parameter(ln, decl_type, param, dtype,
> arg, declaration_name)
>
> @@ -470,7 +458,6 @@ class KernelDoc:
>
> param = r.group(1)
>
> - self.save_struct_actual(r.group(2))
> self.push_parameter(ln, decl_type, r.group(2),
> f"{dtype} {r.group(1)}",
> arg, declaration_name)
> @@ -482,12 +469,10 @@ class KernelDoc:
> continue
>
> if dtype != "": # Skip unnamed bit-fields
> - self.save_struct_actual(r.group(1))
> self.push_parameter(ln, decl_type, r.group(1),
> f"{dtype}:{r.group(2)}",
> arg, declaration_name)
> else:
> - self.save_struct_actual(param)
> self.push_parameter(ln, decl_type, param, dtype,
> arg, declaration_name)
>
> @@ -499,24 +484,11 @@ class KernelDoc:
>
> sects = sectcheck.split()
> prms = prmscheck.split()
> - err = False
>
> for sx in range(len(sects)): # pylint: disable=C0200
> err = True
> for px in range(len(prms)): # pylint: disable=C0200
> - prm_clean = prms[px]
> - prm_clean = KernRe(r'\[.*\]').sub('', prm_clean)
> - prm_clean = attribute.sub('', prm_clean)
> -
> - # ignore array size in a parameter string;
> - # however, the original param string may contain
> - # spaces, e.g.: addr[6 + 2]
> - # and this appears in @prms as "addr[6" since the
> - # parameter list is split at spaces;
> - # hence just ignore "[..." for the sections check;
> - prm_clean = KernRe(r'\[.*').sub('', prm_clean)
> -
> - if prm_clean == sects[sx]:
> + if prms[px] == sects[sx]:
> err = False
> break
>
> @@ -782,7 +754,7 @@ class KernelDoc:
> self.create_parameter_list(ln, decl_type, members, ';',
> declaration_name)
> self.check_sections(ln, declaration_name, decl_type,
> - self.entry.sectcheck, self.entry.struct_actual)
> + self.entry.sectcheck, ' '.join(self.entry.parameterlist))
>
> # Adjust declaration for better display
> declaration = KernRe(r'([\{;])').sub(r'\1\n', declaration)
Thanks,
Mauro
next prev parent reply other threads:[~2025-07-10 6:11 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-02 22:35 [PATCH 00/12] [PATCH 00/11] Thrash up the parser/output interface Jonathan Corbet
2025-07-02 22:35 ` [PATCH 01/12] docs: kdoc; Add a rudimentary class to represent output items Jonathan Corbet
2025-07-10 5:28 ` Mauro Carvalho Chehab
2025-07-02 22:35 ` [PATCH 02/12] docs: kdoc: simplify the output-item passing Jonathan Corbet
2025-07-10 5:29 ` Mauro Carvalho Chehab
2025-07-02 22:35 ` [PATCH 03/12] docs: kdoc: drop "sectionlist" Jonathan Corbet
2025-07-09 16:27 ` Mauro Carvalho Chehab
2025-07-02 22:35 ` [PATCH 04/12] docs: kdoc: Centralize handling of the item section list Jonathan Corbet
2025-07-10 5:45 ` Mauro Carvalho Chehab
2025-07-10 13:25 ` Jonathan Corbet
2025-07-02 22:35 ` [PATCH 05/12] docs: kdoc: remove the "struct_actual" machinery Jonathan Corbet
2025-07-10 6:11 ` Mauro Carvalho Chehab [this message]
2025-07-02 22:35 ` [PATCH 06/12] docs: kdoc: use self.entry.parameterlist directly in check_sections() Jonathan Corbet
2025-07-10 6:12 ` Mauro Carvalho Chehab
2025-07-02 22:35 ` [PATCH 07/12] docs: kdoc: Coalesce parameter-list handling Jonathan Corbet
2025-07-10 6:20 ` Mauro Carvalho Chehab
2025-07-02 22:35 ` [PATCH 08/12] docs: kdoc: Regularize the use of the declaration name Jonathan Corbet
2025-07-10 6:22 ` Mauro Carvalho Chehab
2025-07-02 22:35 ` [PATCH 09/12] docs: kdoc: straighten up dump_declaration() Jonathan Corbet
2025-07-10 6:25 ` Mauro Carvalho Chehab
2025-07-10 13:27 ` Jonathan Corbet
2025-07-10 22:13 ` Mauro Carvalho Chehab
2025-07-02 22:35 ` [PATCH 10/12] docs: kdoc: directly access the always-there KdocItem fields Jonathan Corbet
2025-07-10 6:27 ` Mauro Carvalho Chehab
2025-07-02 22:35 ` [PATCH 11/12] docs: kdoc: clean up check_sections() Jonathan Corbet
2025-07-10 6:29 ` Mauro Carvalho Chehab
2025-07-02 22:35 ` [PATCH 12/12] docs: kdoc: Improve the output text accumulation Jonathan Corbet
2025-07-10 6:41 ` Mauro Carvalho Chehab
2025-07-10 7:13 ` Mauro Carvalho Chehab
2025-07-10 8:19 ` Mauro Carvalho Chehab
2025-07-10 10:10 ` Mauro Carvalho Chehab
2025-07-10 10:31 ` Mauro Carvalho Chehab
2025-07-10 10:59 ` Mauro Carvalho Chehab
2025-07-10 23:30 ` Jonathan Corbet
2025-07-11 6:14 ` Mauro Carvalho Chehab
2025-07-11 12:49 ` Jonathan Corbet
2025-07-11 16:28 ` Mauro Carvalho Chehab
2025-07-11 16:39 ` Jonathan Corbet
2025-07-03 2:07 ` [PATCH 00/12] [PATCH 00/11] Thrash up the parser/output interface Yanteng Si
2025-07-09 15:29 ` Jonathan Corbet
2025-07-09 16:21 ` Mauro Carvalho Chehab
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=20250710081142.0b0102ca@foz.lan \
--to=mchehab+huawei@kernel.org \
--cc=akiyks@gmail.com \
--cc=corbet@lwn.net \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.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;
as well as URLs for NNTP newsgroup(s).