[PATCH 00/12] Next round of qemu_api patches

Paolo Bonzini posted 12 patches 3 days, 2 hours ago
rust/hw/char/pl011/src/device.rs              |  79 +++++----
rust/hw/char/pl011/src/lib.rs                 |  28 +---
rust/qemu-api-macros/src/lib.rs               | 150 +++++++++++++-----
rust/qemu-api-macros/src/utils.rs             |  26 +++
rust/qemu-api/meson.build                     |   1 +
rust/qemu-api/src/assertions.rs               |  90 +++++++++++
rust/qemu-api/src/irq.rs                      |   3 +-
rust/qemu-api/src/lib.rs                      |   1 +
rust/qemu-api/src/prelude.rs                  |   2 +
rust/qemu-api/src/qom.rs                      |  77 +++++++--
rust/qemu-api/src/sysbus.rs                   |  23 ++-
rust/qemu-api/tests/tests.rs                  |   4 +-
subprojects/arbitrary-int-1-rs.wrap           |   3 +
subprojects/bilge-0.2-rs.wrap                 |   3 +
subprojects/bilge-impl-0.2-rs.wrap            |   3 +
subprojects/either-1-rs.wrap                  |   3 +
subprojects/itertools-0.11-rs.wrap            |   3 +
.../arbitrary-int-1-rs/meson.build            |   1 +
.../packagefiles/bilge-0.2-rs/meson.build     |   1 +
.../bilge-impl-0.2-rs/meson.build             |   1 +
.../packagefiles/either-1-rs/meson.build      |   1 +
.../itertools-0.11-rs/meson.build             |   1 +
.../proc-macro-error-1-rs/meson.build         |   1 +
.../proc-macro-error-attr-1-rs/meson.build    |   1 +
.../packagefiles/proc-macro2-1-rs/meson.build |   1 +
.../packagefiles/quote-1-rs/meson.build       |   1 +
subprojects/packagefiles/syn-2-rs/meson.build |   1 +
.../unicode-ident-1-rs/meson.build            |   1 +
subprojects/proc-macro-error-1-rs.wrap        |   3 +
subprojects/proc-macro-error-attr-1-rs.wrap   |   3 +
subprojects/proc-macro2-1-rs.wrap             |   3 +
subprojects/quote-1-rs.wrap                   |   3 +
subprojects/syn-2-rs.wrap                     |   3 +
subprojects/unicode-ident-1-rs.wrap           |   3 +
subprojects/unicode-ident-1-rs/meson.build    |  20 ---
35 files changed, 402 insertions(+), 146 deletions(-)
create mode 100644 rust/qemu-api-macros/src/utils.rs
create mode 100644 rust/qemu-api/src/assertions.rs
delete mode 100644 subprojects/unicode-ident-1-rs/meson.build
[PATCH 00/12] Next round of qemu_api patches
Posted by Paolo Bonzini 3 days, 2 hours ago
This includes:

1) the outcome of reviewing
   https://lore.kernel.org/qemu-devel/20241209123717.99077-1-pbonzini@redhat.com/T/,
   especially with respect to instance_finalize implementation and
   Rust-defined subclasses (patches 1-6)

2) the beginnings of separating instance_init/instance_post_init, making
   the latter take &self (patches 7-9)

3) extracting pl011's logic to convert an integer into an enum into a
   #[derive(TryInto)] procedural macro (patches 10-11)

4) a one-off change that I noticed while reading Cargo documentation
   (patch 12)

Zhao: I have placed these in rust-next, but feel free to ignore them for
your next HPET submission.  I have also included in my tree your test
additions for usage in CI, but I'm not including them here to give you
the opportunity to post them with a commit message and a signed-off-by.
If you don't have time, it's in safe hands. :)

Paolo

