qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v6 01/26] qemu: add Error to typedefs


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [PATCH v6 01/26] qemu: add Error to typedefs
Date: Tue, 1 Oct 2013 17:15:10 +0300

On Tue, Oct 01, 2013 at 03:46:15PM +0200, Igor Mammedov wrote:
> On Mon, 30 Sep 2013 19:09:38 +0300
> "Michael S. Tsirkin" <address@hidden> wrote:
> 
> > On Mon, Sep 30, 2013 at 05:55:50PM +0200, Andreas Färber wrote:
> > > Am 30.09.2013 17:50, schrieb Michael S. Tsirkin:
> > > > On Tue, Oct 01, 2013 at 12:10:52AM +0900, Peter Maydell wrote:
> > > >> On 30 September 2013 23:40, Michael S. Tsirkin <address@hidden> wrote:
> > > >>> diff --git a/include/qapi/error.h b/include/qapi/error.h
> > > >>> index 7d4c696..b85e996 100644
> > > >>> --- a/include/qapi/error.h
> > > >>> +++ b/include/qapi/error.h
> > > >>> @@ -13,14 +13,15 @@
> > > >>>  #define ERROR_H
> > > >>>
> > > >>>  #include "qemu/compiler.h"
> > > >>> +#include "qemu/typedefs.h"
> > > >>>  #include "qapi-types.h"
> > > >>>  #include <stdbool.h>
> > > >>>
> > > >>>  /**
> > > >>> - * A class representing internal errors within QEMU.  An error has a 
> > > >>> ErrorClass
> > > >>> + * Error:
> > > >>> + * An object representing internal errors within QEMU.  An error has 
> > > >>> a ErrorClass
> > > >>>   * code and a human message.
> > > >>>   */
> > > >>> -typedef struct Error Error;
> seeing how mach discussion moving typedef from its proper place caused
> I'd like to rise question about dropping 1-2/26 again and include
> qapi/error.h directly in include/qom/object.h than extending typedef.h
> hack further. 
> 
> here is another similar case discussion 
> http://lists.gnu.org/archive/html/qemu-devel/2012-08/msg03647.html
> 
> in favor of sane headers as opposed to current patch which moves typedef
> from header where it belongs.

typedefs don't belong anywhere, same as forward declarations. HACKING says:

2.3. Typedefs
Typedefs are used to eliminate the redundant 'struct' keyword.

so it's just the C syntax that forces us to do this.

> 
> So if series is to be re-spinned it'd be better to keep clean header and
> include it directly where it's necessary.

I really don't know how to interpret that thread.

The abuse of typedefs in QEMU is really the source of
the problem. typedefs can not be forward declared
so the work-around was to have a single header with
a ton of typedefs.

An alternative is an unholy mess of header dependencies,
and longer compile times: forward declarations are
there for a reason.

So if we want to remove qemu/typedefs.h we'll need to stop
using typedefs everywhere, and just use 'struct foo *'.
If you are in favor of this solution, send a patch to HACKING
and we'll see how do people respond.



> > > >>
> > > >> Does the process-doc-comments tool really cope with documentation 
> > > >> comments
> > > >> that are completely separate from the typedef like this?
> > > >>
> > > >> thanks
> > > >> -- PMM
> > > > 
> > > > Do we care?
> > > > Downstreams don't seem to package it, most people probably use
> > > > editor tags anyway ...
> > > > If yes we can put this all in #if 0.
> > > 
> > > Can we turn the typedef into just struct Error here? The doc comment can
> > > be applied to either.
> > > 
> > > Andreas
> > 
> > It won't index Error typedef then though.
> > 
> > How does one run this process-doc-comments tool by the way?
> > > -- 
> > > SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
> > > GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
> > 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]