From: Anthony Liguori <anthony@codemonkey.ws>
To: Avi Kivity <avi@redhat.com>
Cc: "ehabkost@redhat.com" <ehabkost@redhat.com>,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
"jan.kiszka@siemens.com" <jan.kiszka@siemens.com>,
"dlaor@redhat.com" <dlaor@redhat.com>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
Luiz Capitulino <lcapitulino@redhat.com>,
Filip Navara <filip.navara@gmail.com>,
Vincent Hanquez <tab@snarc.org>
Subject: Re: [Qemu-devel] [PATCH 01/11] QMP: Introduce specification file
Date: Sun, 28 Jun 2009 12:23:23 -0500 [thread overview]
Message-ID: <4A47A70B.7070806@codemonkey.ws> (raw)
In-Reply-To: <4A476C60.1080609@redhat.com>
Avi Kivity wrote:
> On 06/26/2009 06:02 PM, Anthony Liguori wrote:
>> # v1 -> v2
>> # o allow integer in symbol names (C-style)
>> # o allow negative integer/floats
>> # o no newlines in strings
>> # o one value per response_data line
>>
>> __skip__: [ \t]+
>>
>> symbol: [A-Za-z_\-][A-Za-z_\-0-9]*
>>
>> decimalinteger: (-)?[1-9][0-9]+
>>
>
> Traditionally, 0 is recognized as an integer.
>> hexinteger: 0x[0-9]+
>>
>
> [a-fA-f]
I have an updated grammer that has both of these fixes.
>> float: (-)?[0-9]+\.[0-9]+
>>
>
> 5, 3., .10, 1e9 are all floats.
I was following JSON style floats as opposed to C float. C floats are
irregular and difficult to parse with an automatic parser. If we care,
it's worth doing correctly though.
>> string: \"([^\"\\\n]|(\\[0-9][0-9][0-9]))*\" | symbol
>>
>
> I think json recognises 'blah' but not symbol. Also it may recognize
> other escapes.
We can drop symbol. The original intention was to output format similar
to what we have today but we're pretty far from that now.
> It's important to allow clients to use json emitters so they can
> construct a dict and throw it at qemu, similarly to parse qemu results.
>
>> arg_list: value arg_list?
>>
>> command: symbol arg_list? '\n'
>>
>
> Better to use a dictionary for the argument list (more
> self-documenting, easier expansion).
Verses a list? I'm not sure a dict fits the current QEMU model very
well. How would you propose fitting it into the current monitor
infrastructure?
> I'd also adopt jsonrpc's request and id attributes, they allow async
> commands and remove the need for any specialized parsing.
I think command tagging is a very good thing to do.
>> response_status: ('+' | '-') number string? '\n'
>> response_data: '=' value '\n'
>> async_msg: '*' arg_list '\n'
>>
>>
>
> Similarly, return a value that contains message type, id, and return
> value.
I think command outputs are basically return values. What's nice about
the current QMP proposal is that we're basically returning tuples.
> I think it's fine to drop jsonrpc as the standard (but retain its
> features) and just adopt json for encoding.
Yeah, I think if we focus on defining a grammar and semantics, if it
happens to look like JSON, I don't really care. I just don't want to
adopt the baggage of json and particularly json-rpc.
Regards,
Anthony Liguori
next prev parent reply other threads:[~2009-06-28 17:23 UTC|newest]
Thread overview: 199+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <cover.1245730845.git.lcapitulino@redhat.com>
2009-06-23 4:28 ` [Qemu-devel] [PATCH 01/11] QMP: Introduce specification file Luiz Capitulino
2009-06-23 8:55 ` [Qemu-devel] " Avi Kivity
2009-06-23 9:57 ` Daniel P. Berrange
2009-06-23 10:08 ` Avi Kivity
2009-06-23 13:22 ` Luiz Capitulino
2009-06-23 13:31 ` Avi Kivity
2009-06-23 13:06 ` Luiz Capitulino
2009-06-23 13:10 ` Daniel P. Berrange
2009-06-23 17:12 ` Luiz Capitulino
2009-06-23 13:27 ` Avi Kivity
2009-06-23 17:15 ` Luiz Capitulino
2009-06-23 13:12 ` Anthony Liguori
2009-06-23 13:30 ` Avi Kivity
2009-06-23 13:34 ` Eduardo Habkost
2009-06-23 13:40 ` Anthony Liguori
2009-06-23 15:01 ` Avi Kivity
2009-06-23 15:47 ` Anthony Liguori
2009-06-23 16:02 ` Avi Kivity
2009-06-23 17:20 ` Luiz Capitulino
2009-06-23 14:45 ` [Qemu-devel] " Vincent Hanquez
2009-06-23 15:56 ` Avi Kivity
2009-06-23 15:56 ` Anthony Liguori
2009-06-23 16:04 ` Avi Kivity
2009-06-23 16:09 ` Anthony Liguori
2009-06-23 16:15 ` Avi Kivity
2009-06-23 18:32 ` Anthony Liguori
2009-06-23 18:47 ` Avi Kivity
2009-06-23 19:00 ` Anthony Liguori
2009-06-23 19:44 ` Avi Kivity
2009-06-23 19:52 ` Avi Kivity
2009-06-23 20:07 ` Anthony Liguori
2009-06-23 20:13 ` Avi Kivity
2009-06-23 22:02 ` Anthony Liguori
2009-06-23 22:02 ` Vincent Hanquez
2009-06-23 22:50 ` Anthony Liguori
2009-06-24 1:01 ` Vincent Hanquez
2009-06-24 11:55 ` James
2009-06-24 12:09 ` Daniel P. Berrange
2009-06-24 12:32 ` James
2009-06-24 12:54 ` Daniel P. Berrange
2009-06-24 14:31 ` Stefano Stabellini
2009-06-24 12:46 ` Anthony Liguori
2009-06-24 13:02 ` Daniel P. Berrange
2009-06-24 13:21 ` Avi Kivity
2009-06-24 13:09 ` Avi Kivity
2009-06-24 16:22 ` Jamie Lokier
2009-06-24 16:25 ` Avi Kivity
2009-06-24 18:52 ` Jamie Lokier
2009-06-24 17:39 ` Vincent Hanquez
2009-06-24 18:23 ` Filip Navara
2009-06-24 18:41 ` Jamie Lokier
2009-06-24 18:42 ` Vincent Hanquez
2009-06-24 18:55 ` Filip Navara
2009-06-24 18:56 ` Jamie Lokier
2009-06-24 13:34 ` Ian Jackson
2009-06-24 16:09 ` Jamie Lokier
2009-06-24 14:03 ` Filip Navara
2009-06-25 19:30 ` Luiz Capitulino
2009-06-24 14:06 ` Vincent Hanquez
2009-06-24 14:41 ` Stefano Stabellini
2009-06-24 14:56 ` Chris Webb
2009-06-24 19:01 ` Jamie Lokier
2009-06-24 15:57 ` Filip Navara
2009-06-24 16:22 ` Avi Kivity
2009-06-24 16:42 ` Filip Navara
2009-06-24 19:05 ` Jamie Lokier
2009-06-24 19:24 ` Filip Navara
2009-06-24 21:13 ` Jamie Lokier
2009-06-24 21:29 ` Filip Navara
2009-06-24 21:47 ` Jamie Lokier
2009-06-25 13:07 ` Stefano Stabellini
2009-06-25 14:55 ` Avi Kivity
2009-06-25 15:10 ` Anthony Liguori
2009-06-25 15:20 ` Avi Kivity
2009-06-25 17:04 ` Stefano Stabellini
2009-06-25 18:10 ` Anthony Liguori
2009-06-25 19:03 ` Daniel P. Berrange
2009-06-26 9:00 ` Avi Kivity
2009-06-26 9:10 ` Daniel P. Berrange
2009-06-26 9:16 ` Avi Kivity
2009-06-26 9:44 ` Daniel P. Berrange
2009-06-26 11:41 ` Vincent Hanquez
2009-06-25 18:09 ` Anthony Liguori
2009-06-25 18:31 ` Avi Kivity
2009-06-25 19:54 ` Anthony Liguori
2009-06-26 9:12 ` Avi Kivity
2009-06-26 13:21 ` Anthony Liguori
2009-06-26 15:02 ` Anthony Liguori
2009-06-26 17:36 ` Filip Navara
2009-06-26 19:36 ` Anthony Liguori
2009-06-26 20:25 ` Filip Navara
2009-06-28 13:16 ` Avi Kivity
2009-06-28 17:30 ` Anthony Liguori
2009-06-28 17:36 ` Avi Kivity
2009-06-29 9:44 ` Stefano Stabellini
2009-06-29 9:50 ` Avi Kivity
2009-06-29 10:09 ` Stefano Stabellini
2009-06-27 7:03 ` Filip Navara
2009-06-28 12:11 ` Avi Kivity
2009-06-28 13:13 ` Avi Kivity
2009-06-28 17:23 ` Anthony Liguori [this message]
2009-06-28 17:34 ` Avi Kivity
2009-06-29 0:42 ` Anthony Liguori
2009-06-29 6:04 ` Avi Kivity
2009-06-29 9:48 ` Stefano Stabellini
2009-06-29 20:23 ` Anthony Liguori
2009-06-30 5:37 ` Avi Kivity
2009-06-30 13:30 ` Anthony Liguori
2009-06-30 13:51 ` Stefano Stabellini
2009-06-30 13:52 ` Avi Kivity
2009-06-30 13:56 ` Anthony Liguori
2009-06-30 14:03 ` Luiz Capitulino
2009-06-30 16:05 ` Avi Kivity
2009-06-30 18:21 ` Anthony Liguori
2009-07-01 8:07 ` Avi Kivity
2009-06-29 14:41 ` Stefano Stabellini
2009-06-29 14:56 ` Avi Kivity
2009-06-28 17:38 ` Filip Navara
2009-06-26 11:36 ` Vincent Hanquez
2009-06-24 16:00 ` Jamie Lokier
2009-06-23 16:20 ` Avi Kivity
2009-06-23 17:59 ` Vincent Hanquez
2009-06-23 15:41 ` Blue Swirl
2009-06-23 4:28 ` [Qemu-devel] [PATCH 02/11] QMP: Introduce MONITOR_USE_CONTROL flag Luiz Capitulino
2009-06-23 4:28 ` [Qemu-devel] [PATCH 03/11] QMP: Introduce protocol print functions Luiz Capitulino
2009-06-23 13:45 ` Anthony Liguori
2009-06-23 13:53 ` Eduardo Habkost
2009-06-23 4:28 ` [Qemu-devel] [PATCH 04/11] QMP: Make monitor_handle_command() QMP aware Luiz Capitulino
2009-06-23 13:51 ` Anthony Liguori
2009-06-23 17:25 ` Luiz Capitulino
2009-06-23 4:29 ` [Qemu-devel] [PATCH 05/11] QMP: Introduce control mode chardev handling Luiz Capitulino
2009-06-23 4:29 ` [Qemu-devel] [PATCH 06/11] QMP: Introduce asynchronous events infrastructure Luiz Capitulino
2009-06-23 8:59 ` [Qemu-devel] " Jan Kiszka
2009-06-23 13:31 ` Luiz Capitulino
2009-06-23 10:08 ` Daniel P. Berrange
2009-06-23 10:11 ` Avi Kivity
2009-06-23 14:46 ` Paul Brook
2009-06-23 10:32 ` Daniel P. Berrange
2009-06-23 11:23 ` Avi Kivity
2009-06-23 13:36 ` Luiz Capitulino
2009-06-23 13:48 ` Eduardo Habkost
2009-06-23 13:51 ` Jan Kiszka
2009-06-23 16:34 ` Avi Kivity
2009-06-23 16:47 ` Daniel P. Berrange
2009-06-23 4:29 ` [Qemu-devel] [PATCH 07/11] QMP: Enable simple commands Luiz Capitulino
2009-06-23 4:29 ` [Qemu-devel] [PATCH 08/11] QMP: Port balloon command Luiz Capitulino
2009-06-23 9:42 ` [Qemu-devel] " Avi Kivity
2009-06-23 13:59 ` Anthony Liguori
2009-06-23 16:36 ` Avi Kivity
2009-06-23 16:58 ` Anthony Liguori
2009-06-23 16:59 ` Luiz Capitulino
2009-06-23 18:38 ` Anthony Liguori
2009-06-25 11:27 ` Dor Laor
2009-06-25 19:11 ` Luiz Capitulino
2009-06-26 9:21 ` Avi Kivity
2009-06-26 9:42 ` Daniel P. Berrange
2009-06-26 11:15 ` Avi Kivity
2009-06-27 15:58 ` Luiz Capitulino
2009-06-28 15:52 ` Avi Kivity
2009-06-28 16:30 ` Blue Swirl
2009-06-28 17:23 ` Filip Navara
2009-06-28 17:43 ` Avi Kivity
2009-06-28 17:51 ` Blue Swirl
2009-06-28 18:36 ` Avi Kivity
2009-06-28 22:11 ` Jamie Lokier
2009-06-25 19:59 ` Anthony Liguori
2009-06-23 4:29 ` [Qemu-devel] [PATCH 09/11] QMP: Port 'info blockstats' command Luiz Capitulino
2009-06-23 9:43 ` [Qemu-devel] " Avi Kivity
2009-06-23 9:59 ` Jan Kiszka
2009-06-23 10:09 ` Avi Kivity
2009-06-23 10:10 ` Jan Kiszka
2009-06-23 14:01 ` [Qemu-devel] " Anthony Liguori
2009-06-23 4:29 ` [Qemu-devel] [PATCH 10/11] QMP: Introduce basic events Luiz Capitulino
2009-06-23 9:46 ` [Qemu-devel] " Avi Kivity
2009-06-23 17:07 ` Luiz Capitulino
2009-06-23 10:06 ` Daniel P. Berrange
2009-06-23 4:30 ` [Qemu-devel] [PATCH 11/11] QMP: Command-line flag to enable control mode Luiz Capitulino
2009-06-23 9:03 ` [Qemu-devel] " Jan Kiszka
2009-06-23 10:04 ` Daniel P. Berrange
2009-06-23 10:11 ` Jan Kiszka
2009-06-23 10:17 ` Avi Kivity
2009-06-23 10:54 ` Jan Kiszka
2009-06-23 11:28 ` Avi Kivity
2009-06-23 11:44 ` Jan Kiszka
2009-06-23 11:51 ` Avi Kivity
2009-06-23 11:53 ` Jan Kiszka
2009-06-23 12:01 ` Avi Kivity
2009-06-23 12:39 ` Jan Kiszka
2009-06-23 12:46 ` Avi Kivity
2009-06-23 12:48 ` Avi Kivity
2009-06-23 11:54 ` Daniel P. Berrange
2009-06-23 11:48 ` Daniel P. Berrange
2009-06-23 12:25 ` Avi Kivity
2009-06-23 14:06 ` Anthony Liguori
2009-06-23 10:19 ` Daniel P. Berrange
2009-06-23 11:13 ` Jan Kiszka
2009-06-23 13:59 ` Luiz Capitulino
2009-06-23 14:06 ` Jan Kiszka
2009-06-23 17:27 ` Luiz Capitulino
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=4A47A70B.7070806@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=avi@redhat.com \
--cc=dlaor@redhat.com \
--cc=ehabkost@redhat.com \
--cc=filip.navara@gmail.com \
--cc=jan.kiszka@siemens.com \
--cc=lcapitulino@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=tab@snarc.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.