All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: kwolf@redhat.com, akong@redhat.com, berto@igalia.com,
	mdroth@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [PATCH RFC 19/19] qapi: New QMP command query-schema for QMP schema introspection
Date: Fri, 01 May 2015 15:41:28 -0600	[thread overview]
Message-ID: <5543F308.3010508@redhat.com> (raw)
In-Reply-To: <1427995743-7865-20-git-send-email-armbru@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 1585 bytes --]

On 04/02/2015 11:29 AM, Markus Armbruster wrote:

> 
> * Implicit type definitions are made explicit, and given
>   auto-generated names.  These names start with ':' so they don't
>   clash with the user's names.
> 
>   Example: a simple union implicitly defines an enumeration type for
>   its discriminator.

Given that I just tripped over a bug in my series where I failed to
consider that '*name' and 'name' should be considered the same, I'm
wondering if we should first update the parse engine to flatten
shorthand into a canonical form (that is, get to a point where we have a
list of all names and their C counterparts), rather than having to tweak
lots of places in the backends to repeatedly make the same translations
over and over again (stripping off leading '*', converting qapi
'default' into C 'q_default', converting qapi 'a-b' into C 'a_b', etc.).

I bet some of the backend generator gets simpler if the front end reuses
your work to get into a canonical form on initial parse.


> +++ b/scripts/qapi-introspect.py
> @@ -0,0 +1,430 @@

> +
> +def make_implicit_enum_type(name, role, values):
> +    name = ':enum-%s-%s' % (name, role)

Evidence of my python newbie-ness:

Here, you are using string formatting (as in 'pattern' % arguments), in
other patches, I've seen you use concatenation (would look like ':enum-'
+ name + '-' + role).  Is there any rhyme or reason why one form should
be considered over the other?

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]

  parent reply	other threads:[~2015-05-01 21:41 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-02 17:28 [Qemu-devel] [PATCH RFC 00/19] qapi: QMP introspection Markus Armbruster
2015-04-02 17:28 ` [Qemu-devel] [PATCH RFC 01/19] tests: Add missing dependencies on $(qapi-py) Markus Armbruster
2015-04-02 19:40   ` Eric Blake
2015-04-02 17:28 ` [Qemu-devel] [PATCH RFC 02/19] qapi: Fix C identifiers generated for names containing '.' Markus Armbruster
2015-04-02 21:48   ` Eric Blake
2015-04-29  7:08     ` Markus Armbruster
2015-04-06 23:25   ` Eric Blake
2015-04-11 18:36     ` Eric Blake
2015-04-02 17:28 ` [Qemu-devel] [PATCH RFC 03/19] qapi: Rename _generate_enum_string() to camel_to_upper() Markus Armbruster
2015-04-10 22:17   ` Eric Blake
2015-04-02 17:28 ` [Qemu-devel] [PATCH RFC 04/19] qapi: Rename generate_enum_full_value() to c_enum_const() Markus Armbruster
2015-04-11 18:37   ` Eric Blake
2015-04-02 17:28 ` [Qemu-devel] [PATCH RFC 05/19] qapi: Simplify c_enum_const() Markus Armbruster
2015-04-13 14:40   ` Eric Blake
2015-04-02 17:28 ` [Qemu-devel] [PATCH RFC 06/19] qapi: Use c_enum_const() in generate_alternate_qtypes() Markus Armbruster
2015-04-13 19:03   ` Eric Blake
2015-04-02 17:28 ` [Qemu-devel] [PATCH RFC 07/19] qapi: Move camel_to_upper(), c_enum_const() to closely related code Markus Armbruster
2015-04-13 19:06   ` Eric Blake
2015-04-02 17:28 ` [Qemu-devel] [PATCH RFC 08/19] qapi: qapi-event.py option -b does nothing, drop it Markus Armbruster
2015-04-13 19:07   ` Eric Blake
2015-04-02 17:28 ` [Qemu-devel] [PATCH RFC 09/19] qapi: qapi-commands.py option --type is unused, " Markus Armbruster
2015-04-13 19:12   ` Eric Blake
2015-04-02 17:28 ` [Qemu-devel] [PATCH RFC 10/19] qapi: Factor parse_command_line() out of the generators Markus Armbruster
2015-04-13 19:14   ` Eric Blake
2015-04-02 17:28 ` [Qemu-devel] [PATCH RFC 11/19] qapi: Fix generators to report command line errors decently Markus Armbruster
2015-04-13 19:15   ` Eric Blake
2015-04-02 17:28 ` [Qemu-devel] [PATCH RFC 12/19] qapi: Turn generators' mandatory option -i into an argument Markus Armbruster
2015-04-13 19:17   ` Eric Blake
2015-04-29  7:11     ` Markus Armbruster
2015-04-02 17:28 ` [Qemu-devel] [PATCH RFC 13/19] qapi: Factor open_output(), close_output() out of generators Markus Armbruster
2015-04-13 19:44   ` Eric Blake
2015-04-02 17:28 ` [Qemu-devel] [PATCH RFC 14/19] qapi: Drop pointless flush() before close() Markus Armbruster
2015-04-13 20:29   ` Eric Blake
2015-04-02 17:28 ` [Qemu-devel] [PATCH RFC 15/19] qapi: Inline gen_command_decl_prologue(), gen_command_def_prologue() Markus Armbruster
2015-04-13 20:34   ` Eric Blake
2015-04-02 17:29 ` [Qemu-devel] [PATCH RFC 16/19] qobject: Clean up around qtype_code Markus Armbruster
2015-04-14  3:32   ` Eric Blake
2015-04-02 17:29 ` [Qemu-devel] [PATCH RFC 17/19] qobject: Add a special null QObject Markus Armbruster
2015-04-14  3:44   ` Eric Blake
2015-04-29  7:15     ` Markus Armbruster
2015-04-02 17:29 ` [Qemu-devel] [PATCH RFC 18/19] json-parser: Fix to recognize null Markus Armbruster
2015-04-14  3:45   ` Eric Blake
2015-04-02 17:29 ` [Qemu-devel] [PATCH RFC 19/19] qapi: New QMP command query-schema for QMP schema introspection Markus Armbruster
2015-04-10 23:06   ` Eric Blake
2015-04-15  9:16     ` Alberto Garcia
2015-04-15 12:56       ` Eric Blake
2015-04-23 12:55         ` Kevin Wolf
2015-04-23 19:29           ` Eric Blake
2015-04-29  8:46     ` Markus Armbruster
2015-04-23 13:13   ` Kevin Wolf
2015-04-29  9:02     ` Markus Armbruster
2015-05-01 21:41   ` Eric Blake [this message]
2015-05-04  7:17     ` Markus Armbruster
2015-04-02 19:29 ` [Qemu-devel] [PATCH RFC 00/19] qapi: QMP introspection Eric Blake
2015-04-06 23:20 ` Eric Blake

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5543F308.3010508@redhat.com \
    --to=eblake@redhat.com \
    --cc=akong@redhat.com \
    --cc=armbru@redhat.com \
    --cc=berto@igalia.com \
    --cc=kwolf@redhat.com \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.