[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] HACKING: remove bogus restrictions
From: |
malc |
Subject: |
Re: [Qemu-devel] [PATCH] HACKING: remove bogus restrictions |
Date: |
Tue, 28 Aug 2012 21:27:59 +0400 (MSK) |
User-agent: |
Alpine 2.00 (LNX 1167 2008-08-23) |
On Tue, 28 Aug 2012, Michael S. Tsirkin wrote:
> On Tue, Aug 28, 2012 at 05:24:40PM +0100, Peter Maydell wrote:
> > On 28 August 2012 17:01, Michael S. Tsirkin <address@hidden> wrote:
> > > We copied HACKING from libvirt but it has some bogus stuff:
> > > neither underscore capital, double underscore, or underscore 't' suffixes
> > > are reserved in Posix/C: this appears to be based on misreading of the
> > > C standard. Using sane prefixes is enough to avoid conflicts.
>
> > > -2.4. Reserved namespaces in C and POSIX
> > > -Underscore capital, double underscore, and underscore 't' suffixes
> > > should be
> > > -avoided.
> >
> > I think this is just a missing "prefixes". C99 7.1.3
> > reserves underscore capital and double underscore prefixes.
>
> This is taking it out of context - reserved means different
> things in different parts of the spec.
Reserved means - reserved for implementation to use as it sees fit,
for instance - 6.2.5
28) Implementation-defined keywords shall have the form of an identifier
reserved for any use as described in 7.1.3.
Future versions of C might define something in the form __xxx or _[A-Z]xxx
precisely because those are invalid for user to define.. (_Imaginary,
_Bool, whatever)
7.1.3#2
>
> As far as I can see, 7.1.3 talks about what is permissible in headers:
And you are wrong.
> naturally when a libc implementation adds stuff in a header it would
> want to avoid breaking applications including this header. But it does
> not talk about what is permissible in a legal program - to avoid
> conflicts, you just need to use variables with reasonable names like
> kvmXXX qemuXXX or virtioXXX.
>
> So it does not look like this is a reason to not use __kvm_pv_eoi_disabled.
>
> Chances that a libc header predefines this name are zero.
>
> > POSIX reserves _t if any POSIX header is defined (POSIX.1-2008 section
> > 2.2.2,
> > http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html)
>
> Same thing really.
> So this says posix implementations can add types ending with _t in any
> header. It does not prohibit applications from using such names
> in a reasonable manner, and it does not look like this is a reason to
> not use qemu_foo_bar_t.
>
>
> > I would suggest that the section is reworded to:
> >
> > # Underscore capital and double underscore prefixes are reserved
> > # by the C standard. Underscore 't' suffixes are reserved by POSIX.
> > # They should be avoided in QEMU code.
> >
> > -- PMM
>
> This might be nice from language purism point of view
> but ignores the fact that QEMU already uses lots of these.
> Specifically a _t type is even mentioned in HACKING itself.
>
> So the benefit to excluding this in new code is marginal.
>
>
>
--
mailto:address@hidden
- [Qemu-devel] [PATCH] HACKING: remove bogus restrictions, Michael S. Tsirkin, 2012/08/28
- Re: [Qemu-devel] [PATCH] HACKING: remove bogus restrictions, Michael S. Tsirkin, 2012/08/28
- Re: [Qemu-devel] [PATCH] HACKING: remove bogus restrictions, Peter Maydell, 2012/08/28
- Re: [Qemu-devel] [PATCH] HACKING: remove bogus restrictions, Blue Swirl, 2012/08/28
- Re: [Qemu-devel] [PATCH] HACKING: remove bogus restrictions, Michael S. Tsirkin, 2012/08/28
- Re: [Qemu-devel] [PATCH] HACKING: remove bogus restrictions, Blue Swirl, 2012/08/28
- Re: [Qemu-devel] [PATCH] HACKING: remove bogus restrictions, Peter Maydell, 2012/08/28
- Re: [Qemu-devel] [PATCH] HACKING: remove bogus restrictions, malc, 2012/08/28
- Re: [Qemu-devel] [PATCH] HACKING: remove bogus restrictions, Michael S. Tsirkin, 2012/08/28
- Re: [Qemu-devel] [PATCH] HACKING: remove bogus restrictions, Michael S. Tsirkin, 2012/08/28
- Re: [Qemu-devel] [PATCH] HACKING: remove bogus restrictions, Andreas Färber, 2012/08/28