[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250702223524.231794-1-corbet@lwn.net>
Date: Wed, 2 Jul 2025 16:35:12 -0600
From: Jonathan Corbet <corbet@....net>
To: linux-doc@...r.kernel.org
Cc: linux-kernel@...r.kernel.org,
Mauro Carvalho Chehab <mchehab+huawei@...nel.org>,
Akira Yokosawa <akiyks@...il.com>,
Jonathan Corbet <corbet@....net>
Subject: [PATCH 00/12] [PATCH 00/11] Thrash up the parser/output interface
[I'll slow down soon, honest - real work is piling up...]
The kerneldoc parsing phase gathers all of the information about the
declarations of interest, then passes it through to the output phase as a
dict that is an unstructured blob of information; this organization has its
origins in the Perl version of the program. It results in an interface
that is difficult to reason about, dozen-parameter function calls, and
other ills.
Introduce a new class (KdocItem) to carry this information between the
parser and the output modules, and, step by step, modify the system to use
this class in a more structured way. This could be taken further by
creating a subclass of KdocItem for each declaration type (function,
struct, ...), but that is probably more structure than we need.
As a final step, add some structure for the accumulation of the output
text.
The result is (I hope) clearer code, the removal of a bunch of boilerplate,
and no changes to the generated output.
Jonathan Corbet (12):
docs: kdoc; Add a rudimentary class to represent output items
docs: kdoc: simplify the output-item passing
docs: kdoc: drop "sectionlist"
docs: kdoc: Centralize handling of the item section list
docs: kdoc: remove the "struct_actual" machinery
docs: kdoc: use self.entry.parameterlist directly in check_sections()
docs: kdoc: Coalesce parameter-list handling
docs: kdoc: Regularize the use of the declaration name
docs: kdoc: straighten up dump_declaration()
docs: kdoc: directly access the always-there KdocItem fields
docs: kdoc: clean up check_sections()
docs: kdoc: Improve the output text accumulation
scripts/lib/kdoc/kdoc_files.py | 4 +-
scripts/lib/kdoc/kdoc_item.py | 39 ++++
scripts/lib/kdoc/kdoc_output.py | 331 ++++++++++++++------------------
scripts/lib/kdoc/kdoc_parser.py | 162 +++-------------
4 files changed, 218 insertions(+), 318 deletions(-)
create mode 100644 scripts/lib/kdoc/kdoc_item.py
--
2.49.0
Powered by blists - more mailing lists