[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 00/18] qapi/qom: QAPIfy object-add
From: |
Eduardo Habkost |
Subject: |
Re: [PATCH 00/18] qapi/qom: QAPIfy object-add |
Date: |
Thu, 3 Dec 2020 13:19:05 -0500 |
On Thu, Dec 03, 2020 at 07:10:37PM +0100, Paolo Bonzini wrote:
> On 03/12/20 18:52, Eduardo Habkost wrote:
> > On Thu, Dec 03, 2020 at 05:50:46PM +0100, Paolo Bonzini wrote:
> > > On 03/12/20 16:15, Kevin Wolf wrote:
> > > > I don't think this is an intermediate state like Eduardo wants to have.
> > > > Creating the object, then setting properties, then realize [1] will fail
> > > > after your change. But keeping it working was the whole point of the
> > > > exercise.
> > >
> > > With the sample code, you must remove object_class_property_set calls at
> > > the
> >
> > Do you mean object_property_set()?
>
> Yes.
>
> > > same time as you remove the setters. Usually that'd be when you convert
> > > to
> > > QAPI and oc->configure, but it doesn't have to be that way if there are
> > > good
> > > reasons not to do so.
> >
> > Having two (or more) similar but incompatible APIs to do exactly
> > the same thing is a mistake we did before, and I wouldn't like us
> > to repeat it.
> >
> > If we can keep qdev_new() + object_property_set() + realize
> > working after the device is converted, we should. I believe we
> > can.
>
> You can. If you want to do that, you have to give up on removing the
> setters; but that's not so beneficial for devices because they already use
> static properties anyway. They have much less boilerplate than -object
> objects.
Understood.
We can also get rid of most setters in -object backends using
field properties. Maybe not a necessary step, but a useful
intermediate step in case the new API takes time to be ready.
>
> > If we can make object_new_configure() work with all (or most)
> > device types before we manually convert them to the new system,
> > we should. I believe we can.
>
> Yup, object_new_configure() is the low-level visitor-based API and therefore
> it supports both properties and oc->configure.
Perfect. That part was not clear yet to me (I just skimmed to
the example code you posted on the wiki).
>
> > We may be able avoid these questions with -object because
> > converting all backends at the same time is doable. With
> > devices, API usability and maintainability during the transition
> > period (which could be very long) needs to be taken into account.
>
> I think we're in violent agreement. :)
>
> Paolo
>
--
Eduardo
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, (continued)
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Eduardo Habkost, 2020/12/02
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Gerd Hoffmann, 2020/12/03
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Eduardo Habkost, 2020/12/03
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Paolo Bonzini, 2020/12/03
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Kevin Wolf, 2020/12/03
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Paolo Bonzini, 2020/12/03
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Kevin Wolf, 2020/12/03
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Paolo Bonzini, 2020/12/03
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Eduardo Habkost, 2020/12/03
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Paolo Bonzini, 2020/12/03
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add,
Eduardo Habkost <=
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Kevin Wolf, 2020/12/02
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Paolo Bonzini, 2020/12/02