[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v12 0/4] qapi: Allow modularization of QAPI sche
Re: [Qemu-devel] [PATCH v12 0/4] qapi: Allow modularization of QAPI schema files
Tue, 6 May 2014 15:07:40 +0200
The Friday 02 May 2014 à 15:52:19 (+0200), Lluís Vilanova wrote :
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 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 ?)
> Adds an include primitive to the syntax of QAPI schema files, allowing these
> be modularized into multiple per-topic files in the future.
> Signed-off-by: Lluís Vilanova <address@hidden>
> Reviewed-by: Eric Blake <address@hidden>
> Reviewed-by: Markus Armbruster <address@hidden>
> Changes in v12:
> * Fix "Reviewed-by" lines.
> Changes in v11:
> * Rename "tests/include-after-err*" to "tests/include-before-err*" (Markus
> * Do not use too many line breaks in "test/Makefile" (Eric Blake).
> Changes in v10:
> * Various argument/variable name changes (Markus Armbruster).
> * Fix path replacement command in error files when executing tests (Markus
> * Catch IOError and translate it to QAPIExprError (Markus Armbruster).
> Changes in v9:
> * 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.
> Changes in v8:
> * Do not show absolute paths in error messages.
> Changes in v7:
> * 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.
> Changes in v6:
> * 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ît Canet).
> Changes in v5:
> * Rebase on b3706fa.
> * Remove 'error_base' argument in 'parse_schema'; fix test checks instead.
> * Implement include directive using JSON syntax.
> Changes in v4:
> * Rebase on 3e890c7.
> * Minor cosmetic changes.
> * Fix recording of included files in case of a cycle error.
> * Add a more complex include cycle test.
> Changes in v3:
> * Fix documentation examples regarding how the input file is passed to the
> * Add documentation for the 'include' directive.
> * Detect inclusion loops.
> * Fix "tests/qapi-schema/test-qapi.py" and "tests/Makefile" to use an explicit
> input file when running tests.
> * Fix QAPI tests to cope with an explicit input file.
> * Add tests for the "include" directive.
> Changes in v2:
> * 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 file
> Lluís 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 file
> 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
> tests/qapi-schema/include-before-err.exit | 1
> tests/qapi-schema/include-before-err.json | 2 +
> tests/qapi-schema/include-before-err.out | 0
> tests/qapi-schema/include-cycle-b.json | 1
> tests/qapi-schema/include-cycle-c.json | 1
> tests/qapi-schema/include-cycle.err | 3 +
> tests/qapi-schema/include-cycle.exit | 1
> tests/qapi-schema/include-cycle.json | 1
> tests/qapi-schema/include-cycle.out | 0
> tests/qapi-schema/include-format-err.err | 1
> tests/qapi-schema/include-format-err.exit | 1
> tests/qapi-schema/include-format-err.json | 2 +
> tests/qapi-schema/include-format-err.out | 0
> tests/qapi-schema/include-nested-err.err | 2 +
> tests/qapi-schema/include-nested-err.exit | 1
> tests/qapi-schema/include-nested-err.json | 1
> tests/qapi-schema/include-nested-err.out | 0
> tests/qapi-schema/include-no-file.err | 1
> tests/qapi-schema/include-no-file.exit | 1
> tests/qapi-schema/include-no-file.json | 1
> tests/qapi-schema/include-no-file.out | 0
> tests/qapi-schema/include-non-file.err | 1
> tests/qapi-schema/include-non-file.exit | 1
> tests/qapi-schema/include-non-file.json | 1
> tests/qapi-schema/include-non-file.out | 0
> tests/qapi-schema/include-relpath-sub.json | 2 +
> tests/qapi-schema/include-relpath.err | 0
> tests/qapi-schema/include-relpath.exit | 1
> tests/qapi-schema/include-relpath.json | 1
> tests/qapi-schema/include-relpath.out | 3 +
> tests/qapi-schema/include-self-cycle.err | 1
> tests/qapi-schema/include-self-cycle.exit | 1
> tests/qapi-schema/include-self-cycle.json | 1
> tests/qapi-schema/include-self-cycle.out | 0
> tests/qapi-schema/include-simple-sub.json | 2 +
> tests/qapi-schema/include-simple.err | 0
> tests/qapi-schema/include-simple.exit | 1
> tests/qapi-schema/include-simple.json | 1
> tests/qapi-schema/include-simple.out | 3 +
> tests/qapi-schema/include/relpath.json | 1
> 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
> To: address@hidden
> Cc: Luiz Capitulino <address@hidden>
> Cc: Markus Armbruster <address@hidden>
> Cc: Eric Blake <address@hidden>
> Cc: Benoît Canet <address@hidden>
Re: [Qemu-devel] [PATCH v12 0/4] qapi: Allow modularization of QAPI schema files,
Benoît Canet <=
Re: [Qemu-devel] [PATCH v12 0/4] qapi: Allow modularization of QAPI schema files, Eric Blake, 2014/05/06
- Re: [Qemu-devel] [PATCH v12 4/4] qapi: Add a primitive to include other files from a QAPI schema file, (continued)