qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Michael Roth <mdroth@linux.vnet.ibm.com>
To: Luiz Capitulino <lcapitulino@redhat.com>
Cc: aliguori@linux.vnet.ibm.com, agl@linux.vnet.ibm.com,
	qemu-devel@nongnu.org, Jes.Sorensen@redhat.com
Subject: Re: [Qemu-devel] [QAPI+QGA 2/3] QAPI code generation infrastructure v5
Date: Thu, 07 Jul 2011 10:02:47 -0500	[thread overview]
Message-ID: <4E15CA97.7030901@linux.vnet.ibm.com> (raw)
In-Reply-To: <20110707113751.0ae16a3d@doriath>

On 07/07/2011 09:37 AM, Luiz Capitulino wrote:
> On Tue,  5 Jul 2011 08:02:27 -0500
> Michael Roth<mdroth@linux.vnet.ibm.com>  wrote:
>
>> This is Set 2/3 of the QAPI+QGA patchsets.
>>
>> These patches apply on top of master (set1 merged), and can also be obtained
>> from:
>> git://repo.or.cz/qemu/mdroth.git qapi-backport-set2-v5
>
> This doesn't build due to a bug in error.h. If you didn't get it you're
> probably testing against a not up to date branch...
>
> I have the fix for error.h and will submit it.
>
> Only a few small issues remain, I think the next version will be good to go,
> although I'd only merge it along with the guest agent patches.
>

Doh, I see it too. I must've missed a build test after rebasing on 
master. I'll keep an eye out for your patch, thanks!

