Re: [Libguestfs] [libnbd PATCH v5 00/12] Rust Bindings for Libnbd

2023-08-14 Thread Eric Blake
On Mon, Aug 14, 2023 at 08:31:51AM +, Tage Johansson wrote:
...
> > None of these touched top-level README.md, which should now list cargo
> > and any other new optional build dependencies that must be installed
> > for enabling Rust bindings.
> 
> 
> True, I'll add that in an upcoming patch.
> 
> 
> An unrelated question: Should the patch which adds cargo as an optional
> build dependency to README be a reply to this message or should I send it as
> a new thread? I'll send it as a new thread now, but what is the best way to
> do it?

For a quick patch that can be applied out-of-order, a separate thread
is probably easiest.  At some point, it boils down to a judgment call
on what's easier for the person writing the code (the notion of
rebasing and maintaining parallel patches is not trivial for a new
coder) as well as those reviewing and applying the code (tracking
multiple threads may make it easier to apply quick patches, but also
means more threads to track in the long run).  At any rate, I see that
thread already landed, so in the end you chose well on this case.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.
Virtualization:  qemu.org | libguestfs.org
___
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs



Re: [Libguestfs] [libnbd PATCH v5 00/12] Rust Bindings for Libnbd

2023-08-14 Thread Tage Johansson



On 8/11/2023 10:54 PM, Eric Blake wrote:

On Thu, Aug 03, 2023 at 03:36:04PM +, Tage Johansson wrote:

A new version of the Rust bindings for Libnbd. Most changes have been
mentioned as replies to the comments I got on v4. But the most significant
change is probably that the patches have been reordered.

Best regards,
Tage


Tage Johansson (12):
   rust: create basic Rust bindings
   rust: Add a couple of integration tests
   rust: Make it possible to run tests with Valgrind
   rust: Add some examples
   generator: Add information about asynchronous handle calls
   generator: Add information about the lifetime of closures
   rust: Use more specific closure traits
   rust: async: Create an async friendly handle type
   generator: Add `modifies_fd` flag to the [call] structure
   rust: async: Use the modifies_fd flag to exclude calls
   rust: async: Add a couple of integration tests
   rust: async: Add an example

  .gitignore|  10 +
  .ocamlformat  |   4 +
  Makefile.am   |   2 +
  configure.ac  |  30 +
  generator/API.ml  |  84 ++

...

  rust/tests/test_log/mod.rs|  86 ++
  rustfmt.toml  |  19 +
  scripts/git.orderfile |  12 +
  68 files changed, 4851 insertions(+)

None of these touched top-level README.md, which should now list cargo
and any other new optional build dependencies that must be installed
for enabling Rust bindings.



True, I'll add that in an upcoming patch.


An unrelated question: Should the patch which adds cargo as an optional 
build dependency to README be a reply to this message or should I send 
it as a new thread? I'll send it as a new thread now, but what is the 
best way to do it?



--

Best regards,

Tage

___
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs



Re: [Libguestfs] [libnbd PATCH v5 00/12] Rust Bindings for Libnbd

2023-08-11 Thread Eric Blake
On Thu, Aug 03, 2023 at 03:36:04PM +, Tage Johansson wrote:
> A new version of the Rust bindings for Libnbd. Most changes have been
> mentioned as replies to the comments I got on v4. But the most significant
> change is probably that the patches have been reordered.
> 
> Best regards,
> Tage
> 
> 
> Tage Johansson (12):
>   rust: create basic Rust bindings
>   rust: Add a couple of integration tests
>   rust: Make it possible to run tests with Valgrind
>   rust: Add some examples
>   generator: Add information about asynchronous handle calls
>   generator: Add information about the lifetime of closures
>   rust: Use more specific closure traits
>   rust: async: Create an async friendly handle type
>   generator: Add `modifies_fd` flag to the [call] structure
>   rust: async: Use the modifies_fd flag to exclude calls
>   rust: async: Add a couple of integration tests
>   rust: async: Add an example
> 
>  .gitignore|  10 +
>  .ocamlformat  |   4 +
>  Makefile.am   |   2 +
>  configure.ac  |  30 +
>  generator/API.ml  |  84 ++
...
>  rust/tests/test_log/mod.rs|  86 ++
>  rustfmt.toml  |  19 +
>  scripts/git.orderfile |  12 +
>  68 files changed, 4851 insertions(+)

None of these touched top-level README.md, which should now list cargo
and any other new optional build dependencies that must be installed
for enabling Rust bindings.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.
Virtualization:  qemu.org | libguestfs.org
___
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs



[Libguestfs] [libnbd PATCH v5 00/12] Rust Bindings for Libnbd

2023-08-03 Thread Tage Johansson
A new version of the Rust bindings for Libnbd. Most changes have been
mentioned as replies to the comments I got on v4. But the most significant
change is probably that the patches have been reordered.

