Hi,

Daniel & Andrea, it would be great to have your take on the Go
side of this series. If we can agree with an acceptable
'unstable' version of Go modules, we can start building on top of
this:
 - libraries/tools in Go to interact with QEMU
 - qapi specs to fix limitations (e.g: Data type names)
 - scripts/qapi library wrt to generating interfaces in other
   languages other than C

I would love to have this prior to 8.2 feature freeze if the
idea and current code meet your expectations.

Cheers,
Victor

On Mon, Oct 16, 2023 at 05:26:53PM +0200, Victor Toso wrote:
> This patch series intent is to introduce a generator that produces a Go
> module for Go applications to interact over QMP with QEMU.
> 
> This is the second iteration:
>  v1: https://lists.gnu.org/archive/html/qemu-devel/2023-09/msg06734.html
> 
> I've pushed this series in my gitlab fork:
> https://gitlab.com/victortoso/qemu/-/tree/qapi-golang-v2
> 
> I've also generated the qapi-go module over QEMU tags: v7.0.0, v7.1.0,
> v7.2.6, v8.0.0 and v8.1.0, see the commits history here:
> https://gitlab.com/victortoso/qapi-go/-/commits/qapi-golang-v2-by-tags
> 
> I've also generated the qapi-go module over each commit of this series,
> see the commits history here (using previous refered qapi-golang-v2)
> https://gitlab.com/victortoso/qapi-go/-/commits/qapi-golang-v2-by-patch
> 
> Cheers,
> Victor
> 
> * Changes:
>  - All patches were rebased using black python formatting tool, awesome.
>    (John) https://black.readthedocs.io/en/stable/
>  - All patches were tested with flake8 and pylint. Minor complains
>    remains. (John)
>  - All generated types are sorted in alphabetical order (Daniel)
>  - Using utf8 instead of ascii encoding of output files
>  - Improved commit logs
>  - renamed QapiError -> QAPIError (Daniel)
>  - QAPIError's Error() returns only the description (Daniel)
>  - Used more type hints (Where I could) (John)
>  - Removed typehint from self in the Class implementation (John)
>  - The Go code that is generated is now well formated. gofmt -w and
>    goimport -w don't change a thing.
>  - Added a fix from John
>    https://lists.gnu.org/archive/html/qemu-devel/2023-10/msg01305.html
>  - Added a tangent fix suggestion to main.py "scripts: qapi: black
>    format main.py"
> 
> John Snow (1):
>   qapi: re-establish linting baseline
> 
> Victor Toso (10):
>   scripts: qapi: black format main.py
>   qapi: golang: Generate qapi's enum types in Go
>   qapi: golang: Generate qapi's alternate types in Go
>   qapi: golang: Generate qapi's struct types in Go
>   qapi: golang: structs: Address 'null' members
>   qapi: golang: Generate qapi's union types in Go
>   qapi: golang: Generate qapi's event types in Go
>   qapi: golang: Generate qapi's command types in Go
>   qapi: golang: Add CommandResult type to Go
>   docs: add notes on Golang code generator
> 
>  docs/devel/index-build.rst          |    1 +
>  docs/devel/qapi-golang-code-gen.rst |  376 ++++++++
>  scripts/qapi/gen.py                 |    2 +-
>  scripts/qapi/golang.py              | 1349 +++++++++++++++++++++++++++
>  scripts/qapi/main.py                |   79 +-
>  scripts/qapi/parser.py              |    5 +-
>  6 files changed, 1781 insertions(+), 31 deletions(-)
>  create mode 100644 docs/devel/qapi-golang-code-gen.rst
>  create mode 100644 scripts/qapi/golang.py
> 
> -- 
> 2.41.0
> 
> 

Attachment: signature.asc
Description: PGP signature

Reply via email to