>>
>> (Set1+2 are a backport of some of the QAPI-related work from Anthony's
>> glib tree. The main goal is to get the basic code generation infrastructure in
>> place so that it can be used by the guest agent to implement a QMP-like guest
>> interface, and so that future work regarding the QMP conversion to QAPI can be
>> decoupled from the infrastructure bits. Set3 is the Qemu Guest Agent
>> (virtagent), rebased on the new code QAPI code generation infrastructure. This
>> is the first user of QAPI, QMP will follow.)
>> ___
>>
>> This patchset introduces the following:
>>
>>   - Hard dependency on GLib. This has been floating around the list for a while.
>>     Currently the only users are the unit tests for this patchset and the guest
>>     agent. We can make both of these a configure option, but based on previous
>>     discussions a hard dependency will likely be introduced with subsequent
>>     QAPI patches.
>>
>>   - A couple additional qlist utility functions used by QAPI.
>>
>>   - QAPI schema-based code generation for synchronous QMP/QGA commands
>>     and types, and Visitor/dispatch infrastructure to handle
>>     marshaling/unmarshaling/dispatch between QAPI and the QMP/QGA wire protocols.
>>
>>   - Documentation and unit tests for visitor functions and synchronous
>>     command/type generation.
>>
>> CHANGES SINCE V4:
>>   - Fix segfault in output visitor when dealing with QAPI-defined C structs
>>     with NULL pointers
>>
>> CHANGES SINCE V3:
>>   - Added copyright headers for generated code and remaining files
>>   - Added checking for required/extra parameters in top-level of QMP QObject
>>   - Made QDict arg to input visitor constructor a const
>>   - Renamed qmp_dispatch_err() ->  do_qmp_dispatch()
>>   - Changed QERR_QAPI_STACK_OVERRUN to QERR_BUFFER_OVERRUN
>>   - Moved configure changes to create QAPI directory when using a different build
>>     root to first patch which uses it.
>>   - Squashed Makefile changes for test-visitor/test-qmp-commands into single
>>     commits
>>   - Removed redundant NULL checks for qemu_free() in dealloc visitor
>>
>> CHANGES SINCE V2:
>>   - Added cleanup functions for input/output visitor types and fixed a leak in
>>     dispatch path.
>>   - Corrected spelling from visiter->visitor and updated filenames accordingly.
>>   - Re-organized patches so that each new C file can be built as part of the
>>     introducting commit (for instances where there were no users of the
>>     qapi-obj-y target yet a test build was done by adding the target as a
>>     superficial dependency on other tools), and moved code generator patches
>>     after the required dependencies.
>>   - Made qlist_first/qlist_next accept/return const types.
>>   - Moved Visitor interface inline wrapper functions to real ones.
>>   - Fixed error-reporting for invalid parameters when parameter name is null.
>>   - Removed hard-coded size for QAPI-type allocations done by the input visitor,
>>     using generated code to pass in a sizeof() now.
>>   - Replaced assert()'s on visitor stack overruns, replaced with an error
>>     indication.
>>   - Fixed build issue when using a separate build directory.
>>   - Added missing copyright headers for scripts, moved external code in
>>     ordereddict.py to a seperate patch.
>>   - Many thanks to Luiz, Anthony, and everyone else for the excellent
>>     review/testing.
>>
>> CHANGES SINCE V1:
>>   - Fixed build issue that was missed due to deprecated files being present in
>>     source tree. Thanks to Matsuda Daiki for sending fixes.
>>   - Fixed grammatical errors in documentation pointed out by Luiz.
>>   - Added generated code to the make clean target.
>>
>> CHANGES SINCE V0 ("QAPI Infrastructure Round 1"):
>>   - Fixed known memory leaks in generated code
>>   - Stricter error-handling in generated code
>>   - Removed currently unused code (generators for events and async/proxied
>>     QMP/QGA commands and definition used by the not-yet-introduced QMP server
>>     replacement)
>>   - Added documentation for code generation scripts/schemas/usage
>>   - Addressed review comments from Luiz and Stefan
>>
>>   Makefile                    |   24 +++-
>>   Makefile.objs               |    9 +
>>   Makefile.target             |    1 +
>>   configure                   |   14 ++
>>   docs/qapi-code-gen.txt      |  316 +++++++++++++++++++++++++++++++++++
>>   module.h                    |    2 +
>>   qapi-schema-test.json       |   22 +++
>>   qapi/qapi-dealloc-visitor.c |  138 ++++++++++++++++
>>   qapi/qapi-dealloc-visitor.h |   26 +++
>>   qapi/qapi-types-core.h      |   21 +++
>>   qapi/qapi-visit-core.c      |  114 +++++++++++++
>>   qapi/qapi-visit-core.h      |   68 ++++++++
>>   qapi/qmp-core.h             |   41 +++++
>>   qapi/qmp-dispatch.c         |  124 ++++++++++++++
>>   qapi/qmp-input-visitor.c    |  264 ++++++++++++++++++++++++++++++
>>   qapi/qmp-input-visitor.h    |   27 +++
>>   qapi/qmp-output-visitor.c   |  216 ++++++++++++++++++++++++
>>   qapi/qmp-output-visitor.h   |   28 +++
>>   qapi/qmp-registry.c         |   40 +++++
>>   qerror.h                    |    3 +
>>   qlist.h                     |   11 ++
>>   scripts/ordereddict.py      |  128 +++++++++++++++
>>   scripts/qapi-commands.py    |  381 +++++++++++++++++++++++++++++++++++++++++++
>>   scripts/qapi-types.py       |  258 +++++++++++++++++++++++++++++
>>   scripts/qapi-visit.py       |  261 +++++++++++++++++++++++++++++
>>   scripts/qapi.py             |  203 +++++++++++++++++++++++
>>   test-qmp-commands.c         |  113 +++++++++++++
>>   test-visitor.c              |  305 ++++++++++++++++++++++++++++++++++
>>   28 files changed, 3157 insertions(+), 1 deletions(-)
>>
>

      reply	other threads:[~2011-07-07 15:03 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-05 13:02 [Qemu-devel] [QAPI+QGA 2/3] QAPI code generation infrastructure v5 Michael Roth
2011-07-05 13:02 ` [Qemu-devel] [PATCH v5 01/18] Add hard build dependency on glib Michael Roth
2011-07-05 13:02 ` [Qemu-devel] [PATCH v5 02/18] qlist: add qlist_first()/qlist_next() Michael Roth
2011-07-05 13:02 ` [Qemu-devel] [PATCH v5 03/18] qapi: add module init types for qapi Michael Roth
2011-07-05 13:02 ` [Qemu-devel] [PATCH v5 04/18] qapi: add QAPI visitor core Michael Roth
2011-07-07 14:32   ` Luiz Capitulino
2011-07-07 14:40     ` Michael Roth
2011-07-05 13:02 ` [Qemu-devel] [PATCH v5 05/18] qapi: add QMP input visitor Michael Roth
2011-07-07 14:32   ` Luiz Capitulino
2011-07-07 14:45     ` Michael Roth
2011-07-12  0:05     ` Michael Roth
2011-07-12 13:16       ` Luiz Capitulino
2011-07-12 13:46         ` Michael Roth
2011-07-12 13:53           ` Luiz Capitulino
2011-07-12 14:14             ` Michael Roth
2011-07-05 13:02 ` [Qemu-devel] [PATCH v5 06/18] qapi: add QMP output visitor Michael Roth
2011-07-05 13:02 ` [Qemu-devel] [PATCH v5 07/18] qapi: add QAPI dealloc visitor Michael Roth
2011-07-05 13:02 ` [Qemu-devel] [PATCH v5 08/18] qapi: add QMP command registration/lookup functions Michael Roth
2011-07-05 13:02 ` [Qemu-devel] [PATCH v5 09/18] qapi: add QMP dispatch functions Michael Roth
2011-07-05 13:02 ` [Qemu-devel] [PATCH v5 10/18] qapi: add ordereddict.py helper library Michael Roth
2011-07-05 13:02 ` [Qemu-devel] [PATCH v5 11/18] qapi: add qapi.py helper libraries Michael Roth
2011-07-05 13:02 ` [Qemu-devel] [PATCH v5 12/18] qapi: add qapi-types.py code generator Michael Roth
2011-07-05 13:02 ` [Qemu-devel] [PATCH v5 13/18] qapi: add qapi-visit.py " Michael Roth
2011-07-05 13:02 ` [Qemu-devel] [PATCH v5 14/18] qapi: add qapi-commands.py " Michael Roth
2011-07-05 13:02 ` [Qemu-devel] [PATCH v5 15/18] qapi: test schema used for unit tests Michael Roth
2011-07-05 13:02 ` [Qemu-devel] [PATCH v5 16/18] qapi: add test-visitor, tests for gen. visitor code Michael Roth
2011-07-05 13:02 ` [Qemu-devel] [PATCH v5 17/18] qapi: add test-qmp-commands, tests for gen. marshalling/dispatch code Michael Roth
2011-07-05 13:02 ` [Qemu-devel] [PATCH v5 18/18] qapi: add QAPI code generation documentation Michael Roth
2011-07-07 14:37 ` [Qemu-devel] [QAPI+QGA 2/3] QAPI code generation infrastructure v5 Luiz Capitulino
2011-07-07 15:02   ` Michael Roth [this message]

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=4E15CA97.7030901@linux.vnet.ibm.com \
    --to=mdroth@linux.vnet.ibm.com \
    --cc=Jes.Sorensen@redhat.com \
    --cc=agl@linux.vnet.ibm.com \
    --cc=aliguori@linux.vnet.ibm.com \
    --cc=lcapitulino@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).