On Wed, Aug 02, 2023 at 12:40:54PM +0000, Tage Johansson wrote:
All handle calls which has the `modifies_fd` flag set to [true] will
be
excluded from `AsyncHandle` (the asynchronous handle in the rust
bindings). This is a better approach then listing all calls that should
be excluded in Rust.ml explicetly.
---
generator/Rust.ml | 63 ++++++++++++++++++++++-------------------------
1 file changed, 30 insertions(+), 33 deletions(-)
diff --git a/generator/Rust.ml b/generator/Rust.ml
index dc82d46..5d26c73 100644
--- a/generator/Rust.ml
+++ b/generator/Rust.ml
@@ -567,19 +567,21 @@ let generate_rust_bindings () =
(*********************************************************)
let excluded_handle_calls : NameSet.t =
+ let modifies_fd =
Reusing 'modifies_fd' as the variable containing a list of synchronous
calls is a bit confusing. How about just using this code directly
when creating the set, eg:
NameSet.of_list
([
"aio_get_fd";
"aio_get_direction";
...
] @
handle_calls
|> List.filter (fun (_, { modifies_fd }) -> modifies_fd)
|> List.map (fun (name, _) -> name)
)
or using NameSet.union?
Some of the code in the rest of this patch uses Set or Map sequences
which don't work with OCaml 4.05 (RHEL 7). We're slowly dropping
support for RHEL 7 so this is not necessarily a blocker, but if it was
easy to change the code so it would still work that might be better.
Everything must work with RHEL 8 (OCaml 4.07).
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW