Em Thu, 10 Jul 2025 17:31:42 -0600
Jonathan Corbet <corbet@lwn.net> escreveu:
> Versions of Python prior to 3.7 do not guarantee to remember the insertion
> order of dicts; since kernel-doc depends on that guarantee, running with
> such older versions could result in output with reordered sections.
>
> Python 3.9 is the minimum for the kernel as a whole, so this should not be
> a problem, but put in a warning just in case somebody tries to use
> something older.
>
> Suggested-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Reviewed-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
> ---
> scripts/lib/kdoc/kdoc_parser.py | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/scripts/lib/kdoc/kdoc_parser.py b/scripts/lib/kdoc/kdoc_parser.py
> index fdde14b045fe..23ac4ad204f4 100644
> --- a/scripts/lib/kdoc/kdoc_parser.py
> +++ b/scripts/lib/kdoc/kdoc_parser.py
> @@ -12,6 +12,7 @@ Read a C language source or header FILE and extract embedded
> documentation comments
> """
>
> +import sys
> import re
> from pprint import pformat
>
> @@ -238,6 +239,14 @@ class KernelDoc:
> # Place all potential outputs into an array
> self.entries = []
>
> + #
> + # We need Python 3.7 for its "dicts remember the insertion
> + # order" guarantee
> + #
> + if sys.version_info.major == 3 and sys.version_info.minor < 7:
> + self.emit_message(0,
> + 'Python 3.7 or later is required for correct results')
> +
> def emit_msg(self, ln, msg, warning=True):
> """Emit a message"""
>
Thanks,
Mauro