qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, Eduardo Habkost <ehabkost@redhat.com>
Subject: Re: [PATCH v2] qapi/machine: Place the 'Notes' tag after the 'Since' tag
Date: Fri, 28 Feb 2020 11:17:21 +0100	[thread overview]
Message-ID: <d124e9bc-1db6-52a4-843f-7f3fe73fbe5d@redhat.com> (raw)
In-Reply-To: <87tv3bmc8c.fsf@dusky.pond.sub.org>

On 2/28/20 7:56 AM, Markus Armbruster wrote:
> Philippe Mathieu-Daudé <philmd@redhat.com> writes:
>> On 2/27/20 3:55 PM, Philippe Mathieu-Daudé wrote:
>>> On 2/27/20 3:52 PM, Markus Armbruster wrote:
>>>> Philippe Mathieu-Daudé <philmd@redhat.com> writes:
>>>>
>>>>> This fixes when adding a 'Since' tag:
>>>>>
>>>>>     In file included from qapi/qapi-schema.json:105:
>>>>>     qapi/machine.json:25:1: '@arch:' can't follow 'Notes' section
>>>>
>>>> I'm confused.  This error is detected in scripts/qapi/parser.py, and it
>>>> is fatal.  Is the build broken for you?  It isn't for me.  Moreover,
>>>> where is @arch?  I can't see it anywhere close to the two spots the
>>>> patch patches.
>>>
>>> I get the error after trying to fix what Eric commented here:
>>> https://www.mail-archive.com/qemu-devel@nongnu.org/msg682344.html
>>
>> Using:
>> ---
>> diff --git a/qapi/machine.json b/qapi/machine.json
>> index 6c11e3cf3a..40a36d6276 100644
>> --- a/qapi/machine.json
>> +++ b/qapi/machine.json
>> @@ -20,13 +20,15 @@
>>   #        prefix to produce the corresponding QEMU executable name. This
>>   #        is true even for "qemu-system-x86_64".
>>   #
>> +# @rx: since 5.0
>> +#
>>   # Since: 3.0
>>   ##
>>   { 'enum' : 'SysEmuTarget',
>>     'data' : [ 'aarch64', 'alpha', 'arm', 'cris', 'hppa', 'i386', 'lm32',
>>                'm68k', 'microblaze', 'microblazeel', 'mips', 'mips64',
>>                'mips64el', 'mipsel', 'moxie', 'nios2', 'or1k', 'ppc',
>> -             'ppc64', 'riscv32', 'riscv64', 's390x', 'sh4',
>> +             'ppc64', 'riscv32', 'riscv64', 'rx', 's390x', 'sh4',
>>                'sh4eb', 'sparc', 'sparc64', 'tricore', 'unicore32',
>>                'x86_64', 'xtensa', 'xtensaeb' ] }
>> ---
>>
>> or
>>
>> ---
>> diff --git a/qapi/machine.json b/qapi/machine.json
>> index 6c11e3cf3a..4b59e87b6f 100644
>> --- a/qapi/machine.json
>> +++ b/qapi/machine.json
>> @@ -21,12 +21,14 @@
>>   #        is true even for "qemu-system-x86_64".
>>   #
>>   # Since: 3.0
>> +#
>> +# @rx: since 5.0
>>   ##
>>   { 'enum' : 'SysEmuTarget',
>>     'data' : [ 'aarch64', 'alpha', 'arm', 'cris', 'hppa', 'i386', 'lm32',
>>                'm68k', 'microblaze', 'microblazeel', 'mips', 'mips64',
>>                'mips64el', 'mipsel', 'moxie', 'nios2', 'or1k', 'ppc',
>> -             'ppc64', 'riscv32', 'riscv64', 's390x', 'sh4',
>> +             'ppc64', 'riscv32', 'riscv64', 'rx', 's390x', 'sh4',
>>                'sh4eb', 'sparc', 'sparc64', 'tricore', 'unicore32',
>>                'x86_64', 'xtensa', 'xtensaeb' ] }
>> ---
>>
>> I get:
>>
>>    GEN     qapi-gen
>>    GEN     rx-softmmu/config-devices.mak
>> In file included from qapi/qapi-schema.json:105:
>> qapi/machine.json:23:1: '@rx:' can't follow 'Notes' section
>> make: *** [Makefile:645: qapi-gen-timestamp] Error 1
>>
>> This works however:
>>
>> ---
>>   ##
>>   # @SysEmuTarget:
>>   #
>>   # The comprehensive enumeration of QEMU system emulation ("softmmu")
>>   # targets. Run "./configure --help" in the project root directory, and
>>   # look for the *-softmmu targets near the "--target-list" option. The
>>   # individual target constants are not documented here, for the time
>>   # being.
>>   #
>> +# @rx: since 5.0
>> +#
>>   # Notes: The resulting QMP strings can be appended to the "qemu-system-"
>>   #        prefix to produce the corresponding QEMU executable name. This
>>   #        is true even for "qemu-system-x86_64".
>>   #
>>   # Since: 3.0
>>   ##
>>   { 'enum' : 'SysEmuTarget',
>>     'data' : [ 'aarch64', 'alpha', 'arm', 'cris', 'hppa', 'i386', 'lm32',
>>                'm68k', 'microblaze', 'microblazeel', 'mips', 'mips64',
>>                'mips64el', 'mipsel', 'moxie', 'nios2', 'or1k', 'ppc',
>> -             'ppc64', 'riscv32', 'riscv64', 's390x', 'sh4',
>> +             'ppc64', 'riscv32', 'riscv64', 'rx', 's390x', 'sh4',
>>                'sh4eb', 'sparc', 'sparc64', 'tricore', 'unicore32',
>>                'x86_64', 'xtensa', 'xtensaeb' ] }
>> ---
> 
> This one adds it to the correct spot.

