All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/22] qapi: Remove simple unions from the schema language
@ 2021-09-13 12:39 Markus Armbruster
  2021-09-13 12:39 ` [PATCH 01/22] qapi: Tidy up unusual line breaks Markus Armbruster
                   ` (22 more replies)
  0 siblings, 23 replies; 54+ messages in thread
From: Markus Armbruster @ 2021-09-13 12:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Daniel P. Berrangé,
	Eduardo Habkost, Stefan Berger, eblake, Hanna Reitz,
	Gerd Hoffmann, Paolo Bonzini, marcandre.lureau, jsnow

Simple unions predate flat unions.  Having both complicates the QAPI
schema language and the QAPI generator.  We haven't been using simple
unions in new code for a long time, because they are less flexible and
somewhat awkward on the wire.

Get rid of them.  We should've done this long ago.

This adds some boilerplate to the schema:

    $ git-diff --shortstat master qapi
     7 files changed, 461 insertions(+), 59 deletions(-)

Well worth the language simplification, in my opinion:

    $ git-diff --stat master scripts/ docs/
     docs/devel/qapi-code-gen.rst | 137 ++++++++++---------------------------------
     scripts/qapi/common.py       |  19 ++----
     scripts/qapi/expr.py         |  48 +++++++--------
     scripts/qapi/schema.py       | 101 +++++++------------------------
     4 files changed, 80 insertions(+), 225 deletions(-)

The complete diffstat looks even better, but is somewhat misleading,
because it's dominated by two tests rewritten in a much more compact
way.

This series is based on my "[PULL 0/5] QAPI patches patches for
2021-09-13".

Based-on: <20210913095038.3040776-1-armbru@redhat.com>

Cc: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Hanna Reitz <hreitz@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Cc: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Stefan Berger <stefanb@linux.vnet.ibm.com>

