On 03/10/2016 06:39 AM, Markus Armbruster wrote: > Eric Blake <ebl...@redhat.com> writes: > >> The original choice of ':obj-' as the prefix for implicit types >> made it obvious that we weren't going to clash with any user-defined >> names. But now we want to create structs for implicit types. > > Why? I know, but the commit message should still give a hint. Perhaps: > "to get rid of special cases in the generators"? > >> We >> could transliterate ':' to '_', except that C99 says that a leading >> underscore and lower-case letter should be used only for file scope >> identifiers, while we would be exposing it in qapi-types.h. So it's > > Misunderstanding! When the standard says "identifiers that X are > reserved for Y use", it reserves these identifiers for itself and the > implementation. You shouldn't use them for Y then. > > Suggest to simply quote the standard instead of interpreting it: > ... except that C99 mandates that "identifiers that begin with an > underscore are always reserved for use as identifiers with file scope in > both the ordinary and tag name spaces"
Both those changes sound fine. > >> time to change our naming convention; we can instead use the 'q_' >> prefix that we reserved for ourselves back in commit 9fb081e0. As >> long as we don't declare 'empty' or 'obj' ticklish, it shouldn't >> clash with c_name() prepending 'q_' to the user's ticklish names. > > Do we really want to rename :empty? We're not going to generate C for > it, are we? No, but it was easier to implement .is_implicit() as "name.startswith('q_')" than as "name == ':empty' or name.startswith('q_obj')". I can stick with :empty if you want a respin, though. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature