On Mon, Sep 21, 2015 at 05:52:47PM +0200, Andreas Färber wrote:
> Am 21.09.2015 um 17:49 schrieb Eduardo Habkost:
> > On Sat, Sep 19, 2015 at 04:43:29PM +0200, Andreas Färber wrote:
> >> The script used for converting from QEMUMachine had used one
> >> DEFINE_MACHINE() per machine registered. In cases where multiple
> >> machines are registered from one source file, avoid the excessive
> >> generation of module init functions by reverting this unrolling.
> > 
> > Why is that a problem?
> 
> It's unnecessary code bloat and it blocks the usual QOM patterns. See
> the follow-up series for an example where an abstract base type helps,
> which your macro does not allow.

Do you have any numbers on the actual bloat impact? Personally, I
think the reduction of boilerplate code is worth the extra bytes
in the binary. Files that register lots of simple machine classes
are exactly the use case I had in mind when adding the macro.

About the cases where an abstract base type helps, I agree
DEFINE_MACHINE isn't appropriate, but in those cases I would use
a macro like DEFINE_PC_MACHINE to reduce boilerplate code anyway.

But I don't mind too much either way: if the maintainer of the
corresponding machine code prefers to not reduce boilerplate code
using a macro, that's OK to me. I am happy now that QEMUMachine
is gone.

-- 
Eduardo

Reply via email to