Markus Armbruster (22):
  qapi: Tidy up unusual line breaks
  qapi: Stop enforcing "type name should not end in 'Kind'
  qapi: Convert simple union KeyValue to flat one
  qapi: Convert simple union InputEvent to flat one
  qapi: Convert simple union TpmTypeOptions to flat one
  qapi: Convert simple union MemoryDeviceInfo to flat one
  qapi: Convert simple union ChardevBackend to flat one
  qapi: Convert simple union SocketAddressLegacy to flat one
  qapi: Convert simple union ImageInfoSpecific to flat one
  qapi: Convert simple union TransactionAction to flat one
  tests/qapi-schema: Prepare for simple union UserDefListUnion removal
  test-qobject-input-visitor: Wean off UserDefListUnion
  test-qobject-output-visitor: Wean off UserDefListUnion
  test-clone-visitor: Wean off UserDefListUnion
  tests/qapi-schema: Wean off UserDefListUnion
  tests/qapi-schema: Simple union UserDefListUnion is now unused, drop
  tests/qapi-schema: Rewrite simple union TestIfUnion to be flat
  test-clone-visitor: Wean off __org.qemu_x-Union1
  tests/qapi-schema: Drop simple union __org.qemu_x-Union1
  tests/qapi-schema: Purge simple unions from tests
  qapi: Drop simple unions
  test-clone-visitor: Correct an accidental rename

 docs/devel/qapi-code-gen.rst                  | 137 ++----
 qapi/block-core.json                          |  56 ++-
 qapi/char.json                                | 169 ++++++-
 qapi/machine.json                             |  42 +-
 qapi/sockets.json                             |  46 +-
 qapi/tpm.json                                 |  24 +-
 qapi/transaction.json                         | 111 ++++-
 qapi/ui.json                                  |  72 ++-
 backends/tpm/tpm_emulator.c                   |   2 +-
 backends/tpm/tpm_passthrough.c                |   2 +-
 chardev/char-socket.c                         |   6 +-
 chardev/char-udp.c                            |   4 +-
 monitor/hmp-cmds.c                            |   8 +-
 tests/unit/test-clone-visitor.c               |  98 ++--
 tests/unit/test-qmp-cmds.c                    |  18 +-
 tests/unit/test-qobject-input-visitor.c       | 460 ++++++------------
 tests/unit/test-qobject-output-visitor.c      | 391 ++++-----------
 tests/unit/test-yank.c                        |   6 +-
 util/qemu-sockets.c                           |   8 +-
 scripts/qapi/expr.py                          |  27 +-
 scripts/qapi/schema.py                        | 101 +---
 tests/qapi-schema/args-union.err              |   2 +-
 tests/qapi-schema/args-union.json             |   8 +-
 tests/qapi-schema/bad-base.err                |   2 +-
 tests/qapi-schema/bad-base.json               |   8 +-
 tests/qapi-schema/doc-good.json               |  13 +-
 tests/qapi-schema/doc-good.out                |  22 -
 tests/qapi-schema/doc-good.txt                |  20 -
 tests/qapi-schema/enum-if-invalid.json        |   4 +-
 .../qapi-schema/flat-union-array-branch.json  |   2 +-
 tests/qapi-schema/flat-union-base-union.err   |   2 +-
 tests/qapi-schema/flat-union-base-union.json  |   3 +
 tests/qapi-schema/flat-union-empty.json       |   2 +-
 tests/qapi-schema/flat-union-int-branch.json  |   2 +-
 tests/qapi-schema/flat-union-no-base.err      |   2 +-
 tests/qapi-schema/flat-union-no-base.json     |   2 +-
 tests/qapi-schema/meson.build                 |   5 -
 tests/qapi-schema/qapi-schema-test.json       |  49 +-
 tests/qapi-schema/qapi-schema-test.out        | 112 +----
 tests/qapi-schema/reserved-member-u.json      |   2 +-
 tests/qapi-schema/reserved-type-kind.err      |   2 -
 tests/qapi-schema/reserved-type-kind.json     |   2 -
 tests/qapi-schema/reserved-type-kind.out      |   0
 tests/qapi-schema/union-base-empty.json       |   2 +-
 .../union-base-no-discriminator.err           |   2 +-
 .../union-base-no-discriminator.json          |   2 +-
 tests/qapi-schema/union-branch-case.err       |   2 -
 tests/qapi-schema/union-branch-case.json      |   2 -
 tests/qapi-schema/union-branch-case.out       |   0
 .../qapi-schema/union-branch-invalid-dict.err |   2 +-
 .../union-branch-invalid-dict.json            |   4 +
 tests/qapi-schema/union-clash-branches.err    |   2 -
 tests/qapi-schema/union-clash-branches.json   |   7 -
 tests/qapi-schema/union-clash-branches.out    |   0
 tests/qapi-schema/union-empty.err             |   2 -
 tests/qapi-schema/union-empty.json            |   2 -
 tests/qapi-schema/union-empty.out             |   0
 tests/qapi-schema/union-optional-branch.err   |   2 -
 tests/qapi-schema/union-optional-branch.json  |   2 -
 tests/qapi-schema/union-optional-branch.out   |   0
 tests/qapi-schema/union-unknown.err           |   2 +-
 tests/qapi-schema/union-unknown.json          |   5 +-
 62 files changed, 936 insertions(+), 1158 deletions(-)
 delete mode 100644 tests/qapi-schema/reserved-type-kind.err
 delete mode 100644 tests/qapi-schema/reserved-type-kind.json
 delete mode 100644 tests/qapi-schema/reserved-type-kind.out
 delete mode 100644 tests/qapi-schema/union-branch-case.err
 delete mode 100644 tests/qapi-schema/union-branch-case.json
 delete mode 100644 tests/qapi-schema/union-branch-case.out
 delete mode 100644 tests/qapi-schema/union-clash-branches.err
 delete mode 100644 tests/qapi-schema/union-clash-branches.json
 delete mode 100644 tests/qapi-schema/union-clash-branches.out
 delete mode 100644 tests/qapi-schema/union-empty.err
 delete mode 100644 tests/qapi-schema/union-empty.json
 delete mode 100644 tests/qapi-schema/union-empty.out
 delete mode 100644 tests/qapi-schema/union-optional-branch.err
 delete mode 100644 tests/qapi-schema/union-optional-branch.json
 delete mode 100644 tests/qapi-schema/union-optional-branch.out

-- 
2.31.1



^ permalink raw reply	[flat|nested] 54+ messages in thread

end of thread, other threads:[~2021-09-16 15:08 UTC | newest]

