qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 6/7] qapi: Split up scripts/qapi/common.py


From: Markus Armbruster
Subject: Re: [PATCH 6/7] qapi: Split up scripts/qapi/common.py
Date: Wed, 16 Oct 2019 16:09:22 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux)

Kevin Wolf <address@hidden> writes:

> Am 01.10.2019 um 21:15 hat Markus Armbruster geschrieben:
>> The QAPI code generator clocks in at some 3100 SLOC in 8 source files.
>> Almost 60% of the code is in qapi/common.py.  Split it into more
>> focused modules:
>> 
>> * Move QAPISchemaPragma and QAPISourceInfo to qapi/source.py.
>> 
>> * Move QAPIError and its sub-classes to qapi/error.py.
>> 
>> * Move QAPISchemaParser and QAPIDoc to parser.py.  Use the opportunity
>>   to put QAPISchemaParser first.
>> 
>> * Move check_expr() & friends to qapi/expr.py.  Use the opportunity to
>>   put the code into a more sensible order.
>> 
>> * Move QAPISchema & friends to qapi/schema.py
>> 
>> * Move QAPIGen and its sub-classes, ifcontext,
>>   QAPISchemaModularCVisitor, and QAPISchemaModularCVisitor to qapi/gen.py
>> 
>> A number of helper functions remain in qapi/common.py.  I considered
>> moving the code generator helpers to qapi/gen.py, but decided not to.
>> Perhaps we should rewrite them as methods of QAPIGen some day.
>> 
>> Signed-off-by: Markus Armbruster <address@hidden>
>
> This patch seems to forget to change qapi-py in the Makefile, so that
> when you change one of the new source files, the generator won't run
> again.

You're right.  Fixups in my tree now:

>From ab5f45bbf58060441c8881f290273e93a56b47d5 Mon Sep 17 00:00:00 2001
From: Markus Armbruster <address@hidden>
Date: Fri, 11 Oct 2019 16:58:07 +0200
Subject: [PATCH] fixup! qapi: Split up scripts/qapi/common.py

---
 Makefile                   | 13 ++++++++++---
 scripts/qapi/introspect.py |  2 ++
 scripts/qapi/source.py     |  1 +
 tests/Makefile.include     | 13 ++++++++++---
 4 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/Makefile b/Makefile
index 30f0abfb42..991c8884d4 100644
--- a/Makefile
+++ b/Makefile
@@ -582,13 +582,20 @@ qemu-ga$(EXESUF): QEMU_CFLAGS += -I qga/qapi-generated
 qemu-keymap$(EXESUF): LIBS += $(XKBCOMMON_LIBS)
 qemu-keymap$(EXESUF): QEMU_CFLAGS += $(XKBCOMMON_CFLAGS)
 
-qapi-py = $(SRC_PATH)/scripts/qapi/commands.py \
+qapi-py = $(SRC_PATH)/scripts/qapi/__init__.py \
+$(SRC_PATH)/scripts/qapi/commands.py \
+$(SRC_PATH)/scripts/qapi/common.py \
+$(SRC_PATH)/scripts/qapi/doc.py \
+$(SRC_PATH)/scripts/qapi/error.py \
 $(SRC_PATH)/scripts/qapi/events.py \
+$(SRC_PATH)/scripts/qapi/expr.py \
+$(SRC_PATH)/scripts/qapi/gen.py \
 $(SRC_PATH)/scripts/qapi/introspect.py \
+$(SRC_PATH)/scripts/qapi/parser.py \
+$(SRC_PATH)/scripts/qapi/schema.py \
+$(SRC_PATH)/scripts/qapi/source.py \
 $(SRC_PATH)/scripts/qapi/types.py \
 $(SRC_PATH)/scripts/qapi/visit.py \
-$(SRC_PATH)/scripts/qapi/common.py \
-$(SRC_PATH)/scripts/qapi/doc.py \
 $(SRC_PATH)/scripts/qapi-gen.py
 
 qga/qapi-generated/qga-qapi-types.c qga/qapi-generated/qga-qapi-types.h \
diff --git a/scripts/qapi/introspect.py b/scripts/qapi/introspect.py
index 739b35ae8f..b3a463dd8b 100644
--- a/scripts/qapi/introspect.py
+++ b/scripts/qapi/introspect.py
@@ -10,6 +10,8 @@ This work is licensed under the terms of the GNU GPL, version 
2.
 See the COPYING file in the top-level directory.
 """
 
+import string
+
 from qapi.common import *
 from qapi.gen import QAPISchemaMonolithicCVisitor
 from qapi.schema import (QAPISchemaArrayType, QAPISchemaBuiltinType,
diff --git a/scripts/qapi/source.py b/scripts/qapi/source.py
index a5da8af17a..8956885033 100644
--- a/scripts/qapi/source.py
+++ b/scripts/qapi/source.py
@@ -10,6 +10,7 @@
 # See the COPYING file in the top-level directory.
 
 import copy
+import sys
 
 
 class QAPISchemaPragma(object):
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 1b24b8ba10..09e5b410dc 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -31,13 +31,20 @@ ifneq ($(wildcard config-host.mak),)
 export SRC_PATH
 
 # TODO don't duplicate $(SRC_PATH)/Makefile's qapi-py here
-qapi-py = $(SRC_PATH)/scripts/qapi/commands.py \
+qapi-py = $(SRC_PATH)/scripts/qapi/__init__.py \
+$(SRC_PATH)/scripts/qapi/commands.py \
+$(SRC_PATH)/scripts/qapi/common.py \
+$(SRC_PATH)/scripts/qapi/doc.py \
+$(SRC_PATH)/scripts/qapi/error.py \
 $(SRC_PATH)/scripts/qapi/events.py \
+$(SRC_PATH)/scripts/qapi/expr.py \
+$(SRC_PATH)/scripts/qapi/gen.py \
 $(SRC_PATH)/scripts/qapi/introspect.py \
+$(SRC_PATH)/scripts/qapi/parser.py \
+$(SRC_PATH)/scripts/qapi/schema.py \
+$(SRC_PATH)/scripts/qapi/source.py \
 $(SRC_PATH)/scripts/qapi/types.py \
 $(SRC_PATH)/scripts/qapi/visit.py \
-$(SRC_PATH)/scripts/qapi/common.py \
-$(SRC_PATH)/scripts/qapi/doc.py \
 $(SRC_PATH)/scripts/qapi-gen.py
 
 # Get the list of all supported sysemu targets
-- 
2.21.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]