Paolo Bonzini (12):
  rust: qom: add ParentField
  rust: add a utility module for compile-time type checks
  rust: macros: check that the first field of a #[derive(Object)] struct
    is a ParentField
  rust: macros: check that #[derive(Object)] requires #[repr(C)]
  rust: qom: automatically use Drop trait to implement instance_finalize
  rust: qom: move device_id to PL011 class side
  rust: pl011: only leave embedded object initialization in
    instance_init
  rust: qom: make INSTANCE_POST_INIT take a shared reference
  rust: qdev: expose inherited methods to subclasses of SysBusDevice
  rust: qemu-api-macros: extend error reporting facility to parse errors
  rust: qemu-api-macros: add automatic TryFrom/TryInto derivation
  rust: hide warnings for subprojects

 rust/hw/char/pl011/src/device.rs              |  79 +++++----
 rust/hw/char/pl011/src/lib.rs                 |  28 +---
 rust/qemu-api-macros/src/lib.rs               | 150 +++++++++++++-----
 rust/qemu-api-macros/src/utils.rs             |  26 +++
 rust/qemu-api/meson.build                     |   1 +
 rust/qemu-api/src/assertions.rs               |  90 +++++++++++
 rust/qemu-api/src/irq.rs                      |   3 +-
 rust/qemu-api/src/lib.rs                      |   1 +
 rust/qemu-api/src/prelude.rs                  |   2 +
 rust/qemu-api/src/qom.rs                      |  77 +++++++--
 rust/qemu-api/src/sysbus.rs                   |  23 ++-
 rust/qemu-api/tests/tests.rs                  |   4 +-
 subprojects/arbitrary-int-1-rs.wrap           |   3 +
 subprojects/bilge-0.2-rs.wrap                 |   3 +
 subprojects/bilge-impl-0.2-rs.wrap            |   3 +
 subprojects/either-1-rs.wrap                  |   3 +
 subprojects/itertools-0.11-rs.wrap            |   3 +
 .../arbitrary-int-1-rs/meson.build            |   1 +
 .../packagefiles/bilge-0.2-rs/meson.build     |   1 +
 .../bilge-impl-0.2-rs/meson.build             |   1 +
 .../packagefiles/either-1-rs/meson.build      |   1 +
 .../itertools-0.11-rs/meson.build             |   1 +
 .../proc-macro-error-1-rs/meson.build         |   1 +
 .../proc-macro-error-attr-1-rs/meson.build    |   1 +
 .../packagefiles/proc-macro2-1-rs/meson.build |   1 +
 .../packagefiles/quote-1-rs/meson.build       |   1 +
 subprojects/packagefiles/syn-2-rs/meson.build |   1 +
 .../unicode-ident-1-rs/meson.build            |   1 +
 subprojects/proc-macro-error-1-rs.wrap        |   3 +
 subprojects/proc-macro-error-attr-1-rs.wrap   |   3 +
 subprojects/proc-macro2-1-rs.wrap             |   3 +
 subprojects/quote-1-rs.wrap                   |   3 +
 subprojects/syn-2-rs.wrap                     |   3 +
 subprojects/unicode-ident-1-rs.wrap           |   3 +
 subprojects/unicode-ident-1-rs/meson.build    |  20 ---
 35 files changed, 402 insertions(+), 146 deletions(-)
 create mode 100644 rust/qemu-api-macros/src/utils.rs
 create mode 100644 rust/qemu-api/src/assertions.rs
 delete mode 100644 subprojects/unicode-ident-1-rs/meson.build

-- 
2.47.1
Re: [PATCH 00/12] Next round of qemu_api patches
Posted by Zhao Liu 10 hours ago
On Fri, Dec 20, 2024 at 03:29:42PM +0100, Paolo Bonzini wrote:
> Date: Fri, 20 Dec 2024 15:29:42 +0100
> From: Paolo Bonzini <pbonzini@redhat.com>
> Subject: [PATCH 00/12] Next round of qemu_api patches
> X-Mailer: git-send-email 2.47.1
> 
> This includes:
> 
> 1) the outcome of reviewing
>    https://lore.kernel.org/qemu-devel/20241209123717.99077-1-pbonzini@redhat.com/T/,
>    especially with respect to instance_finalize implementation and
>    Rust-defined subclasses (patches 1-6)
> 
> 2) the beginnings of separating instance_init/instance_post_init, making
>    the latter take &self (patches 7-9)
> 
> 3) extracting pl011's logic to convert an integer into an enum into a
>    #[derive(TryInto)] procedural macro (patches 10-11)
> 
> 4) a one-off change that I noticed while reading Cargo documentation
>    (patch 12)

This series is the v2 of https://lore.kernel.org/qemu-devel/20241219121216.416905-1-pbonzini@redhat.com/

I will go through this series this week. :)

> Zhao: I have placed these in rust-next, but feel free to ignore them for
> your next HPET submission.  I have also included in my tree your test
> additions for usage in CI, but I'm not including them here to give you
> the opportunity to post them with a commit message and a signed-off-by.
> If you don't have time, it's in safe hands. :)

If possible, I would really appreciate it if you could add it to your
series :-) It seems fragmented if I send it separately.

Thanks,
Zhao