From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40578) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Whf5Y-0001RF-8D for qemu-devel@nongnu.org; Tue, 06 May 2014 09:07:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Whf5U-0006nT-8s for qemu-devel@nongnu.org; Tue, 06 May 2014 09:07:16 -0400 Received: from lputeaux-656-01-25-125.w80-12.abo.wanadoo.fr ([80.12.84.125]:45400 helo=paradis.irqsave.net) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Whf5T-0006nO-Vw for qemu-devel@nongnu.org; Tue, 06 May 2014 09:07:12 -0400 Date: Tue, 6 May 2014 15:07:40 +0200 From: =?iso-8859-1?Q?Beno=EEt?= Canet Message-ID: <20140506130740.GA17717@irqsave.net> References: <20140502135218.31383.90270.stgit@fimbulvetr.bsc.es> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <20140502135218.31383.90270.stgit@fimbulvetr.bsc.es> Content-Transfer-Encoding: quoted-printable 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: =?iso-8859-1?Q?Llu=EDs?= Vilanova Cc: =?iso-8859-1?Q?Beno=EEt?= Canet , Markus Armbruster , qemu-devel@nongnu.org, Luiz Capitulino The Friday 02 May 2014 =E0 15:52:19 (+0200), Llu=EDs Vilanova wrote : Hello, 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 stuff= . 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 route 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 to c= hoke. What do you think would be the best solution to fix this ? (Fix the generator ? Make include ignore second inclusion of the same fil= e ?) Best regards Beno=EEt > Adds an include primitive to the syntax of QAPI schema files, allowing = these to > be modularized into multiple per-topic files in the future. >=20 > Signed-off-by: Llu=EDs Vilanova > Reviewed-by: Eric Blake > Reviewed-by: Markus Armbruster > --- >=20 > Changes in v12: >=20 > * Fix "Reviewed-by" lines. >=20 > Changes in v11: >=20 > * Rename "tests/include-after-err*" to "tests/include-before-err*" (Mar= kus > Armbruster). > * Do not use too many line breaks in "test/Makefile" (Eric Blake). >=20 > Changes in v10: >=20 > * Various argument/variable name changes (Markus Armbruster). > * Fix path replacement command in error files when executing tests (Mar= kus > Armbruster). > * Catch IOError and translate it to QAPIExprError (Markus Armbruster). >=20 > Changes in v9: >=20 > * Do not catch unknown exceptions in "tests/qapi-schema/test-qapi.py". > * Show primitive syntax in commit message. > * Do not pre-initialize 'input_file' in "scripts/qapi-commands.py". > * Use a one-liner for test error message checking. >=20 > Changes in v8: >=20 > * Do not show absolute paths in error messages. >=20 > Changes in v7: >=20 > * Add tests for relative path inclusion. > * Print inclusion path on all errors. > * Add test to ensure errors after an include have the correct context. > * Squash "qapi.py" changes and tests into a single patch. > * Add test for 'include' directive format. > * s/file path/file name/. > * s/included/include/. > * Move "-i" to the end of the command. > * Fix GNUism when using sed. >=20 > Changes in v6: >=20 > * Split changes for long-line breaking in makefiles. > * Put documentation on a separate section; reference recursiveness. > * Check (and test) for non-string include arguments (tanks to Beno=EEt = Canet). >=20 > Changes in v5: >=20 > * Rebase on b3706fa. > * Remove 'error_base' argument in 'parse_schema'; fix test checks inste= ad. > * Implement include directive using JSON syntax. >=20 > Changes in v4: >=20 > * Rebase on 3e890c7. > * Minor cosmetic changes. > * Fix recording of included files in case of a cycle error. > * Add a more complex include cycle test. >=20 >=20 > Changes in v3: >=20 > * Fix documentation examples regarding how the input file is passed to = the > scripts. > * Add documentation for the 'include' directive. > * Detect inclusion loops. > * Fix "tests/qapi-schema/test-qapi.py" and "tests/Makefile" to use an e= xplicit > input file when running tests. > * Fix QAPI tests to cope with an explicit input file. > * Add tests for the "include" directive. >=20 >=20 > Changes in v2: >=20 > * Change the scripts to use an explicit input file instead of standard = input. > * Fix "tests/Makefile" to use the new argument. > * Get the input directory for the "include" directive from the input fi= le > dirname. >=20 >=20 > Llu=EDs Vilanova (4): > qapi: [trivial] Break long command lines > qapi: [trivial] Do not catch unknown exceptions in "test-qapi.py" > qapi: Use an explicit input file > qapi: Add a primitive to include other files from a QAPI schema f= ile >=20 >=20 > Makefile | 24 +++++-- > docs/qapi-code-gen.txt | 15 ++++ > scripts/qapi-commands.py | 9 ++- > scripts/qapi-types.py | 9 ++- > scripts/qapi-visit.py | 9 ++- > scripts/qapi.py | 70 ++++++++++++= ++++---- > tests/Makefile | 26 ++++++- > tests/qapi-schema/duplicate-key.err | 2 - > .../qapi-schema/flat-union-invalid-branch-key.err | 2 - > .../flat-union-invalid-discriminator.err | 2 - > tests/qapi-schema/flat-union-no-base.err | 2 - > .../flat-union-string-discriminator.err | 2 - > tests/qapi-schema/funny-char.err | 2 - > tests/qapi-schema/include-before-err.err | 1=20 > tests/qapi-schema/include-before-err.exit | 1=20 > tests/qapi-schema/include-before-err.json | 2 + > tests/qapi-schema/include-before-err.out | 0=20 > tests/qapi-schema/include-cycle-b.json | 1=20 > tests/qapi-schema/include-cycle-c.json | 1=20 > tests/qapi-schema/include-cycle.err | 3 + > tests/qapi-schema/include-cycle.exit | 1=20 > tests/qapi-schema/include-cycle.json | 1=20 > tests/qapi-schema/include-cycle.out | 0=20 > tests/qapi-schema/include-format-err.err | 1=20 > tests/qapi-schema/include-format-err.exit | 1=20 > tests/qapi-schema/include-format-err.json | 2 + > tests/qapi-schema/include-format-err.out | 0=20 > tests/qapi-schema/include-nested-err.err | 2 + > tests/qapi-schema/include-nested-err.exit | 1=20 > tests/qapi-schema/include-nested-err.json | 1=20 > tests/qapi-schema/include-nested-err.out | 0=20 > tests/qapi-schema/include-no-file.err | 1=20 > tests/qapi-schema/include-no-file.exit | 1=20 > tests/qapi-schema/include-no-file.json | 1=20 > tests/qapi-schema/include-no-file.out | 0=20 > tests/qapi-schema/include-non-file.err | 1=20 > tests/qapi-schema/include-non-file.exit | 1=20 > tests/qapi-schema/include-non-file.json | 1=20 > tests/qapi-schema/include-non-file.out | 0=20 > tests/qapi-schema/include-relpath-sub.json | 2 + > tests/qapi-schema/include-relpath.err | 0=20 > tests/qapi-schema/include-relpath.exit | 1=20 > tests/qapi-schema/include-relpath.json | 1=20 > tests/qapi-schema/include-relpath.out | 3 + > tests/qapi-schema/include-self-cycle.err | 1=20 > tests/qapi-schema/include-self-cycle.exit | 1=20 > tests/qapi-schema/include-self-cycle.json | 1=20 > tests/qapi-schema/include-self-cycle.out | 0=20 > tests/qapi-schema/include-simple-sub.json | 2 + > tests/qapi-schema/include-simple.err | 0=20 > tests/qapi-schema/include-simple.exit | 1=20 > tests/qapi-schema/include-simple.json | 1=20 > tests/qapi-schema/include-simple.out | 3 + > tests/qapi-schema/include/relpath.json | 1=20 > tests/qapi-schema/missing-colon.err | 2 - > tests/qapi-schema/missing-comma-list.err | 2 - > tests/qapi-schema/missing-comma-object.err | 2 - > tests/qapi-schema/non-objects.err | 2 - > tests/qapi-schema/quoted-structural-chars.err | 2 - > tests/qapi-schema/test-qapi.py | 6 +- > tests/qapi-schema/trailing-comma-list.err | 2 - > tests/qapi-schema/trailing-comma-object.err | 2 - > tests/qapi-schema/unclosed-list.err | 2 - > tests/qapi-schema/unclosed-object.err | 2 - > tests/qapi-schema/unclosed-string.err | 2 - > tests/qapi-schema/union-invalid-base.err | 2 - > 66 files changed, 187 insertions(+), 58 deletions(-) > create mode 100644 tests/qapi-schema/include-before-err.err > create mode 100644 tests/qapi-schema/include-before-err.exit > create mode 100644 tests/qapi-schema/include-before-err.json > create mode 100644 tests/qapi-schema/include-before-err.out > create mode 100644 tests/qapi-schema/include-cycle-b.json > create mode 100644 tests/qapi-schema/include-cycle-c.json > create mode 100644 tests/qapi-schema/include-cycle.err > create mode 100644 tests/qapi-schema/include-cycle.exit > create mode 100644 tests/qapi-schema/include-cycle.json > create mode 100644 tests/qapi-schema/include-cycle.out > create mode 100644 tests/qapi-schema/include-format-err.err > create mode 100644 tests/qapi-schema/include-format-err.exit > create mode 100644 tests/qapi-schema/include-format-err.json > create mode 100644 tests/qapi-schema/include-format-err.out > create mode 100644 tests/qapi-schema/include-nested-err.err > create mode 100644 tests/qapi-schema/include-nested-err.exit > create mode 100644 tests/qapi-schema/include-nested-err.json > create mode 100644 tests/qapi-schema/include-nested-err.out > create mode 100644 tests/qapi-schema/include-no-file.err > create mode 100644 tests/qapi-schema/include-no-file.exit > create mode 100644 tests/qapi-schema/include-no-file.json > create mode 100644 tests/qapi-schema/include-no-file.out > create mode 100644 tests/qapi-schema/include-non-file.err > create mode 100644 tests/qapi-schema/include-non-file.exit > create mode 100644 tests/qapi-schema/include-non-file.json > create mode 100644 tests/qapi-schema/include-non-file.out > create mode 100644 tests/qapi-schema/include-relpath-sub.json > create mode 100644 tests/qapi-schema/include-relpath.err > create mode 100644 tests/qapi-schema/include-relpath.exit > create mode 100644 tests/qapi-schema/include-relpath.json > create mode 100644 tests/qapi-schema/include-relpath.out > create mode 100644 tests/qapi-schema/include-self-cycle.err > create mode 100644 tests/qapi-schema/include-self-cycle.exit > create mode 100644 tests/qapi-schema/include-self-cycle.json > create mode 100644 tests/qapi-schema/include-self-cycle.out > create mode 100644 tests/qapi-schema/include-simple-sub.json > create mode 100644 tests/qapi-schema/include-simple.err > create mode 100644 tests/qapi-schema/include-simple.exit > create mode 100644 tests/qapi-schema/include-simple.json > create mode 100644 tests/qapi-schema/include-simple.out > create mode 100644 tests/qapi-schema/include/relpath.json >=20 >=20 > To: qemu-devel@nongnu.org > Cc: Luiz Capitulino > Cc: Markus Armbruster > Cc: Eric Blake > Cc: Beno=EEt Canet