From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39350) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Whgmq-0004Z8-Po for qemu-devel@nongnu.org; Tue, 06 May 2014 10:56:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Whgmm-0004Dd-9a for qemu-devel@nongnu.org; Tue, 06 May 2014 10:56:04 -0400 Received: from mx1.redhat.com ([209.132.183.28]:52951) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Whgmm-0004DV-1m for qemu-devel@nongnu.org; Tue, 06 May 2014 10:56:00 -0400 Message-ID: <5368F7F8.3090706@redhat.com> Date: Tue, 06 May 2014 08:55:52 -0600 From: Eric Blake MIME-Version: 1.0 References: <20140502135218.31383.90270.stgit@fimbulvetr.bsc.es> <20140506130740.GA17717@irqsave.net> <20140506092725.4c195cbd@redhat.com> In-Reply-To: <20140506092725.4c195cbd@redhat.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="6AWM1PcrcqiGEGDRNXPIg22jaVTInLTXu" Subject: Re: [Qemu-devel] [PATCH v12 0/4] qapi: Allow modularization of QAPI schema files List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Luiz Capitulino , =?UTF-8?B?QmVub8OudCBDYW5ldA==?= Cc: Markus Armbruster , =?UTF-8?B?TGx1w61zIFZpbGFub3Zh?= , qemu-devel@nongnu.org This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --6AWM1PcrcqiGEGDRNXPIg22jaVTInLTXu Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 05/06/2014 07:27 AM, Luiz Capitulino wrote: > On Tue, 6 May 2014 15:07:40 +0200 > Beno=C3=AEt Canet wrote: >=20 >> I am trying to use this series to modularise the block API. >> >> Here are my finding. >> >> I tried to make a qmp/block.json including VM state related API. >> block.json include a qmp/block-core.json containing only true block st= uff. >> >> When generating and compiling block-core.json to link it with qemu-nbd= >> I saw that some of the block stuff needed ErrorClass so I went the rou= te >> of creating a qmp/common.json containing ErrorClass. >> >> common.json being included in block-core.json and in qapi-schema.json = it >> quickly lead some code being generated in double and the compilation t= o choke. >> >> What do you think would be the best solution to fix this ? >> (Fix the generator ? Make include ignore second inclusion of the same = file ?) >=20 > Make qapi-schema.json a sort of master file and include everything? Won't cut it, if we want to support a subset of files in other contexts. You either have to do: qemu-schema.json: include common include block include other qemu-block: include common include block where block does not work in isolation, and has to be wrapped; but now we have two different wrappers depending on the two different clients that want a different subset. Or you do: qemu-schema.json: include common include block include other block.json: include common now block.json is standalone, and qemu-schema.json ends up including common through two different paths. >=20 > Eventually, we might want to have if/defs and whatnot. But having a mas= ter > file seems a reasonable first step to me. I actually thought this was t= he > intention. Unless I got it wrong, of course. Ifdefs may be a bit much. If we add them, then we can worry about explicit include guards, the same as the C preprocessor. But for now, I'd be perfectly fine with a followup patch that includes a file's contents exactly once, no matter how many times it is included (that is, act as if include guards were implicitly present, since we lack conditionals, so include files are currently idempotent). --=20 Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --6AWM1PcrcqiGEGDRNXPIg22jaVTInLTXu Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJTaPf4AAoJEKeha0olJ0NqR5EIAIGqJMcizNcff3PMoi8hPrLe 9TnPUSdEVg9Bwj4BtW+bWc3S4qZLmwqtP2QDHHK9kT3BykHlLbR9y3xVvAspTILB WZdNJMDpbil84SctzNBa4QBV/gEPvMshuGWnVvFBHDtH0ywAKCNbq7JAvwlP6CdY Gc6+cJi0oaPpanNFbX7GcndRSbZ/PYW7yInAINKj03a/7xCyizPypYBqVH24w6u6 gnOU1HbTSTCGtE2xLDPYvhBf01nO+axFE6sEd2wkq+S7UaAxKeeXVR3TOv3onJBV tz0gOvYNeEGfGQp3vFPymS6RMRniUnWllu+0SFWw0FkyRSnoXSsl2kWwQFUSpj8= =APW3 -----END PGP SIGNATURE----- --6AWM1PcrcqiGEGDRNXPIg22jaVTInLTXu--