OK I'll use that then.

> 
> qapi-code-gen.txt:
> 
>      Definition documentation starts with a line naming the definition,
>      followed by an optional overview, a description of each argument (for
>      commands and events), member (for structs and unions), branch (for
>      alternates), or value (for enums), and finally optional tagged
>      sections.

I was confused because I understood "@rx: since 5.0" as a tagged 
section, not as an "Optional overview".

> 
> Let's apply this to SysEmuTarget's doc comment:
> 
>      ##
>      # @SysEmuTarget:
> 
> Line naming the definition
> 
>      #
>      # The comprehensive enumeration of QEMU system emulation ("softmmu")
>      # targets. Run "./configure --help" in the project root directory, and
>      # look for the *-softmmu targets near the "--target-list" option. The
>      # individual target constants are not documented here, for the time
>      # being.
> 
> Optional overview.
> 
> Missing here: a description of each value.  We should enforce such
> descriptions.  We don't, mostly because we have a number of exceptions
> where documentation would be bothersome, such as enum QKeyCode.
> 
>      #
>      # Notes: The resulting QMP strings can be appended to the "qemu-system-"
>      #        prefix to produce the corresponding QEMU executable name. This
>      #        is true even for "qemu-system-x86_64".
> 
> A tagged section.
> 
>      #
>      # Since: 3.0
> 
> Another tagged section.
> 
>      ##
> 
> Note that qapi-code-gen.txt prescribes no order for the tagged
> sections.  They actually occur in pretty much any order:
> 
>      $ awk '/^##/ { if (on) { if (length(t) > 1) print t; t="" } on=!on } on && /^# (Returns|Since|Notes?|Examples?|TODO):/ { t=t substr($2, 1, 1) }' qapi/*json | sort | uniq -c
>            1 ENS
>            2 ES
>            1 NES
>            1 NETS
>            1 NNSE
>            1 NRS
>            2 NRSE
>           14 NS
>           11 NSE
>            1 RE
>            6 RES
>            4 RNS
>            6 RNSE
>           23 RS
>           78 RSE
>            1 RSEEEE
>            3 RSEN
>           12 RSNE
>           55 SE
>            4 SN
>            2 SNE
>            2 SRNE
>            1 TRSE
>            1 TS
>            1 TSRE
> 
> If you think tightening their order would improve the documentation, we
> should talk.

No thanks :)



  reply	other threads:[~2020-02-28 10:18 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-27 13:40 [PATCH v2] qapi/machine: Place the 'Notes' tag after the 'Since' tag Philippe Mathieu-Daudé
2020-02-27 14:52 ` Markus Armbruster
2020-02-27 14:55   ` Philippe Mathieu-Daudé
2020-02-27 15:21     ` Philippe Mathieu-Daudé
2020-02-27 20:14       ` Eduardo Habkost
2020-02-28  6:56       ` Markus Armbruster
2020-02-28 10:17         ` Philippe Mathieu-Daudé [this message]
2020-02-28 17:34           ` Markus Armbruster

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=d124e9bc-1db6-52a4-843f-7f3fe73fbe5d@redhat.com \
    --to=philmd@redhat.com \
    --cc=armbru@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=qemu-devel@nongnu.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).