Pending prerequisite: Markus' qapi-next branch (subset B) git://repo.or.cz/qemu/armbru.git qapi-next https://lists.gnu.org/archive/html/qemu-devel/2015-10/msg06417.html
Pending prerequisite: Subset C https://lists.gnu.org/archive/html/qemu-devel/2015-10/msg06674.html Also available as a tag at this location: git fetch git://repo.or.cz/qemu/ericb.git qapi-cleanupv9d as well as part my qapi branch subject to rebasing: http://repo.or.cz/qemu/ericb.git/shortlog/refs/heads/qapi v9: Pick up the remaining patches that were part of Subset B v8 but dropped in later spins of that subset. Rebase things on top of the work to redo the layout of unions and alternates. Definitely simpler now; here's a comparison to the earlier v8 tree: 001/5:[0024] [FC] 'qapi: Track owner of each object member' 002/5:[0090] [FC] 'qapi: Detect collisions in C member names' 003/5:[0060] [FC] 'qapi: Move duplicate member checks to schema check()' 004/5:[0053] [FC] 'qapi: Move duplicate enum value checks to schema check()' 005/5:[----] [-C] 'qapi: Detect base class loops' v8 notes: https://lists.gnu.org/archive/html/qemu-devel/2015-10/msg02879.html Address review comments, including fixing a bug with tracking branch name collisions. Include a few more simple test cleanups (4-6), and add another patch (11) that will make converting from kind=>type easier in a later subset. More details in per-patch changelogs. v7 notes: https://lists.gnu.org/archive/html/qemu-devel/2015-10/msg01387.html Address comments, including a couple of new commits that made later patches a bit cleaner. Backport diff gets a bit confused by a couple of patch titles changing. v6 notes: https://lists.gnu.org/archive/html/qemu-devel/2015-10/msg00562.html This is patches 11-16 of my v5 series; it has grown a bit with splitting some patches and adding some others. I suspect that 12/12 on this series will be discarded, but am including it because it was split from v5 content. Not much review comments other than on the original 11/46, but there is enough churn due to rebasing that it's now easier to review this version than plowing through v5. Subset C (and more?) will come later. In v5: https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg05410.html I _did_ rearrange patches to try and group related features: 1-2: Groundwork cleanups 3-5: Add more test cases 6-16: Front-end cleanups 17-18: Introspection output cleanups 19-20: 'alternate' type cleanups 21-29: qapi visitor cleanups 30-45: qapi-ify netdev_add 46: add qapi shorthand for flat unions Lots of fixes based on additional testing, and rebased to track other changes that happened in the meantime. The series is huge; I can split off smaller portions as requested. In v4: https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg02580.html add some more clean up patches rebase to Markus' recent work pull in part of Zoltán's work to make netdev_add a flat union, further enhancing it to be introspectible I might be able to rearrange some of these patches, or separate it into smaller independent series, if requested; but I'm posting now to get review started. In v3: https://lists.gnu.org/archive/html/qemu-devel/2015-08/msg02059.html redo cleanup of dealloc of partial struct add patches to make all visit_type_*() avoid leaks on failure add patches to allow boxed command arguments and events In v2: https://lists.gnu.org/archive/html/qemu-devel/2015-08/msg00900.html rebase to Markus' v3 series rework how comments are emitted for fields inherited from base additional patches added for deleting colliding 'void *data' documentation updates to match code changes v1 was here: https://lists.gnu.org/archive/html/qemu-devel/2015-07/msg05266.html https://lists.gnu.org/archive/html/qemu-devel/2015-07/msg05325.html Eric Blake (5): qapi: Track owner of each object member qapi: Detect collisions in C member names qapi: Move duplicate member checks to schema check() qapi: Move duplicate enum value checks to schema check() qapi: Detect base class loops scripts/qapi.py | 170 ++++++++++++--------- tests/Makefile | 2 +- tests/qapi-schema/alternate-clash.err | 2 +- tests/qapi-schema/args-name-clash.err | 1 + tests/qapi-schema/args-name-clash.exit | 2 +- tests/qapi-schema/args-name-clash.json | 6 +- tests/qapi-schema/args-name-clash.out | 6 - tests/qapi-schema/base-cycle.err | 1 + .../{union-bad-branch.exit => base-cycle.exit} | 0 tests/qapi-schema/base-cycle.json | 3 + .../{union-bad-branch.out => base-cycle.out} | 0 tests/qapi-schema/enum-clash-member.err | 2 +- tests/qapi-schema/enum-max-member.err | 2 +- tests/qapi-schema/flat-union-clash-member.err | 2 +- tests/qapi-schema/qapi-schema-test.out | 8 +- tests/qapi-schema/struct-base-clash-deep.err | 2 +- tests/qapi-schema/struct-base-clash.err | 2 +- tests/qapi-schema/union-bad-branch.err | 1 - tests/qapi-schema/union-bad-branch.json | 8 - tests/qapi-schema/union-clash-branches.err | 2 +- tests/qapi-schema/union-clash-branches.json | 2 +- tests/qapi-schema/union-max.err | 2 +- 22 files changed, 119 insertions(+), 107 deletions(-) create mode 100644 tests/qapi-schema/base-cycle.err rename tests/qapi-schema/{union-bad-branch.exit => base-cycle.exit} (100%) create mode 100644 tests/qapi-schema/base-cycle.json rename tests/qapi-schema/{union-bad-branch.out => base-cycle.out} (100%) delete mode 100644 tests/qapi-schema/union-bad-branch.err delete mode 100644 tests/qapi-schema/union-bad-branch.json -- 2.4.3
