From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41219) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W8QGI-0002zP-Tn for qemu-devel@nongnu.org; Wed, 29 Jan 2014 03:12:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W8QGC-0005vj-UL for qemu-devel@nongnu.org; Wed, 29 Jan 2014 03:12:42 -0500 Received: from mx1.redhat.com ([209.132.183.28]:20050) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W8QGC-0005vd-Kd for qemu-devel@nongnu.org; Wed, 29 Jan 2014 03:12:36 -0500 Date: Wed, 29 Jan 2014 16:12:23 +0800 From: Fam Zheng Message-ID: <20140129081223.GA2596@T430.redhat.com> References: <1390488396-16538-1-git-send-email-akong@redhat.com> <1390488396-16538-5-git-send-email-akong@redhat.com> <20140124104831.GA11239@T430.nay.redhat.com> <20140127081756.GB2572@amosk.info> <52E62910.5050303@redhat.com> <20140127104631.GA13148@T430.redhat.com> <20140128104547.GA24312@amosk.info> <52E79132.1030705@redhat.com> <52E7B78A.8000102@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <52E7B78A.8000102@redhat.com> Subject: Re: [Qemu-devel] [PATCH v4 4/5] qmp: full introspection support for QMP List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: mdroth@linux.vnet.ibm.com, libvir-list@redhat.com, qemu-devel@nongnu.org, lcapitulino@redhat.com, qiaonuohan@cn.fujitsu.com, Paolo Bonzini , Amos Kong , xiawenc@linux.vnet.ibm.com On Tue, 01/28 06:58, Eric Blake wrote: > On 01/28/2014 04:14 AM, Paolo Bonzini wrote: > > >> Let's see the feedback of Eric. > > > > Eric's feedback is certainly useful, but I think we need to look at it > > from the QEMU perspective more than the libvirt perspective. > > > > Passing the raw schema and letting libvirt parse it is a Really Bad idea > > from the QEMU perspective, in my opinion, even if it means a little more > > work now and even if libvirt is willing to add the parser. > > Libvirt wants to parse formal qapi, not pseudo-JSON. I still have on my > to-do list to read the v4 schema and make sure that libvirt can live > with it. > > > > > First and foremost, the current "pseudo-JSON" encoding of the schema is > > nothing but a QEMU implementation detail. The "pseudo-JSON" syntax > > definitely shouldn't percolate to the QAPI documentation. Using normal > > QAPI structs means that the normal tool for documentation > > (qapi-schema.json doc comments) applies just as well to QAPI schema > > introspection > > Agreed - I definitely want the output of the query command to be fully > described by qapi. Which means we DO have to convert from the > pseudo-JSON of the qapi file into the final formal qapi format. But the > conversion is known at code generation time, so you should do it as part > of your python code generator, and not repeat the conversion at runtime > in the C code. That is, the C code should have everything already split > out into the data structures it needs to just output the qapi structure > as documented for the formal qapi definition. > Yes, that's exactly what I mean. If we use python to generate code for qobject_to_dataobj() or even generate object_to_$type() for each qapi type, the C code needed will be minimal anyway. Thanks, Fam