All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, Luiz Capitulino <lcapitulino@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 3/4] qobject: Parse non-finite numbers, as an extension
Date: Thu, 16 Jun 2016 21:00:32 -0600	[thread overview]
Message-ID: <576367D0.2090504@redhat.com> (raw)
In-Reply-To: <874m8tumm9.fsf@dusky.pond.sub.org>

[-- Attachment #1: Type: text/plain, Size: 1937 bytes --]

On 06/16/2016 10:25 AM, Markus Armbruster wrote:
> I think this commit mixes up parsing of non-finite numbers, which we may
> or may not want, with general test improvements, which we'll want
> regardless.  Please split the patch.
> 
> On the parsing of non-finite numbers: the code looks good to me, but as
> long as we're not ready to extend QMP to include non-finite numbers both
> ways, I doubt we need to parse them.

Even if we want to guarantee that we will never generate a non-finite
number as the result of a QMP command, we DO have to worry about the
'id' field.  With all this series applied:

$  ./x86_64-softmmu/qemu-system-x86_64 -nodefaults -nographic -qmp
stdio{"QMP": {"version": {"qemu": {"micro": 50, "minor": 6, "major": 2},
"package": " (v2.6.0-1151-g1bb9f5e)"}, "capabilities": []}}
{'execute':'qmp_capabilities', 'id':[nan,inf,-Infinity]}
{"return": {}, "id": ["nan", "inf", "-inf"]}

and with just 1-3 applied:

$ ./x86_64-softmmu/qemu-system-x86_64 -nodefaults -nographic -qmp
stdio{"QMP": {"version": {"qemu": {"micro": 50, "minor": 6, "major": 2},
"package": " (v2.6.0-1151-g1bb9f5e)"}, "capabilities": []}}
{'execute':'qmp_capabilities', 'id':[nan,inf,-Infinity]}
{"return": {}, "id": [nan, inf, -inf]}

[okay, I cheated, as evidenced by the new git stuff appended in the
version output being the same between the two lines, but you get the idea].

I'm comfortable with a compromise that asserts that QMP commands will
never output a non-finite number anywhere that introspection lists
'number', but that QMP itself understands the extension of parsing a
bare inf anywhere, and if a bare inf appears under 'id', then the replay
of 'id' will also include a bare inf (if your JSON library allows you to
send non-JSON, it should also allow you to parse non-JSON).

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]

  reply	other threads:[~2016-06-17  3:00 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-10  2:48 [Qemu-devel] [PATCH 0/4] Guarantee valid JSON in QMP, even for nonfinite numbers Eric Blake
2016-06-10  2:48 ` [Qemu-devel] [PATCH 1/4] qobject: Correct JSON lexer grammar comments Eric Blake
2016-06-16 16:19   ` Markus Armbruster
2016-06-16 17:41     ` Eric Blake
2016-06-17  7:54       ` Markus Armbruster
2016-06-21 13:53         ` Eric Blake
2016-06-10  2:48 ` [Qemu-devel] [PATCH 2/4] checkpatch: There is no qemu_strtod() Eric Blake
2016-06-16 16:20   ` Markus Armbruster
2016-06-16 16:31     ` Paolo Bonzini
2016-06-10  2:48 ` [Qemu-devel] [PATCH 3/4] qobject: Parse non-finite numbers, as an extension Eric Blake
2016-06-16 15:38   ` Markus Armbruster
2016-06-16 16:25     ` Markus Armbruster
2016-06-17  3:00       ` Eric Blake [this message]
2016-06-17  8:04         ` Markus Armbruster
2016-06-10  2:48 ` [Qemu-devel] [PATCH 4/4] qobject: Output valid JSON for non-finite numbers Eric Blake
2016-06-16 16:17   ` Markus Armbruster
2016-06-17  3:06     ` Eric Blake
2016-06-17  8:14       ` 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=576367D0.2090504@redhat.com \
    --to=eblake@redhat.com \
    --cc=armbru@redhat.com \
    --cc=lcapitulino@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 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.