From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44406) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zlr6s-00023i-1n for qemu-devel@nongnu.org; Tue, 13 Oct 2015 00:22:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zlr6o-0005fm-5K for qemu-devel@nongnu.org; Tue, 13 Oct 2015 00:22:46 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35027) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zlr6n-0005fd-Rh for qemu-devel@nongnu.org; Tue, 13 Oct 2015 00:22:42 -0400 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (Postfix) with ESMTPS id 2B77A8C1DF for ; Tue, 13 Oct 2015 04:22:41 +0000 (UTC) From: Eric Blake Date: Mon, 12 Oct 2015 22:22:20 -0600 Message-Id: <1444710158-8723-1-git-send-email-eblake@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH v8 00/18] post-introspection cleanups, subset B List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: armbru@redhat.com Pending prerequisite: Markus' qapi-next branch (which has my subset A patches): git://repo.or.cz/qemu/armbru.git pull-qapi-2015-10-12 https://lists.gnu.org/archive/html/qemu-devel/2015-10/msg02796.html Also available as a tag at this location: git fetch git://repo.or.cz/qemu/ericb.git qapi-cleanupv8b and I plan to eventually forcefully update my branch with the rest of the v5 series, at: http://repo.or.cz/qemu/ericb.git/shortlog/refs/heads/qapi v8 notes: 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=3D>type easier in a later subset. More details in per-patch changelogs. 001/18:[----] [--] 'qapi: Use predicate callback to determine visit filte= ring' 002/18:[----] [--] 'qapi: Prepare for errors during check()' 003/18:[----] [--] 'qapi: Drop redundant alternate-good test' 004/18:[down] 'qapi: Move empty-enum to compile-time test' 005/18:[down] 'qapi: Drop redundant returns-int test' 006/18:[down] 'qapi: Drop redundant flat-union-reverse-define test' 007/18:[0026] [FC] 'qapi: Don't use info as witness of implicit object ty= pe' 008/18:[0005] [FC] 'qapi: Lazy creation of array types' 009/18:[0010] [FC] 'qapi: Create simple union type member earlier' 010/18:[0017] [FC] 'qapi: Move union tag quirks into subclass' 011/18:[down] 'qapi: Simplify gen_struct_field()' 012/18:[0027] [FC] 'qapi: Track location that created an implicit type' 013/18:[0165] [FC] 'qapi: Track owner of each object member' 014/18:[0006] [FC] 'qapi: Detect collisions in C member names' 015/18:[0033] [FC] 'qapi: Move duplicate member checks to schema check()' 016/18:[0007] [FC] 'qapi: Move duplicate enum value checks to schema chec= k()' 017/18:[----] [-C] 'qapi: Add test for alternate branch 'kind' clash' 018/18:[----] [--] 'qapi: Detect base class loops' 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=C3=A1n'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 (18): qapi: Use predicate callback to determine visit filtering qapi: Prepare for errors during check() qapi: Drop redundant alternate-good test qapi: Move empty-enum to compile-time test qapi: Drop redundant returns-int test qapi: Drop redundant flat-union-reverse-define test qapi: Don't use info as witness of implicit object type qapi: Lazy creation of array types qapi: Create simple union type member earlier qapi: Move union tag quirks into subclass qapi: Simplify gen_struct_field() qapi: Track location that created an implicit type 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: Add test for alternate branch 'kind' clash qapi: Detect base class loops qapi-schema.json | 11 + scripts/qapi-commands.py | 8 +- scripts/qapi-introspect.py | 5 +- scripts/qapi-types.py | 48 +-- scripts/qapi-visit.py | 35 +- scripts/qapi.py | 358 +++++++++++++--= ------ tests/Makefile | 9 +- tests/qapi-schema/alternate-clash-members.err | 1 + ...ad-branch.exit =3D> alternate-clash-members.exit} | 0 ...ate-clash.json =3D> alternate-clash-members.json} | 0 ...-bad-branch.out =3D> alternate-clash-members.out} | 0 tests/qapi-schema/alternate-clash-type.err | 1 + ...ernate-clash.exit =3D> alternate-clash-type.exit} | 0 tests/qapi-schema/alternate-clash-type.json | 10 + .../{returns-int.err =3D> alternate-clash-type.out} | 0 tests/qapi-schema/alternate-clash.err | 1 - tests/qapi-schema/alternate-clash.out | 0 tests/qapi-schema/alternate-good.err | 0 tests/qapi-schema/alternate-good.exit | 1 - tests/qapi-schema/alternate-good.json | 9 - tests/qapi-schema/alternate-good.out | 10 - 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 + tests/qapi-schema/base-cycle.exit | 1 + tests/qapi-schema/base-cycle.json | 3 + ...lat-union-reverse-define.err =3D> base-cycle.out} | 0 tests/qapi-schema/enum-clash-member.err | 2 +- tests/qapi-schema/enum-empty.err | 0 tests/qapi-schema/enum-empty.exit | 1 - tests/qapi-schema/enum-empty.json | 2 - tests/qapi-schema/enum-empty.out | 2 - tests/qapi-schema/enum-max-member.err | 2 +- tests/qapi-schema/flat-union-clash-branch.err | 1 + tests/qapi-schema/flat-union-clash-branch.exit | 2 +- tests/qapi-schema/flat-union-clash-branch.json | 9 +- tests/qapi-schema/flat-union-clash-branch.out | 14 - tests/qapi-schema/flat-union-clash-member.err | 2 +- tests/qapi-schema/flat-union-clash-type.err | 2 +- tests/qapi-schema/flat-union-reverse-define.exit | 1 - tests/qapi-schema/flat-union-reverse-define.json | 17 - tests/qapi-schema/flat-union-reverse-define.out | 13 - tests/qapi-schema/qapi-schema-test.json | 26 +- tests/qapi-schema/qapi-schema-test.out | 22 +- tests/qapi-schema/returns-int.exit | 1 - tests/qapi-schema/returns-int.json | 3 - tests/qapi-schema/returns-int.out | 3 - 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-type.err | 2 +- tests/qapi-schema/union-max.err | 2 +- tests/test-qmp-commands.c | 4 +- 57 files changed, 357 insertions(+), 318 deletions(-) create mode 100644 tests/qapi-schema/alternate-clash-members.err rename tests/qapi-schema/{union-bad-branch.exit =3D> alternate-clash-mem= bers.exit} (100%) rename tests/qapi-schema/{alternate-clash.json =3D> alternate-clash-memb= ers.json} (100%) rename tests/qapi-schema/{union-bad-branch.out =3D> alternate-clash-memb= ers.out} (100%) create mode 100644 tests/qapi-schema/alternate-clash-type.err rename tests/qapi-schema/{alternate-clash.exit =3D> alternate-clash-type= .exit} (100%) create mode 100644 tests/qapi-schema/alternate-clash-type.json rename tests/qapi-schema/{returns-int.err =3D> alternate-clash-type.out}= (100%) delete mode 100644 tests/qapi-schema/alternate-clash.err delete mode 100644 tests/qapi-schema/alternate-clash.out delete mode 100644 tests/qapi-schema/alternate-good.err delete mode 100644 tests/qapi-schema/alternate-good.exit delete mode 100644 tests/qapi-schema/alternate-good.json delete mode 100644 tests/qapi-schema/alternate-good.out create mode 100644 tests/qapi-schema/base-cycle.err create mode 100644 tests/qapi-schema/base-cycle.exit create mode 100644 tests/qapi-schema/base-cycle.json rename tests/qapi-schema/{flat-union-reverse-define.err =3D> base-cycle.= out} (100%) delete mode 100644 tests/qapi-schema/enum-empty.err delete mode 100644 tests/qapi-schema/enum-empty.exit delete mode 100644 tests/qapi-schema/enum-empty.json delete mode 100644 tests/qapi-schema/enum-empty.out delete mode 100644 tests/qapi-schema/flat-union-reverse-define.exit delete mode 100644 tests/qapi-schema/flat-union-reverse-define.json delete mode 100644 tests/qapi-schema/flat-union-reverse-define.out delete mode 100644 tests/qapi-schema/returns-int.exit delete mode 100644 tests/qapi-schema/returns-int.json delete mode 100644 tests/qapi-schema/returns-int.out delete mode 100644 tests/qapi-schema/union-bad-branch.err delete mode 100644 tests/qapi-schema/union-bad-branch.json --=20 2.4.3