Best regards,
Tage


Tage Johansson (12):
  rust: create basic Rust bindings
  rust: Add a couple of integration tests
  rust: Make it possible to run tests with Valgrind
  rust: Add some examples
  generator: Add information about asynchronous handle calls
  generator: Add information about the lifetime of closures
  rust: Use more specific closure traits
  rust: async: Create an async friendly handle type
  generator: Add `modifies_fd` flag to the [call] structure
  rust: async: Use the modifies_fd flag to exclude calls
  rust: async: Add a couple of integration tests
  rust: async: Add an example

 .gitignore|  10 +
 .ocamlformat  |   4 +
 Makefile.am   |   2 +
 configure.ac  |  30 +
 generator/API.ml  |  84 ++
 generator/API.mli |  35 +
 generator/Makefile.am |   4 +
 generator/Rust.ml | 794 ++
 generator/Rust.mli|  22 +
 generator/RustSys.ml  | 167 
 generator/RustSys.mli |  19 +
 generator/generator.ml|   4 +
 rust/Cargo.toml   |  59 ++
 rust/Makefile.am  | 106 +++
 rust/cargo_test/Cargo.toml|  23 +
 rust/cargo_test/README.md |   3 +
 rust/cargo_test/src/lib.rs|  31 +
 rust/examples/concurrent-read-write.rs| 135 +++
 rust/examples/connect-command.rs  |  39 +
 rust/examples/fetch-first-sector.rs   |  38 +
 rust/examples/get-size.rs |  29 +
 rust/libnbd-sys/Cargo.toml|  32 +
 rust/libnbd-sys/build.rs  |  26 +
 rust/libnbd-sys/src/.keep |   0
 rust/run-tests.sh.in  |  39 +
 rust/src/async_handle.rs  | 268 ++
 rust/src/error.rs | 157 
 rust/src/handle.rs|  67 ++
 rust/src/lib.rs   |  36 +
 rust/src/types.rs |  20 +
 rust/src/utils.rs |  23 +
 rust/tests/nbdkit_pattern/mod.rs  |  28 +
 rust/tests/test_100_handle.rs |  25 +
 rust/tests/test_110_defaults.rs   |  33 +
 rust/tests/test_120_set_non_defaults.rs   |  53 ++
 rust/tests/test_130_private_data.rs   |  28 +
 rust/tests/test_140_explicit_close.rs |  31 +
 rust/tests/test_200_connect_command.rs|  32 +
 rust/tests/test_210_opt_abort.rs  |  31 +
 rust/tests/test_220_opt_list.rs   |  86 ++
 rust/tests/test_230_opt_info.rs   | 120 +++
 rust/tests/test_240_opt_list_meta.rs  | 147 
 rust/tests/test_245_opt_list_meta_queries.rs  |  93 ++
 rust/tests/test_250_opt_set_meta.rs   | 123 +++
 rust/tests/test_255_opt_set_meta_queries.rs   | 109 +++
 rust/tests/test_300_get_size.rs   |  35 +
 rust/tests/test_400_pread.rs  |  39 +
 rust/tests/test_405_pread_structured.rs   |  79 ++
 rust/tests/test_410_pwrite.rs |  58 ++
 rust/tests/test_460_block_status.rs   |  92 ++
 rust/tests/test_620_stats.rs  |  75 ++
 rust/tests/test_async_100_handle.rs   |  25 +
 rust/tests/test_async_200_connect_command.rs  |  33 +
 rust/tests/test_async_210_opt_abort.rs|  32 +
 rust/tests/test_async_220_opt_list.rs |  81 ++
 rust/tests/test_async_230_opt_info.rs | 122 +++
 rust/tests/test_async_240_opt_list_meta.rs| 147 
 .../test_async_245_opt_list_meta_queries.rs   |  91 ++
 rust/tests/test_async_250_opt_set_meta.rs | 122 +++
 .../test_async_255_opt_set_meta_queries.rs| 107 +++
 rust/tests/test_async_400_pread.rs|  40 +
 rust/tests/test_async_405_pread_structured.rs |  84 ++
 rust/tests/test_async_410_pwrite.rs   |  59 ++
 rust/tests/test_async_460_block_status.rs |  92 ++
 rust/tests/test_async_620_stats.rs|  76 ++
 rust/tests/test_log/mod.rs|  86 ++
 rustfmt.toml  |  19 +
 scripts/git.orderfile |  12 +
 68 files changed, 4851 insertions(+)
 create mode 100644 .ocamlformat
 create mode 100644 generator/Rust.ml
 create mode 100644 generator/Rust.mli
 create mode 100644 generator/RustSys.ml
 create mode 100644 generator/RustSys.mli
 create mode 100644 rust/Cargo.toml
 create mode 100644 rust/Makefile.am
 create mode 100644 rust/cargo_test/Cargo.toml
 create mode 100644