qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Markus Armbruster <armbru@redhat.com>,
	David Hildenbrand <david@redhat.com>
Cc: kwolf@redhat.com, qemu-devel@nongnu.org
Subject: Re: [PATCH v2 2/3] qom: move user_creatable_add_opts logic to vl.c and QAPIfy it
Date: Fri, 16 Apr 2021 16:56:25 +0200	[thread overview]
Message-ID: <bd57550a-666a-3d25-b9d3-3baa7bd7b453@redhat.com> (raw)
In-Reply-To: <87mtu2wm49.fsf@dusky.pond.sub.org>

On 13/04/21 11:48, Markus Armbruster wrote:
>> Oh, there is qapi/qom.json -- maybe that does the trick.
>>
>> (I have mixed feelings about having to specify the same thing twice at
>> different locations)
> 
> With reason.
> 
> We've talked about generating QOM boilerplate from the QAPI schema, but
> haven't progressed to actual patches.

There is an initial sketch at
https://wiki.qemu.org/Features/QOM-QAPI_integration, covering what can 
be done before touching the code generator.

The basic idea is to keep property getters, which allow to read how an 
object was configured and already vastly reduces the amount of 
boilerplate, and replace the setters with a method that takes a QAPI 
visitor.

Later on the low-level QAPI code can be generated by qapi-gen, similar 
to QMP commands.  However, unlike QMP (where QAPIfication included 
switching from raw QDicts to QAPI structs) here we already start with 
code that uses vistors and QAPI structs.  So it's not like having to 
rewrite things twice.

Paolo



  reply	other threads:[~2021-04-16 14:58 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-12 17:35 [PATCH v2 0/3] vl: QAPIfy -object Paolo Bonzini
2021-03-12 17:35 ` [PATCH v2 1/3] tests: convert check-qom-proplist to keyval Paolo Bonzini
2021-03-12 17:35 ` [PATCH v2 2/3] qom: move user_creatable_add_opts logic to vl.c and QAPIfy it Paolo Bonzini
2021-03-17 11:48   ` Kevin Wolf
2021-04-12 16:53   ` David Hildenbrand
2021-04-13  4:41     ` Markus Armbruster
2021-04-13  8:13       ` David Hildenbrand
2021-04-13  8:33         ` David Hildenbrand
2021-04-13  9:38         ` Kevin Wolf
2021-04-13  9:48         ` Markus Armbruster
2021-04-16 14:56           ` Paolo Bonzini [this message]
2021-03-12 17:35 ` [PATCH v2 3/3] vl: allow passing JSON to -object Paolo Bonzini
2021-03-16 17:31 ` [PATCH v2 0/3] vl: QAPIfy -object Kevin Wolf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bd57550a-666a-3d25-b9d3-3baa7bd7b453@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=armbru@redhat.com \
    --cc=david@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).