Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Markus Elfring <Markus.Elfring-S0/GAf8tV78 <at> public.gmane.org>
Subject: Re: reserved identifier violation
Newsgroups: gmane.comp.emulators.virtualbox.devel
Date: Monday 16th February 2009 13:38:44 UTC (over 8 years ago)
Thanks for your detailed explanation.


Jens Schweikhardt wrote:
> Any library (or API) provider faces a dilemma because he must invade one 
> of the two namespaces. VirtualBox chose to not invade the application 
> name space where practical. This means use of underscores as prefix in 
> places where the application writer is not supposed to use such
identifiers.

I find this a questionable design decision.


> While this is technically causing undefined behavior, it is 
> a conscious decision because we support compilation of VirtualBox only 
> on a very limited number of implementations, the implementation 
> namespace of which is known to us.

Would you like to avoid more situations to build on undefined behavior?


> The __BEGIN_DECLS macro is a good example for this.

I imagine that this symbol might be too short to avoid all potential
conflicts.


> As for header include guards, using __FOO_H is a common way to not 
> invade the app name space (see libvirt or the python binding for XPCOM 
> and many more).

I have got the impression that this is just a bad habit if the reserved
naming pattern is used in source code which does not belong to the
implementation of a (C/C++) compiler.
http://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html

I suggest to use longer names to make important identfiers unique.
http://en.wikipedia.org/wiki/Include_guard#Difficulties


> If you happen to find a real problem due to identifier name clash (in an 
> implementation we support) we'd be of course happy to hear about it.

I try to increase attention for such an implementation detail before
software developers and users are affected in unexpected ways by wrong
applications of naming conventions.

Regards,
Markus
 
CD: 3ms