Thread overview: 54+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-13 12:39 [PATCH 00/22] qapi: Remove simple unions from the schema language Markus Armbruster
2021-09-13 12:39 ` [PATCH 01/22] qapi: Tidy up unusual line breaks Markus Armbruster
2021-09-13 13:29   ` Marc-André Lureau
2021-09-13 13:54     ` Markus Armbruster
2021-09-13 13:59       ` Marc-André Lureau
2021-09-13 12:39 ` [PATCH 02/22] qapi: Stop enforcing "type name should not end in 'Kind' Markus Armbruster
2021-09-13 14:40   ` Eric Blake
2021-09-13 12:39 ` [PATCH 03/22] qapi: Convert simple union KeyValue to flat one Markus Armbruster
2021-09-13 14:45   ` Eric Blake
2021-09-14  4:54     ` Markus Armbruster
2021-09-14  7:15   ` Gerd Hoffmann
2021-09-13 12:39 ` [PATCH 04/22] qapi: Convert simple union InputEvent " Markus Armbruster
2021-09-13 14:46   ` Eric Blake
2021-09-14  4:55     ` Markus Armbruster
2021-09-14  7:15   ` Gerd Hoffmann
2021-09-13 12:39 ` [PATCH 05/22] qapi: Convert simple union TpmTypeOptions " Markus Armbruster
2021-09-13 16:32   ` Stefan Berger
2021-09-13 12:39 ` [PATCH 06/22] qapi: Convert simple union MemoryDeviceInfo " Markus Armbruster
2021-09-13 12:39 ` [PATCH 07/22] qapi: Convert simple union ChardevBackend " Markus Armbruster
2021-09-13 12:39 ` [PATCH 08/22] qapi: Convert simple union SocketAddressLegacy " Markus Armbruster
2021-09-13 12:39 ` [PATCH 09/22] qapi: Convert simple union ImageInfoSpecific " Markus Armbruster
2021-09-16 15:01   ` Hanna Reitz
2021-09-13 12:39 ` [PATCH 10/22] qapi: Convert simple union TransactionAction " Markus Armbruster
2021-09-13 14:53   ` Eric Blake
2021-09-14  5:25     ` Markus Armbruster
2021-09-16 15:01   ` Hanna Reitz
2021-09-13 12:39 ` [PATCH 11/22] tests/qapi-schema: Prepare for simple union UserDefListUnion removal Markus Armbruster
2021-09-13 15:01   ` Eric Blake
2021-09-13 12:39 ` [PATCH 12/22] test-qobject-input-visitor: Wean off UserDefListUnion Markus Armbruster
2021-09-13 15:06   ` Eric Blake
2021-09-14  5:50     ` Markus Armbruster
2021-09-13 12:39 ` [PATCH 13/22] test-qobject-output-visitor: " Markus Armbruster
2021-09-13 15:09   ` Eric Blake
2021-09-13 12:39 ` [PATCH 14/22] test-clone-visitor: " Markus Armbruster
2021-09-13 15:10   ` Eric Blake
2021-09-13 12:39 ` [PATCH 15/22] tests/qapi-schema: " Markus Armbruster
2021-09-13 15:26   ` Eric Blake
2021-09-13 12:39 ` [PATCH 16/22] tests/qapi-schema: Simple union UserDefListUnion is now unused, drop Markus Armbruster
2021-09-13 15:27   ` Eric Blake
2021-09-13 12:39 ` [PATCH 17/22] tests/qapi-schema: Rewrite simple union TestIfUnion to be flat Markus Armbruster
2021-09-13 15:28   ` Eric Blake
2021-09-13 12:39 ` [PATCH 18/22] test-clone-visitor: Wean off __org.qemu_x-Union1 Markus Armbruster
2021-09-13 15:32   ` Eric Blake
2021-09-13 12:39 ` [PATCH 19/22] tests/qapi-schema: Drop simple union __org.qemu_x-Union1 Markus Armbruster
2021-09-13 15:35   ` Eric Blake
2021-09-14  5:55     ` Markus Armbruster
2021-09-13 12:39 ` [PATCH 20/22] tests/qapi-schema: Purge simple unions from tests Markus Armbruster
2021-09-13 15:37   ` Eric Blake
2021-09-13 12:39 ` [PATCH 21/22] qapi: Drop simple unions Markus Armbruster
2021-09-13 18:38   ` Eric Blake
2021-09-14  5:57     ` Markus Armbruster
2021-09-13 12:39 ` [PATCH 22/22] test-clone-visitor: Correct an accidental rename Markus Armbruster
2021-09-13 18:40   ` Eric Blake
2021-09-13 12:49 ` [PATCH 00/22] qapi: Remove simple unions from the schema language Markus Armbruster

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.