Re: [Qemu-devel] [PATCH 11/21] qdev: move bus properties to abstract superclasses

2012-05-03 Thread Paolo Bonzini
Il 03/05/2012 14:45, Anthony Liguori ha scritto: > On 05/02/2012 04:50 PM, Paolo Bonzini wrote: >> Il 02/05/2012 22:00, Anthony Liguori ha scritto: >> >>> Classes are first class objects and can contain members, but I don't >>> know of any system where you actively look at the same field in a >>> s

Re: [Qemu-devel] [PATCH 11/21] qdev: move bus properties to abstract superclasses

2012-05-03 Thread Anthony Liguori
On 05/02/2012 04:50 PM, Paolo Bonzini wrote: Il 02/05/2012 22:00, Anthony Liguori ha scritto: Classes are first class objects and can contain members, but I don't know of any system where you actively look at the same field in a super class for each class in the hierarchy. That's really trippy.

Re: [Qemu-devel] [PATCH 11/21] qdev: move bus properties to abstract superclasses

2012-05-02 Thread Paolo Bonzini
Il 02/05/2012 22:00, Anthony Liguori ha scritto: >> >> Not really, in fact this kind of class-side data is really bread and >> butter >> of all dynamic languages, and it's how most of them implement >> polymorphism. >> They have an associative array (method names -> method bytecode for >> example)

Re: [Qemu-devel] [PATCH 11/21] qdev: move bus properties to abstract superclasses

2012-05-02 Thread Anthony Liguori
On 05/02/2012 08:21 AM, Paolo Bonzini wrote: This little bit of magic is a bit too magical for my taste. Polymorphism relies on the idea that a subclass overloads base class members/methods. From the base classes perspective, it's unaware if a subclass has overloaded something (that's allowed

Re: [Qemu-devel] [PATCH 11/21] qdev: move bus properties to abstract superclasses

2012-05-02 Thread Paolo Bonzini
> This little bit of magic is a bit too magical for my taste. > > Polymorphism relies on the idea that a subclass overloads base class > members/methods. From the base classes perspective, it's unaware if > a subclass has overloaded something (that's allowed to be overloaded). > > This code doe

Re: [Qemu-devel] [PATCH 11/21] qdev: move bus properties to abstract superclasses

2012-05-02 Thread Anthony Liguori
On 05/02/2012 06:31 AM, Paolo Bonzini wrote: In qdev, each bus in practice identified an abstract superclass, but this was mostly hidden. In QOM, instead, these abstract classes are explicit so we can move bus properties there. All bus property walks are removed, and all device property walks a

[Qemu-devel] [PATCH 11/21] qdev: move bus properties to abstract superclasses

2012-05-02 Thread Paolo Bonzini
In qdev, each bus in practice identified an abstract superclass, but this was mostly hidden. In QOM, instead, these abstract classes are explicit so we can move bus properties there. All bus property walks are removed, and all device property walks are changed to look along the class hierarchy in