From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52345) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WPYOj-0001wy-6U for qemu-devel@nongnu.org; Mon, 17 Mar 2014 10:20:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WPYOe-00042x-Mh for qemu-devel@nongnu.org; Mon, 17 Mar 2014 10:20:13 -0400 Received: from lputeaux-656-01-25-125.w80-12.abo.wanadoo.fr ([80.12.84.125]:56256 helo=paradis.irqsave.net) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WPYOe-00040l-AL for qemu-devel@nongnu.org; Mon, 17 Mar 2014 10:20:08 -0400 Date: Mon, 17 Mar 2014 15:20:06 +0100 From: =?iso-8859-1?Q?Beno=EEt?= Canet Message-ID: <20140317142005.GB3047@irqsave.net> References: <20140228155309.28087.96600.stgit@fimbulvetr.bsc.es> <20140228155321.28087.44860.stgit@fimbulvetr.bsc.es> <87eh2mgusw.fsf@blackfin.pond.sub.org> <87d2i3z7l0.fsf@fimbulvetr.bsc.es> <8738izxpyb.fsf@blackfin.pond.sub.org> <5314C244.5070805@redhat.com> <87y50qs85q.fsf@blackfin.pond.sub.org> <20140313153355.GA5294@irqsave.net> <5321D4A7.7000007@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <5321D4A7.7000007@redhat.com> Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v4 2/3] qapi: Add a primitive to include other files from a QAPI schema file List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: =?iso-8859-1?Q?Beno=EEt?= Canet , Markus Armbruster , qemu-devel@nongnu.org The Thursday 13 Mar 2014 =E0 09:54:15 (-0600), Eric Blake wrote : > On 03/13/2014 09:33 AM, Beno=EEt Canet wrote: >=20 > >> We certainly can't do without comments. > >> > >> JSON is designed for easy data exchange, but we use it as programmin= g > >> language syntax. Its restrictions make sense for easy data exchange= , > >> but hurt our use. We're not the first ones experiencing that pain: > >> http://json5.org/ > >> > >> No idea how much momentum this JSON5 thingy has... >=20 > If we 's,#,//,', our comments magically fall in line with JSON5 syntax; > everything else in our files is already compliant with JSON5. Not really qapi-schema.json is missing comas between types to be a valid json file. The fragment: { 'type' : 'InputBtnEvent', 'data' : { 'button' : 'InputButton', 'down' : 'bool' } } { 'type' : 'InputMoveEvent', 'data' : { 'axis' : 'InputAxis', 'value' : 'int' } } Should be: [ { 'type' : 'InputBtnEvent', 'data' : { 'button' : 'InputButton', 'down' : 'bool' } }, { 'type' : 'InputMoveEvent', 'data' : { 'axis' : 'InputAxis', 'value' : 'int' } } ] to hope being a valid json file. Best regards Beno=EEt >=20 > >> > >> Switch to JSON5 and call it qapi-schema.json5? >=20 > This actually seems like a rather nice idea - but due to our choice of > comments, it means rewriting the bulk of the file and tweaking our pars= er. >=20 > >> > >=20 > > Hmm don't we want something that python and other language know how t= o parse out > > of the box ? Or will we write yet another delicate work of art to par= se it ? >=20 > Our existing parser would only need to learn a new comment syntax to > parse the subset of JSON5 that we currently actually use. Parsing FULL > JSON5 would mean also learning about trailing commas, unquoted names in > name:value pairs, multiline strings, and alternative numeric > representations. But a point made on the JSON5 page is that ES5 > JavaScript already parses JSON5, just as it already parses original JSO= N. >=20 > --=20 > Eric Blake eblake redhat com +1-919-301-3266 > Libvirt virtualization library http://libvirt.org >=20