On 04/01/2015 06:17 AM, Eric Blake wrote: >> I guess JSON / Python was chosen as QAPI schema language to save us the >> bother of defining a syntax and building the tools to work with it, like >> an Emacs mode. JSON's not exactly my favourite choice, but at least >> it's not XML. >> >> What we have now isn't JSON, but it's still a subset of Python, and the >> Python tools work. If we go beyond Python, they'll break. > > Well, we were a subset of Python, until this patch added true, false, > and null (the Python way would have been True, False, and None). We are > also similar to JSON5, http://json5.org/ > > Among other things, JSON5 allows trailing commas, allows unquoted keys > in a dictionary, allows single-quoted strings, and allows C-style comments.
Another thing I just noticed: JSON allows '\u0061' as a synonym for the one-byte string 'a', but our parser does not (instead, our parser treats it like the five bytes 'u0061'). I guess we haven't noticed, since qapi has never needed non-ascii names... > Since we're not quite python or JSON, we've already rolled our own > parser; so rewriting QAPI to use a syntax of our own choosing is not > that much of a leap. But not for this series. So of course this still holds, and I won't stall my v6 posting because of it. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature